Andrew Wallo 1 년 전
부모
커밋
de40b94505

+ 0
- 1
app/Facades/Accounting.php 파일 보기

@@ -15,7 +15,6 @@ use Illuminate\Support\Facades\Facade;
15 15
  * @method static Money|null getEndingBalance(Account $account, string $startDate, string $endDate)
16 16
  * @method static array getBalances(Account $account, string $startDate, string $endDate)
17 17
  * @method static Money getTotalBalanceForAllBankAccounts(string $startDate, string $endDate)
18
- * @method static array getAccountCategoryOrder()
19 18
  * @method static string getEarliestTransactionDate()
20 19
  *
21 20
  * @see AccountHandler

+ 3
- 1
app/Filament/Company/Pages/Reports/AccountTransactions.php 파일 보기

@@ -90,7 +90,9 @@ class AccountTransactions extends BaseReportPage
90 90
                 Cluster::make([
91 91
                     $this->getStartDateFormComponent(),
92 92
                     $this->getEndDateFormComponent(),
93
-                ])->label("\u{200B}"), // its too bad hiddenLabel removes spacing of the label
93
+                ])->extraFieldWrapperAttributes([
94
+                    'class' => 'report-hidden-label',
95
+                ]),
94 96
                 Actions::make([
95 97
                     Actions\Action::make('applyFilters')
96 98
                         ->label('Update Report')

+ 76
- 11
app/Filament/Company/Pages/Reports/BaseReportPage.php 파일 보기

@@ -12,12 +12,12 @@ use App\Services\DateRangeService;
12 12
 use App\Support\Column;
13 13
 use Filament\Actions\Action;
14 14
 use Filament\Actions\ActionGroup;
15
-use Filament\Forms\Components\Component;
16 15
 use Filament\Forms\Components\DatePicker;
17 16
 use Filament\Forms\Set;
18 17
 use Filament\Pages\Page;
19 18
 use Filament\Support\Enums\IconPosition;
20 19
 use Filament\Support\Enums\IconSize;
20
+use Illuminate\Support\Arr;
21 21
 use Illuminate\Support\Carbon;
22 22
 use Livewire\Attributes\Computed;
23 23
 use Symfony\Component\HttpFoundation\StreamedResponse;
@@ -64,18 +64,65 @@ abstract class BaseReportPage extends Page
64 64
 
65 65
     protected function loadDefaultDateRange(): void
66 66
     {
67
-        $startDate = $this->getFilterState('startDate');
68
-        $endDate = $this->getFilterState('endDate');
67
+        $flatFields = $this->getFiltersForm()->getFlatFields();
69 68
 
70
-        if ($this->isValidDate($startDate) && $this->isValidDate($endDate)) {
71
-            $matchingDateRange = app(DateRangeService::class)->getMatchingDateRangeOption(Carbon::parse($startDate), Carbon::parse($endDate));
72
-            $this->setFilterState('dateRange', $matchingDateRange);
73
-        } else {
69
+        $dateRangeField = Arr::first($flatFields, static fn ($field) => $field instanceof DateRangeSelect);
70
+
71
+        if (! $dateRangeField) {
72
+            return;
73
+        }
74
+
75
+        $startDateField = $dateRangeField->getStartDateField();
76
+        $endDateField = $dateRangeField->getEndDateField();
77
+
78
+        $startDate = $startDateField ? $this->getFilterState($startDateField) : null;
79
+        $endDate = $endDateField ? $this->getFilterState($endDateField) : null;
80
+
81
+        $startDateCarbon = $this->isValidDate($startDate) ? Carbon::parse($startDate) : null;
82
+        $endDateCarbon = $this->isValidDate($endDate) ? Carbon::parse($endDate) : null;
83
+
84
+        if ($startDateCarbon && $endDateCarbon) {
85
+            $this->setMatchingDateRange($startDateCarbon, $endDateCarbon);
86
+
87
+            return;
88
+        }
89
+
90
+        if ($endDateCarbon && ! $startDateField) {
91
+            $this->setAsOfDateRange($endDateCarbon);
92
+
93
+            return;
94
+        }
95
+
96
+        if ($endDateField && ! $startDateField) {
97
+            $this->setFilterState('dateRange', $this->getDefaultDateRange());
98
+            $defaultEndDate = Carbon::parse($this->fiscalYearEndDate);
99
+            $this->setFilterState($endDateField, $defaultEndDate->isFuture() ? now()->endOfDay()->toDateTimeString() : $defaultEndDate->endOfDay()->toDateTimeString());
100
+
101
+            return;
102
+        }
103
+
104
+        if ($startDateField && $endDateField) {
74 105
             $this->setFilterState('dateRange', $this->getDefaultDateRange());
75
-            $this->setDateRange(Carbon::parse($this->fiscalYearStartDate), Carbon::parse($this->fiscalYearEndDate));
106
+            $defaultStartDate = Carbon::parse($this->fiscalYearStartDate);
107
+            $defaultEndDate = Carbon::parse($this->fiscalYearEndDate);
108
+            $this->setDateRange($defaultStartDate, $defaultEndDate);
76 109
         }
77 110
     }
78 111
 
112
+    protected function setMatchingDateRange($startDate, $endDate): void
113
+    {
114
+        $matchingDateRange = app(DateRangeService::class)->getMatchingDateRangeOption($startDate, $endDate);
115
+        $this->setFilterState('dateRange', $matchingDateRange);
116
+    }
117
+
118
+    protected function setAsOfDateRange($endDate): void
119
+    {
120
+        $fiscalYearStart = Carbon::parse($this->fiscalYearStartDate);
121
+        $asOfStartDate = $endDate->copy()->setMonth($fiscalYearStart->month)->setDay($fiscalYearStart->day);
122
+
123
+        $this->setMatchingDateRange($asOfStartDate, $endDate);
124
+    }
125
+
79 126
     public function loadReportData(): void
80 127
     {
81 128
         unset($this->report);
@@ -117,6 +164,11 @@ abstract class BaseReportPage extends Page
117 164
         return Carbon::parse($this->getFilterState('endDate'))->endOfDay()->toDateTimeString();
118 165
     }
119 166
 
167
+    public function getFormattedAsOfDate(): string
168
+    {
169
+        return Carbon::parse($this->getFilterState('asOfDate'))->endOfDay()->toDateTimeString();
170
+    }
171
+
120 172
     protected function getHeaderActions(): array
121 173
     {
122 174
         return [
@@ -139,7 +191,7 @@ abstract class BaseReportPage extends Page
139 191
         ];
140 192
     }
141 193
 
142
-    protected function getDateRangeFormComponent(): Component
194
+    protected function getDateRangeFormComponent(): DateRangeSelect
143 195
     {
144 196
         return DateRangeSelect::make('dateRange')
145 197
             ->label('Date Range')
@@ -148,7 +200,7 @@ abstract class BaseReportPage extends Page
148 200
             ->endDateField('endDate');
149 201
     }
150 202
 
151
-    protected function getStartDateFormComponent(): Component
203
+    protected function getStartDateFormComponent(): DatePicker
152 204
     {
153 205
         return DatePicker::make('startDate')
154 206
             ->label('Start Date')
@@ -158,7 +210,7 @@ abstract class BaseReportPage extends Page
158 210
             });
159 211
     }
160 212
 
161
-    protected function getEndDateFormComponent(): Component
213
+    protected function getEndDateFormComponent(): DatePicker
162 214
     {
163 215
         return DatePicker::make('endDate')
164 216
             ->label('End Date')
@@ -167,4 +219,17 @@ abstract class BaseReportPage extends Page
167 219
                 $set('dateRange', 'Custom');
168 220
             });
