Browse Source

Merge pull request #61 from andrewdwallo/development-3.x

Development 3.x
3.x
Andrew Wallo 1 year ago
parent
commit
2e787f80e3
No account linked to committer's email address

+ 0
- 25
app/Events/CompanyGenerated.php View File

1
-<?php
2
-
3
-namespace App\Events;
4
-
5
-use App\Models\Company;
6
-use App\Models\User;
7
-use Illuminate\Foundation\Events\Dispatchable;
8
-use Illuminate\Queue\SerializesModels;
9
-
10
-class CompanyGenerated
11
-{
12
-    use Dispatchable;
13
-    use SerializesModels;
14
-
15
-    /**
16
-     * Create a new event instance.
17
-     */
18
-    public function __construct(
19
-        public User $user,
20
-        public Company $company,
21
-        public string $country,
22
-        public string $language = 'en',
23
-        public string $currency = 'USD'
24
-    ) {}
25
-}

+ 1
- 1
app/Filament/Company/Clusters/Settings/Pages/CompanyProfile.php View File

125
     protected function getTimezoneChangeNotification(): Notification
125
     protected function getTimezoneChangeNotification(): Notification
126
     {
126
     {
127
         return Notification::make()
127
         return Notification::make()
128
-            ->warning()
128
+            ->info()
129
             ->title('Timezone Update Required')
129
             ->title('Timezone Update Required')
130
             ->body('You have changed your country or state. Please update your timezone to ensure accurate date and time information.')
130
             ->body('You have changed your country or state. Please update your timezone to ensure accurate date and time information.')
131
             ->actions([
131
             ->actions([

+ 20
- 17
app/Filament/Company/Pages/CreateCompany.php View File

3
 namespace App\Filament\Company\Pages;
3
 namespace App\Filament\Company\Pages;
4
 
4
 
5
 use App\Enums\Setting\EntityType;
5
 use App\Enums\Setting\EntityType;
6
-use App\Events\CompanyGenerated;
7
 use App\Models\Company;
6
 use App\Models\Company;
8
 use App\Models\Locale\Country;
7
 use App\Models\Locale\Country;
9
 use App\Models\Setting\Localization;
8
 use App\Models\Setting\Localization;
9
+use App\Services\CompanyDefaultService;
10
 use App\Utilities\Currency\CurrencyAccessor;
10
 use App\Utilities\Currency\CurrencyAccessor;
11
 use Filament\Forms\Components\Select;
11
 use Filament\Forms\Components\Select;
12
 use Filament\Forms\Components\TextInput;
12
 use Filament\Forms\Components\TextInput;
13
 use Filament\Forms\Form;
13
 use Filament\Forms\Form;
14
 use Illuminate\Database\Eloquent\Model;
14
 use Illuminate\Database\Eloquent\Model;
15
 use Illuminate\Support\Facades\Auth;
15
 use Illuminate\Support\Facades\Auth;
16
+use Illuminate\Support\Facades\DB;
16
 use Illuminate\Support\Facades\Gate;
17
 use Illuminate\Support\Facades\Gate;
17
 use Wallo\FilamentCompanies\Events\AddingCompany;
18
 use Wallo\FilamentCompanies\Events\AddingCompany;
18
 use Wallo\FilamentCompanies\FilamentCompanies;
19
 use Wallo\FilamentCompanies\FilamentCompanies;
69
 
70
 
70
         $personalCompany = $user?->personalCompany() === null;
71
         $personalCompany = $user?->personalCompany() === null;
71
 
72
 
72
-        /** @var Company $company */
73
-        $company = $user?->ownedCompanies()->create([
74
-            'name' => $data['name'],
75
-            'personal_company' => $personalCompany,
76
-        ]);
73
+        return DB::transaction(function () use ($user, $data, $personalCompany) {
74
+            /** @var Company $company */
75
+            $company = $user?->ownedCompanies()->create([
76
+                'name' => $data['name'],
77
+                'personal_company' => $personalCompany,
78
+            ]);
77
 
79
 
78
-        $company->profile()->create([
79
-            'email' => $data['profile']['email'],
80
-            'entity_type' => $data['profile']['entity_type'],
81
-            'country' => $data['profile']['country'],
82
-        ]);
80
+            $company->profile()->create([
81
+                'email' => $data['profile']['email'],
82
+                'entity_type' => $data['profile']['entity_type'],
83
+                'country' => $data['profile']['country'],
84
+            ]);
83
 
85
 
84
-        $user?->switchCompany($company);
86
+            $user?->switchCompany($company);
85
 
87
 
86
-        $name = $data['name'];
88
+            $companyDefaultService = app()->make(CompanyDefaultService::class);
89
+            $user = $company->owner ?? $user;
90
+            $companyDefaultService->createCompanyDefaults($company, $user, $data['currencies']['code'], $data['profile']['country'], $data['locale']['language']);
87
 
91
 
88
-        CompanyGenerated::dispatch($user ?? Auth::user(), $company, $data['profile']['country'], $data['locale']['language'], $data['currencies']['code']);
92
+            $this->companyCreated($data['name']);
89
 
93
 
90
-        $this->companyCreated($name);
91
-
92
-        return $company;
94
+            return $company;
95
+        });
93
     }
96
     }
94
 }
97
 }

+ 36
- 2
app/Filament/Company/Pages/Reports/AccountTransactions.php View File

4
 
4
 
5
 use App\Contracts\ExportableReport;
5
 use App\Contracts\ExportableReport;
6
 use App\DTO\ReportDTO;
6
 use App\DTO\ReportDTO;
7
+use App\Filament\Company\Pages\Accounting\Transactions;
7
 use App\Models\Accounting\Account;
8
 use App\Models\Accounting\Account;
8
 use App\Services\ExportService;
9
 use App\Services\ExportService;
9
 use App\Services\ReportService;
10
 use App\Services\ReportService;
13
 use Filament\Forms\Components\Select;
14
 use Filament\Forms\Components\Select;
14
 use Filament\Forms\Form;
15
 use Filament\Forms\Form;
15
 use Filament\Support\Enums\Alignment;
16
 use Filament\Support\Enums\Alignment;
17
+use Filament\Tables\Actions\Action;
16
 use Guava\FilamentClusters\Forms\Cluster;
18
 use Guava\FilamentClusters\Forms\Cluster;
19
+use Illuminate\Contracts\Support\Htmlable;
17
 use Illuminate\Support\Collection;
20
 use Illuminate\Support\Collection;
18
-use Livewire\Attributes\Session;
19
 use Symfony\Component\HttpFoundation\StreamedResponse;
21
 use Symfony\Component\HttpFoundation\StreamedResponse;
20
 
22
 
21
 class AccountTransactions extends BaseReportPage
23
 class AccountTransactions extends BaseReportPage
30
 
32
 
31
     protected ExportService $exportService;
33
     protected ExportService $exportService;
32
 
34
 
33
-    #[Session]
34
     public ?string $account_id = 'all';
35
     public ?string $account_id = 'all';
35
 
36
 
36
     public function boot(ReportService $reportService, ExportService $exportService): void
37
     public function boot(ReportService $reportService, ExportService $exportService): void
122
     {
123
     {
123
         return $this->exportService->exportToPdf($this->company, $this->report, $this->startDate, $this->endDate);
124
         return $this->exportService->exportToPdf($this->company, $this->report, $this->startDate, $this->endDate);
124
     }
125
     }
126
+
127
+    public function getEmptyStateHeading(): string | Htmlable
128
+    {
129
+        return 'No Transactions Found';
130
+    }
131
+
132
+    public function getEmptyStateDescription(): string | Htmlable | null
133
+    {
134
+        return 'Adjust the account or date range, or start by creating a transaction.';
135
+    }
136
+
137
+    public function getEmptyStateIcon(): string
138
+    {
139
+        return 'heroicon-o-x-mark';
140
+    }
141
+
142
+    public function getEmptyStateActions(): array
143
+    {
144
+        return [
145
+            Action::make('createTransaction')
146
+                ->label('Create Transaction')
147
+                ->url(Transactions::getUrl()),
148
+        ];
149
+    }
150
+
151
+    public function tableHasEmptyState(): bool
152
+    {
153
+        if ($this->report) {
154
+            return empty($this->report->getCategories());
155
+        } else {
156
+            return true;
157
+        }
158
+    }
125
 }
159
 }

