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.

helpers.php 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. use App\DTO\AccountBalanceDTO;
  3. use App\Enums\Setting\EntityType;
  4. use App\Filament\Company\Pages\CreateCompany;
  5. use App\Models\Company;
  6. use App\Services\ReportService;
  7. use function Pest\Livewire\livewire;
  8. function createCompany(string $name): Company
  9. {
  10. livewire(CreateCompany::class)
  11. ->fillForm([
  12. 'name' => $name,
  13. 'profile.email' => 'company@gmail.com',
  14. 'profile.entity_type' => EntityType::LimitedLiabilityCompany,
  15. 'profile.country' => 'US',
  16. 'locale.language' => 'en',
  17. 'currencies.code' => 'USD',
  18. ])
  19. ->call('register')
  20. ->assertHasNoErrors();
  21. return auth()->user()->currentCompany;
  22. }
  23. function calculateRetainedEarningsBalances(ReportService $reportService, $startDate, $endDate): AccountBalanceDTO
  24. {
  25. $retainedEarningsAmount = $reportService->calculateRetainedEarnings($startDate, $endDate)->getAmount();
  26. $isCredit = $retainedEarningsAmount >= 0;
  27. $retainedEarningsDebitAmount = $isCredit ? 0 : abs($retainedEarningsAmount);
  28. $retainedEarningsCreditAmount = $isCredit ? $retainedEarningsAmount : 0;
  29. return $reportService->formatBalances([
  30. 'debit_balance' => $retainedEarningsDebitAmount,
  31. 'credit_balance' => $retainedEarningsCreditAmount,
  32. ]);
  33. }