169 221
     }
222
+
223
+    protected function getAsOfDateFormComponent(): DatePicker
224
+    {
225
+        return DatePicker::make('asOfDate')
226
+            ->label('As of Date')
227
+            ->live()
228
+            ->afterStateUpdated(static function (Set $set) {
229
+                $set('dateRange', 'Custom');
230
+            })
231
+            ->extraFieldWrapperAttributes([
232
+                'class' => 'report-hidden-label',
233
+            ]);
234
+    }
170 235
 }

+ 24
- 10
app/Filament/Company/Pages/Reports/TrialBalance.php 파일 보기

@@ -4,18 +4,19 @@ namespace App\Filament\Company\Pages\Reports;
4 4
 
5 5
 use App\Contracts\ExportableReport;
6 6
 use App\DTO\ReportDTO;
7
+use App\Filament\Forms\Components\DateRangeSelect;
7 8
 use App\Services\ExportService;
8 9
 use App\Services\ReportService;
9 10
 use App\Support\Column;
10 11
 use App\Transformers\TrialBalanceReportTransformer;
12
+use Filament\Forms\Components\Select;
11 13
 use Filament\Forms\Form;
12 14
 use Filament\Support\Enums\Alignment;
13
-use Guava\FilamentClusters\Forms\Cluster;
14 15
 use Symfony\Component\HttpFoundation\StreamedResponse;
15 16
 
16 17
 class TrialBalance extends BaseReportPage
17 18
 {
18
-    protected static string $view = 'filament.company.pages.reports.detailed-report';
19
+    protected static string $view = 'filament.company.pages.reports.trial-balance';
19 20
 
20 21
     protected static ?string $slug = 'reports/trial-balance';
21 22
 
@@ -31,6 +32,13 @@ class TrialBalance extends BaseReportPage
31 32
         $this->exportService = $exportService;
32 33
     }
33 34
 
35
+    protected function initializeDefaultFilters(): void
36
+    {
37
+        if (empty($this->getFilterState('trialBalanceType'))) {
38
+            $this->setFilterState('trialBalanceType', 'regular');
39
+        }
40
+    }
41
+
34 42
     public function getTable(): array
35 43
     {
36 44
         return [
@@ -53,20 +61,26 @@ class TrialBalance extends BaseReportPage
53 61
     public function filtersForm(Form $form): Form
54 62
     {
55 63
         return $form
56
-            ->inlineLabel()
57
-            ->columns()
64
+            ->columns(4)
58 65
             ->schema([
59
-                $this->getDateRangeFormComponent(),
60
-                Cluster::make([
61
-                    $this->getStartDateFormComponent(),
62
-                    $this->getEndDateFormComponent(),
63
-                ])->hiddenLabel(),
66
+                Select::make('trialBalanceType')
67
+                    ->label('Trial Balance Type')
68
+                    ->options([
69
+                        'regular' => 'Regular',
70
+                        'postClosing' => 'Post-Closing',
71
+                    ])
72
+                    ->selectablePlaceholder(false),
73
+                DateRangeSelect::make('dateRange')
74
+                    ->label('As of Date')
75
+                    ->selectablePlaceholder(false)
76
+                    ->endDateField('asOfDate'),
77
+                $this->getAsOfDateFormComponent(),
64 78
             ]);
65 79
     }
66 80
 
67 81
     protected function buildReport(array $columns): ReportDTO
68 82
     {
69
-        return $this->reportService->buildTrialBalanceReport($this->getFormattedStartDate(), $this->getFormattedEndDate(), $columns);
83
+        return $this->reportService->buildTrialBalanceReport($this->getFilterState('trialBalanceType'), $this->getFormattedAsOfDate(), $columns);
70 84
     }
71 85
 
72 86
     protected function getTransformer(ReportDTO $reportDTO): ExportableReport

+ 25
- 7
app/Filament/Forms/Components/DateRangeSelect.php 파일 보기

@@ -28,9 +28,7 @@ class DateRangeSelect extends Select
28 28
         $this->options(app(DateRangeService::class)->getDateRangeOptions())
29 29
             ->live()
30 30
             ->afterStateUpdated(function ($state, Set $set) {
31
-                if ($this->startDateField && $this->endDateField) {
32
-                    $this->updateDateRange($state, $set);
33
-                }
31
+                $this->updateDateRange($state, $set);
34 32
             });
35 33
     }
36 34
 
@@ -48,11 +46,26 @@ class DateRangeSelect extends Select
48 46
         return $this;
49 47
     }
50 48
 
49
+    public function getStartDateField(): ?string
50
+    {
51
+        return $this->startDateField;
52
+    }
53
+
54
+    public function getEndDateField(): ?string
55
+    {
56
+        return $this->endDateField;
57
+    }
58
+
51 59
     public function updateDateRange($state, Set $set): void
52 60
     {
53 61
         if ($state === null) {
54
-            $set($this->startDateField, null);
55
-            $set($this->endDateField, null);
62
+            if ($this->startDateField) {
63
+                $set($this->startDateField, null);
64
+            }
65
+
66
+            if ($this->endDateField) {
67
+                $set($this->endDateField, null);
68
+            }
56 69
 
57 70
             return;
58 71
         }
@@ -116,7 +129,12 @@ class DateRangeSelect extends Select
116 129
 
117 130
     public function setDateRange(Carbon $start, Carbon $end, Set $set): void
118 131
     {
119
-        $set($this->startDateField, $start->startOfDay()->toDateTimeString());
120
-        $set($this->endDateField, $end->isFuture() ? now()->endOfDay()->toDateTimeString() : $end->endOfDay()->toDateTimeString());
132
+        if ($this->startDateField) {
133
+            $set($this->startDateField, $start->startOfDay()->toDateTimeString());
134
+        }
135
+
136
+        if ($this->endDateField) {
137
+            $set($this->endDateField, $end->isFuture() ? now()->endOfDay()->toDateTimeString() : $end->endOfDay()->toDateTimeString());
138
+        }
121 139
     }
122 140
 }

+ 75
- 101
app/Services/AccountService.php 파일 보기

@@ -5,7 +5,6 @@ namespace App\Services;
5 5
 use App\Contracts\AccountHandler;
6 6
 use App\Enums\Accounting\AccountCategory;
7 7
 use App\Models\Accounting\Account;
8
-use App\Models\Accounting\JournalEntry;
9 8
 use App\Models\Accounting\Transaction;
10 9
 use App\Repositories\Accounting\JournalEntryRepository;
11 10
 use App\Utilities\Currency\CurrencyAccessor;
@@ -53,6 +52,80 @@ class AccountService implements AccountHandler
53 52
         return new Money($balances['starting_balance'], $account->currency_code);
54 53
     }
55 54
 