+ 0
- 3
app/Filament/Company/Pages/Reports/BaseReportPage.php View File

26
 
26
 
27
 abstract class BaseReportPage extends Page
27
 abstract class BaseReportPage extends Page
28
 {
28
 {
29
-    #[Session]
30
     public string $startDate = '';
29
     public string $startDate = '';
31
 
30
 
32
-    #[Session]
33
     public string $endDate = '';
31
     public string $endDate = '';
34
 
32
 
35
-    #[Session]
36
     public string $dateRange = '';
33
     public string $dateRange = '';
37
 
34
 
38
     public string $fiscalYearStartDate = '';
35
     public string $fiscalYearStartDate = '';

+ 0
- 29
app/Listeners/ConfigureChartOfAccounts.php View File

1
-<?php
2
-
3
-namespace App\Listeners;
4
-
5
-use App\Events\CompanyGenerated;
6
-use App\Services\ChartOfAccountsService;
7
-
8
-class ConfigureChartOfAccounts
9
-{
10
-    /**
11
-     * Create the event listener.
12
-     */
13
-    public function __construct()
14
-    {
15
-        //
16
-    }
17
-
18
-    /**
19
-     * Handle the event.
20
-     */
21
-    public function handle(CompanyGenerated $event): void
22
-    {
23
-        $company = $event->company;
24
-
25
-        $chartOfAccountsService = new ChartOfAccountsService();
26
-
27
-        $chartOfAccountsService->createChartOfAccounts($company);
28
-    }
29
-}

+ 0
- 33
app/Listeners/CreateCompanyDefaults.php View File

1
-<?php
2
-
3
-namespace App\Listeners;
4
-
5
-use App\Events\CompanyGenerated;
6
-use App\Services\CompanyDefaultService;
7
-
8
-class CreateCompanyDefaults
9
-{
10
-    /**
11
-     * Create the event listener.
12
-     */
13
-    public function __construct()
14
-    {
15
-        //
16
-    }
17
-
18
-    /**
19
-     * Handle the event.
20
-     */
21
-    public function handle(CompanyGenerated $event): void
22
-    {
23
-        $company = $event->company;
24
-        $countryCode = $event->country;
25
-        $languageCode = $event->language;
26
-        $currency = $event->currency;
27
-
28
-        $user = $company->owner;
29
-
30
-        $companyDefaultService = new CompanyDefaultService();
31
-        $companyDefaultService->createCompanyDefaults($company, $user, $currency, $countryCode, $languageCode);
32
-    }
33
-}

+ 5
- 0
app/Services/ChartOfAccountsService.php View File

81
             'updated_by' => $company->owner->id,
81
             'updated_by' => $company->owner->id,
82
         ]);
82
         ]);
83
     }
83
     }
84
+
85
+    public function getDefaultBankAccount(Company $company): ?BankAccount
86
+    {
87
+        return $company->bankAccounts()->where('enabled', true)->first();
88
+    }
84
 }
89
 }

+ 15
- 90
app/Services/CompanyDefaultService.php View File

3
 namespace App\Services;
3
 namespace App\Services;
4
 
4
 
5
 use App\Models\Company;
5
 use App\Models\Company;
6
-use App\Models\Setting\Appearance;
7
-use App\Models\Setting\Currency;
8
-use App\Models\Setting\Discount;
9
-use App\Models\Setting\DocumentDefault;
10
-use App\Models\Setting\Localization;
11
-use App\Models\Setting\Tax;
6
+use App\Models\Setting\CompanyDefault;
12
 use App\Models\User;
7
 use App\Models\User;
13
 use Illuminate\Support\Facades\DB;
8
 use Illuminate\Support\Facades\DB;
14
 
9
 
