Andrew Wallo 1 년 전
부모
커밋
1eca389390

+ 57
- 29
README.md 파일 보기

@@ -5,14 +5,14 @@
5 5
 ![Screenshot 2023-12-06 at 3 28 46 AM](https://github.com/andrewdwallo/erpsaas/assets/104294090/33beed6c-3ff5-4819-a8ae-71feaa6b95da)
6 6
 ![Screenshot 2023-12-07 at 11 12 30 PM](https://github.com/andrewdwallo/erpsaas/assets/104294090/bdef3b98-f456-4b70-bf76-4a5b435c0939)
7 7
 
8
-
9 8
 This repo is currently a work in progress — PRs and issues welcome!
10 9
 
11 10
 # Getting started
12 11
 
13 12
 ## Installation
14 13
 
15
-Please check the official laravel installation guide for server requirements before you start. [Official Documentation](https://laravel.com/docs/10.x)
14
+Please check the official laravel installation guide for server requirements before you
15
+start. [Official Documentation](https://laravel.com/docs/10.x)
16 16
 
17 17
 Clone the repository
18 18
 
@@ -74,48 +74,58 @@ Run the database seeder
74 74
 
75 75
     php artisan db:seed
76 76
 
77
-***Note*** : It's recommended to have a clean database before seeding. You can refresh your migrations at any point to clean the database by running the following command
77
+***Note***: It's recommended to have a clean database before seeding. You can reset your database to a clean state at
78
+any point by running the following command:
78 79
 
79
-    php artisan migrate:refresh
80
+    php artisan migrate:fresh
80 81
 
81 82
 ## Generating PDFs for Reports
82 83
 
83
-To generate PDFs for reports, the application uses Laravel Snappy. The Laravel Snappy package is already included in the application, but you need to install Wkhtmltopdf separately.
84
+To generate PDFs for reports, the application uses Laravel Snappy. The Laravel Snappy package is already included in the
85
+application, but you need to install Wkhtmltopdf separately.
84 86
 
85 87
 ### Wkhtmltopdf Installation
86 88
 
87 89
 1. **Download and install Wkhtmltopdf**
88
-   - [Wkhtmltopdf Downloads](https://wkhtmltopdf.org/downloads.html)
89
-   
90
-   - Alternatively, if you are using Homebrew on macOS, you can install it using the following command:
91
-     ```bash
92
-     brew install wkhtmltopdf
93
-     ```
90
+    - [Wkhtmltopdf Downloads](https://wkhtmltopdf.org/downloads.html)
91
+
92
+    - Alternatively, if you are using Homebrew on macOS, you can install it using the following command:
93
+      ```bash
94
+      brew install wkhtmltopdf
95
+      ```
94 96
 
95 97
 2. **Configure the binary paths**
96
-   - If needed, you can change the paths to the Wkhtmltopdf binaries in the Snappy configuration file (`config/snappy.php`).
98
+    - If needed, you can change the paths to the Wkhtmltopdf binaries in the Snappy configuration file (
99
+      `config/snappy.php`).
97 100
 
98
-For detailed installation instructions, refer to the [Laravel Snappy documentation](https://github.com/barryvdh/laravel-snappy).
101
+For detailed installation instructions, refer to
102
+the [Laravel Snappy documentation](https://github.com/barryvdh/laravel-snappy).
99 103
 
100 104
 ## Live Currency
101 105
 
102 106
 ### Overview
103 107
 
104
-This application offers support for real-time currency exchange rates. This feature is disabled by default. To enable it, you must first register for an API key at [ExchangeRate-API](https://www.exchangerate-api.com/). The application uses this service due to its generous provision of up to 1,500 free API calls per month, which should be enough for development and testing purposes.
108
+This application offers support for real-time currency exchange rates. This feature is disabled by default. To enable
109
+it, you must first register for an API key at [ExchangeRate-API](https://www.exchangerate-api.com/). The application
110
+uses this service due to its generous provision of up to 1,500 free API calls per month, which should be enough for
111
+development and testing purposes.
105 112
 
106 113
 **Disclaimer**: There is no affiliation between this application and ExchangeRate-API.
107 114
 
108
-Once you have your API key, you can enable the feature by setting the `CURRENCY_API_KEY` environment variable in your `.env` file.
115
+Once you have your API key, you can enable the feature by setting the `CURRENCY_API_KEY` environment variable in your
116
+`.env` file.
109 117
 
110 118
 ### Initial Setup
111 119
 
112
-After setting your API key in the `.env` file, it is essential to prepare your database to store the currency data. Start by running a fresh database migration:
120
+After setting your API key in the `.env` file, it is essential to prepare your database to store the currency data.
121
+Start by running a fresh database migration:
113 122
 
114 123
 ```bash
115 124
 php artisan migrate:fresh
116 125
 ```
117 126
 
118
-This ensures that your database is in the correct state to store the currency information. Afterward, use the following command to generate and populate the Currency List with supported currencies for the Live Currency page:
127
+This ensures that your database is in the correct state to store the currency information. Afterward, use the following
128
+command to generate and populate the Currency List with supported currencies for the Live Currency page:
119 129
 
120 130
 ```bash
121 131
 php artisan currency:init
@@ -125,7 +135,8 @@ This command fetches and stores the list of currencies supported by your configu
125 135
 
126 136
 ### Configuration
127 137
 
128
-Of course, you may use any service you wish to retrieve currency exchange rates. If you decide to use a different service, you can update the `config/services.php` file with your choice:
138
+Of course, you may use any service you wish to retrieve currency exchange rates. If you decide to use a different
139
+service, you can update the `config/services.php` file with your choice:
129 140
 
130 141
 ```php
131 142
 'currency_api' => [
@@ -138,28 +149,41 @@ Then, adjust the implementation of the `App\Services\CurrencyService` class to u
138 149
 
139 150
 ### Live Currency Page
140 151
 
141
-Once enabled, the "Live Currency" feature provides access to a dedicated page in the application, listing all supported currencies from the configured exchange rate service. Users can view available currencies and update exchange rates for their company's currencies as needed.
152
+Once enabled, the "Live Currency" feature provides access to a dedicated page in the application, listing all supported
153
+currencies from the configured exchange rate service. Users can view available currencies and update exchange rates for
154
+their company's currencies as needed.
142 155
 
143 156
 ### Important Information
144 157
 
145
-- To use the currency exchange rate feature, you must first obtain an API key from a service provider. This application is configured to use a service that offers a free tier suitable for development and testing purposes.
146
-- Your API key is sensitive information and should be kept secret. Do not commit it to your repository or share it with anyone.
147
-- Note that API rate limits may apply depending on the service you choose. Make sure to review the terms for your chosen service.
158
+- To use the currency exchange rate feature, you must first obtain an API key from a service provider. This application
159
+  is configured to use a service that offers a free tier suitable for development and testing purposes.
160
+- Your API key is sensitive information and should be kept secret. Do not commit it to your repository or share it with
161
+  anyone.
162
+- Note that API rate limits may apply depending on the service you choose. Make sure to review the terms for your chosen
163
+  service.
148 164
 
149 165
 ## Automatic Translation
150 166
 
151
-The application now supports automatic translation, leveraging machine translation services provided by AWS, as facilitated by the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) package. This integration significantly enhances the application's accessibility for a global audience. The application currently offers support for several languages, including English, Arabic, German, Spanish, French, Indonesian, Italian, Dutch, Portuguese, Turkish, and Chinese, with English as the default language.
167
+The application now supports automatic translation, leveraging machine translation services provided by AWS, as
168
+facilitated by the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) package. This integration
169
+significantly enhances the application's accessibility for a global audience. The application currently offers support
170
+for several languages, including English, Arabic, German, Spanish, French, Indonesian, Italian, Dutch, Portuguese,
171
+Turkish, and Chinese, with English as the default language.
152 172
 
153 173
 ### Configuration & Usage
154 174
 
155 175
 To utilize this feature for additional languages or custom translations:
156
-1. Follow the documentation provided in the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) package.
176
+
177
+1. Follow the documentation provided in the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic)
178
+   package.
157 179
 2. Configure the package with your preferred translation service credentials.
158 180
 3. Run the translation commands as per the package instructions to generate new translations.
159 181
 
160
-Once you have configured the package, you may update the following method in the `app/Models/Setting/Localization.php` file to generate translations based on the selected language in the application UI:
182
+Once you have configured the package, you may update the following method in the `app/Models/Setting/Localization.php`
183
+file to generate translations based on the selected language in the application UI:
161 184
 
162 185
 Change to the following:
186
+
163 187
 ```php
164 188
 public static function getAllLanguages(): array
165 189
 {
@@ -170,12 +194,16 @@ public static function getAllLanguages(): array
170 194
 ## Dependencies
171 195
 
172 196
 - [filamentphp/filament](https://github.com/filamentphp/filament) - A collection of beautiful full-stack components
173
-- [andrewdwallo/filament-companies](https://github.com/andrewdwallo/filament-companies) - A complete authentication system kit based on companies built for Filament
174
-- [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) - A package for automatic translation using machine translation services
175
-- [akaunting/laravel-money](https://github.com/akaunting/laravel-money) - Currency formatting and conversion package for Laravel
197
+- [andrewdwallo/filament-companies](https://github.com/andrewdwallo/filament-companies) - A complete authentication
198
+  system kit based on companies built for Filament
199
+- [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) - A package for automatic translation using
200
+  machine translation services
201
+- [akaunting/laravel-money](https://github.com/akaunting/laravel-money) - Currency formatting and conversion package for
202
+  Laravel
176 203
 - [squirephp/squire](https://github.com/squirephp/squire) - A library of static Eloquent models for common fixture data
177 204
 
178
-***Note*** : It is recommended to read the documentation for all dependencies to get yourself familiar with how the application works.
205
+***Note*** : It is recommended to read the documentation for all dependencies to get yourself familiar with how the
206
+application works.
179 207
 
180 208
 ## License
181 209
 

+ 7
- 5
app/Concerns/Blamable.php 파일 보기

@@ -11,14 +11,16 @@ trait Blamable
11 11
     public static function bootBlamable(): void
12 12
     {
13 13
         static::creating(static function ($model) {
14
-            $auth = Auth::id();
15
-            $model->created_by = $auth;
16
-            $model->updated_by = $auth;
14
+            if (Auth::check() && $authId = Auth::id()) {
15
+                $model->created_by = $model->created_by ?? $authId;
16
+                $model->updated_by = $model->updated_by ?? $authId;
17
+            }
17 18
         });
18 19
 
19 20
         static::updating(static function ($model) {
20
-            $auth = Auth::id();
21
-            $model->updated_by = $auth;
21
+            if (Auth::check() && $authId = Auth::id()) {
22
+                $model->updated_by = $authId;
23
+            }
22 24
         });
23 25
     }
24 26
 

+ 5
- 1
app/Concerns/CompanyOwned.php 파일 보기

@@ -22,12 +22,16 @@ trait CompanyOwned
22 22
                     session(['current_company_id' => $companyId]);
23 23
                 }
24 24
 
25
+                if (! $companyId) {
26
+                    $companyId = Auth::user()->currentCompany->id;
27
+                }
28
+
25 29
                 if ($companyId) {
26 30
                     $model->company_id = $companyId;
27 31
                 } else {
28 32
                     Log::error('CurrentCompanyScope: No company_id found for user ' . Auth::id());
29 33
 
30
-                    throw new ModelNotFoundException('CurrentCompanyScope: No company_id set in the session or on the user.');
34
+                    throw new ModelNotFoundException('CurrentCompanyScope: No company_id set in the session, user, or database.');
31 35
                 }
32 36
             }
33 37
         });

+ 0
- 14
app/Filament/Company/Pages/Concerns/HasDeferredFiltersForm.php 파일 보기

@@ -62,8 +62,6 @@ trait HasDeferredFiltersForm
62 62
     public function updatedFilters(): void
63 63
     {
64 64
         $this->deferredFilters = $this->filters;
65
-
66
-        $this->handleFilterUpdates();
67 65
     }
68 66
 
69 67
     protected function isValidDate($date): bool
@@ -71,17 +69,10 @@ trait HasDeferredFiltersForm
71 69
         return strtotime($date) !== false;
72 70
     }
73 71
 
74
-    protected function handleFilterUpdates(): void
75
-    {
76
-        //
77
-    }
78
-
79 72
     public function applyFilters(): void
80 73
     {
81 74
         $this->filters = $this->deferredFilters;
82 75
 
83
-        $this->handleFilterUpdates();
84
-
85 76
         $this->loadReportData();
86 77
     }
87 78
 
@@ -185,9 +176,4 @@ trait HasDeferredFiltersForm
185 176
             }
186 177
         }
187 178
     }
188
-
189
-    protected function isDateFilter($value): bool
190
-    {
191
-        return $value instanceof Carbon || strtotime($value) !== false;
192
-    }
193 179
 }

+ 6
- 5
app/Filament/Company/Pages/Reports/AccountTransactions.php 파일 보기

@@ -14,6 +14,7 @@ use Filament\Forms\Components\Actions;
14 14
 use Filament\Forms\Components\Select;
15 15
 use Filament\Forms\Form;
16 16
 use Filament\Support\Enums\Alignment;
17
+use Filament\Support\Enums\MaxWidth;
17 18
 use Filament\Tables\Actions\Action;
18 19
 use Guava\FilamentClusters\Forms\Cluster;
19 20
 use Illuminate\Contracts\Support\Htmlable;
@@ -38,6 +39,11 @@ class AccountTransactions extends BaseReportPage
38 39
         $this->exportService = $exportService;
39 40
     }
40 41
 
42
+    public function getMaxContentWidth(): MaxWidth | string | null
43
+    {
44
+        return 'max-w-[90rem]';
45
+    }
46
+
41 47
     protected function initializeDefaultFilters(): void
42 48
     {
43 49
         if (empty($this->getFilterState('selectedAccount'))) {
@@ -45,11 +51,6 @@ class AccountTransactions extends BaseReportPage
45 51
         }
46 52
     }
47 53
 
48
-    protected function extraQueryStrings(): array
49
-    {
50
-        return ['selectedAccount'];
51
-    }
52
-
53 54
     /**
54 55
      * @return array<Column>
55 56
      */

+ 8
- 0
app/Scopes/CurrentCompanyScope.php 파일 보기

@@ -16,6 +16,10 @@ class CurrentCompanyScope implements Scope
16 16
      */
17 17
     public function apply(Builder $builder, Model $model): void
18 18
     {
19
+        if (app()->runningInConsole()) {
20
+            return;
21
+        }
22
+
19 23
         $companyId = session('current_company_id');
20 24
 
21 25
         if (! $companyId && Auth::check() && Auth::user()->currentCompany) {
@@ -23,6 +27,10 @@ class CurrentCompanyScope implements Scope
23 27
             session(['current_company_id' => $companyId]);
24 28
         }
25 29
 
30
+        if (! $companyId) {
31
+            $companyId = Auth::user()->currentCompany->id;
32
+        }
33
+
26 34
         if ($companyId) {
27 35
             $builder->where("{$model->getTable()}.company_id", $companyId);
28 36
         } else {

+ 5
- 2
app/Services/ReportService.php 파일 보기

@@ -274,6 +274,9 @@ class ReportService
274 274
             }
275 275
 
276 276
             if ($category === AccountCategory::Equity) {
277
+                $modifiedStartDate = Carbon::parse($this->accountService->getEarliestTransactionDate())->startOfYear()->toDateString();
278
+                $modifiedEndDate = Carbon::parse($startDate)->subYear()->endOfYear()->toDateString();
279
+
277 280
                 $retainedEarningsAmount = $this->calculateRetainedEarnings($startDate)->getAmount();
278 281
                 $isCredit = $retainedEarningsAmount >= 0;
279 282
 
@@ -287,8 +290,8 @@ class ReportService
287 290
                         'debit_balance' => $isCredit ? 0 : abs($retainedEarningsAmount),
288 291
                         'credit_balance' => $isCredit ? $retainedEarningsAmount : 0,
289 292
                     ]),
290
-                    null,
291
-                    null,
293
+                    $modifiedStartDate,
294
+                    $modifiedEndDate,
292 295
                 );
293 296
             }
294 297
 

+ 2
- 0
app/Transformers/TrialBalanceReportTransformer.php 파일 보기

@@ -46,6 +46,8 @@ class TrialBalanceReportTransformer extends BaseReportTransformer
46 46
                         'account_name' => [
47 47
                             'name' => $account->accountName,
48 48
                             'id' => $account->accountId ?? null,
49
+                            'start_date' => $account->startDate,
50
+                            'end_date' => $account->endDate,
49 51
                         ],
50 52
                         'debit_balance' => $account->balance->debitBalance,
51 53
                         'credit_balance' => $account->balance->creditBalance,

+ 100
- 174
composer.lock 파일 보기

@@ -156,16 +156,16 @@
156 156
         },
157 157
         {
158 158
             "name": "andrewdwallo/filament-selectify",
159
-            "version": "v2.0.8",
159
+            "version": "v2.0.9",
160 160
             "source": {
161 161
                 "type": "git",
162 162
                 "url": "https://github.com/andrewdwallo/filament-selectify.git",
163
-                "reference": "53395a2db9c1c3afd819e0aa526a300b476db0db"
163
+                "reference": "2c01aae4f9ef9910b8746805ebd3ee6801aad57d"
164 164
             },
165 165
             "dist": {
166 166
                 "type": "zip",
167
-                "url": "https://api.github.com/repos/andrewdwallo/filament-selectify/zipball/53395a2db9c1c3afd819e0aa526a300b476db0db",
168
-                "reference": "53395a2db9c1c3afd819e0aa526a300b476db0db",
167
+                "url": "https://api.github.com/repos/andrewdwallo/filament-selectify/zipball/2c01aae4f9ef9910b8746805ebd3ee6801aad57d",
168
+                "reference": "2c01aae4f9ef9910b8746805ebd3ee6801aad57d",
169 169
                 "shasum": ""
170 170
             },
171 171
             "require": {
@@ -214,9 +214,9 @@
214 214
             ],
215 215
             "support": {
216 216
                 "issues": "https://github.com/andrewdwallo/filament-selectify/issues",
217
-                "source": "https://github.com/andrewdwallo/filament-selectify/tree/v2.0.8"
217
+                "source": "https://github.com/andrewdwallo/filament-selectify/tree/v2.0.9"
218 218
             },
219
-            "time": "2024-06-27T20:42:06+00:00"
219
+            "time": "2024-09-10T00:21:38+00:00"
220 220
         },
221 221
         {
222 222
             "name": "andrewdwallo/transmatic",
@@ -302,16 +302,16 @@
302 302
         },
303 303
         {
304 304
             "name": "anourvalar/eloquent-serialize",
305
-            "version": "1.2.23",
305
+            "version": "1.2.24",
306 306
             "source": {
307 307
                 "type": "git",
308 308
                 "url": "https://github.com/AnourValar/eloquent-serialize.git",
309
-                "reference": "fd7bc1dc2c98fe705647ab4b81d13ea3d599ea1f"
309
+                "reference": "77e3fc7da44fa96b6148a1613dd76fe954a5f279"
310 310
             },
311 311
             "dist": {
312 312
                 "type": "zip",
313
-                "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/fd7bc1dc2c98fe705647ab4b81d13ea3d599ea1f",
314
-                "reference": "fd7bc1dc2c98fe705647ab4b81d13ea3d599ea1f",
313
+                "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/77e3fc7da44fa96b6148a1613dd76fe954a5f279",
314
+                "reference": "77e3fc7da44fa96b6148a1613dd76fe954a5f279",
315 315
                 "shasum": ""
316 316
             },
317 317
             "require": {
@@ -362,9 +362,9 @@
362 362
             ],
363 363
             "support": {
364 364
                 "issues": "https://github.com/AnourValar/eloquent-serialize/issues",
365
-                "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.23"
365
+                "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.24"
366 366
             },
367
-            "time": "2024-07-12T10:52:26+00:00"
367
+            "time": "2024-09-08T15:57:08+00:00"
368 368
         },
369 369
         {
370 370
             "name": "awcodes/filament-table-repeater",
@@ -497,16 +497,16 @@
497 497
         },
498 498
         {
499 499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.321.6",
500
+            "version": "3.321.7",
501 501
             "source": {
502 502
                 "type": "git",
503 503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "3dc53a79677dd1f0e682dfc05f9815901ec7bf58"
504
+                "reference": "c64ee32d80ec2ab5d8d6a0b77297c2d69602ef3b"
505 505
             },
506 506
             "dist": {
507 507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3dc53a79677dd1f0e682dfc05f9815901ec7bf58",
509
-                "reference": "3dc53a79677dd1f0e682dfc05f9815901ec7bf58",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c64ee32d80ec2ab5d8d6a0b77297c2d69602ef3b",
509
+                "reference": "c64ee32d80ec2ab5d8d6a0b77297c2d69602ef3b",
510 510
                 "shasum": ""
511 511
             },
512 512
             "require": {
@@ -589,9 +589,9 @@
589 589
             "support": {
590 590
                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
591 591
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
592
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.321.6"
592
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.321.7"
593 593
             },
594
-            "time": "2024-09-06T18:06:38+00:00"
594
+            "time": "2024-09-09T18:09:23+00:00"
595 595
         },
596 596
         {
597 597
             "name": "aws/aws-sdk-php-laravel",
@@ -7681,20 +7681,20 @@
7681 7681
         },
7682 7682
         {
7683 7683
             "name": "symfony/polyfill-ctype",
7684
-            "version": "v1.30.0",
7684
+            "version": "v1.31.0",
7685 7685
             "source": {
7686 7686
                 "type": "git",
7687 7687
                 "url": "https://github.com/symfony/polyfill-ctype.git",
7688
-                "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
7688
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
7689 7689
             },
7690 7690
             "dist": {
7691 7691
                 "type": "zip",
7692
-                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
7693
-                "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
7692
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
7693
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
7694 7694
                 "shasum": ""
7695 7695
             },
7696 7696
             "require": {
7697
-                "php": ">=7.1"
7697
+                "php": ">=7.2"
7698 7698
             },
7699 7699
             "provide": {
7700 7700
                 "ext-ctype": "*"
@@ -7740,7 +7740,7 @@
7740 7740
                 "portable"
7741 7741
             ],
7742 7742
             "support": {
7743
-                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
7743
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
7744 7744
             },
7745 7745
             "funding": [
7746 7746
                 {
@@ -7756,24 +7756,24 @@
7756 7756
                     "type": "tidelift"
7757 7757
                 }
7758 7758
             ],
7759
-            "time": "2024-05-31T15:07:36+00:00"
7759
+            "time": "2024-09-09T11:45:10+00:00"
7760 7760
         },
7761 7761
         {
7762 7762
             "name": "symfony/polyfill-intl-grapheme",
7763
-            "version": "v1.30.0",
7763
+            "version": "v1.31.0",
7764 7764
             "source": {
7765 7765
                 "type": "git",
7766 7766
                 "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
7767
-                "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
7767
+                "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
7768 7768
             },
7769 7769
             "dist": {
7770 7770
                 "type": "zip",
7771
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
7772
-                "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
7771
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
7772
+                "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
7773 7773
                 "shasum": ""
7774 7774
             },
7775 7775
             "require": {
7776
-                "php": ">=7.1"
7776
+                "php": ">=7.2"
7777 7777
             },
7778 7778
             "suggest": {
7779 7779
                 "ext-intl": "For best performance"
@@ -7818,7 +7818,7 @@
7818 7818
                 "shim"
7819 7819
             ],
7820 7820
             "support": {
7821
-                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
7821
+                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
7822 7822
             },
7823 7823
             "funding": [
7824 7824
                 {
@@ -7834,26 +7834,25 @@
7834 7834
                     "type": "tidelift"
7835 7835
                 }
7836 7836
             ],
7837
-            "time": "2024-05-31T15:07:36+00:00"
7837
+            "time": "2024-09-09T11:45:10+00:00"
7838 7838
         },
7839 7839
         {
7840 7840
             "name": "symfony/polyfill-intl-idn",
7841
-            "version": "v1.30.0",
7841
+            "version": "v1.31.0",
7842 7842
             "source": {
7843 7843
                 "type": "git",
7844 7844
                 "url": "https://github.com/symfony/polyfill-intl-idn.git",
7845
-                "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c"
7845
+                "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
7846 7846
             },
7847 7847
             "dist": {
7848 7848
                 "type": "zip",
7849
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
7850
-                "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c",
7849
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
7850
+                "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
7851 7851
                 "shasum": ""
7852 7852
             },
7853 7853
             "require": {
7854
-                "php": ">=7.1",
7855
-                "symfony/polyfill-intl-normalizer": "^1.10",
7856
-                "symfony/polyfill-php72": "^1.10"
7854
+                "php": ">=7.2",
7855
+                "symfony/polyfill-intl-normalizer": "^1.10"
7857 7856
             },
7858 7857
             "suggest": {
7859 7858
                 "ext-intl": "For best performance"
@@ -7902,7 +7901,7 @@
7902 7901
                 "shim"
7903 7902
             ],
7904 7903
             "support": {
7905
-                "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0"
7904
+                "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
7906 7905
             },
7907 7906
             "funding": [
7908 7907
                 {
@@ -7918,24 +7917,24 @@
7918 7917
                     "type": "tidelift"
7919 7918
                 }
7920 7919
             ],
7921
-            "time": "2024-05-31T15:07:36+00:00"
7920
+            "time": "2024-09-09T11:45:10+00:00"
7922 7921
         },
7923 7922
         {
7924 7923
             "name": "symfony/polyfill-intl-normalizer",
7925
-            "version": "v1.30.0",
7924
+            "version": "v1.31.0",
7926 7925
             "source": {
7927 7926
                 "type": "git",
7928 7927
                 "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
7929
-                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
7928
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c"
7930 7929
             },
7931 7930
             "dist": {
7932 7931
                 "type": "zip",
7933
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
7934
-                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
7932
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
7933
+                "reference": "3833d7255cc303546435cb650316bff708a1c75c",
7935 7934
                 "shasum": ""
7936 7935
             },
7937 7936
             "require": {
7938
-                "php": ">=7.1"
7937
+                "php": ">=7.2"
7939 7938
             },
7940 7939
             "suggest": {
7941 7940
                 "ext-intl": "For best performance"
@@ -7983,7 +7982,7 @@
7983 7982
                 "shim"
7984 7983
             ],
7985 7984
             "support": {
7986
-                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
7985
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
7987 7986
             },
7988 7987
             "funding": [
7989 7988
                 {
@@ -7999,24 +7998,24 @@
7999 7998
                     "type": "tidelift"
8000 7999
                 }
8001 8000
             ],
8002
-            "time": "2024-05-31T15:07:36+00:00"
8001
+            "time": "2024-09-09T11:45:10+00:00"
8003 8002
         },
8004 8003
         {
8005 8004
             "name": "symfony/polyfill-mbstring",
8006
-            "version": "v1.30.0",
8005
+            "version": "v1.31.0",
8007 8006
             "source": {
8008 8007
                 "type": "git",
8009 8008
                 "url": "https://github.com/symfony/polyfill-mbstring.git",
8010
-                "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
8009
+                "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
8011 8010
             },
8012 8011
             "dist": {
8013 8012
                 "type": "zip",
8014
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
8015
-                "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
8013
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
8014
+                "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
8016 8015
                 "shasum": ""
8017 8016
             },
8018 8017
             "require": {
8019
-                "php": ">=7.1"
8018
+                "php": ">=7.2"
8020 8019
             },
8021 8020
             "provide": {
8022 8021
                 "ext-mbstring": "*"
@@ -8063,7 +8062,7 @@
8063 8062
                 "shim"
8064 8063
             ],
8065 8064
             "support": {
8066
-                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
8065
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
8067 8066
             },
8068 8067
             "funding": [
8069 8068
                 {
@@ -8079,97 +8078,24 @@
8079 8078
                     "type": "tidelift"
8080 8079
                 }
8081 8080
             ],
8082
-            "time": "2024-06-19T12:30:46+00:00"
8083
-        },
8084
-        {
8085
-            "name": "symfony/polyfill-php72",
8086
-            "version": "v1.30.0",
8087
-            "source": {
8088
-                "type": "git",
8089
-                "url": "https://github.com/symfony/polyfill-php72.git",
8090
-                "reference": "10112722600777e02d2745716b70c5db4ca70442"
8091
-            },
8092
-            "dist": {
8093
-                "type": "zip",
8094
-                "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442",
8095
-                "reference": "10112722600777e02d2745716b70c5db4ca70442",
8096
-                "shasum": ""
8097
-            },
8098
-            "require": {
8099
-                "php": ">=7.1"
8100
-            },
8101
-            "type": "library",
8102
-            "extra": {
8103
-                "thanks": {
8104
-                    "name": "symfony/polyfill",
8105
-                    "url": "https://github.com/symfony/polyfill"
8106
-                }
8107
-            },
8108
-            "autoload": {
8109
-                "files": [
8110
-                    "bootstrap.php"
8111
-                ],
8112
-                "psr-4": {
8113
-                    "Symfony\\Polyfill\\Php72\\": ""
8114
-                }
8115
-            },
8116
-            "notification-url": "https://packagist.org/downloads/",
8117
-            "license": [
8118
-                "MIT"
8119
-            ],
8120
-            "authors": [
8121
-                {
8122
-                    "name": "Nicolas Grekas",
8123
-                    "email": "p@tchwork.com"
8124
-                },
8125
-                {
8126
-                    "name": "Symfony Community",
8127
-                    "homepage": "https://symfony.com/contributors"
8128
-                }
8129
-            ],
8130
-            "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
8131
-            "homepage": "https://symfony.com",
8132
-            "keywords": [
8133
-                "compatibility",
8134
-                "polyfill",
8135
-                "portable",
8136
-                "shim"
8137
-            ],
8138
-            "support": {
8139
-                "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0"
8140
-            },
8141
-            "funding": [
8142
-                {
8143
-                    "url": "https://symfony.com/sponsor",
8144
-                    "type": "custom"
8145
-                },
8146
-                {
8147
-                    "url": "https://github.com/fabpot",
8148
-                    "type": "github"
8149
-                },
8150
-                {
8151
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
8152
-                    "type": "tidelift"
8153
-                }
8154
-            ],
8155
-            "time": "2024-06-19T12:30:46+00:00"
8081
+            "time": "2024-09-09T11:45:10+00:00"
8156 8082
         },
8157 8083
         {
8158 8084
             "name": "symfony/polyfill-php80",
8159
-            "version": "v1.30.0",
8085
+            "version": "v1.31.0",
8160 8086
             "source": {
8161 8087
                 "type": "git",
8162 8088
                 "url": "https://github.com/symfony/polyfill-php80.git",
8163
-                "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
8089
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
8164 8090
             },
8165 8091
             "dist": {
8166 8092
                 "type": "zip",
8167
-                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
8168
-                "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
8093
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
8094
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
8169 8095
                 "shasum": ""
8170 8096
             },
8171 8097
             "require": {
8172
-                "php": ">=7.1"
8098
+                "php": ">=7.2"
8173 8099
             },
8174 8100
             "type": "library",
8175 8101
             "extra": {
@@ -8216,7 +8142,7 @@
8216 8142
                 "shim"
8217 8143
             ],
8218 8144
             "support": {
8219
-                "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
8145
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
8220 8146
             },
8221 8147
             "funding": [
8222 8148
                 {
@@ -8232,24 +8158,24 @@
8232 8158
                     "type": "tidelift"
8233 8159
                 }
8234 8160
             ],
8235
-            "time": "2024-05-31T15:07:36+00:00"
8161
+            "time": "2024-09-09T11:45:10+00:00"
8236 8162
         },
8237 8163
         {
8238 8164
             "name": "symfony/polyfill-php83",
8239
-            "version": "v1.30.0",
8165
+            "version": "v1.31.0",
8240 8166
             "source": {
8241 8167
                 "type": "git",
8242 8168
                 "url": "https://github.com/symfony/polyfill-php83.git",
8243
-                "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9"
8169
+                "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
8244 8170
             },
8245 8171
             "dist": {
8246 8172
                 "type": "zip",
8247
-                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
8248
-                "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
8173
+                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
8174
+                "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
8249 8175
                 "shasum": ""
8250 8176
             },
8251 8177
             "require": {
8252
-                "php": ">=7.1"
8178
+                "php": ">=7.2"
8253 8179
             },
8254 8180
             "type": "library",
8255 8181
             "extra": {
@@ -8292,7 +8218,7 @@
8292 8218
                 "shim"
8293 8219
             ],
8294 8220
             "support": {
8295
-                "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0"
8221
+                "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
8296 8222
             },
8297 8223
             "funding": [
8298 8224
                 {
@@ -8308,24 +8234,24 @@
8308 8234
                     "type": "tidelift"
8309 8235
                 }
8310 8236
             ],
8311
-            "time": "2024-06-19T12:35:24+00:00"
8237
+            "time": "2024-09-09T11:45:10+00:00"
8312 8238
         },
8313 8239
         {
8314 8240
             "name": "symfony/polyfill-uuid",
8315
-            "version": "v1.30.0",
8241
+            "version": "v1.31.0",
8316 8242
             "source": {
8317 8243
                 "type": "git",
8318 8244
                 "url": "https://github.com/symfony/polyfill-uuid.git",
8319
-                "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9"
8245
+                "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
8320 8246
             },
8321 8247
             "dist": {
8322 8248
                 "type": "zip",
8323
-                "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9",
8324
-                "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9",
8249
+                "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
8250
+                "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
8325 8251
                 "shasum": ""
8326 8252
             },
8327 8253
             "require": {
8328
-                "php": ">=7.1"
8254
+                "php": ">=7.2"
8329 8255
             },
8330 8256
             "provide": {
8331 8257
                 "ext-uuid": "*"
@@ -8371,7 +8297,7 @@
8371 8297
                 "uuid"
8372 8298
             ],
8373 8299
             "support": {
8374
-                "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.0"
8300
+                "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0"
8375 8301
             },
8376 8302
             "funding": [
8377 8303
                 {
@@ -8387,7 +8313,7 @@
8387 8313
                     "type": "tidelift"
8388 8314
                 }
8389 8315
             ],
8390
-            "time": "2024-05-31T15:07:36+00:00"
8316
+            "time": "2024-09-09T11:45:10+00:00"
8391 8317
         },
8392 8318
         {
8393 8319
             "name": "symfony/process",
@@ -10103,16 +10029,16 @@
10103 10029
         },
10104 10030
         {
10105 10031
             "name": "phpstan/phpstan",
10106
-            "version": "1.12.2",
10032
+            "version": "1.12.3",
10107 10033
             "source": {
10108 10034
                 "type": "git",
10109 10035
                 "url": "https://github.com/phpstan/phpstan.git",
10110
-                "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1"
10036
+                "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009"
10111 10037
             },
10112 10038
             "dist": {
10113 10039
                 "type": "zip",
10114
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0ca1c7bb55fca8fe6448f16fff0f311ccec960a1",
10115
-                "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1",
10040
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009",
10041
+                "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009",
10116 10042
                 "shasum": ""
10117 10043
             },
10118 10044
             "require": {
@@ -10157,7 +10083,7 @@
10157 10083
                     "type": "github"
10158 10084
                 }
10159 10085
             ],
10160
-            "time": "2024-09-05T16:09:28+00:00"
10086
+            "time": "2024-09-09T08:10:35+00:00"
10161 10087
         },
10162 10088
         {
10163 10089
             "name": "phpunit/php-code-coverage",
@@ -10482,16 +10408,16 @@
10482 10408
         },
10483 10409
         {
10484 10410
             "name": "phpunit/phpunit",
10485
-            "version": "10.5.32",
10411
+            "version": "10.5.33",
10486 10412
             "source": {
10487 10413
                 "type": "git",
10488 10414
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
10489
-                "reference": "f069f46840445d37a4e6f0de8c5879598f9c4327"
10415
+                "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf"
10490 10416
             },
10491 10417
             "dist": {
10492 10418
                 "type": "zip",
10493
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f069f46840445d37a4e6f0de8c5879598f9c4327",
10494
-                "reference": "f069f46840445d37a4e6f0de8c5879598f9c4327",
10419
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4def7a9cda75af9c2bc179ed53a8e41313e7f7cf",
10420
+                "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf",
10495 10421
                 "shasum": ""
10496 10422
             },
10497 10423
             "require": {
@@ -10563,7 +10489,7 @@
10563 10489
             "support": {
10564 10490
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
10565 10491
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
10566
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.32"
10492
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.33"
10567 10493
             },
10568 10494
             "funding": [
10569 10495
                 {
@@ -10579,25 +10505,25 @@
10579 10505
                     "type": "tidelift"
10580 10506
                 }
10581 10507
             ],
10582
-            "time": "2024-09-04T13:33:39+00:00"
10508
+            "time": "2024-09-09T06:06:56+00:00"
10583 10509
         },
10584 10510
         {
10585 10511
             "name": "rector/rector",
10586
-            "version": "1.2.4",
10512
+            "version": "1.2.5",
10587 10513
             "source": {
10588 10514
                 "type": "git",
10589 10515
                 "url": "https://github.com/rectorphp/rector.git",
10590
-                "reference": "42a4aa23b48b4cfc8ebfeac2b570364e27744381"
10516
+                "reference": "e98aa793ca3fcd17e893cfaf9103ac049775d339"
10591 10517
             },
10592 10518
             "dist": {
10593 10519
                 "type": "zip",
10594
-                "url": "https://api.github.com/repos/rectorphp/rector/zipball/42a4aa23b48b4cfc8ebfeac2b570364e27744381",
10595
-                "reference": "42a4aa23b48b4cfc8ebfeac2b570364e27744381",
10520
+                "url": "https://api.github.com/repos/rectorphp/rector/zipball/e98aa793ca3fcd17e893cfaf9103ac049775d339",
10521
+                "reference": "e98aa793ca3fcd17e893cfaf9103ac049775d339",
10596 10522
                 "shasum": ""
10597 10523
             },
10598 10524
             "require": {
10599 10525
                 "php": "^7.2|^8.0",
10600
-                "phpstan/phpstan": "^1.11.11"
10526
+                "phpstan/phpstan": "^1.12.2"
10601 10527
             },
10602 10528
             "conflict": {
10603 10529
                 "rector/rector-doctrine": "*",
@@ -10630,7 +10556,7 @@
10630 10556
             ],
10631 10557
             "support": {
10632 10558
                 "issues": "https://github.com/rectorphp/rector/issues",
10633
-                "source": "https://github.com/rectorphp/rector/tree/1.2.4"
10559
+                "source": "https://github.com/rectorphp/rector/tree/1.2.5"
10634 10560
             },
10635 10561
             "funding": [
10636 10562
                 {
@@ -10638,7 +10564,7 @@
10638 10564
                     "type": "github"
10639 10565
                 }
10640 10566
             ],
10641
-            "time": "2024-08-23T09:03:01+00:00"
10567
+            "time": "2024-09-08T17:43:24+00:00"
10642 10568
         },
10643 10569
         {
10644 10570
             "name": "sebastian/cli-parser",
@@ -12160,20 +12086,20 @@
12160 12086
         },
12161 12087
         {
12162 12088
             "name": "symfony/polyfill-iconv",
12163
-            "version": "v1.30.0",
12089
+            "version": "v1.31.0",
12164 12090
             "source": {
12165 12091
                 "type": "git",
12166 12092
                 "url": "https://github.com/symfony/polyfill-iconv.git",
12167
-                "reference": "c027e6a3c6aee334663ec21f5852e89738abc805"
12093
+                "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956"
12168 12094
             },
12169 12095
             "dist": {
12170 12096
                 "type": "zip",
12171
-                "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c027e6a3c6aee334663ec21f5852e89738abc805",
12172
-                "reference": "c027e6a3c6aee334663ec21f5852e89738abc805",
12097
+                "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/48becf00c920479ca2e910c22a5a39e5d47ca956",
12098
+                "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956",
12173 12099
                 "shasum": ""
12174 12100
             },
12175 12101
             "require": {
12176
-                "php": ">=7.1"
12102
+                "php": ">=7.2"
12177 12103
             },
12178 12104
             "provide": {
12179 12105
                 "ext-iconv": "*"
@@ -12220,7 +12146,7 @@
12220 12146
                 "shim"
12221 12147
             ],
12222 12148
             "support": {
12223
-                "source": "https://github.com/symfony/polyfill-iconv/tree/v1.30.0"
12149
+                "source": "https://github.com/symfony/polyfill-iconv/tree/v1.31.0"
12224 12150
             },
12225 12151
             "funding": [
12226 12152
                 {
@@ -12236,7 +12162,7 @@
12236 12162
                     "type": "tidelift"
12237 12163
                 }
12238 12164
             ],
12239
-            "time": "2024-05-31T15:07:36+00:00"
12165
+            "time": "2024-09-09T11:45:10+00:00"
12240 12166
         },
12241 12167
         {
12242 12168
             "name": "symfony/stopwatch",

+ 9
- 1
database/factories/UserFactory.php 파일 보기

@@ -68,7 +68,15 @@ class UserFactory extends Factory
68 68
 
69 69
         return $this->afterCreating(function (User $user) use ($countryCode) {
70 70
             Company::factory()
71
-                ->has(CompanyProfile::factory()->withCountry($countryCode), 'profile')
71
+                ->has(
72
+                    CompanyProfile::factory()
73
+                        ->withCountry($countryCode)
74
+                        ->state([
75
+                            'created_by' => $user->id,
76
+                            'updated_by' => $user->id,
77
+                        ]),
78
+                    'profile'
79
+                )
72 80
                 ->afterCreating(function (Company $company) use ($user, $countryCode) {
73 81
                     DB::transaction(function () use ($company, $user, $countryCode) {
74 82
                         $companyDefaultService = app()->make(CompanyDefaultService::class);

+ 9
- 9
package-lock.json 파일 보기

@@ -801,9 +801,9 @@
801 801
             "license": "MIT"
802 802
         },
803 803
         "node_modules/ansi-regex": {
804
-            "version": "6.0.1",
805
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
806
-            "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
804
+            "version": "6.1.0",
805
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
806
+            "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
807 807
             "dev": true,
808 808
             "license": "MIT",
809 809
             "engines": {
@@ -998,9 +998,9 @@
998 998
             }
999 999
         },
1000 1000
         "node_modules/caniuse-lite": {
1001
-            "version": "1.0.30001658",
1002
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001658.tgz",
1003
-            "integrity": "sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw==",
1001
+            "version": "1.0.30001659",
1002
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001659.tgz",
1003
+            "integrity": "sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==",
1004 1004
             "dev": true,
1005 1005
             "funding": [
1006 1006
                 {
@@ -2267,9 +2267,9 @@
2267 2267
             }
2268 2268
         },
2269 2269
         "node_modules/source-map-js": {
2270
-            "version": "1.2.0",
2271
-            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
2272
-            "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
2270
+            "version": "1.2.1",
2271
+            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2272
+            "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2273 2273
             "dev": true,
2274 2274
             "license": "BSD-3-Clause",
2275 2275
             "engines": {

+ 16
- 2
resources/views/components/company/tables/reports/detailed-report.blade.php 파일 보기

@@ -1,4 +1,4 @@
1
-<table class="w-full table-auto divide-y divide-gray-200 dark:divide-white/5" x-data>
1
+<table class="w-full table-auto divide-y divide-gray-200 dark:divide-white/5">
2 2
     <thead class="divide-y divide-gray-200 dark:divide-white/5">
3 3
     <tr class="bg-gray-50 dark:bg-white/5">
4 4
         @foreach($report->getHeaders() as $index => $header)
@@ -27,7 +27,21 @@
27 27
                     <x-filament-tables::cell class="{{ $report->getAlignmentClass($cellIndex) }}">
28 28
                         <div class="px-3 py-4 text-sm leading-6 text-gray-950 dark:text-white">
29 29
                             @if(is_array($cell) && isset($cell['name']))
30
-                                @if(isset($cell['id']) && isset($cell['start_date']) && isset($cell['end_date']))
30
+                                @if($cell['name'] === 'Retained Earnings' && isset($cell['start_date']) && isset($cell['end_date']))
31
+                                    <x-filament::link
32
+                                        color="primary"
33
+                                        target="_blank"
34
+                                        icon="heroicon-o-arrow-top-right-on-square"
35
+                                        :icon-position="\Filament\Support\Enums\IconPosition::After"
36
+                                        :icon-size="\Filament\Support\Enums\IconSize::Small"
37
+                                        href="{{ \App\Filament\Company\Pages\Reports\IncomeStatement::getUrl([
38
+                                            'startDate' => $cell['start_date'],
39
+                                            'endDate' => $cell['end_date']
40
+                                        ]) }}"
41
+                                    >
42
+                                        {{ $cell['name'] }}
43
+                                    </x-filament::link>
44
+                                @elseif(isset($cell['id']) && isset($cell['start_date']) && isset($cell['end_date']))
31 45
                                     <x-filament::link
32 46
                                         color="primary"
33 47
                                         target="_blank"

+ 8
- 10
resources/views/filament/company/pages/reports/detailed-report.blade.php 파일 보기

@@ -1,22 +1,20 @@
1 1
 <x-filament-panels::page>
2 2
     <x-filament::section>
3
-        <div class="flex flex-col md:flex-row items-start md:items-center justify-between gap-4 md:gap-8">
3
+        <div class="flex flex-col md:flex-row items-start md:items-center justify-between gap-4">
4 4
             <!-- Form Container -->
5 5
             @if(method_exists($this, 'filtersForm'))
6 6
                 {{ $this->filtersForm }}
7 7
             @endif
8 8
 
9 9
             <!-- Grouping Button and Column Toggle -->
10
-            <div class="flex flex-col md:flex-row items-start md:items-center gap-4 md:gap-8 flex-shrink-0">
11
-                @if($this->hasToggleableColumns())
12
-                    <x-filament-tables::column-toggle.dropdown
13
-                        :form="$this->toggleTableColumnForm"
14
-                        :trigger-action="$this->toggleColumnsAction"
15
-                    />
16
-                @endif
17
-            </div>
10
+            @if($this->hasToggleableColumns())
11
+                <x-filament-tables::column-toggle.dropdown
12
+                    :form="$this->toggleTableColumnForm"
13
+                    :trigger-action="$this->toggleColumnsAction"
14
+                />
15
+            @endif
18 16
 
19
-            <div class="inline-flex items-center flex-shrink-0 min-w-[8.5rem] justify-end">
17
+            <div class="inline-flex items-center min-w-0 md:min-w-[9.5rem] justify-end">
20 18
                 {{ $this->applyFiltersAction }}
21 19
             </div>
22 20
         </div>

+ 8
- 10
resources/views/filament/company/pages/reports/income-statement.blade.php 파일 보기

@@ -1,22 +1,20 @@
1 1
 <x-filament-panels::page>
2 2
     <x-filament::section>
3
-        <div class="flex flex-col md:flex-row items-start md:items-center justify-between gap-4 md:gap-8">
3
+        <div class="flex flex-col md:flex-row items-start md:items-center justify-between gap-4">
4 4
             <!-- Form Container -->
5 5
             @if(method_exists($this, 'filtersForm'))
6 6
                 {{ $this->filtersForm }}
7 7
             @endif
8 8
 
9 9
             <!-- Grouping Button and Column Toggle -->
10
-            <div class="flex flex-col md:flex-row items-start md:items-center gap-4 md:gap-8 flex-shrink-0">
11
-                @if($this->hasToggleableColumns())
12
-                    <x-filament-tables::column-toggle.dropdown
13
-                        :form="$this->toggleTableColumnForm"
14
-                        :trigger-action="$this->toggleColumnsAction"
15
-                    />
16
-                @endif
17
-            </div>
10
+            @if($this->hasToggleableColumns())
11
+                <x-filament-tables::column-toggle.dropdown
12
+                    :form="$this->toggleTableColumnForm"
13
+                    :trigger-action="$this->toggleColumnsAction"
14
+                />
15
+            @endif
18 16
 
19
-            <div class="inline-flex items-center flex-shrink-0 min-w-[8.5rem] justify-end">
17
+            <div class="inline-flex items-center min-w-0 md:min-w-[9.5rem] justify-end">
20 18
                 {{ $this->applyFiltersAction }}
21 19
             </div>
22 20
         </div>

Loading…
취소
저장