55
+    public function getEndingBalance(Account $account, string $startDate, string $endDate): ?Money
56
+    {
57
+        $calculatedBalances = $this->calculateBalances($account, $startDate, $endDate);
58
+        $startingBalances = $this->calculateStartingBalances($account, $startDate);
59
+
60
+        $netMovement = $calculatedBalances['net_movement'];
61
+
62
+        if (in_array($account->category, [AccountCategory::Expense, AccountCategory::Revenue], true)) {
63
+            return new Money($netMovement, $account->currency_code);
64
+        }
65
+
66
+        $endingBalance = $startingBalances['starting_balance'] + $netMovement;
67
+
68
+        return new Money($endingBalance, $account->currency_code);
69
+    }
70
+
71
+    private function calculateNetMovementByCategory(AccountCategory $category, int $debitBalance, int $creditBalance): int
72
+    {
73
+        return match ($category) {
74
+            AccountCategory::Asset, AccountCategory::Expense => $debitBalance - $creditBalance,
75
+            AccountCategory::Liability, AccountCategory::Equity, AccountCategory::Revenue => $creditBalance - $debitBalance,
76
+        };
77
+    }
78
+
79
+    private function calculateBalances(Account $account, string $startDate, string $endDate): array
80
+    {
81
+        $debitBalance = $this->journalEntryRepository->sumDebitAmounts($account, $startDate, $endDate);
82
+        $creditBalance = $this->journalEntryRepository->sumCreditAmounts($account, $startDate, $endDate);
83
+
84
+        return [
85
+            'debit_balance' => $debitBalance,
86
+            'credit_balance' => $creditBalance,
87
+            'net_movement' => $this->calculateNetMovementByCategory($account->category, $debitBalance, $creditBalance),
88
+        ];
89
+    }
90
+
91
+    private function calculateStartingBalances(Account $account, string $startDate): array
92
+    {
93
+        $debitBalanceBefore = $this->journalEntryRepository->sumDebitAmounts($account, $startDate);
94
+        $creditBalanceBefore = $this->journalEntryRepository->sumCreditAmounts($account, $startDate);
95
+
96
+        return [
97
+            'debit_balance_before' => $debitBalanceBefore,
98
+            'credit_balance_before' => $creditBalanceBefore,
99
+            'starting_balance' => $this->calculateNetMovementByCategory($account->category, $debitBalanceBefore, $creditBalanceBefore),
100
+        ];
101
+    }
102
+
103
+    public function getBalances(Account $account, string $startDate, string $endDate, array $fields): array
104
+    {
105
+        $balances = [];
106
+        $calculatedBalances = $this->calculateBalances($account, $startDate, $endDate);
107
+
108
+        // Calculate starting balances only if needed
109
+        $startingBalances = null;
110
+        $needStartingBalances = ! in_array($account->category, [AccountCategory::Expense, AccountCategory::Revenue], true)
111
+                                && (in_array('starting_balance', $fields) || in_array('ending_balance', $fields));
112
+
113
+        if ($needStartingBalances) {
114
+            $startingBalances = $this->calculateStartingBalances($account, $startDate);
115
+        }
116
+
117
+        foreach ($fields as $field) {
118
+            $balances[$field] = match ($field) {
119
+                'debit_balance', 'credit_balance', 'net_movement' => $calculatedBalances[$field],
120
+                'starting_balance' => $needStartingBalances ? $startingBalances['starting_balance'] : null,
121
+                'ending_balance' => $needStartingBalances ? $startingBalances['starting_balance'] + $calculatedBalances['net_movement'] : null,
122
+                default => null,
123
+            };
124
+        }
125
+
126
+        return array_filter($balances, static fn ($value) => $value !== null);
127
+    }
128
+
56 129
     public function getTransactionDetailsSubquery(string $startDate, string $endDate): Closure
57 130
     {
58 131
         return static function ($query) use ($startDate, $endDate) {
@@ -165,110 +238,11 @@ class AccountService implements AccountHandler
165 238
         return new Money($totalBalance, CurrencyAccessor::getDefaultCurrency());
166 239
     }
167 240
 
168
-    public function getEndingBalance(Account $account, string $startDate, string $endDate): ?Money
169
-    {
170
-        $calculatedBalances = $this->calculateBalances($account, $startDate, $endDate);
171
-        $startingBalances = $this->calculateStartingBalances($account, $startDate);
172
-
173
-        $netMovement = $calculatedBalances['net_movement'];
174
-
175
-        if (in_array($account->category, [AccountCategory::Expense, AccountCategory::Revenue], true)) {
176
-            return new Money($netMovement, $account->currency_code);
177
-        }
178
-
179
-        $endingBalance = $startingBalances['starting_balance'] + $netMovement;
180
-
181
-        return new Money($endingBalance, $account->currency_code);
182
-    }
183
-
184
-    public function getRetainedEarnings(string $startDate): Money
185
-    {
186
-        $revenue = JournalEntry::whereHas('account', static function ($query) {
187
-            $query->where('category', AccountCategory::Revenue);
188
-        })
189
-            ->where('type', 'credit')
190
-            ->whereHas('transaction', static function ($query) use ($startDate) {
191
-                $query->where('posted_at', '<', $startDate);
192
-            })
193
-            ->sum('amount');
194
-
195
-        $expense = JournalEntry::whereHas('account', static function ($query) {
196
-            $query->where('category', AccountCategory::Expense);
197
-        })
198
-            ->where('type', 'debit')
199
-            ->whereHas('transaction', static function ($query) use ($startDate) {
200
-                $query->where('posted_at', '<', $startDate);
201
-            })
202
-            ->sum('amount');
203
-
204
-        $retainedEarnings = $revenue - $expense;
205
-
206
-        return new Money($retainedEarnings, CurrencyAccessor::getDefaultCurrency());
207
-    }
208
-
209
-    private function calculateNetMovementByCategory(AccountCategory $category, int $debitBalance, int $creditBalance): int
210
-    {
211
-        return match ($category) {
212
-            AccountCategory::Asset, AccountCategory::Expense => $debitBalance - $creditBalance,
213
-            AccountCategory::Liability, AccountCategory::Equity, AccountCategory::Revenue => $creditBalance - $debitBalance,
214
-        };
215
-    }
216
-
217
-    private function calculateBalances(Account $account, string $startDate, string $endDate): array
218
-    {
219
-        $debitBalance = $this->journalEntryRepository->sumDebitAmounts($account, $startDate, $endDate);
220
-        $creditBalance = $this->journalEntryRepository->sumCreditAmounts($account, $startDate, $endDate);
221
-
222
-        return [
223
-            'debit_balance' => $debitBalance,
224
-            'credit_balance' => $creditBalance,
225
-            'net_movement' => $this->calculateNetMovementByCategory($account->category, $debitBalance, $creditBalance),
226
-        ];
227
-    }
228
-
229
-    private function calculateStartingBalances(Account $account, string $startDate): array
230
-    {
231
-        $debitBalanceBefore = $this->journalEntryRepository->sumDebitAmounts($account, $startDate);
232
-        $creditBalanceBefore = $this->journalEntryRepository->sumCreditAmounts($account, $startDate);
233
-
234
-        return [
235
-            'debit_balance_before' => $debitBalanceBefore,
236
-            'credit_balance_before' => $creditBalanceBefore,
237
-            'starting_balance' => $this->calculateNetMovementByCategory($account->category, $debitBalanceBefore, $creditBalanceBefore),
238
-        ];
239
-    }
240
-
241
-    public function getBalances(Account $account, string $startDate, string $endDate, array $fields): array
242
-    {
243
-        $balances = [];
244
-        $calculatedBalances = $this->calculateBalances($account, $startDate, $endDate);
245
-
246
-        // Calculate starting balances only if needed
247
-        $startingBalances = null;
248
-        $needStartingBalances = ! in_array($account->category, [AccountCategory::Expense, AccountCategory::Revenue], true)
249
-                                && (in_array('starting_balance', $fields) || in_array('ending_balance', $fields));
250
-
251
-        if ($needStartingBalances) {
252
-            $startingBalances = $this->calculateStartingBalances($account, $startDate);
253
-        }
254
-
255
-        foreach ($fields as $field) {
256
-            $balances[$field] = match ($field) {
257
-                'debit_balance', 'credit_balance', 'net_movement' => $calculatedBalances[$field],
258
-                'starting_balance' => $needStartingBalances ? $startingBalances['starting_balance'] : null,
259
-                'ending_balance' => $needStartingBalances ? $startingBalances['starting_balance'] + $calculatedBalances['net_movement'] : null,
260
-                default => null,
261
-            };
262
-        }
263
-
264
-        return array_filter($balances, static fn ($value) => $value !== null);
265
-    }
266
-
267 241
     public function getEarliestTransactionDate(): string
268 242
     {
269 243
         $earliestDate = Transaction::oldest('posted_at')
270 244
             ->value('posted_at');
271 245
 
272
-        return $earliestDate ?? now()->format('Y-m-d');
246
+        return $earliestDate ?? now()->toDateString();
273 247
     }
274 248
 }