16
 {
11
 {
17
     public function createCompanyDefaults(Company $company, User $user, string $currencyCode, string $countryCode, string $language): void
12
     public function createCompanyDefaults(Company $company, User $user, string $currencyCode, string $countryCode, string $language): void
18
     {
13
     {
19
-        DB::transaction(function () use ($company, $user, $currencyCode, $countryCode, $language) {
20
-            $this->createCurrency($company, $user, $currencyCode);
21
-            $this->createSalesTax($company, $user);
22
-            $this->createPurchaseTax($company, $user);
23
-            $this->createSalesDiscount($company, $user);
24
-            $this->createPurchaseDiscount($company, $user);
25
-            $this->createAppearance($company, $user);
26
-            $this->createDocumentDefaults($company, $user);
27
-            $this->createLocalization($company, $user, $countryCode, $language);
28
-        }, 5);
29
-    }
30
-
31
-    private function createCurrency(Company $company, User $user, string $currencyCode): void
32
-    {
33
-        Currency::factory()->forCurrency($currencyCode)->create([
34
-            'company_id' => $company->id,
35
-            'created_by' => $user->id,
36
-            'updated_by' => $user->id,
37
-        ]);
38
-    }
14
+        DB::transaction(function () use ($user, $company, $currencyCode, $countryCode, $language) {
15
+            // Create the company defaults
16
+            $companyDefaultFactory = CompanyDefault::factory()->withDefault($user, $company, $currencyCode, $countryCode, $language);
17
+            $companyDefaults = $companyDefaultFactory->make()->toArray();
39
 
18
 
40
-    private function createSalesTax(Company $company, User $user): void
41
-    {
42
-        Tax::factory()->salesTax()->create([
43
-            'company_id' => $company->id,
44
-            'created_by' => $user->id,
45
-            'updated_by' => $user->id,
46
-        ]);
47
-    }
19
+            $companyDefault = CompanyDefault::create($companyDefaults);
48
 
20
 
49
-    private function createPurchaseTax(Company $company, User $user): void
50
-    {
51
-        Tax::factory()->purchaseTax()->create([
52
-            'company_id' => $company->id,
53
-            'created_by' => $user->id,
54
-            'updated_by' => $user->id,
55
-        ]);
56
-    }
21
+            // Create Chart of Accounts
22
+            $chartOfAccountsService = app()->make(ChartOfAccountsService::class);
23
+            $chartOfAccountsService->createChartOfAccounts($company);
57
 
24
 
58
-    private function createSalesDiscount(Company $company, User $user): void
59
-    {
60
-        Discount::factory()->salesDiscount()->create([
61
-            'company_id' => $company->id,
62
-            'created_by' => $user->id,
63
-            'updated_by' => $user->id,
64
-        ]);
65
-    }
25
+            // Get the default bank account and update the company default record
26
+            $defaultBankAccount = $chartOfAccountsService->getDefaultBankAccount($company);
66
 
27
 
67
-    private function createPurchaseDiscount(Company $company, User $user): void
68
-    {
69
-        Discount::factory()->purchaseDiscount()->create([
70
-            'company_id' => $company->id,
71
-            'created_by' => $user->id,
72
-            'updated_by' => $user->id,
73
-        ]);
74
-    }
75
-
76
-    private function createAppearance(Company $company, User $user): void
77
-    {
78
-        Appearance::factory()->create([
79
-            'company_id' => $company->id,
80
-            'created_by' => $user->id,
81
-            'updated_by' => $user->id,
82
-        ]);
83
-    }
84
-
85
-    private function createDocumentDefaults(Company $company, User $user): void
86
-    {
87
-        DocumentDefault::factory()->invoice()->create([
88
-            'company_id' => $company->id,
89
-            'created_by' => $user->id,
90
-            'updated_by' => $user->id,
91
-        ]);
92
-
93
-        DocumentDefault::factory()->bill()->create([
94
-            'company_id' => $company->id,
95
-            'created_by' => $user->id,
96
-            'updated_by' => $user->id,
97
-        ]);
98
-    }
99
-
100
-    private function createLocalization(Company $company, User $user, string $countryCode, string $language): void
101
-    {
102
-        Localization::factory()->withCountry($countryCode, $language)->create([
103
-            'company_id' => $company->id,
104
-            'created_by' => $user->id,
105
-            'updated_by' => $user->id,
106
-        ]);
28
+            $companyDefault->update([
29
+                'bank_account_id' => $defaultBankAccount?->id,
30
+            ]);
31
+        }, 5);
107
     }
32
     }
108
 }
33
 }

+ 199
- 199
composer.lock
File diff suppressed because it is too large
View File


+ 1
- 0
config/snappy.php View File

48
             'footer-right' => 'Page [page] / [toPage]',
48
             'footer-right' => 'Page [page] / [toPage]',
49
             'footer-font-size' => '8',
49
             'footer-font-size' => '8',
50
             'footer-spacing' => '5',
50
             'footer-spacing' => '5',
51
+            'zoom' => '1.3',
51
         ],
52
         ],
52
         'env' => [],
53
         'env' => [],
53
     ],
54
     ],

+ 8
- 10
database/factories/Accounting/TransactionFactory.php View File

2
 
2
 
3
 namespace Database\Factories\Accounting;
3
 namespace Database\Factories\Accounting;
4
 
4
 
5
+use App\Enums\Accounting\JournalEntryType;
6
+use App\Enums\Accounting\TransactionType;
5
 use App\Models\Accounting\Account;
7
 use App\Models\Accounting\Account;
6
 use App\Models\Accounting\Transaction;
8
 use App\Models\Accounting\Transaction;
7
 use App\Models\Banking\BankAccount;
9
 use App\Models\Banking\BankAccount;
29
             'company_id' => 1,
31
             'company_id' => 1,
30
             'bank_account_id' => 1,
32
             'bank_account_id' => 1,
31
             'account_id' => $this->faker->numberBetween(2, 30),
33
             'account_id' => $this->faker->numberBetween(2, 30),
32
-            'type' => $this->faker->randomElement(['deposit', 'withdrawal', 'journal']),
33
-            'payment_channel' => $this->faker->randomElement(['online', 'in store', 'other']),
34
+            'type' => $this->faker->randomElement([TransactionType::Deposit, TransactionType::Withdrawal]),
34
             'description' => $this->faker->sentence,
35
             'description' => $this->faker->sentence,
35
             'notes' => $this->faker->paragraph,
36
             'notes' => $this->faker->paragraph,
36
-            'reference' => $this->faker->word,
37
             'amount' => $this->faker->numberBetween(100, 5000),
37
             'amount' => $this->faker->numberBetween(100, 5000),
38
-            'pending' => $this->faker->boolean,
39
             'reviewed' => $this->faker->boolean,
38
             'reviewed' => $this->faker->boolean,
40
             'posted_at' => $this->faker->dateTimeBetween('-2 years'),
39
             'posted_at' => $this->faker->dateTimeBetween('-2 years'),
41
             'created_by' => 1,
40
             'created_by' => 1,
