Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

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. }