+ 20
- 17
app/Services/ReportService.php 파일 보기

@@ -12,6 +12,7 @@ use App\Models\Accounting\Account;
12 12
 use App\Support\Column;
13 13
 use App\Utilities\Currency\CurrencyAccessor;
14 14
 use App\ValueObjects\Money;
15
+use Illuminate\Database\Eloquent\Builder;
15 16
 use Illuminate\Support\Carbon;
16 17
 
17 18
 class ReportService
@@ -116,14 +117,12 @@ class ReportService
116 117
         return $balances;
117 118
     }
118 119
 
119
-    public function calculateRetainedEarnings(string $startDate): Money
120
+    public function calculateRetainedEarnings(?string $startDate, string $endDate): Money
120 121
     {
121
-        $modifiedStartDate = Carbon::parse($this->accountService->getEarliestTransactionDate())->startOfYear()->toDateTimeString();
122
-        $endDate = Carbon::parse($startDate)->subYear()->endOfYear()->toDateTimeString();
122
+        $startDate ??= Carbon::parse($this->accountService->getEarliestTransactionDate())->toDateTimeString();
123
+        $revenueAccounts = $this->accountService->getAccountBalances($startDate, $endDate)->where('category', AccountCategory::Revenue)->get();
123 124
 
124
-        $revenueAccounts = $this->accountService->getAccountBalances($modifiedStartDate, $endDate)->where('category', AccountCategory::Revenue)->get();
125
-
126
-        $expenseAccounts = $this->accountService->getAccountBalances($modifiedStartDate, $endDate)->where('category', AccountCategory::Expense)->get();
125
+        $expenseAccounts = $this->accountService->getAccountBalances($startDate, $endDate)->where('category', AccountCategory::Expense)->get();
127 126
 
128 127
         $revenueTotal = 0;
129 128
         $expenseTotal = 0;
@@ -230,11 +229,18 @@ class ReportService
230 229
         return new ReportDTO(categories: $reportCategories, fields: $columns);
231 230
     }
232 231
 
233
-    public function buildTrialBalanceReport(string $startDate, string $endDate, array $columns = []): ReportDTO
232
+    public function buildTrialBalanceReport(string $trialBalanceType, string $asOfDate, array $columns = []): ReportDTO
234 233
     {
234
+        $asOfDateCarbon = Carbon::parse($asOfDate);
235
+        $startDateCarbon = Carbon::parse($this->accountService->getEarliestTransactionDate());
236
+
235 237
         $orderedCategories = AccountCategory::getOrderedCategories();
236 238
 
237
-        $accounts = $this->accountService->getAccountBalances($startDate, $endDate)->get();
239
+        $isPostClosingTrialBalance = $trialBalanceType === 'postClosing';
240
+
241
+        $accounts = $this->accountService->getAccountBalances($startDateCarbon->toDateTimeString(), $asOfDateCarbon->toDateTimeString())
242
+            ->when($isPostClosingTrialBalance, fn (Builder $query) => $query->whereNotIn('category', [AccountCategory::Revenue, AccountCategory::Expense]))
243
+            ->get();
238 244
 
239 245
         $balanceFields = ['debit_balance', 'credit_balance'];
240 246
 
@@ -268,16 +274,13 @@ class ReportService
268 274
                     $account->code,
269 275
                     $account->id,
270 276
                     $formattedAccountBalances,
271
-                    Carbon::parse($startDate)->toDateString(),
272
-                    Carbon::parse($endDate)->toDateString(),
277
+                    startDate: $startDateCarbon->toDateString(),
278
+                    endDate: $asOfDateCarbon->toDateString(),
273 279
                 );
274 280
             }
275 281
 
276
-            if ($category === AccountCategory::Equity) {
277
-                $modifiedStartDate = Carbon::parse($this->accountService->getEarliestTransactionDate())->startOfYear()->toDateString();
278
-                $modifiedEndDate = Carbon::parse($startDate)->subYear()->endOfYear()->toDateString();
279
-
280
-                $retainedEarningsAmount = $this->calculateRetainedEarnings($startDate)->getAmount();
282
+            if ($category === AccountCategory::Equity && $isPostClosingTrialBalance) {
283
+                $retainedEarningsAmount = $this->calculateRetainedEarnings($startDateCarbon->toDateTimeString(), $asOfDateCarbon->toDateTimeString())->getAmount();
281 284
                 $isCredit = $retainedEarningsAmount >= 0;
282 285
 
283 286
                 $categorySummaryBalances[$isCredit ? 'credit_balance' : 'debit_balance'] += abs($retainedEarningsAmount);
@@ -290,8 +293,8 @@ class ReportService
290 293
                         'debit_balance' => $isCredit ? 0 : abs($retainedEarningsAmount),
291 294
                         'credit_balance' => $isCredit ? $retainedEarningsAmount : 0,
292 295
                     ]),
293
-                    $modifiedStartDate,
294
-                    $modifiedEndDate,
296
+                    startDate: $startDateCarbon->toDateString(),
297
+                    endDate: $asOfDateCarbon->toDateString(),
295 298
                 );
296 299
             }
297 300
 

+ 63
- 61
composer.lock 파일 보기

@@ -497,16 +497,16 @@
497 497
         },
498 498
         {
499 499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.321.8",
500
+            "version": "3.321.11",
501 501
             "source": {
502 502
                 "type": "git",
503 503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "df456658bdc2ad84a00cf35a7b5af874fdcc7a53"
504
+                "reference": "bbd357d246350ffcd0dd8df30951d2d46c5ddadb"
505 505
             },
506 506
             "dist": {
507 507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/df456658bdc2ad84a00cf35a7b5af874fdcc7a53",
509
-                "reference": "df456658bdc2ad84a00cf35a7b5af874fdcc7a53",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/bbd357d246350ffcd0dd8df30951d2d46c5ddadb",
509
+                "reference": "bbd357d246350ffcd0dd8df30951d2d46c5ddadb",
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.8"
592
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.321.11"
593 593
             },
594
-            "time": "2024-09-10T18:18:03+00:00"
594
+            "time": "2024-09-13T18:05:10+00:00"
595 595
         },
596 596
         {
597 597
             "name": "aws/aws-sdk-php-laravel",
@@ -1738,16 +1738,16 @@
1738 1738
         },