59
             $debitAccount->journalEntries()->create([
58
             $debitAccount->journalEntries()->create([
60
                 'company_id' => $transaction->company_id,
59
                 'company_id' => $transaction->company_id,
61
                 'transaction_id' => $transaction->id,
60
                 'transaction_id' => $transaction->id,
62
-                'type' => 'debit',
61
+                'type' => JournalEntryType::Debit,
63
                 'amount' => $transaction->amount,
62
                 'amount' => $transaction->amount,
64
                 'description' => $transaction->description,
63
                 'description' => $transaction->description,
65
                 'created_by' => $transaction->created_by,
64
                 'created_by' => $transaction->created_by,
69
             $creditAccount->journalEntries()->create([
68
             $creditAccount->journalEntries()->create([
70
                 'company_id' => $transaction->company_id,
69
                 'company_id' => $transaction->company_id,
71
                 'transaction_id' => $transaction->id,
70
                 'transaction_id' => $transaction->id,
72
-                'type' => 'credit',
71
+                'type' => JournalEntryType::Credit,
73
                 'amount' => $transaction->amount,
72
                 'amount' => $transaction->amount,
74
                 'description' => $transaction->description,
73
                 'description' => $transaction->description,
75
                 'created_by' => $transaction->created_by,
74
                 'created_by' => $transaction->created_by,
81
     public function forCompanyAndBankAccount(Company $company, BankAccount $bankAccount): static
80
     public function forCompanyAndBankAccount(Company $company, BankAccount $bankAccount): static
82
     {
81
     {
83
         return $this->state(function (array $attributes) use ($bankAccount, $company) {
82
         return $this->state(function (array $attributes) use ($bankAccount, $company) {
84
-            $type = $this->faker->randomElement(['deposit', 'withdrawal', 'journal']);
83
+            $type = $this->faker->randomElement([TransactionType::Deposit, TransactionType::Withdrawal]);
85
 
84
 
86
             $associatedAccountTypes = match ($type) {
85
             $associatedAccountTypes = match ($type) {
87
-                'deposit' => ['asset', 'liability', 'equity', 'revenue'],
88
-                'withdrawal' => ['asset', 'liability', 'equity', 'expense'],
89
-                default => ['asset', 'liability', 'equity', 'revenue', 'expense'],
86
+                TransactionType::Deposit => ['asset', 'liability', 'equity', 'revenue'],
87
+                TransactionType::Withdrawal => ['asset', 'liability', 'equity', 'expense'],
90
             };
88
             };
91
 
89
 
92
             $accountIdForBankAccount = $bankAccount->account->id;
90
             $accountIdForBankAccount = $bankAccount->account->id;

+ 8
- 7
database/factories/Setting/CompanyDefaultFactory.php View File

37
         ];
37
         ];
38
     }
38
     }
39
 
39
 
40
-    public function withDefault(User $user, Company $company, string $country, string $language = 'en'): static
40
+    public function withDefault(User $user, Company $company, ?string $currencyCode, string $countryCode, string $language = 'en'): static
41
     {
41
     {
42
-        /** @var CurrencyCode $currencyFaker */
43
-        $currencyFaker = $this->faker;
44
-
45
-        $currencyCode = $currencyFaker->currencyCode($country);
42
+        if ($currencyCode === null) {
43
+            /** @var CurrencyCode $currencyFaker */
44
+            $currencyFaker = $this->faker;
45
+            $currencyCode = $currencyFaker->currencyCode($countryCode);
46
+        }
46
 
47
 
47
         $currency = $this->createCurrency($company, $user, $currencyCode);
48
         $currency = $this->createCurrency($company, $user, $currencyCode);
48
         $salesTax = $this->createSalesTax($company, $user);
49
         $salesTax = $this->createSalesTax($company, $user);
51
         $purchaseDiscount = $this->createPurchaseDiscount($company, $user);
52
         $purchaseDiscount = $this->createPurchaseDiscount($company, $user);
52
         $this->createAppearance($company, $user);
53
         $this->createAppearance($company, $user);
53
         $this->createDocumentDefaults($company, $user);
54
         $this->createDocumentDefaults($company, $user);
54
-        $this->createLocalization($company, $user, $country, $language);
55
+        $this->createLocalization($company, $user, $countryCode, $language);
55
 
56
 
56
         $companyDefaults = [
57
         $companyDefaults = [
57
             'company_id' => $company->id,
58
             'company_id' => $company->id,
67
         return $this->state($companyDefaults);
68
         return $this->state($companyDefaults);
68
     }
69
     }
69
 
70
 
70
-    private function createCurrency(Company $company, User $user, string $currencyCode)
71
+    private function createCurrency(Company $company, User $user, string $currencyCode): Currency
71
     {
72
     {
72
         return Currency::factory()->forCurrency($currencyCode)->create([
73
         return Currency::factory()->forCurrency($currencyCode)->create([
73
             'company_id' => $company->id,
74
             'company_id' => $company->id,

+ 1
- 21
database/factories/UserFactory.php View File

5
 use App\Models\Company;
5
 use App\Models\Company;
6
 use App\Models\Setting\CompanyProfile;
6
 use App\Models\Setting\CompanyProfile;
7
 use App\Models\User;
7
 use App\Models\User;
8
-use App\Services\ChartOfAccountsService;
9
 use App\Services\CompanyDefaultService;
8
 use App\Services\CompanyDefaultService;
10
 use Database\Factories\Accounting\TransactionFactory;
9
 use Database\Factories\Accounting\TransactionFactory;
11
 use Illuminate\Database\Eloquent\Factories\Factory;
10
 use Illuminate\Database\Eloquent\Factories\Factory;
75
                         $companyDefaultService = app()->make(CompanyDefaultService::class);
74
                         $companyDefaultService = app()->make(CompanyDefaultService::class);
76
                         $companyDefaultService->createCompanyDefaults($company, $user, 'USD', $countryCode, 'en');
75
                         $companyDefaultService->createCompanyDefaults($company, $user, 'USD', $countryCode, 'en');
77
 
76
 
78
-                        $chartOfAccountsService = app()->make(ChartOfAccountsService::class);
79
-                        $chartOfAccountsService->createChartOfAccounts($company);
80
-
81
-                        $defaultBankAccount = $company->bankAccounts()->where('enabled', true)->first();
82
-                        $defaultCurrency = $company->currencies()->where('enabled', true)->first();
83
-                        $defaultSalesTax = $company->taxes()->where('type', 'sales')->where('enabled', true)->first();
84
-                        $defaultPurchaseTax = $company->taxes()->where('type', 'purchase')->where('enabled', true)->first();
85
-                        $defaultSalesDiscount = $company->discounts()->where('type', 'sales')->where('enabled', true)->first();
86
-                        $defaultPurchaseDiscount = $company->discounts()->where('type', 'purchase')->where('enabled', true)->first();
87
-
88
-                        $company->default()->create([
89
-                            'bank_account_id' => $defaultBankAccount?->id,
90
-                            'currency_code' => $defaultCurrency?->code,
91
-                            'sales_tax_id' => $defaultSalesTax?->id,
92
-                            'purchase_tax_id' => $defaultPurchaseTax?->id,
93
-                            'sales_discount_id' => $defaultSalesDiscount?->id,
94
-                            'purchase_discount_id' => $defaultPurchaseDiscount?->id,
95
-                            'created_by' => $user->id,
96
-                            'updated_by' => $user->id,
97
-                        ]);
77
+                        $defaultBankAccount = $company->default->bankAccount;
98
 
78
 
99
                         TransactionFactory::new()
79
                         TransactionFactory::new()
100
                             ->forCompanyAndBankAccount($company, $defaultBankAccount)
80
                             ->forCompanyAndBankAccount($company, $defaultBankAccount)

+ 119
- 128
package-lock.json View File

446
             }
446
             }
447
         },
447
         },
448
         "node_modules/@jridgewell/sourcemap-codec": {
448
         "node_modules/@jridgewell/sourcemap-codec": {
449
-            "version": "1.4.15",
450
-            "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
451
-            "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
449
+            "version": "1.5.0",
450
+            "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
451
+            "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
452
             "dev": true
452
             "dev": true
453
         },
453
         },
454
         "node_modules/@jridgewell/trace-mapping": {
454
         "node_modules/@jridgewell/trace-mapping": {
507
             }
507
             }
508
         },
508
         },
509
         "node_modules/@rollup/rollup-android-arm-eabi": {
509
         "node_modules/@rollup/rollup-android-arm-eabi": {
510
-            "version": "4.18.0",
511
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
512
-            "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
510
+            "version": "4.18.1",
511
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz",
512
+            "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
513
             "cpu": [
513
             "cpu": [
514
                 "arm"
514
                 "arm"
515
             ],
515
             ],
520
             ]
520
             ]
521
         },
521
         },
522
         "node_modules/@rollup/rollup-android-arm64": {
522
         "node_modules/@rollup/rollup-android-arm64": {
523
-            "version": "4.18.0",
524
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
525
-            "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
523
+            "version": "4.18.1",
524
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz",
525
+            "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
526
             "cpu": [
526
             "cpu": [
527
                 "arm64"
527
                 "arm64"
528
             ],
528
             ],
533
             ]
533
             ]
534
         },
534
         },
535
         "node_modules/@rollup/rollup-darwin-arm64": {
535
         "node_modules/@rollup/rollup-darwin-arm64": {
536
-            "version": "4.18.0",
537
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
538
-            "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
536
+            "version": "4.18.1",
537
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz",
538
+            "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
539
             "cpu": [
539
             "cpu": [
540
                 "arm64"
540
                 "arm64"
541
             ],
541
             ],
546
             ]
546
             ]
547
         },
547
         },
548
         "node_modules/@rollup/rollup-darwin-x64": {
548
         "node_modules/@rollup/rollup-darwin-x64": {
549
-            "version": "4.18.0",
550
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
551
-            "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
549
+            "version": "4.18.1",
550
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz",
551
+            "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
552
             "cpu": [
552
             "cpu": [
553
                 "x64"
553
                 "x64"
554
             ],
554
             ],
559
             ]
559
             ]
560
         },
560
         },
561
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
561
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
562
-            "version": "4.18.0",
563
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
564
-            "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
562
+            "version": "4.18.1",
563
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz",
564
+            "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
565
             "cpu": [
565
             "cpu": [
566
                 "arm"
566
                 "arm"
567
             ],
567
             ],
572
             ]
572
             ]
573
         },
573
         },
