1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
-
- use App\DTO\AccountBalanceDTO;
- use App\Enums\Setting\EntityType;
- use App\Filament\Company\Pages\CreateCompany;
- use App\Models\Company;
- use App\Services\ReportService;
-
- use function Pest\Livewire\livewire;
-
- function createCompany(string $name): Company
- {
- livewire(CreateCompany::class)
- ->fillForm([
- 'name' => $name,
- 'profile.email' => 'company@gmail.com',
- 'profile.entity_type' => EntityType::LimitedLiabilityCompany,
- 'profile.country' => 'US',
- 'locale.language' => 'en',
- 'currencies.code' => 'USD',
- ])
- ->call('register')
- ->assertHasNoErrors();
-
- return auth()->user()->currentCompany;
- }
-
- function calculateRetainedEarningsBalances(ReportService $reportService, $startDate, $endDate): AccountBalanceDTO
- {
- $retainedEarningsAmount = $reportService->calculateRetainedEarnings($startDate, $endDate)->getAmount();
-
- $isCredit = $retainedEarningsAmount >= 0;
- $retainedEarningsDebitAmount = $isCredit ? 0 : abs($retainedEarningsAmount);
- $retainedEarningsCreditAmount = $isCredit ? $retainedEarningsAmount : 0;
-
- return $reportService->formatBalances([
- 'debit_balance' => $retainedEarningsDebitAmount,
- 'credit_balance' => $retainedEarningsCreditAmount,
- ]);
- }
-
- function formatReportBalances(array $balances): AccountBalanceDTO
- {
- $reportService = app(ReportService::class);
-
- return $reportService->formatBalances($balances);
- }
|