1739 1739
         {
1740 1740
             "name": "filament/actions",
1741
-            "version": "v3.2.110",
1741
+            "version": "v3.2.112",
1742 1742
             "source": {
1743 1743
                 "type": "git",
1744 1744
                 "url": "https://github.com/filamentphp/actions.git",
1745
-                "reference": "5d6e4fe444f1ef04d373518248a445bbcc3ca272"
1745
+                "reference": "df3310607b49dad302b03516c558c93cb82c5164"
1746 1746
             },
1747 1747
             "dist": {
1748 1748
                 "type": "zip",
1749
-                "url": "https://api.github.com/repos/filamentphp/actions/zipball/5d6e4fe444f1ef04d373518248a445bbcc3ca272",
1750
-                "reference": "5d6e4fe444f1ef04d373518248a445bbcc3ca272",
1749
+                "url": "https://api.github.com/repos/filamentphp/actions/zipball/df3310607b49dad302b03516c558c93cb82c5164",
1750
+                "reference": "df3310607b49dad302b03516c558c93cb82c5164",
1751 1751
                 "shasum": ""
1752 1752
             },
1753 1753
             "require": {
@@ -1787,20 +1787,20 @@
1787 1787
                 "issues": "https://github.com/filamentphp/filament/issues",
1788 1788
                 "source": "https://github.com/filamentphp/filament"
1789 1789
             },
1790
-            "time": "2024-08-26T07:22:35+00:00"
1790
+            "time": "2024-09-11T08:25:31+00:00"
1791 1791
         },
1792 1792
         {
1793 1793
             "name": "filament/filament",
1794
-            "version": "v3.2.110",
1794
+            "version": "v3.2.112",
1795 1795
             "source": {
1796 1796
                 "type": "git",
1797 1797
                 "url": "https://github.com/filamentphp/panels.git",
1798
-                "reference": "130636e90e821154e0ce60dcbc7b358d2a1a716f"
1798
+                "reference": "86aa182deceedce5970560c60ceae30c2c40632d"
1799 1799
             },
1800 1800
             "dist": {
1801 1801
                 "type": "zip",
1802
-                "url": "https://api.github.com/repos/filamentphp/panels/zipball/130636e90e821154e0ce60dcbc7b358d2a1a716f",
1803
-                "reference": "130636e90e821154e0ce60dcbc7b358d2a1a716f",
1802
+                "url": "https://api.github.com/repos/filamentphp/panels/zipball/86aa182deceedce5970560c60ceae30c2c40632d",
1803
+                "reference": "86aa182deceedce5970560c60ceae30c2c40632d",
1804 1804
                 "shasum": ""
1805 1805
             },
1806 1806
             "require": {
@@ -1852,20 +1852,20 @@
1852 1852
                 "issues": "https://github.com/filamentphp/filament/issues",
1853 1853
                 "source": "https://github.com/filamentphp/filament"
1854 1854
             },
1855
-            "time": "2024-08-30T01:52:09+00:00"
1855
+            "time": "2024-09-11T08:25:51+00:00"
1856 1856
         },
1857 1857
         {
1858 1858
             "name": "filament/forms",
1859
-            "version": "v3.2.110",
1859
+            "version": "v3.2.112",
1860 1860
             "source": {
1861 1861
                 "type": "git",
1862 1862
                 "url": "https://github.com/filamentphp/forms.git",
1863
-                "reference": "02fe2e211993f6291b719a093ed6f63e17125e9a"
1863
+                "reference": "99d72777f1e6dc5d42d936e7deb53148e4233ec3"
1864 1864
             },
1865 1865
             "dist": {
1866 1866
                 "type": "zip",
1867
-                "url": "https://api.github.com/repos/filamentphp/forms/zipball/02fe2e211993f6291b719a093ed6f63e17125e9a",
1868
-                "reference": "02fe2e211993f6291b719a093ed6f63e17125e9a",
1867
+                "url": "https://api.github.com/repos/filamentphp/forms/zipball/99d72777f1e6dc5d42d936e7deb53148e4233ec3",
1868
+                "reference": "99d72777f1e6dc5d42d936e7deb53148e4233ec3",
1869 1869
                 "shasum": ""
1870 1870
             },
1871 1871
             "require": {
@@ -1908,20 +1908,20 @@
1908 1908
                 "issues": "https://github.com/filamentphp/filament/issues",
1909 1909
                 "source": "https://github.com/filamentphp/filament"
1910 1910
             },
1911
-            "time": "2024-08-30T18:04:06+00:00"
1911
+            "time": "2024-09-12T12:27:13+00:00"
1912 1912
         },
1913 1913
         {
1914 1914
             "name": "filament/infolists",
1915
-            "version": "v3.2.110",
1915
+            "version": "v3.2.112",
1916 1916
             "source": {
1917 1917
                 "type": "git",
1918 1918
                 "url": "https://github.com/filamentphp/infolists.git",
1919
-                "reference": "96403f2842e4c485f32110e4456b7a3bbcb1e835"
1919
+                "reference": "e50bd9a5fc623320bd79508e3bfb72ff9e309edf"
1920 1920
             },
1921 1921
             "dist": {
1922 1922
                 "type": "zip",
1923
-                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/96403f2842e4c485f32110e4456b7a3bbcb1e835",
1924
-                "reference": "96403f2842e4c485f32110e4456b7a3bbcb1e835",
1923
+                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/e50bd9a5fc623320bd79508e3bfb72ff9e309edf",
1924
+                "reference": "e50bd9a5fc623320bd79508e3bfb72ff9e309edf",
1925 1925
                 "shasum": ""
1926 1926
             },
1927 1927
             "require": {
@@ -1959,11 +1959,11 @@
1959 1959
                 "issues": "https://github.com/filamentphp/filament/issues",
1960 1960
                 "source": "https://github.com/filamentphp/filament"
1961 1961
             },
1962
-            "time": "2024-08-14T16:52:44+00:00"
1962
+            "time": "2024-09-11T08:25:25+00:00"
1963 1963
         },