574
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
574
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
575
-            "version": "4.18.0",
576
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
577
-            "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
575
+            "version": "4.18.1",
576
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz",
577
+            "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
578
             "cpu": [
578
             "cpu": [
579
                 "arm"
579
                 "arm"
580
             ],
580
             ],
585
             ]
585
             ]
586
         },
586
         },
587
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
587
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
588
-            "version": "4.18.0",
589
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
590
-            "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
588
+            "version": "4.18.1",
589
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz",
590
+            "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
591
             "cpu": [
591
             "cpu": [
592
                 "arm64"
592
                 "arm64"
593
             ],
593
             ],
598
             ]
598
             ]
599
         },
599
         },
600
         "node_modules/@rollup/rollup-linux-arm64-musl": {
600
         "node_modules/@rollup/rollup-linux-arm64-musl": {
601
-            "version": "4.18.0",
602
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
603
-            "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
601
+            "version": "4.18.1",
602
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz",
603
+            "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
604
             "cpu": [
604
             "cpu": [
605
                 "arm64"
605
                 "arm64"
606
             ],
606
             ],
611
             ]
611
             ]
612
         },
612
         },
613
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
613
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
614
-            "version": "4.18.0",
615
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
616
-            "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
614
+            "version": "4.18.1",
615
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz",
616
+            "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
617
             "cpu": [
617
             "cpu": [
618
                 "ppc64"
618
                 "ppc64"
619
             ],
619
             ],
624
             ]
624
             ]
625
         },
625
         },
626
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
626
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
627
-            "version": "4.18.0",
628
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
629
-            "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
627
+            "version": "4.18.1",
628
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz",
629
+            "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
630
             "cpu": [
630
             "cpu": [
631
                 "riscv64"
631
                 "riscv64"
632
             ],
632
             ],
637
             ]
637
             ]
638
         },
638
         },
639
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
639
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
640
-            "version": "4.18.0",
641
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
642
-            "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
640
+            "version": "4.18.1",
641
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz",
642
+            "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
643
             "cpu": [
643
             "cpu": [
644
                 "s390x"
644
                 "s390x"
645
             ],
645
             ],
650
             ]
650
             ]
651
         },
651
         },
652
         "node_modules/@rollup/rollup-linux-x64-gnu": {
652
         "node_modules/@rollup/rollup-linux-x64-gnu": {
653
-            "version": "4.18.0",
654
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
655
-            "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
653
+            "version": "4.18.1",
654
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz",
655
+            "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
656
             "cpu": [
656
             "cpu": [
657
                 "x64"
657
                 "x64"
658
             ],
658
             ],
663
             ]
663
             ]
664
         },
664
         },
665
         "node_modules/@rollup/rollup-linux-x64-musl": {
665
         "node_modules/@rollup/rollup-linux-x64-musl": {
666
-            "version": "4.18.0",
667
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
668
-            "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
666
+            "version": "4.18.1",
667
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz",
668
+            "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
669
             "cpu": [
669
             "cpu": [
670
                 "x64"
670
                 "x64"
671
             ],
671
             ],
676
             ]
676
             ]
