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.

CompanyDefaultService.php 1.2KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Services;
  3. use App\Models\Company;
  4. use App\Models\Setting\CompanyDefault;
  5. use App\Models\User;
  6. use Illuminate\Support\Facades\DB;
  7. class CompanyDefaultService
  8. {
  9. public function createCompanyDefaults(Company $company, User $user, string $currencyCode, string $countryCode, string $language): void
  10. {
  11. DB::transaction(function () use ($user, $company, $currencyCode, $countryCode, $language) {
  12. // Create the company defaults
  13. $companyDefaultFactory = CompanyDefault::factory()->withDefault($user, $company, $currencyCode, $countryCode, $language);
  14. $companyDefaults = $companyDefaultFactory->make()->toArray();
  15. $companyDefault = CompanyDefault::create($companyDefaults);
  16. // Create Chart of Accounts
  17. $chartOfAccountsService = app()->make(ChartOfAccountsService::class);
  18. $chartOfAccountsService->createChartOfAccounts($company);
  19. // Get the default bank account and update the company default record
  20. $defaultBankAccount = $chartOfAccountsService->getDefaultBankAccount($company);
  21. $companyDefault->update([
  22. 'bank_account_id' => $defaultBankAccount?->id,
  23. ]);
  24. }, 5);
  25. }
  26. }