1964 1964
         {
1965 1965
             "name": "filament/notifications",
1966
-            "version": "v3.2.110",
1966
+            "version": "v3.2.112",
1967 1967
             "source": {
1968 1968
                 "type": "git",
1969 1969
                 "url": "https://github.com/filamentphp/notifications.git",
@@ -2015,16 +2015,16 @@
2015 2015
         },
2016 2016
         {
2017 2017
             "name": "filament/support",
2018
-            "version": "v3.2.110",
2018
+            "version": "v3.2.112",
2019 2019
             "source": {
2020 2020
                 "type": "git",
2021 2021
                 "url": "https://github.com/filamentphp/support.git",
2022
-                "reference": "78e25428c754fcbb30c321d5dda439c760de9837"
2022
+                "reference": "d07086506d39f318398c13a0b8d689f75cbc14d6"
2023 2023
             },
2024 2024
             "dist": {
2025 2025
                 "type": "zip",
2026
-                "url": "https://api.github.com/repos/filamentphp/support/zipball/78e25428c754fcbb30c321d5dda439c760de9837",
2027
-                "reference": "78e25428c754fcbb30c321d5dda439c760de9837",
2026
+                "url": "https://api.github.com/repos/filamentphp/support/zipball/d07086506d39f318398c13a0b8d689f75cbc14d6",
2027
+                "reference": "d07086506d39f318398c13a0b8d689f75cbc14d6",
2028 2028
                 "shasum": ""
2029 2029
             },
2030 2030
             "require": {
@@ -2070,20 +2070,20 @@
2070 2070
                 "issues": "https://github.com/filamentphp/filament/issues",
2071 2071
                 "source": "https://github.com/filamentphp/filament"
2072 2072
             },
2073
-            "time": "2024-08-26T07:22:57+00:00"
2073
+            "time": "2024-09-11T08:25:46+00:00"
2074 2074
         },
2075 2075
         {
2076 2076
             "name": "filament/tables",
2077
-            "version": "v3.2.110",
2077
+            "version": "v3.2.112",
2078 2078
             "source": {
2079 2079
                 "type": "git",
2080 2080
                 "url": "https://github.com/filamentphp/tables.git",
2081
-                "reference": "129943d1b4e6c1edeef53e804eb56ef78a932a6c"
2081
+                "reference": "4285a031dd36250a86710631a5b1fea1372097a1"
2082 2082
             },
2083 2083
             "dist": {
2084 2084
                 "type": "zip",
2085
-                "url": "https://api.github.com/repos/filamentphp/tables/zipball/129943d1b4e6c1edeef53e804eb56ef78a932a6c",
2086
-                "reference": "129943d1b4e6c1edeef53e804eb56ef78a932a6c",
2085
+                "url": "https://api.github.com/repos/filamentphp/tables/zipball/4285a031dd36250a86710631a5b1fea1372097a1",
2086
+                "reference": "4285a031dd36250a86710631a5b1fea1372097a1",
2087 2087
                 "shasum": ""
2088 2088
             },
2089 2089
             "require": {
@@ -2122,11 +2122,11 @@
2122 2122
                 "issues": "https://github.com/filamentphp/filament/issues",
2123 2123
                 "source": "https://github.com/filamentphp/filament"
2124 2124
             },
2125
-            "time": "2024-08-30T01:52:14+00:00"
2125
+            "time": "2024-09-11T08:25:43+00:00"
2126 2126
         },
2127 2127
         {
2128 2128
             "name": "filament/widgets",
2129
-            "version": "v3.2.110",
2129
+            "version": "v3.2.112",
2130 2130
             "source": {
2131 2131
                 "type": "git",
2132 2132
                 "url": "https://github.com/filamentphp/widgets.git",
@@ -2981,16 +2981,16 @@
2981 2981
         },
2982 2982
         {
2983 2983
             "name": "laravel/framework",
2984
-            "version": "v11.22.0",
2984
+            "version": "v11.23.5",
2985 2985
             "source": {
2986 2986
                 "type": "git",
2987 2987
                 "url": "https://github.com/laravel/framework.git",
2988
-                "reference": "868c75beacc47d0f361b919bbc155c0b619bf3d5"
2988
+                "reference": "16b31ab0e1dad5cb2ed6dcc1818c02f02fc48453"
2989 2989
             },
2990 2990
             "dist": {
2991 2991
                 "type": "zip",
2992
-                "url": "https://api.github.com/repos/laravel/framework/zipball/868c75beacc47d0f361b919bbc155c0b619bf3d5",
2993
-                "reference": "868c75beacc47d0f361b919bbc155c0b619bf3d5",
2992
+                "url": "https://api.github.com/repos/laravel/framework/zipball/16b31ab0e1dad5cb2ed6dcc1818c02f02fc48453",
2993
+                "reference": "16b31ab0e1dad5cb2ed6dcc1818c02f02fc48453",
2994 2994
                 "shasum": ""
2995 2995
             },
2996 2996
             "require": {
@@ -3052,6 +3052,7 @@
3052 3052
                 "illuminate/bus": "self.version",
3053 3053
                 "illuminate/cache": "self.version",
3054 3054
                 "illuminate/collections": "self.version",
3055
+                "illuminate/concurrency": "self.version",
3055 3056
                 "illuminate/conditionable": "self.version",
3056 3057
                 "illuminate/config": "self.version",
3057 3058
                 "illuminate/console": "self.version",
@@ -3094,7 +3095,7 @@
3094 3095
                 "league/flysystem-sftp-v3": "^3.0",
3095 3096
                 "mockery/mockery": "^1.6",
3096 3097
                 "nyholm/psr7": "^1.2",
3097
-                "orchestra/testbench-core": "^9.1.5",
3098
+                "orchestra/testbench-core": "^9.4.0",
3098 3099
                 "pda/pheanstalk": "^5.0",
3099 3100
                 "phpstan/phpstan": "^1.11.5",
3100 3101
                 "phpunit/phpunit": "^10.5|^11.0",
@@ -3152,6 +3153,7 @@
3152 3153
                     "src/Illuminate/Events/functions.php",
3153 3154
                     "src/Illuminate/Filesystem/functions.php",
3154 3155
                     "src/Illuminate/Foundation/helpers.php",
3156
+                    "src/Illuminate/Log/functions.php",
3155 3157
                     "src/Illuminate/Support/helpers.php"
3156 3158
                 ],
3157 3159
                 "psr-4": {
@@ -3183,7 +3185,7 @@
3183 3185
                 "issues": "https://github.com/laravel/framework/issues",
3184 3186
                 "source": "https://github.com/laravel/framework"
3185 3187
             },
3186
-            "time": "2024-09-03T15:27:15+00:00"
3188
+            "time": "2024-09-13T13:36:30+00:00"
3187 3189
         },
3188 3190
         {
3189 3191
             "name": "laravel/prompts",
@@ -5810,16 +5812,16 @@
5810 5812
         },
5811 5813
         {
5812 5814
             "name": "psr/log",
5813
-            "version": "3.0.1",
5815
+            "version": "3.0.2",
5814 5816
             "source": {
5815 5817
                 "type": "git",
5816 5818
                 "url": "https://github.com/php-fig/log.git",
5817
-                "reference": "79dff0b268932c640297f5208d6298f71855c03e"
5819
+                "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
5818 5820
             },
5819 5821
             "dist": {
5820 5822
                 "type": "zip",
5821
-                "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e",
5822
-                "reference": "79dff0b268932c640297f5208d6298f71855c03e",
5823
+                "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
5824
+                "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
5823 5825
                 "shasum": ""
5824 5826
             },
5825 5827
             "require": {
@@ -5854,9 +5856,9 @@
5854 5856
                 "psr-3"
5855 5857
             ],
5856 5858
             "support": {
5857
-                "source": "https://github.com/php-fig/log/tree/3.0.1"
5859
+                "source": "https://github.com/php-fig/log/tree/3.0.2"
5858 5860
             },
5859
-            "time": "2024-08-21T13:31:24+00:00"
5861
+            "time": "2024-09-11T13:17:53+00:00"
5860 5862
         },
5861 5863
         {
5862 5864
             "name": "psr/simple-cache",
@@ -9480,16 +9482,16 @@
9480 9482
         },
9481 9483
         {
9482 9484
             "name": "laravel/sail",
9483
-            "version": "v1.31.3",
9485
+            "version": "v1.32.0",
9484 9486
             "source": {
9485 9487
                 "type": "git",
9486 9488
                 "url": "https://github.com/laravel/sail.git",
9487
-                "reference": "0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1"
9489
+                "reference": "4a7e41d280861ca7e35710cea011a07669b4003b"
9488 9490
             },
9489 9491
             "dist": {
9490 9492
                 "type": "zip",
9491
-                "url": "https://api.github.com/repos/laravel/sail/zipball/0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1",
9492
-                "reference": "0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1",
9493
+                "url": "https://api.github.com/repos/laravel/sail/zipball/4a7e41d280861ca7e35710cea011a07669b4003b",
9494
+                "reference": "4a7e41d280861ca7e35710cea011a07669b4003b",
9493 9495
                 "shasum": ""
9494 9496
             },
9495 9497
             "require": {
@@ -9539,7 +9541,7 @@
9539 9541
                 "issues": "https://github.com/laravel/sail/issues",
9540 9542
                 "source": "https://github.com/laravel/sail"
9541 9543
             },
9542
-            "time": "2024-09-03T20:05:33+00:00"
9544
+            "time": "2024-09-11T20:14:29+00:00"
9543 9545
         },
9544 9546
         {
9545 9547
             "name": "mockery/mockery",
@@ -10408,16 +10410,16 @@
10408 10410
         },
10409 10411
         {
10410 10412
             "name": "phpunit/phpunit",
10411
-            "version": "10.5.33",
10413
+            "version": "10.5.34",
10412 10414
             "source": {
10413 10415
                 "type": "git",
10414 10416
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
10415
-                "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf"
10417
+                "reference": "3c69d315bdf79080c8e115b69d1961c6905b0e18"
10416 10418
             },
10417 10419
             "dist": {
10418 10420
                 "type": "zip",
10419
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4def7a9cda75af9c2bc179ed53a8e41313e7f7cf",
10420
-                "reference": "4def7a9cda75af9c2bc179ed53a8e41313e7f7cf",
10421
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3c69d315bdf79080c8e115b69d1961c6905b0e18",
10422
+                "reference": "3c69d315bdf79080c8e115b69d1961c6905b0e18",
10421 10423
                 "shasum": ""
10422 10424
             },
10423 10425
             "require": {
@@ -10489,7 +10491,7 @@
10489 10491
             "support": {
10490 10492
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
10491 10493
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
10492
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.33"
10494
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.34"
10493 10495
             },
10494 10496
             "funding": [
10495 10497
                 {
@@ -10505,7 +10507,7 @@
10505 10507
                     "type": "tidelift"
10506 10508
                 }
10507 10509
             ],
10508
-            "time": "2024-09-09T06:06:56+00:00"
10510
+            "time": "2024-09-13T05:19:38+00:00"
10509 10511
         },
10510 10512
         {
10511 10513
             "name": "rector/rector",

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

@@ -541,9 +541,9 @@
541 541
             }
542 542
         },
543 543
         "node_modules/@rollup/rollup-android-arm-eabi": {
544
-            "version": "4.21.2",
545
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz",
546
-            "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==",
544
+            "version": "4.21.3",
545
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz",
546
+            "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==",
547 547
             "cpu": [
548 548
                 "arm"
549 549
             ],
@@ -555,9 +555,9 @@
555 555
             ]
556 556
         },
557 557
         "node_modules/@rollup/rollup-android-arm64": {
558
-            "version": "4.21.2",
559
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz",
560
-            "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==",
558
+            "version": "4.21.3",
559
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz",
560
+            "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==",
561 561
             "cpu": [
562 562
                 "arm64"
563 563
             ],
@@ -569,9 +569,9 @@
569 569
             ]
570 570
         },