677
         },
677
         },
678
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
678
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
679
-            "version": "4.18.0",
680
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
681
-            "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
679
+            "version": "4.18.1",
680
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz",
681
+            "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
682
             "cpu": [
682
             "cpu": [
683
                 "arm64"
683
                 "arm64"
684
             ],
684
             ],
689
             ]
689
             ]
690
         },
690
         },
691
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
691
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
692
-            "version": "4.18.0",
693
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
694
-            "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
692
+            "version": "4.18.1",
693
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz",
694
+            "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
695
             "cpu": [
695
             "cpu": [
696
                 "ia32"
696
                 "ia32"
697
             ],
697
             ],
702
             ]
702
             ]
703
         },
703
         },
704
         "node_modules/@rollup/rollup-win32-x64-msvc": {
704
         "node_modules/@rollup/rollup-win32-x64-msvc": {
705
-            "version": "4.18.0",
706
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
707
-            "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
705
+            "version": "4.18.1",
706
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz",
707
+            "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
708
             "cpu": [
708
             "cpu": [
709
                 "x64"
709
                 "x64"
710
             ],
710
             ],
890
             }
890
             }
891
         },
891
         },
892
         "node_modules/browserslist": {
892
         "node_modules/browserslist": {
893
-            "version": "4.23.1",
894
-            "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz",
895
-            "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
893
+            "version": "4.23.2",
894
+            "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
895
+            "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
896
             "dev": true,
896
             "dev": true,
897
             "funding": [
897
             "funding": [
898
                 {
898
                 {
909
                 }
909
                 }
910
             ],
910
             ],
911
             "dependencies": {
911
             "dependencies": {
912
-                "caniuse-lite": "^1.0.30001629",
913
-                "electron-to-chromium": "^1.4.796",
912
+                "caniuse-lite": "^1.0.30001640",
913
+                "electron-to-chromium": "^1.4.820",
914
                 "node-releases": "^2.0.14",
914
                 "node-releases": "^2.0.14",
915
-                "update-browserslist-db": "^1.0.16"
915
+                "update-browserslist-db": "^1.1.0"
916
             },
916
             },
917
             "bin": {
917
             "bin": {
918
                 "browserslist": "cli.js"
918
                 "browserslist": "cli.js"
931
             }
931
             }
932
         },
932
         },
933
         "node_modules/caniuse-lite": {
933
         "node_modules/caniuse-lite": {
934
-            "version": "1.0.30001640",
935
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz",
936
-            "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==",
934
+            "version": "1.0.30001642",
935
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz",
936
+            "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==",
937
             "dev": true,
937
             "dev": true,
938
             "funding": [
938
             "funding": [
939
                 {
939
                 {
1079
             "dev": true
1079
             "dev": true
1080
         },
1080
         },
1081
         "node_modules/electron-to-chromium": {
1081
         "node_modules/electron-to-chromium": {
1082
-            "version": "1.4.817",
1083
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.817.tgz",
1084
-            "integrity": "sha512-3znu+lZMIbTe8ZOs360OMJvVroVF2NpNI8T5jfLnDetVvj0uNmIucZzQVYMSJfsu9f47Ssox1Gt46PR+R+1JUg==",
1082
+            "version": "1.4.829",
1083
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.829.tgz",
1084
+            "integrity": "sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==",
1085
             "dev": true
1085
             "dev": true
1086
         },
1086
         },
1087
         "node_modules/emoji-regex": {
1087
         "node_modules/emoji-regex": {
1273
             }
1273
             }
1274
         },
1274
         },
1275
         "node_modules/glob": {
1275
         "node_modules/glob": {
1276
-            "version": "10.4.2",
1277
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
1278
-            "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
1276
+            "version": "10.4.5",
1277
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
1278
+            "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
1279
             "dev": true,
1279
             "dev": true,
1280
             "dependencies": {
1280
             "dependencies": {
1281
                 "foreground-child": "^3.1.0",
1281
                 "foreground-child": "^3.1.0",
1288
             "bin": {
1288
             "bin": {
1289
                 "glob": "dist/esm/bin.mjs"
1289
                 "glob": "dist/esm/bin.mjs"
1290
             },
1290
             },
1291
-            "engines": {
1292
-                "node": ">=16 || 14 >=14.18"
1293
-            },
1294
             "funding": {
1291
             "funding": {
1295
                 "url": "https://github.com/sponsors/isaacs"
1292
                 "url": "https://github.com/sponsors/isaacs"
1296
             }
1293
             }
1332
             }
1329
             }
1333
         },
1330
         },
1334
         "node_modules/is-core-module": {
1331
         "node_modules/is-core-module": {
1335
-            "version": "2.14.0",
1336
-            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
1337
-            "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
1332
+            "version": "2.15.0",
1333
+            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
1334
+            "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
1338
             "dev": true,
1335
             "dev": true,
1339
             "dependencies": {
1336
             "dependencies": {
1340
                 "hasown": "^2.0.2"
1337
                 "hasown": "^2.0.2"
1392
             "dev": true
1389
             "dev": true
1393
         },
1390
         },
1394
         "node_modules/jackspeak": {
1391
         "node_modules/jackspeak": {
1395
-            "version": "3.4.0",
1396
-            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
1397
-            "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
1392
+            "version": "3.4.3",
1393
+            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
1394
+            "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
1398
             "dev": true,
1395
             "dev": true,
1399
             "dependencies": {
1396
             "dependencies": {
1400
                 "@isaacs/cliui": "^8.0.2"
1397
                 "@isaacs/cliui": "^8.0.2"
1401
             },
1398
             },
1402
-            "engines": {
1403
-                "node": ">=14"
1404
-            },
1405
             "funding": {
1399
             "funding": {
1406
                 "url": "https://github.com/sponsors/isaacs"
1400
                 "url": "https://github.com/sponsors/isaacs"
1407
             },
1401
             },
1419
             }
1413
             }
1420
         },
1414
         },
1421
         "node_modules/laravel-vite-plugin": {
1415
         "node_modules/laravel-vite-plugin": {
1422
-            "version": "1.0.4",
1423
-            "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.4.tgz",
1424
-            "integrity": "sha512-dEj8Q/Fsn0kKbOQ55bl/NmyJL+dD6OxnVaM/nNByw5XV4b00ky6FzXKVuHLDr4BvSJKH1y6oaOcEG5wKpCZ5+A==",
1416
+            "version": "1.0.5",
1417
+            "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz",
1418
+            "integrity": "sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw==",
1425
             "dev": true,
1419
             "dev": true,
1426
             "dependencies": {
1420
             "dependencies": {
1427
                 "picocolors": "^1.0.0",
1421
                 "picocolors": "^1.0.0",
1471
             "dev": true
1465
             "dev": true
1472
         },
1466
         },
1473
         "node_modules/lru-cache": {
1467
         "node_modules/lru-cache": {
1474
-            "version": "10.3.0",
1475
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz",
1476
-            "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==",
1477
-            "dev": true,
1478
-            "engines": {
1479
-                "node": "14 || >=16.14"
1480
-            }
1468
+            "version": "10.4.3",
1469
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1470
+            "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
1471
+            "dev": true
1481
         },
1472
         },
1482
         "node_modules/merge2": {
1473
         "node_modules/merge2": {
1483
             "version": "1.4.1",
1474
             "version": "1.4.1",
1585
             }
1576
             }
1586
         },
1577
         },
1587
         "node_modules/node-releases": {
1578
         "node_modules/node-releases": {
1588
-            "version": "2.0.14",
1589
-            "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
1590
-            "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
1579
+            "version": "2.0.17",
1580
+            "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz",
1581
+            "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==",
1591
             "dev": true
1582
             "dev": true
1592
         },
1583
         },
1593
         "node_modules/normalize-path": {
1584
         "node_modules/normalize-path": {
1830
             }
1821
             }
1831
         },
1822
         },
