Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CompanyDefaultService.php 1.1KB

123456789101112131415161718192021222324252627282930
  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. $companyDefaultInstance = CompanyDefault::factory()->withDefault($user, $company, $currencyCode, $countryCode, $language);
  14. // Create Chart of Accounts
  15. $chartOfAccountsService = app(ChartOfAccountsService::class);
  16. $chartOfAccountsService->createChartOfAccounts($company);
  17. // Get the default bank account and update the company default record
  18. $defaultBankAccount = $company->bankAccounts()->where('enabled', true)->firstOrFail();
  19. $companyDefaultInstance->state([
  20. 'bank_account_id' => $defaultBankAccount->id,
  21. ])->createQuietly();
  22. });
  23. }
  24. }