571 571
         "node_modules/@rollup/rollup-darwin-arm64": {
572
-            "version": "4.21.2",
573
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz",
574
-            "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==",
572
+            "version": "4.21.3",
573
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz",
574
+            "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==",
575 575
             "cpu": [
576 576
                 "arm64"
577 577
             ],
@@ -583,9 +583,9 @@
583 583
             ]
584 584
         },
585 585
         "node_modules/@rollup/rollup-darwin-x64": {
586
-            "version": "4.21.2",
587
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz",
588
-            "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==",
586
+            "version": "4.21.3",
587
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz",
588
+            "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==",
589 589
             "cpu": [
590 590
                 "x64"
591 591
             ],
@@ -597,9 +597,9 @@
597 597
             ]
598 598
         },
599 599
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
600
-            "version": "4.21.2",
601
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz",
602
-            "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==",
600
+            "version": "4.21.3",
601
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz",
602
+            "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==",
603 603
             "cpu": [
604 604
                 "arm"
605 605
             ],
@@ -611,9 +611,9 @@
611 611
             ]
612 612
         },
613 613
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
614
-            "version": "4.21.2",
615
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz",
616
-            "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==",
614
+            "version": "4.21.3",
615
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz",
616
+            "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==",
617 617
             "cpu": [
618 618
                 "arm"
619 619
             ],
@@ -625,9 +625,9 @@
625 625
             ]
626 626
         },
627 627
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
628
-            "version": "4.21.2",
629
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz",
630
-            "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==",
628
+            "version": "4.21.3",
629
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz",
630
+            "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==",
631 631
             "cpu": [
632 632
                 "arm64"
633 633
             ],
@@ -639,9 +639,9 @@
639 639
             ]
640 640
         },
641 641
         "node_modules/@rollup/rollup-linux-arm64-musl": {
642
-            "version": "4.21.2",
643
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz",
644
-            "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==",
642
+            "version": "4.21.3",
643
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz",
644
+            "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==",
645 645
             "cpu": [
646 646
                 "arm64"
647 647
             ],
@@ -653,9 +653,9 @@
653 653
             ]
654 654
         },
655 655
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
656
-            "version": "4.21.2",
657
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz",
658
-            "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==",
656
+            "version": "4.21.3",
657
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz",
658
+            "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==",
659 659
             "cpu": [
660 660
                 "ppc64"
661 661
             ],
@@ -667,9 +667,9 @@
667 667
             ]
668 668
         },
669 669
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
670
-            "version": "4.21.2",
671
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz",
672
-            "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==",
670
+            "version": "4.21.3",
671
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz",
672
+            "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==",
673 673
             "cpu": [
674 674
                 "riscv64"
675 675
             ],
@@ -681,9 +681,9 @@
681 681
             ]
682 682
         },
683 683
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
684
-            "version": "4.21.2",
685
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz",
686
-            "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==",
684
+            "version": "4.21.3",
685
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz",
686
+            "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==",
687 687
             "cpu": [
688 688
                 "s390x"
689 689
             ],
@@ -695,9 +695,9 @@
695 695
             ]
696 696
         },
697 697
         "node_modules/@rollup/rollup-linux-x64-gnu": {
698
-            "version": "4.21.2",
699
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz",
700
-            "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==",
698
+            "version": "4.21.3",
699
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz",
700
+            "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==",
701 701
             "cpu": [
702 702
                 "x64"
703 703
             ],
@@ -709,9 +709,9 @@
709 709
             ]
710 710
         },
711 711
         "node_modules/@rollup/rollup-linux-x64-musl": {
712
-            "version": "4.21.2",
713
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz",
714
-            "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==",
712
+            "version": "4.21.3",
713
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz",
714
+            "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==",
715 715
             "cpu": [
716 716
                 "x64"
717 717
             ],
@@ -723,9 +723,9 @@
723 723
             ]
724 724
         },
725 725
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
726
-            "version": "4.21.2",
727
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz",
728
-            "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==",
726
+            "version": "4.21.3",
727
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz",
728
+            "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==",
729 729
             "cpu": [
730 730
                 "arm64"
731 731
             ],
@@ -737,9 +737,9 @@
737 737
             ]
738 738
         },
739 739
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
740
-            "version": "4.21.2",
741
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz",
742
-            "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==",
740
+            "version": "4.21.3",
741
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz",
742
+            "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==",
743 743
             "cpu": [
744 744
                 "ia32"
745 745
             ],
@@ -751,9 +751,9 @@
751 751
             ]
752 752
         },
753 753
         "node_modules/@rollup/rollup-win32-x64-msvc": {
754
-            "version": "4.21.2",
755
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz",
756
-            "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==",
754
+            "version": "4.21.3",
755
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz",
756
+            "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==",
757 757
             "cpu": [
758 758
                 "x64"
759 759
             ],
@@ -1159,9 +1159,9 @@
1159 1159
             "license": "MIT"
1160 1160
         },
1161 1161
         "node_modules/electron-to-chromium": {
1162
-            "version": "1.5.19",
1163
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.19.tgz",
1164
-            "integrity": "sha512-kpLJJi3zxTR1U828P+LIUDZ5ohixyo68/IcYOHLqnbTPr/wdgn4i1ECvmALN9E16JPA6cvCG5UG79gVwVdEK5w==",
1162
+            "version": "1.5.23",
1163
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz",
1164
+            "integrity": "sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==",
1165 1165
             "dev": true,
1166 1166
             "license": "ISC"
1167 1167
         },
@@ -1826,9 +1826,9 @@
1826 1826
             }