1832
         "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
1823
         "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
1833
-            "version": "6.1.0",
1834
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
1835
-            "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
1824
+            "version": "6.1.1",
1825
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
1826
+            "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
1836
             "dev": true,
1827
             "dev": true,
1837
             "dependencies": {
1828
             "dependencies": {
1838
                 "cssesc": "^3.0.0",
1829
                 "cssesc": "^3.0.0",
1914
             }
1905
             }
1915
         },
1906
         },
1916
         "node_modules/postcss-nesting/node_modules/postcss-selector-parser": {
1907
         "node_modules/postcss-nesting/node_modules/postcss-selector-parser": {
1917
-            "version": "6.1.0",
1918
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
1919
-            "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
1908
+            "version": "6.1.1",
1909
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
1910
+            "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
1920
             "dev": true,
1911
             "dev": true,
1921
             "dependencies": {
1912
             "dependencies": {
1922
                 "cssesc": "^3.0.0",
1913
                 "cssesc": "^3.0.0",
2020
             }
2011
             }
2021
         },
2012
         },
2022
         "node_modules/rollup": {
2013
         "node_modules/rollup": {
2023
-            "version": "4.18.0",
2024
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
2025
-            "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
2014
+            "version": "4.18.1",
2015
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz",
2016
+            "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
2026
             "dev": true,
2017
             "dev": true,
2027
             "dependencies": {
2018
             "dependencies": {
2028
                 "@types/estree": "1.0.5"
2019
                 "@types/estree": "1.0.5"
2035
                 "npm": ">=8.0.0"
2026
                 "npm": ">=8.0.0"
2036
             },
2027
             },
2037
             "optionalDependencies": {
2028
             "optionalDependencies": {
2038
-                "@rollup/rollup-android-arm-eabi": "4.18.0",
2039
-                "@rollup/rollup-android-arm64": "4.18.0",
2040
-                "@rollup/rollup-darwin-arm64": "4.18.0",
2041
-                "@rollup/rollup-darwin-x64": "4.18.0",
2042
-                "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
2043
-                "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
2044
-                "@rollup/rollup-linux-arm64-gnu": "4.18.0",
2045
-                "@rollup/rollup-linux-arm64-musl": "4.18.0",
2046
-                "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
2047
-                "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
2048
-                "@rollup/rollup-linux-s390x-gnu": "4.18.0",
2049
-                "@rollup/rollup-linux-x64-gnu": "4.18.0",
2050
-                "@rollup/rollup-linux-x64-musl": "4.18.0",
2051
-                "@rollup/rollup-win32-arm64-msvc": "4.18.0",
2052
-                "@rollup/rollup-win32-ia32-msvc": "4.18.0",
2053
-                "@rollup/rollup-win32-x64-msvc": "4.18.0",
2029
+                "@rollup/rollup-android-arm-eabi": "4.18.1",
2030
+                "@rollup/rollup-android-arm64": "4.18.1",
2031
+                "@rollup/rollup-darwin-arm64": "4.18.1",
2032
+                "@rollup/rollup-darwin-x64": "4.18.1",
2033
+                "@rollup/rollup-linux-arm-gnueabihf": "4.18.1",
2034
+                "@rollup/rollup-linux-arm-musleabihf": "4.18.1",
2035
+                "@rollup/rollup-linux-arm64-gnu": "4.18.1",
2036
+                "@rollup/rollup-linux-arm64-musl": "4.18.1",
2037
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1",
2038
+                "@rollup/rollup-linux-riscv64-gnu": "4.18.1",
2039
+                "@rollup/rollup-linux-s390x-gnu": "4.18.1",
2040
+                "@rollup/rollup-linux-x64-gnu": "4.18.1",
2041
+                "@rollup/rollup-linux-x64-musl": "4.18.1",
2042
+                "@rollup/rollup-win32-arm64-msvc": "4.18.1",
2043
+                "@rollup/rollup-win32-ia32-msvc": "4.18.1",
2044
+                "@rollup/rollup-win32-x64-msvc": "4.18.1",
2054
                 "fsevents": "~2.3.2"
2045
                 "fsevents": "~2.3.2"
2055
             }
2046
             }
2056
         },
2047
         },
2250
             }
2241
             }
2251
         },
2242
         },
2252
         "node_modules/tailwindcss": {
2243
         "node_modules/tailwindcss": {
2253
-            "version": "3.4.4",
2254
-            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
2255
-            "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
2244
+            "version": "3.4.6",
2245
+            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz",
2246
+            "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==",
2256
             "dev": true,
2247
             "dev": true,
2257
             "dependencies": {
2248
             "dependencies": {
2258
                 "@alloc/quick-lru": "^5.2.0",
2249
                 "@alloc/quick-lru": "^5.2.0",
2287
             }
2278
             }
2288
         },
2279
         },
2289
         "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
2280
         "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
2290
-            "version": "6.1.0",
2291
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
2292
-            "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
2281
+            "version": "6.1.1",
2282
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
2283
+            "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
2293
             "dev": true,
2284
             "dev": true,
