Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

ReportDateFactory.php 903B

12345678910111213141516171819202122232425262728
  1. <?php
  2. namespace App\Factories;
  3. use App\DTO\ReportDatesDTO;
  4. use App\Models\Company;
  5. use Illuminate\Support\Carbon;
  6. class ReportDateFactory
  7. {
  8. public static function create(Company $company): ReportDatesDTO
  9. {
  10. $fiscalYearStartDate = Carbon::parse($company->locale->fiscalYearStartDate())->startOfDay();
  11. $fiscalYearEndDate = Carbon::parse($company->locale->fiscalYearEndDate())->endOfDay();
  12. $defaultDateRange = 'FY-' . now()->year;
  13. $defaultStartDate = $fiscalYearStartDate->startOfDay();
  14. $defaultEndDate = $fiscalYearEndDate->isFuture() ? now()->endOfDay() : $fiscalYearEndDate->endOfDay();
  15. // Return a new DTO with the calculated values
  16. return new ReportDatesDTO(
  17. $fiscalYearStartDate,
  18. $fiscalYearEndDate,
  19. $defaultDateRange,
  20. $defaultStartDate,
  21. $defaultEndDate
  22. );
  23. }
  24. }