1827 1827
         },
1828 1828
         "node_modules/postcss": {
1829
-            "version": "8.4.45",
1830
-            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz",
1831
-            "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==",
1829
+            "version": "8.4.47",
1830
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
1831
+            "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
1832 1832
             "dev": true,
1833 1833
             "funding": [
1834 1834
                 {
@@ -1847,8 +1847,8 @@
1847 1847
             "license": "MIT",
1848 1848
             "dependencies": {
1849 1849
                 "nanoid": "^3.3.7",
1850
-                "picocolors": "^1.0.1",
1851
-                "source-map-js": "^1.2.0"
1850
+                "picocolors": "^1.1.0",
1851
+                "source-map-js": "^1.2.1"
1852 1852
             },
1853 1853
             "engines": {
1854 1854
                 "node": "^10 || ^12 || >=14"
@@ -2171,9 +2171,9 @@
2171 2171
             }
2172 2172
         },
2173 2173
         "node_modules/rollup": {
2174
-            "version": "4.21.2",
2175
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz",
2176
-            "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==",
2174
+            "version": "4.21.3",
2175
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz",
2176
+            "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==",
2177 2177
             "dev": true,
2178 2178
             "license": "MIT",
2179 2179
             "dependencies": {
@@ -2187,22 +2187,22 @@
2187 2187
                 "npm": ">=8.0.0"
2188 2188
             },
2189 2189
             "optionalDependencies": {
2190
-                "@rollup/rollup-android-arm-eabi": "4.21.2",
2191
-                "@rollup/rollup-android-arm64": "4.21.2",
2192
-                "@rollup/rollup-darwin-arm64": "4.21.2",
2193
-                "@rollup/rollup-darwin-x64": "4.21.2",
2194
-                "@rollup/rollup-linux-arm-gnueabihf": "4.21.2",
2195
-                "@rollup/rollup-linux-arm-musleabihf": "4.21.2",
2196
-                "@rollup/rollup-linux-arm64-gnu": "4.21.2",
2197
-                "@rollup/rollup-linux-arm64-musl": "4.21.2",
2198
-                "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2",
2199
-                "@rollup/rollup-linux-riscv64-gnu": "4.21.2",
2200
-                "@rollup/rollup-linux-s390x-gnu": "4.21.2",
2201
-                "@rollup/rollup-linux-x64-gnu": "4.21.2",
2202
-                "@rollup/rollup-linux-x64-musl": "4.21.2",
2203
-                "@rollup/rollup-win32-arm64-msvc": "4.21.2",
2204
-                "@rollup/rollup-win32-ia32-msvc": "4.21.2",
2205
-                "@rollup/rollup-win32-x64-msvc": "4.21.2",
2190
+                "@rollup/rollup-android-arm-eabi": "4.21.3",
2191
+                "@rollup/rollup-android-arm64": "4.21.3",
2192
+                "@rollup/rollup-darwin-arm64": "4.21.3",
2193
+                "@rollup/rollup-darwin-x64": "4.21.3",
2194
+                "@rollup/rollup-linux-arm-gnueabihf": "4.21.3",
2195
+                "@rollup/rollup-linux-arm-musleabihf": "4.21.3",
2196
+                "@rollup/rollup-linux-arm64-gnu": "4.21.3",
2197
+                "@rollup/rollup-linux-arm64-musl": "4.21.3",
2198
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3",
2199
+                "@rollup/rollup-linux-riscv64-gnu": "4.21.3",
2200
+                "@rollup/rollup-linux-s390x-gnu": "4.21.3",
2201
+                "@rollup/rollup-linux-x64-gnu": "4.21.3",
2202
+                "@rollup/rollup-linux-x64-musl": "4.21.3",
2203
+                "@rollup/rollup-win32-arm64-msvc": "4.21.3",
2204
+                "@rollup/rollup-win32-ia32-msvc": "4.21.3",
2205
+                "@rollup/rollup-win32-x64-msvc": "4.21.3",
2206 2206
                 "fsevents": "~2.3.2"
2207 2207
             }
2208 2208
         },
@@ -2417,9 +2417,9 @@
2417 2417
             }
2418 2418
         },
2419 2419
         "node_modules/tailwindcss": {
2420
-            "version": "3.4.10",
2421
-            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
2422
-            "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
2420
+            "version": "3.4.11",
2421
+            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz",
2422
+            "integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==",
2423 2423
             "dev": true,
2424 2424
             "license": "MIT",
2425 2425
             "dependencies": {
@@ -2550,9 +2550,9 @@
2550 2550
             "license": "MIT"
2551 2551
         },
2552 2552
         "node_modules/vite": {
2553
-            "version": "5.4.3",
2554
-            "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.3.tgz",
2555
-            "integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==",
2553
+            "version": "5.4.5",
2554
+            "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.5.tgz",
2555
+            "integrity": "sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA==",
2556 2556
             "dev": true,
2557 2557
             "license": "MIT",
2558 2558
             "dependencies": {

+ 8
- 0
resources/css/filament/company/theme.css 파일 보기

@@ -4,6 +4,14 @@
4 4
 
5 5
 @config './tailwind.config.js';
6 6
 
7
+.fi-fo-field-wrp.report-hidden-label div.flex.items-center {
8
+    @apply hidden;
9
+}
10
+
11
+.fi-fo-field-wrp.report-hidden-label {
12
+    @apply lg:mt-8;
13
+}
14
+
7 15
 .choices__list.choices__list--single {
8 16
     @apply w-full;
9 17
 }

+ 45
- 0
resources/views/filament/company/pages/reports/trial-balance.blade.php 파일 보기

@@ -0,0 +1,45 @@
1
+<x-filament-panels::page>
2
+    <x-filament::section>
3
+        <div class="flex flex-col lg:flex-row items-start lg:items-end justify-between gap-4">
4
+            <!-- Form Container -->
5
+            @if(method_exists($this, 'filtersForm'))
6
+                {{ $this->filtersForm }}
7
+            @endif
8
+
9
+            <!-- Grouping Button and Column Toggle -->
10
+            @if($this->hasToggleableColumns())
11
+                <div class="lg:mb-1">
12
+                    <x-filament-tables::column-toggle.dropdown
13
+                        :form="$this->getTableColumnToggleForm()"
14
+                        :trigger-action="$this->getToggleColumnsTriggerAction()"
15
+                    />
16
+                </div>
17
+            @endif
18
+
19
+            <div class="inline-flex items-center min-w-0 lg:min-w-[9.5rem] justify-end">
20
+                {{ $this->applyFiltersAction }}
21
+            </div>
22
+        </div>
23
+    </x-filament::section>
24
+
25
+    <x-filament-tables::container>
26
+        <div class="es-table__header-ctn"></div>
27
+        <div
28
+            class="relative divide-y divide-gray-200 overflow-x-auto dark:divide-white/10 dark:border-t-white/10 min-h-64">
29
+            <div wire:init="applyFilters" class="flex items-center justify-center w-full h-full absolute">
30
+                <div wire:loading wire:target="applyFilters">
31
+                    <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300"/>
32
+                </div>
33
+            </div>
34
+
35
+            @if($this->reportLoaded)
36
+                <div wire:loading.remove wire:target="applyFilters">
37
+                    @if($this->report)
38
+                        <x-company.tables.reports.detailed-report :report="$this->report"/>
39
+                    @endif
40
+                </div>
41
+            @endif
42
+        </div>
43
+        <div class="es-table__footer-ctn border-t border-gray-200"></div>
44
+    </x-filament-tables::container>
45
+</x-filament-panels::page>

Loading…
취소
저장