2294
             "dependencies": {
2285
             "dependencies": {
2295
                 "cssesc": "^3.0.0",
2286
                 "cssesc": "^3.0.0",
2375
             "dev": true
2366
             "dev": true
2376
         },
2367
         },
2377
         "node_modules/vite": {
2368
         "node_modules/vite": {
2378
-            "version": "5.3.3",
2379
-            "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz",
2380
-            "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
2369
+            "version": "5.3.4",
2370
+            "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz",
2371
+            "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==",
2381
             "dev": true,
2372
             "dev": true,
2382
             "dependencies": {
2373
             "dependencies": {
2383
                 "esbuild": "^0.21.3",
2374
                 "esbuild": "^0.21.3",
2430
             }
2421
             }
2431
         },
2422
         },
2432
         "node_modules/vite-plugin-full-reload": {
2423
         "node_modules/vite-plugin-full-reload": {
2433
-            "version": "1.1.0",
2434
-            "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz",
2435
-            "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==",
2424
+            "version": "1.2.0",
2425
+            "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz",
2426
+            "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==",
2436
             "dev": true,
2427
             "dev": true,
2437
             "dependencies": {
2428
             "dependencies": {
2438
                 "picocolors": "^1.0.0",
2429
                 "picocolors": "^1.0.0",

+ 17
- 8
resources/views/filament/company/pages/reports/account-transactions.blade.php View File

3
         <form wire:submit="loadReportData" class="p-6">
3
         <form wire:submit="loadReportData" class="p-6">
4
             {{ $this->form }}
4
             {{ $this->form }}
5
         </form>
5
         </form>
6
-        <div class="divide-y divide-gray-200 overflow-x-auto overflow-y-hidden dark:divide-white/10 dark:border-t-white/10">
7
-            <div wire:init="loadReportData" class="flex items-center justify-center">
8
-                <div wire:loading.delay wire:target="loadReportData">
6
+        <div class="relative divide-y divide-gray-200 overflow-x-auto dark:divide-white/10 dark:border-t-white/10 min-h-64">
7
+            <div wire:init="loadReportData" class="flex items-center justify-center w-full h-full absolute">
8
+                <div wire:loading wire:target="loadReportData">
9
                     <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
9
                     <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
10
                 </div>
10
                 </div>
11
             </div>
11
             </div>
12
 
12
 
13
-            <div wire:loading.remove wire:target="loadReportData">
14
-                @if($this->report)
15
-                    <x-company.tables.reports.account-transactions :report="$this->report" />
16
-                @endif
17
-            </div>
13
+            @if($this->reportLoaded)
14
+                <div wire:loading.remove wire:target="loadReportData">
15
+                    @if($this->report && !$this->tableHasEmptyState())
16
+                        <x-company.tables.reports.account-transactions :report="$this->report" />
17
+                    @else
18
+                        <x-filament-tables::empty-state
19
+                            :actions="$this->getEmptyStateActions()"
20
+                            :description="$this->getEmptyStateDescription()"
21
+                            :heading="$this->getEmptyStateHeading()"
22
+                            :icon="$this->getEmptyStateIcon()"
23
+                        />
24
+                    @endif
25
+                </div>
26
+            @endif
18
         </div>
27
         </div>
19
         <div class="es-table__footer-ctn border-t border-gray-200"></div>
28
         <div class="es-table__footer-ctn border-t border-gray-200"></div>
20
     </x-filament-tables::container>
29
     </x-filament-tables::container>

+ 24
- 24
resources/views/filament/company/pages/reports/detailed-report.blade.php View File

1
 <x-filament-panels::page>
1
 <x-filament-panels::page>
2
     <x-filament-tables::container>
2
     <x-filament-tables::container>
3
-        <div class="p-6 divide-y divide-gray-200 dark:divide-white/5">
4
-            <form wire:submit="loadReportData">
5
-                <div class="flex flex-col md:flex-row items-start md:items-center justify-center gap-4 md:gap-12">
6
-                    {{ $this->form }}
7
-                    @if($this->hasToggleableColumns())
8
-                        <x-filament-tables::column-toggle.dropdown
9
-                            :form="$this->toggleTableColumnForm"
10
-                            :trigger-action="$this->toggleColumnsAction"
11
-                        />
12
-                    @endif
13
-                    <x-filament::button type="submit" wire:target="loadReportData" class="flex-shrink-0">
14
-                        Update Report
15
-                    </x-filament::button>
16
-                </div>
17
-            </form>
18
-        </div>
19
-        <div class="divide-y divide-gray-200 overflow-x-auto overflow-y-hidden dark:divide-white/10 dark:border-t-white/10">
20
-            <div wire:init="loadReportData" class="flex items-center justify-center">
21
-                <div wire:loading.delay wire:target="loadReportData">
3
+        <form wire:submit="loadReportData" class="p-6">
4
+            <div class="flex flex-col md:flex-row items-start md:items-center justify-center gap-4 md:gap-12">
5
+                {{ $this->form }}
6
+                @if($this->hasToggleableColumns())
7
+                    <x-filament-tables::column-toggle.dropdown
8
+                        :form="$this->toggleTableColumnForm"
9
+                        :trigger-action="$this->toggleColumnsAction"
10
+                    />
11
+                @endif
12
+                <x-filament::button type="submit" wire:target="loadReportData" class="flex-shrink-0">
13
+                    Update Report
14
+                </x-filament::button>
15
+            </div>
16
+        </form>
17
+        <div class="relative divide-y divide-gray-200 overflow-x-auto dark:divide-white/10 dark:border-t-white/10 min-h-64">
18
+            <div wire:init="loadReportData" class="flex items-center justify-center w-full h-full absolute">
19
+                <div wire:loading wire:target="loadReportData">
22
                     <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
20
                     <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
23
                 </div>
21
                 </div>
24
             </div>
22
             </div>
25
 
23
 
26
-            <div wire:loading.remove wire:target="loadReportData">
27
-                @if($this->report)
28
-                    <x-company.tables.reports.detailed-report :report="$this->report" />
29
-                @endif
30
-            </div>
24
+            @if($this->reportLoaded)
25
+                <div wire:loading.remove wire:target="loadReportData">
26
+                    @if($this->report)
27
+                        <x-company.tables.reports.detailed-report :report="$this->report" />
28
+                    @endif
29
+                </div>
30
+            @endif
31
         </div>
31
         </div>
32
         <div class="es-table__footer-ctn border-t border-gray-200"></div>
32
         <div class="es-table__footer-ctn border-t border-gray-200"></div>
33
     </x-filament-tables::container>
33
     </x-filament-tables::container>

Loading…
Cancel
Save