Selaa lähdekoodia

wip Cash Flow Statement

3.x
Andrew Wallo 11 kuukautta sitten
vanhempi
commit
461c4026b2

+ 44
- 0
app/Enums/Accounting/AccountType.php Näytä tiedosto

@@ -85,4 +85,48 @@ enum AccountType: string implements HasLabel
85 85
             default => false,
86 86
         };
87 87
     }
88
+
89
+    public function isNormalDebitBalance(): bool
90
+    {
91
+        return in_array($this, [
92
+            self::CurrentAsset,
93
+            self::NonCurrentAsset,
94
+            self::ContraLiability,
95
+            self::ContraEquity,
96
+            self::ContraRevenue,
97
+            self::OperatingExpense,
98
+            self::NonOperatingExpense,
99
+            self::UncategorizedExpense,
100
+        ], true);
101
+    }
102
+
103
+    public function isNormalCreditBalance(): bool
104
+    {
105
+        return ! $this->isNormalDebitBalance();
106
+    }
107
+
108
+    /**
109
+     * Determines if the account is a nominal account.
110
+     *
111
+     * In accounting, nominal accounts are temporary accounts that are closed at the end of each accounting period,
112
+     * with their net balances transferred to Retained Earnings (a real account).
113
+     */
114
+    public function isNominal(): bool
115
+    {
116
+        return in_array($this->getCategory(), [
117
+            AccountCategory::Revenue,
118
+            AccountCategory::Expense,
119
+        ], true);
120
+    }
121
+
122
+    /**
123
+     * Determines if the account is a real account.
124
+     *
125
+     * In accounting, assets, liabilities, and equity are real accounts which are permanent accounts that retain their balances across accounting periods.
126
+     * They are not closed at the end of each accounting period.
127
+     */
128
+    public function isReal(): bool
129
+    {
130
+        return ! $this->isNominal();
131
+    }
88 132
 }

+ 2
- 0
app/Models/Accounting/AccountSubtype.php Näytä tiedosto

@@ -21,6 +21,7 @@ class AccountSubtype extends Model
21 21
     protected $fillable = [
22 22
         'company_id',
23 23
         'multi_currency',
24
+        'inverse_cash_flow',
24 25
         'category',
25 26
         'type',
26 27
         'name',
@@ -29,6 +30,7 @@ class AccountSubtype extends Model
29 30
 
30 31
     protected $casts = [
31 32
         'multi_currency' => 'boolean',
33
+        'inverse_cash_flow' => 'boolean',
32 34
         'category' => AccountCategory::class,
33 35
         'type' => AccountType::class,
34 36
     ];

+ 1
- 1
app/Services/AccountService.php Näytä tiedosto

@@ -171,7 +171,7 @@ class AccountService
171 171
                     ->where('transactions.posted_at', '<=', $endDate);
172 172
             })
173 173
             ->groupBy('accounts.id')
174
-            ->with(['subtype:id,name']);
174
+            ->with(['subtype:id,name,inverse_cash_flow']);
175 175
 
176 176
         if (! empty($accountIds)) {
177 177
             $query->whereIn('accounts.id', $accountIds);

+ 1
- 0
app/Services/ChartOfAccountsService.php Näytä tiedosto

@@ -21,6 +21,7 @@ class ChartOfAccountsService
21 21
                 $subtype = $company->accountSubtypes()
22 22
                     ->createQuietly([
23 23
                         'multi_currency' => $subtypeConfig['multi_currency'] ?? false,
24
+                        'inverse_cash_flow' => $subtypeConfig['inverse_cash_flow'] ?? false,
24 25
                         'category' => AccountType::from($type)->getCategory()->value,
25 26
                         'type' => $type,
26 27
                         'name' => $subtypeName,

+ 47
- 66
app/Services/ReportService.php Näytä tiedosto

@@ -442,8 +442,6 @@ class ReportService
442 442
 
443 443
         $totalCashFlows = $this->calculateTotalCashFlows($sections);
444 444
 
445
-        ray($sections);
446
-
447 445
         return new ReportDTO($sections, $totalCashFlows, $columns);
448 446
     }
449 447
 
@@ -471,7 +469,7 @@ class ReportService
471 469
             ->orderByRaw('LENGTH(code), code')
472 470
             ->get();
473 471
 
474
-        return $this->formatSectionAccounts('Operating Activities', $accounts, $adjustments, $startDate, $endDate);
472
+        return $this->formatSectionAccounts($accounts, $adjustments, $startDate, $endDate);
475 473
     }
476 474
 
477 475
     private function buildInvestingActivities(string $startDate, string $endDate): AccountCategoryDTO
@@ -486,7 +484,7 @@ class ReportService
486 484
             ->orderByRaw('LENGTH(code), code')
487 485
             ->get();
488 486
 
489
-        return $this->formatSectionAccounts('Investing Activities', $accounts, $adjustments, $startDate, $endDate);
487
+        return $this->formatSectionAccounts($accounts, $adjustments, $startDate, $endDate);
490 488
     }
491 489
 
492 490
     private function buildFinancingActivities(string $startDate, string $endDate): AccountCategoryDTO
@@ -505,80 +503,63 @@ class ReportService
505 503
             ->orderByRaw('LENGTH(code), code')
506 504
             ->get();
507 505
 
508
-        return $this->formatSectionAccounts('Financing Activities', $accounts, [], $startDate, $endDate);
506
+        return $this->formatSectionAccounts($accounts, [], $startDate, $endDate);
509 507
     }
510 508
 
511
-    private function formatSectionAccounts(
512
-        string $sectionName,
513
-        $accounts,
514
-        $adjustments,
515
-        string $startDate,
516
-        string $endDate
517
-    ): AccountCategoryDTO {
518
-        $accountTypes = [];
509
+    private function formatSectionAccounts($accounts, $adjustments, string $startDate, string $endDate): AccountCategoryDTO
510
+    {
511
+        $categoryAccountsByType = [];
519 512
         $sectionTotal = 0;
513
+        $subCategoryTotals = [];
514
+
515
+        // Process accounts and adjustments
516
+        /** @var Account[] $entries */
517
+        foreach ([$accounts, $adjustments] as $entries) {
518
+            foreach ($entries as $entry) {
519
+                $accountCategory = $entry->type->getCategory();
520
+                $accountBalances = $this->calculateAccountBalances($entry, $accountCategory);
521
+                $netCashFlow = $accountBalances['net_movement'] ?? 0;
522
+
523
+                if ($entry->subtype->inverse_cash_flow) {
524
+                    $netCashFlow *= -1;
525
+                }
520 526
 
521
-        foreach ($accounts as $account) {
522
-            $accountCategory = $account->type->getCategory();
523
-            $accountBalances = $this->calculateAccountBalances($account, $accountCategory);
524
-            $netCashFlow = $accountBalances['ending_balance'] ?? $accountBalances['net_movement'] ?? 0;
525
-            $sectionTotal += $netCashFlow;
526
-
527
-            $formattedAccountBalances = $this->formatBalances(['net_movement' => $netCashFlow]);
528
-
529
-            $accountDTO = new AccountDTO(
530
-                $account->name,
531
-                $account->code,
532
-                $account->id,
533
-                $formattedAccountBalances,
534
-                $startDate,
535
-                $endDate,
536
-            );
527
+                // Accumulate totals
528
+                $sectionTotal += $netCashFlow;
529
+                $accountTypeName = $entry->subtype->name;
530
+                $subCategoryTotals[$accountTypeName] = ($subCategoryTotals[$accountTypeName] ?? 0) + $netCashFlow;
531
+
532
+                // Create AccountDTO and group by account type
533
+                $accountDTO = new AccountDTO(
534
+                    $entry->name,
535
+                    $entry->code,
536
+                    $entry->id,
537
+                    $this->formatBalances(['net_movement' => $netCashFlow]),
538
+                    $startDate,
539
+                    $endDate
540
+                );
537 541
 
538
-            $accountTypeName = $account->subtype->name;
539
-            $accountTypes[$accountTypeName]['accounts'][] = $accountDTO;
542
+                $categoryAccountsByType[$accountTypeName][] = $accountDTO;
543
+            }
540 544
         }
541 545
 
542
-        foreach ($adjustments as $adjustment) {
543
-            $accountCategory = $adjustment->type->getCategory();
544
-            $adjustmentBalances = $this->calculateAccountBalances($adjustment, $accountCategory);
545
-            $netCashFlow = $adjustmentBalances['ending_balance'] ?? $adjustmentBalances['net_movement'] ?? 0;
546
-            $sectionTotal += $netCashFlow;
547
-
548
-            $formattedAdjustmentBalances = $this->formatBalances(['net_movement' => $netCashFlow]);
549
-
550
-            $accountDTO = new AccountDTO(
551
-                $adjustment->name,
552
-                $adjustment->code,
553
-                $adjustment->id,
554
-                $formattedAdjustmentBalances,
555
-                $startDate,
556
-                $endDate,
546
+        // Prepare AccountTypeDTO for each account type with the accumulated totals
547
+        $subCategories = [];
548
+        foreach ($categoryAccountsByType as $typeName => $accountsInType) {
549
+            $typeTotal = $subCategoryTotals[$typeName] ?? 0;
550
+            $formattedTypeTotal = $this->formatBalances(['net_movement' => $typeTotal]);
551
+            $subCategories[$typeName] = new AccountTypeDTO(
552
+                accounts: $accountsInType,
553
+                summary: $formattedTypeTotal
557 554
             );
558
-
559
-            $accountTypeName = $adjustment->subtype->name;
560
-            $accountTypes[$accountTypeName]['accounts'][] = $accountDTO;
561 555
         }
562 556
 
557
+        // Format the overall section total as the section summary
563 558
         $formattedSectionTotal = $this->formatBalances(['net_movement' => $sectionTotal]);
564 559
 
565
-        // Convert each type array to AccountTypeDTO with summary balance
566
-        foreach ($accountTypes as $typeName => &$typeData) {
567
-            $typeNetMovement = array_reduce($typeData['accounts'], function ($carry, $account) {
568
-                return $carry + (float) \money($account->balance->netMovement, CurrencyAccessor::getDefaultCurrency(), true)->getAmount();
569
-            }, 0);
570
-
571
-            $formattedTypeBalance = $this->formatBalances(['net_movement' => $typeNetMovement]);
572
-
573
-            $typeData = new AccountTypeDTO(
574
-                accounts: $typeData['accounts'],
575
-                summary: $formattedTypeBalance
576
-            );
577
-        }
578
-
579 560
         return new AccountCategoryDTO(
580
-            accounts: [], // No direct accounts, only types in cash flow
581
-            types: $accountTypes, // Structured by AccountTypeDTO
561
+            accounts: [], // No direct accounts at the section level
562
+            types: $subCategories, // Grouped by AccountTypeDTO
582 563
             summary: $formattedSectionTotal,
583 564
         );
584 565
     }
@@ -590,7 +571,7 @@ class ReportService
590 571
         foreach ($sections as $section) {
591 572
             $netMovement = $section->summary->netMovement ?? 0;
592 573
 
593
-            $numericNetMovement = money($netMovement, CurrencyAccessor::getDefaultCurrency())->getAmount();
574
+            $numericNetMovement = money($netMovement, CurrencyAccessor::getDefaultCurrency(), true)->getAmount();
594 575
 
595 576
             $totalCashFlow += $numericNetMovement;
596 577
         }

+ 4
- 9
app/Transformers/CashFlowStatementReportTransformer.php Näytä tiedosto

@@ -6,7 +6,7 @@ use App\DTO\AccountDTO;
6 6
 use App\DTO\ReportCategoryDTO;
7 7
 use App\DTO\ReportDTO;
8 8
 use App\DTO\ReportTypeDTO;
9
-use App\Utilities\Currency\CurrencyAccessor;
9
+use App\Utilities\Currency\CurrencyConverter;
10 10
 
11 11
 class CashFlowStatementReportTransformer extends SummaryReportTransformer
12 12
 {
@@ -38,7 +38,7 @@ class CashFlowStatementReportTransformer extends SummaryReportTransformer
38 38
         $cashOutflow = 0;
39 39
 
40 40
         foreach ($this->report->categories as $categoryName => $category) {
41
-            $netMovement = (float) money($category->summary->netMovement, CurrencyAccessor::getDefaultCurrency())->getAmount();
41
+            $netMovement = CurrencyConverter::convertToCents($category->summary->netMovement);
42 42
 
43 43
             match ($categoryName) {
44 44
                 'Operating Activities' => $this->totalOperatingActivities = $netMovement,
@@ -55,8 +55,8 @@ class CashFlowStatementReportTransformer extends SummaryReportTransformer
55 55
         }
56 56
 
57 57
         // Store gross totals
58
-        $this->grossCashInflow = money($cashInflow, CurrencyAccessor::getDefaultCurrency())->format();
59
-        $this->grossCashOutflow = money($cashOutflow, CurrencyAccessor::getDefaultCurrency())->format();
58
+        $this->grossCashInflow = CurrencyConverter::formatCentsToMoney($cashInflow);
59
+        $this->grossCashOutflow = CurrencyConverter::formatCentsToMoney(abs($cashOutflow));
60 60
     }
61 61
 
62 62
     public function getCategories(): array
@@ -104,7 +104,6 @@ class CashFlowStatementReportTransformer extends SummaryReportTransformer
104 104
 
105 105
             // Subcategories (types) under the main category
106 106
             $types = [];
107
-            ray($accountCategory->types);
108 107
             foreach ($accountCategory->types as $typeName => $type) {
109 108
                 // Header for subcategory (type)
110 109
                 $typeHeader = [];
@@ -112,8 +111,6 @@ class CashFlowStatementReportTransformer extends SummaryReportTransformer
112 111
                     $typeHeader[$column->getName()] = $column->getName() === 'account_name' ? $typeName : '';
113 112
                 }
114 113
 
115
-                ray($typeHeader);
116
-
117 114
                 // Account data for the subcategory
118 115
                 $typeData = array_map(function (AccountDTO $account) {
119 116
                     $row = [];
@@ -135,8 +132,6 @@ class CashFlowStatementReportTransformer extends SummaryReportTransformer
135 132
                     return $row;
136 133
                 }, $type->accounts ?? []);
137 134
 
138
-                ray($typeData);
139
-
140 135
                 // Subcategory (type) summary
141 136
                 $typeSummary = [];
142 137
                 foreach ($this->getColumns() as $column) {

+ 22
- 8
app/Utilities/Currency/CurrencyConverter.php Näytä tiedosto

@@ -15,24 +15,38 @@ class CurrencyConverter
15 15
 
16 16
         $old_attr = currency($oldCurrency);
17 17
         $new_attr = currency($newCurrency);
18
-        $temp_balance = str_replace([$old_attr->getThousandsSeparator(), $old_attr->getDecimalMark()], ['', '.'], $amount);
18
+        $temp_amount = str_replace([$old_attr->getThousandsSeparator(), $old_attr->getDecimalMark()], ['', '.'], $amount);
19 19
 
20
-        return number_format((float) $temp_balance, $new_attr->getPrecision(), $new_attr->getDecimalMark(), $new_attr->getThousandsSeparator());
20
+        return number_format((float) $temp_amount, $new_attr->getPrecision(), $new_attr->getDecimalMark(), $new_attr->getThousandsSeparator());
21 21
     }
22 22
 
23
-    public static function convertBalance(int $balance, string $oldCurrency, string $newCurrency): int
23
+    public static function convertBalance(int $amount, string $oldCurrency, string $newCurrency): int
24 24
     {
25
-        return money($balance, $oldCurrency)->swapAmountFor($newCurrency);
25
+        return money($amount, $oldCurrency)->swapAmountFor($newCurrency);
26 26
     }
27 27
 
28
-    public static function prepareForMutator(int $balance, string $currency): string
28
+    public static function prepareForMutator(int $amount, string $currency): string
29 29
     {
30
-        return money($balance, $currency)->formatSimple();
30
+        return money($amount, $currency)->formatSimple();
31 31
     }
32 32
 
33
-    public static function prepareForAccessor(string $balance, string $currency): int
33
+    public static function prepareForAccessor(string $amount, string $currency): int
34 34
     {
35
-        return money($balance, $currency, true)->getAmount();
35
+        return money($amount, $currency, true)->getAmount();
36
+    }
37
+
38
+    public static function convertToCents(string | float $amount, ?string $currency = null): int
39
+    {
40
+        $currency ??= CurrencyAccessor::getDefaultCurrency();
41
+
42
+        return money($amount, $currency, true)->getAmount();
43
+    }
44
+
45
+    public static function formatCentsToMoney(int $amount, ?string $currency = null): string
46
+    {
47
+        $currency ??= CurrencyAccessor::getDefaultCurrency();
48
+
49
+        return money($amount, $currency)->format();
36 50
     }
37 51
 
38 52
     public static function handleCurrencyChange(Set $set, $state): void

+ 67
- 67
composer.lock Näytä tiedosto

@@ -497,16 +497,16 @@
497 497
         },
498 498
         {
499 499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.324.11",
500
+            "version": "3.325.2",
501 501
             "source": {
502 502
                 "type": "git",
503 503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "a667ca29db288af083c3d8cff2e7f32d89fd4cf0"
504
+                "reference": "9e354a5e0cd1d563ec85245e3000e98e16a44fce"
505 505
             },
506 506
             "dist": {
507 507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a667ca29db288af083c3d8cff2e7f32d89fd4cf0",
509
-                "reference": "a667ca29db288af083c3d8cff2e7f32d89fd4cf0",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9e354a5e0cd1d563ec85245e3000e98e16a44fce",
509
+                "reference": "9e354a5e0cd1d563ec85245e3000e98e16a44fce",
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.324.11"
592
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.325.2"
593 593
             },
594
-            "time": "2024-10-25T18:07:16+00:00"
594
+            "time": "2024-11-01T18:08:38+00:00"
595 595
         },
596 596
         {
597 597
             "name": "aws/aws-sdk-php-laravel",
@@ -1664,16 +1664,16 @@
1664 1664
         },
1665 1665
         {
1666 1666
             "name": "filament/actions",
1667
-            "version": "v3.2.121",
1667
+            "version": "v3.2.122",
1668 1668
             "source": {
1669 1669
                 "type": "git",
1670 1670
                 "url": "https://github.com/filamentphp/actions.git",
1671
-                "reference": "1c79f2ffefdee6a21995717a52f006a541b971bc"
1671
+                "reference": "3badf1a1589bf70fdc625130f6dfc1ca2146a32f"
1672 1672
             },
1673 1673
             "dist": {
1674 1674
                 "type": "zip",
1675
-                "url": "https://api.github.com/repos/filamentphp/actions/zipball/1c79f2ffefdee6a21995717a52f006a541b971bc",
1676
-                "reference": "1c79f2ffefdee6a21995717a52f006a541b971bc",
1675
+                "url": "https://api.github.com/repos/filamentphp/actions/zipball/3badf1a1589bf70fdc625130f6dfc1ca2146a32f",
1676
+                "reference": "3badf1a1589bf70fdc625130f6dfc1ca2146a32f",
1677 1677
                 "shasum": ""
1678 1678
             },
1679 1679
             "require": {
@@ -1713,20 +1713,20 @@
1713 1713
                 "issues": "https://github.com/filamentphp/filament/issues",
1714 1714
                 "source": "https://github.com/filamentphp/filament"
1715 1715
             },
1716
-            "time": "2024-10-24T13:46:52+00:00"
1716
+            "time": "2024-10-31T13:38:12+00:00"
1717 1717
         },
1718 1718
         {
1719 1719
             "name": "filament/filament",
1720
-            "version": "v3.2.121",
1720
+            "version": "v3.2.122",
1721 1721
             "source": {
1722 1722
                 "type": "git",
1723 1723
                 "url": "https://github.com/filamentphp/panels.git",
1724
-                "reference": "5e9a946d0b64c1ef9a7ef1cb256a427f2838dbc2"
1724
+                "reference": "076f5367a3dfe5f6864d117f6826ca7821586931"
1725 1725
             },
1726 1726
             "dist": {
1727 1727
                 "type": "zip",
1728
-                "url": "https://api.github.com/repos/filamentphp/panels/zipball/5e9a946d0b64c1ef9a7ef1cb256a427f2838dbc2",
1729
-                "reference": "5e9a946d0b64c1ef9a7ef1cb256a427f2838dbc2",
1728
+                "url": "https://api.github.com/repos/filamentphp/panels/zipball/076f5367a3dfe5f6864d117f6826ca7821586931",
1729
+                "reference": "076f5367a3dfe5f6864d117f6826ca7821586931",
1730 1730
                 "shasum": ""
1731 1731
             },
1732 1732
             "require": {
@@ -1778,20 +1778,20 @@
1778 1778
                 "issues": "https://github.com/filamentphp/filament/issues",
1779 1779
                 "source": "https://github.com/filamentphp/filament"
1780 1780
             },
1781
-            "time": "2024-10-24T13:47:13+00:00"
1781
+            "time": "2024-10-31T13:38:14+00:00"
1782 1782
         },
1783 1783
         {
1784 1784
             "name": "filament/forms",
1785
-            "version": "v3.2.121",
1785
+            "version": "v3.2.122",
1786 1786
             "source": {
1787 1787
                 "type": "git",
1788 1788
                 "url": "https://github.com/filamentphp/forms.git",
1789
-                "reference": "68c9f7f4bd9677f6f99d21396dfbe69cfa142584"
1789
+                "reference": "c863b5765b871485a2c624c43a0eb6e957a04b54"
1790 1790
             },
1791 1791
             "dist": {
1792 1792
                 "type": "zip",
1793
-                "url": "https://api.github.com/repos/filamentphp/forms/zipball/68c9f7f4bd9677f6f99d21396dfbe69cfa142584",
1794
-                "reference": "68c9f7f4bd9677f6f99d21396dfbe69cfa142584",
1793
+                "url": "https://api.github.com/repos/filamentphp/forms/zipball/c863b5765b871485a2c624c43a0eb6e957a04b54",
1794
+                "reference": "c863b5765b871485a2c624c43a0eb6e957a04b54",
1795 1795
                 "shasum": ""
1796 1796
             },
1797 1797
             "require": {
@@ -1834,11 +1834,11 @@
1834 1834
                 "issues": "https://github.com/filamentphp/filament/issues",
1835 1835
                 "source": "https://github.com/filamentphp/filament"
1836 1836
             },
1837
-            "time": "2024-10-24T13:47:01+00:00"
1837
+            "time": "2024-10-31T13:38:16+00:00"
1838 1838
         },
1839 1839
         {
1840 1840
             "name": "filament/infolists",
1841
-            "version": "v3.2.121",
1841
+            "version": "v3.2.122",
1842 1842
             "source": {
1843 1843
                 "type": "git",
1844 1844
                 "url": "https://github.com/filamentphp/infolists.git",
@@ -1889,7 +1889,7 @@
1889 1889
         },
1890 1890
         {
1891 1891
             "name": "filament/notifications",
1892
-            "version": "v3.2.121",
1892
+            "version": "v3.2.122",
1893 1893
             "source": {
1894 1894
                 "type": "git",
1895 1895
                 "url": "https://github.com/filamentphp/notifications.git",
@@ -1941,16 +1941,16 @@
1941 1941
         },
1942 1942
         {
1943 1943
             "name": "filament/support",
1944
-            "version": "v3.2.121",
1944
+            "version": "v3.2.122",
1945 1945
             "source": {
1946 1946
                 "type": "git",
1947 1947
                 "url": "https://github.com/filamentphp/support.git",
1948
-                "reference": "fa8ada5101be964daa8f112616945a8f2ca5929e"
1948
+                "reference": "e7174cee7e1d08205f7120d0dcc0d00d9bdd4d32"
1949 1949
             },
1950 1950
             "dist": {
1951 1951
                 "type": "zip",
1952
-                "url": "https://api.github.com/repos/filamentphp/support/zipball/fa8ada5101be964daa8f112616945a8f2ca5929e",
1953
-                "reference": "fa8ada5101be964daa8f112616945a8f2ca5929e",
1952
+                "url": "https://api.github.com/repos/filamentphp/support/zipball/e7174cee7e1d08205f7120d0dcc0d00d9bdd4d32",
1953
+                "reference": "e7174cee7e1d08205f7120d0dcc0d00d9bdd4d32",
1954 1954
                 "shasum": ""
1955 1955
             },
1956 1956
             "require": {
@@ -1996,20 +1996,20 @@
1996 1996
                 "issues": "https://github.com/filamentphp/filament/issues",
1997 1997
                 "source": "https://github.com/filamentphp/filament"
1998 1998
             },
1999
-            "time": "2024-10-24T13:47:33+00:00"
1999
+            "time": "2024-10-31T13:38:25+00:00"
2000 2000
         },
2001 2001
         {
2002 2002
             "name": "filament/tables",
2003
-            "version": "v3.2.121",
2003
+            "version": "v3.2.122",
2004 2004
             "source": {
2005 2005
                 "type": "git",
2006 2006
                 "url": "https://github.com/filamentphp/tables.git",
2007
-                "reference": "7800832d8507a418787c5f05bd562b65d4601827"
2007
+                "reference": "56a852f7992a01ad8d7b85034cdbb2ae8a21086a"
2008 2008
             },
2009 2009
             "dist": {
2010 2010
                 "type": "zip",
2011
-                "url": "https://api.github.com/repos/filamentphp/tables/zipball/7800832d8507a418787c5f05bd562b65d4601827",
2012
-                "reference": "7800832d8507a418787c5f05bd562b65d4601827",
2011
+                "url": "https://api.github.com/repos/filamentphp/tables/zipball/56a852f7992a01ad8d7b85034cdbb2ae8a21086a",
2012
+                "reference": "56a852f7992a01ad8d7b85034cdbb2ae8a21086a",
2013 2013
                 "shasum": ""
2014 2014
             },
2015 2015
             "require": {
@@ -2048,11 +2048,11 @@
2048 2048
                 "issues": "https://github.com/filamentphp/filament/issues",
2049 2049
                 "source": "https://github.com/filamentphp/filament"
2050 2050
             },
2051
-            "time": "2024-10-24T13:47:33+00:00"
2051
+            "time": "2024-10-31T13:38:27+00:00"
2052 2052
         },
2053 2053
         {
2054 2054
             "name": "filament/widgets",
2055
-            "version": "v3.2.121",
2055
+            "version": "v3.2.122",
2056 2056
             "source": {
2057 2057
                 "type": "git",
2058 2058
                 "url": "https://github.com/filamentphp/widgets.git",
@@ -2908,16 +2908,16 @@
2908 2908
         },
2909 2909
         {
2910 2910
             "name": "laravel/framework",
2911
-            "version": "v11.29.0",
2911
+            "version": "v11.30.0",
2912 2912
             "source": {
2913 2913
                 "type": "git",
2914 2914
                 "url": "https://github.com/laravel/framework.git",
2915
-                "reference": "425054512c362835ba9c0307561973c8eeac7385"
2915
+                "reference": "dff716442d9c229d716be82ccc9a7de52eb97193"
2916 2916
             },
2917 2917
             "dist": {
2918 2918
                 "type": "zip",
2919
-                "url": "https://api.github.com/repos/laravel/framework/zipball/425054512c362835ba9c0307561973c8eeac7385",
2920
-                "reference": "425054512c362835ba9c0307561973c8eeac7385",
2919
+                "url": "https://api.github.com/repos/laravel/framework/zipball/dff716442d9c229d716be82ccc9a7de52eb97193",
2920
+                "reference": "dff716442d9c229d716be82ccc9a7de52eb97193",
2921 2921
                 "shasum": ""
2922 2922
             },
2923 2923
             "require": {
@@ -3113,7 +3113,7 @@
3113 3113
                 "issues": "https://github.com/laravel/framework/issues",
3114 3114
                 "source": "https://github.com/laravel/framework"
3115 3115
             },
3116
-            "time": "2024-10-22T14:13:31+00:00"
3116
+            "time": "2024-10-30T15:00:34+00:00"
3117 3117
         },
3118 3118
         {
3119 3119
             "name": "laravel/prompts",
@@ -9622,16 +9622,16 @@
9622 9622
         },
9623 9623
         {
9624 9624
             "name": "laravel/sail",
9625
-            "version": "v1.37.0",
9625
+            "version": "v1.37.1",
9626 9626
             "source": {
9627 9627
                 "type": "git",
9628 9628
                 "url": "https://github.com/laravel/sail.git",
9629
-                "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b"
9629
+                "reference": "7efa151ea0d16f48233d6a6cd69f81270acc6e93"
9630 9630
             },
9631 9631
             "dist": {
9632 9632
                 "type": "zip",
9633
-                "url": "https://api.github.com/repos/laravel/sail/zipball/5d385f2e698f0f774cdead82aff5d989fb95309b",
9634
-                "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b",
9633
+                "url": "https://api.github.com/repos/laravel/sail/zipball/7efa151ea0d16f48233d6a6cd69f81270acc6e93",
9634
+                "reference": "7efa151ea0d16f48233d6a6cd69f81270acc6e93",
9635 9635
                 "shasum": ""
9636 9636
             },
9637 9637
             "require": {
@@ -9681,7 +9681,7 @@
9681 9681
                 "issues": "https://github.com/laravel/sail/issues",
9682 9682
                 "source": "https://github.com/laravel/sail"
9683 9683
             },
9684
-            "time": "2024-10-21T17:13:38+00:00"
9684
+            "time": "2024-10-29T20:18:14+00:00"
9685 9685
         },
9686 9686
         {
9687 9687
             "name": "mockery/mockery",
@@ -9925,16 +9925,16 @@
9925 9925
         },
9926 9926
         {
9927 9927
             "name": "pestphp/pest",
9928
-            "version": "v3.5.0",
9928
+            "version": "v3.5.1",
9929 9929
             "source": {
9930 9930
                 "type": "git",
9931 9931
                 "url": "https://github.com/pestphp/pest.git",
9932
-                "reference": "eaeb133c77f3f5382620f0307c3b45b34961bcfc"
9932
+                "reference": "179d46ce97d52bcb3f791449ae94025c3f32e3e3"
9933 9933
             },
9934 9934
             "dist": {
9935 9935
                 "type": "zip",
9936
-                "url": "https://api.github.com/repos/pestphp/pest/zipball/eaeb133c77f3f5382620f0307c3b45b34961bcfc",
9937
-                "reference": "eaeb133c77f3f5382620f0307c3b45b34961bcfc",
9936
+                "url": "https://api.github.com/repos/pestphp/pest/zipball/179d46ce97d52bcb3f791449ae94025c3f32e3e3",
9937
+                "reference": "179d46ce97d52bcb3f791449ae94025c3f32e3e3",
9938 9938
                 "shasum": ""
9939 9939
             },
9940 9940
             "require": {
@@ -9945,18 +9945,18 @@
9945 9945
                 "pestphp/pest-plugin-arch": "^3.0.0",
9946 9946
                 "pestphp/pest-plugin-mutate": "^3.0.5",
9947 9947
                 "php": "^8.2.0",
9948
-                "phpunit/phpunit": "^11.4.2"
9948
+                "phpunit/phpunit": "^11.4.3"
9949 9949
             },
9950 9950
             "conflict": {
9951 9951
                 "filp/whoops": "<2.16.0",
9952
-                "phpunit/phpunit": ">11.4.2",
9952
+                "phpunit/phpunit": ">11.4.3",
9953 9953
                 "sebastian/exporter": "<6.0.0",
9954 9954
                 "webmozart/assert": "<1.11.0"
9955 9955
             },
9956 9956
             "require-dev": {
9957 9957
                 "pestphp/pest-dev-tools": "^3.3.0",
9958 9958
                 "pestphp/pest-plugin-type-coverage": "^3.1.0",
9959
-                "symfony/process": "^7.1.5"
9959
+                "symfony/process": "^7.1.6"
9960 9960
             },
9961 9961
             "bin": [
9962 9962
                 "bin/pest"
@@ -10021,7 +10021,7 @@
10021 10021
             ],
10022 10022
             "support": {
10023 10023
                 "issues": "https://github.com/pestphp/pest/issues",
10024
-                "source": "https://github.com/pestphp/pest/tree/v3.5.0"
10024
+                "source": "https://github.com/pestphp/pest/tree/v3.5.1"
10025 10025
             },
10026 10026
             "funding": [
10027 10027
                 {
@@ -10033,7 +10033,7 @@
10033 10033
                     "type": "github"
10034 10034
                 }
10035 10035
             ],
10036
-            "time": "2024-10-22T14:33:27+00:00"
10036
+            "time": "2024-10-31T16:12:45+00:00"
10037 10037
         },
10038 10038
         {
10039 10039
             "name": "pestphp/pest-plugin",
@@ -11164,16 +11164,16 @@
11164 11164
         },
11165 11165
         {
11166 11166
             "name": "phpunit/phpunit",
11167
-            "version": "11.4.2",
11167
+            "version": "11.4.3",
11168 11168
             "source": {
11169 11169
                 "type": "git",
11170 11170
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
11171
-                "reference": "1863643c3f04ad03dcb9c6996c294784cdda4805"
11171
+                "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76"
11172 11172
             },
11173 11173
             "dist": {
11174 11174
                 "type": "zip",
11175
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1863643c3f04ad03dcb9c6996c294784cdda4805",
11176
-                "reference": "1863643c3f04ad03dcb9c6996c294784cdda4805",
11175
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e8e8ed1854de5d36c088ec1833beae40d2dedd76",
11176
+                "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76",
11177 11177
                 "shasum": ""
11178 11178
             },
11179 11179
             "require": {
@@ -11244,7 +11244,7 @@
11244 11244
             "support": {
11245 11245
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
11246 11246
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
11247
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.2"
11247
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.3"
11248 11248
             },
11249 11249
             "funding": [
11250 11250
                 {
@@ -11260,7 +11260,7 @@
11260 11260
                     "type": "tidelift"
11261 11261
                 }
11262 11262
             ],
11263
-            "time": "2024-10-19T13:05:19+00:00"
11263
+            "time": "2024-10-28T13:07:50+00:00"
11264 11264
         },
11265 11265
         {
11266 11266
             "name": "rector/rector",
@@ -11493,16 +11493,16 @@
11493 11493
         },
11494 11494
         {
11495 11495
             "name": "sebastian/comparator",
11496
-            "version": "6.1.1",
11496
+            "version": "6.2.1",
11497 11497
             "source": {
11498 11498
                 "type": "git",
11499 11499
                 "url": "https://github.com/sebastianbergmann/comparator.git",
11500
-                "reference": "5ef523a49ae7a302b87b2102b72b1eda8918d686"
11500
+                "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739"
11501 11501
             },
11502 11502
             "dist": {
11503 11503
                 "type": "zip",
11504
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5ef523a49ae7a302b87b2102b72b1eda8918d686",
11505
-                "reference": "5ef523a49ae7a302b87b2102b72b1eda8918d686",
11504
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739",
11505
+                "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739",
11506 11506
                 "shasum": ""
11507 11507
             },
11508 11508
             "require": {
@@ -11513,12 +11513,12 @@
11513 11513
                 "sebastian/exporter": "^6.0"
11514 11514
             },
11515 11515
             "require-dev": {
11516
-                "phpunit/phpunit": "^11.3"
11516
+                "phpunit/phpunit": "^11.4"
11517 11517
             },
11518 11518
             "type": "library",
11519 11519
             "extra": {
11520 11520
                 "branch-alias": {
11521
-                    "dev-main": "6.1-dev"
11521
+                    "dev-main": "6.2-dev"
11522 11522
                 }
11523 11523
             },
11524 11524
             "autoload": {
@@ -11558,7 +11558,7 @@
11558 11558
             "support": {
11559 11559
                 "issues": "https://github.com/sebastianbergmann/comparator/issues",
11560 11560
                 "security": "https://github.com/sebastianbergmann/comparator/security/policy",
11561
-                "source": "https://github.com/sebastianbergmann/comparator/tree/6.1.1"
11561
+                "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1"
11562 11562
             },
11563 11563
             "funding": [
11564 11564
                 {
@@ -11566,7 +11566,7 @@
11566 11566
                     "type": "github"
11567 11567
                 }
11568 11568
             ],
11569
-            "time": "2024-10-18T15:00:48+00:00"
11569
+            "time": "2024-10-31T05:30:08+00:00"
11570 11570
         },
11571 11571
         {
11572 11572
             "name": "sebastian/complexity",

+ 44
- 0
config/chart-of-accounts.php Näytä tiedosto

@@ -8,6 +8,7 @@ return [
8 8
                 'multi_currency' => true,
9 9
                 'base_code' => '1000',
10 10
                 'bank_account_type' => 'depository',
11
+                'inverse_cash_flow' => false,
11 12
                 'accounts' => [
12 13
                     'Cash on Hand' => [
13 14
                         'description' => 'The amount of money held by the company in the form of cash.',
@@ -18,6 +19,7 @@ return [
18 19
                 'description' => 'Amounts owed to the company for goods sold or services rendered, including accounts receivable, notes receivable, and other receivables.',
19 20
                 'multi_currency' => false,
20 21
                 'base_code' => '1100',
22
+                'inverse_cash_flow' => true,
21 23
                 'accounts' => [
22 24
                     'Accounts Receivable' => [
23 25
                         'description' => 'The amount of money owed to the company by customers who have not yet paid for goods or services received.',
@@ -28,16 +30,19 @@ return [
28 30
                 'description' => 'The raw materials, work-in-progress goods and completely finished goods that are considered to be the portion of a business\'s assets that are ready or will be ready for sale.',
29 31
                 'multi_currency' => true,
30 32
                 'base_code' => '1200',
33
+                'inverse_cash_flow' => true,
31 34
             ],
32 35
             'Prepaid and Deferred Charges' => [
33 36
                 'description' => 'Payments made in advance for future goods or services, such as insurance premiums, rent, and prepaid taxes.',
34 37
                 'multi_currency' => true,
35 38
                 'base_code' => '1300',
39
+                'inverse_cash_flow' => true,
36 40
             ],
37 41
             'Other Current Assets' => [
38 42
                 'description' => 'Other assets that are expected to be converted to cash, sold, or consumed within one year or the business\'s operating cycle.',
39 43
                 'multi_currency' => true,
40 44
                 'base_code' => '1400',
45
+                'inverse_cash_flow' => true,
41 46
             ],
42 47
         ],
43 48
         'non_current_asset' => [
@@ -45,21 +50,25 @@ return [
45 50
                 'description' => 'Investments in securities like bonds and stocks, investments in other companies, or real estate held for more than one year, aiming for long-term benefits.',
46 51
                 'multi_currency' => true,
47 52
                 'base_code' => '1500',
53
+                'inverse_cash_flow' => true,
48 54
             ],
49 55
             'Fixed Assets' => [
50 56
                 'description' => 'Physical, tangible assets used in the business\'s operations with a useful life exceeding one year, such as buildings, machinery, and vehicles. These assets are subject to depreciation.',
51 57
                 'multi_currency' => true,
52 58
                 'base_code' => '1600',
59
+                'inverse_cash_flow' => true,
53 60
             ],
54 61
             'Intangible Assets' => [
55 62
                 'description' => 'Assets lacking physical substance but offering value to the business, like patents, copyrights, trademarks, software, and goodwill.',
56 63
                 'multi_currency' => true,
57 64
                 'base_code' => '1700',
65
+                'inverse_cash_flow' => true,
58 66
             ],
59 67
             'Other Non-Current Assets' => [
60 68
                 'description' => 'Includes long-term assets not classified in the above categories, such as long-term prepaid expenses, deferred tax assets, and loans made to other entities that are not expected to be settled within the next year.',
61 69
                 'multi_currency' => true,
62 70
                 'base_code' => '1800',
71
+                'inverse_cash_flow' => true,
63 72
             ],
64 73
         ],
65 74
         'contra_asset' => [
@@ -67,6 +76,7 @@ return [
67 76
                 'description' => 'Accounts that accumulate depreciation of tangible assets and amortization of intangible assets, reflecting the reduction in value over time.',
68 77
                 'multi_currency' => false,
69 78
                 'base_code' => '1900',
79
+                'inverse_cash_flow' => false,
70 80
                 'accounts' => [
71 81
                     'Accumulated Depreciation' => [
72 82
                         'description' => 'Used to account for the depreciation of fixed assets over time, offsetting assets like equipment or property.',
@@ -77,6 +87,7 @@ return [
77 87
                 'description' => 'Accounts representing estimated uncollected receivables, used to adjust the value of gross receivables to a realistic collectible amount.',
78 88
                 'multi_currency' => false,
79 89
                 'base_code' => '1940',
90
+                'inverse_cash_flow' => false,
80 91
                 'accounts' => [
81 92
                     'Allowance for Doubtful Accounts' => [
82 93
                         'description' => 'Used to account for potential bad debts that may not be collectable, offsetting receivables.',
@@ -87,6 +98,7 @@ return [
87 98
                 'description' => 'Accounts used to record adjustments in asset values due to impairments, market changes, or other factors affecting their recoverable amount.',
88 99
                 'multi_currency' => false,
89 100
                 'base_code' => '1950',
101
+                'inverse_cash_flow' => false,
90 102
             ],
91 103
         ],
92 104
         'current_liability' => [
@@ -94,6 +106,7 @@ return [
94 106
                 'description' => 'Liabilities arising from purchases of goods or services from suppliers, not yet paid for. This can include individual accounts payable and trade credits.',
95 107
                 'multi_currency' => true,
96 108
                 'base_code' => '2000',
109
+                'inverse_cash_flow' => false,
97 110
                 'accounts' => [
98 111
                     'Accounts Payable' => [
99 112
                         'description' => 'The amount of money owed by the company to suppliers for goods or services received.',
@@ -104,6 +117,7 @@ return [
104 117
                 'description' => 'Expenses that have been incurred but not yet paid, including wages, utilities, interest, and taxes. This category can house various accrued expense accounts.',
105 118
                 'multi_currency' => false,
106 119
                 'base_code' => '2100',
120
+                'inverse_cash_flow' => false,
107 121
                 'accounts' => [
108 122
                     'Sales Tax Payable' => [
109 123
                         'description' => 'The amount of money owed to the government for sales tax collected from customers.',
@@ -114,16 +128,19 @@ return [
114 128
                 'description' => 'Debt obligations due within the next year, such as bank loans, lines of credit, and short-term notes. This category can cover multiple short-term debt accounts.',
115 129
                 'multi_currency' => true,
116 130
                 'base_code' => '2200',
131
+                'inverse_cash_flow' => false,
117 132
             ],
118 133
             'Customer Deposits and Advances' => [
119 134
                 'description' => 'Funds received in advance for goods or services to be provided in the future, including customer deposits and prepayments.',
120 135
                 'multi_currency' => true,
121 136
                 'base_code' => '2300',
137
+                'inverse_cash_flow' => false,
122 138
             ],
123 139
             'Other Current Liabilities' => [
124 140
                 'description' => 'A grouping for miscellaneous short-term liabilities not covered in other categories, like the current portion of long-term debts, short-term provisions, and other similar obligations.',
125 141
                 'multi_currency' => true,
126 142
                 'base_code' => '2400',
143
+                'inverse_cash_flow' => false,
127 144
             ],
128 145
         ],
129 146
         'non_current_liability' => [
@@ -131,16 +148,19 @@ return [
131 148
                 'description' => 'Obligations such as bonds, mortgages, and loans with a maturity of more than one year, covering various types of long-term debt instruments.',
132 149
                 'multi_currency' => true,
133 150
                 'base_code' => '2500',
151
+                'inverse_cash_flow' => false,
134 152
             ],
135 153
             'Deferred Tax Liabilities' => [
136 154
                 'description' => 'Taxes incurred in the current period but payable in a future period, typically due to differences in accounting methods between tax reporting and financial reporting.',
137 155
                 'multi_currency' => false,
138 156
                 'base_code' => '2600',
157
+                'inverse_cash_flow' => false,
139 158
             ],
140 159
             'Other Long-Term Liabilities' => [
141 160
                 'description' => 'Liabilities not due within the next year and not classified as long-term debt or deferred taxes, including pension liabilities, lease obligations, and long-term provisions.',
142 161
                 'multi_currency' => true,
143 162
                 'base_code' => '2700',
163
+                'inverse_cash_flow' => false,
144 164
             ],
145 165
         ],
146 166
         'contra_liability' => [
@@ -148,11 +168,13 @@ return [
148 168
                 'description' => 'Accumulated amount representing the reduction of bond or loan liabilities, reflecting the difference between the face value and the discounted issuance price over time.',
149 169
                 'multi_currency' => false,
150 170
                 'base_code' => '2900',
171
+                'inverse_cash_flow' => false,
151 172
             ],
152 173
             'Valuation Adjustments for Liabilities' => [
153 174
                 'description' => 'Adjustments made to the recorded value of liabilities, such as changes in fair value of derivative liabilities or adjustments for hedging activities.',
154 175
                 'multi_currency' => false,
155 176
                 'base_code' => '2950',
177
+                'inverse_cash_flow' => false,
156 178
             ],
157 179
         ],
158 180
         'equity' => [
@@ -160,6 +182,7 @@ return [
160 182
                 'description' => 'Funds provided by owners or shareholders for starting the business and subsequent capital injections. Reflects the financial commitment of the owner(s) or shareholders to the business.',
161 183
                 'multi_currency' => true,
162 184
                 'base_code' => '3000',
185
+                'inverse_cash_flow' => false,
163 186
                 'accounts' => [
164 187
                     'Owner\'s Investment' => [
165 188
                         'description' => 'The amount of money invested by the owner(s) or shareholders to start or expand the business.',
@@ -172,6 +195,7 @@ return [
172 195
                 'description' => 'Equity that is deducted from gross equity to arrive at net equity. This includes treasury stock, which is stock that has been repurchased by the company.',
173 196
                 'multi_currency' => false,
174 197
                 'base_code' => '3900',
198
+                'inverse_cash_flow' => true,
175 199
                 'accounts' => [
176 200
                     'Owner\'s Drawings' => [
177 201
                         'description' => 'The amount of money withdrawn by the owner(s) or shareholders from the business for personal use, reducing equity.',
@@ -184,6 +208,7 @@ return [
184 208
                 'description' => 'Income from selling physical or digital products. Includes revenue from all product lines or categories.',
185 209
                 'multi_currency' => false,
186 210
                 'base_code' => '4000',
211
+                'inverse_cash_flow' => false,
187 212
                 'accounts' => [
188 213
                     'Product Sales' => [
189 214
                         'description' => 'The amount of money earned from selling physical or digital products.',
@@ -194,11 +219,13 @@ return [
194 219
                 'description' => 'Income earned from providing services, encompassing activities like consulting, maintenance, and repair services.',
195 220
                 'multi_currency' => false,
196 221
                 'base_code' => '4100',
222
+                'inverse_cash_flow' => false,
197 223
             ],
198 224
             'Other Operating Revenue' => [
199 225
                 'description' => 'Income from other business operations not classified as product sales or services, such as rental income, royalties, or income from licensing agreements.',
200 226
                 'multi_currency' => false,
201 227
                 'base_code' => '4200',
228
+                'inverse_cash_flow' => false,
202 229
             ],
203 230
         ],
204 231
         'non_operating_revenue' => [
@@ -206,6 +233,7 @@ return [
206 233
                 'description' => 'Earnings from investments, including dividends, interest from securities, and profits from real estate investments.',
207 234
                 'multi_currency' => false,
208 235
                 'base_code' => '4500',
236
+                'inverse_cash_flow' => false,
209 237
                 'accounts' => [
210 238
                     'Dividends' => [
211 239
                         'description' => 'The amount of money received from investments in shares of other companies.',
@@ -219,11 +247,13 @@ return [
219 247
                 'description' => 'Profits from selling assets like property, equipment, or investments, excluding regular sales of inventory.',
220 248
                 'multi_currency' => false,
221 249
                 'base_code' => '4600',
250
+                'inverse_cash_flow' => false,
222 251
             ],
223 252
             'Other Non-Operating Revenue' => [
224 253
                 'description' => 'Income from sources not related to the main business activities, such as legal settlements, insurance recoveries, or gains from foreign exchange transactions.',
225 254
                 'multi_currency' => false,
226 255
                 'base_code' => '4700',
256
+                'inverse_cash_flow' => false,
227 257
                 'accounts' => [
228 258
                     'Gain on Foreign Exchange' => [
229 259
                         'description' => 'The amount of money earned from foreign exchange transactions due to favorable exchange rate changes.',
@@ -236,6 +266,7 @@ return [
236 266
                 'description' => 'Revenue that is deducted from gross revenue to arrive at net revenue. This includes sales discounts, returns, and allowances.',
237 267
                 'multi_currency' => false,
238 268
                 'base_code' => '4900',
269
+                'inverse_cash_flow' => true,
239 270
                 'accounts' => [
240 271
                     'Sales Returns and Allowances' => [
241 272
                         'description' => 'The amount of money returned to customers or deducted from sales due to returned goods or allowances granted.',
@@ -251,6 +282,7 @@ return [
251 282
                 'description' => 'Revenue that has not been categorized into other revenue categories.',
252 283
                 'multi_currency' => false,
253 284
                 'base_code' => '4950',
285
+                'inverse_cash_flow' => false,
254 286
                 'accounts' => [
255 287
                     'Uncategorized Income' => [
256 288
                         'description' => 'Revenue from other business operations that don\'t fall under regular sales or services. This account is used as the default for all new transactions.',
@@ -263,11 +295,13 @@ return [
263 295
                 'description' => 'Direct costs attributable to the production of goods sold by a company. This includes material costs and direct labor.',
264 296
                 'multi_currency' => false,
265 297
                 'base_code' => '5000',
298
+                'inverse_cash_flow' => true,
266 299
             ],
267 300
             'Payroll and Employee Benefits' => [
268 301
                 'description' => 'Expenses related to employee compensation, including salaries, wages, bonuses, commissions, and payroll taxes.',
269 302
                 'multi_currency' => false,
270 303
                 'base_code' => '5050',
304
+                'inverse_cash_flow' => true,
271 305
                 'accounts' => [
272 306
                     'Salaries and Wages' => [
273 307
                         'description' => 'The amount of money paid to employees for their work, including regular salaries and hourly wages.',
@@ -287,6 +321,7 @@ return [
287 321
                 'description' => 'Costs incurred for business premises, including rent or lease payments, property taxes, utilities, and building maintenance.',
288 322
                 'multi_currency' => false,
289 323
                 'base_code' => '5100',
324
+                'inverse_cash_flow' => true,
290 325
                 'accounts' => [
291 326
                     'Rent or Lease Payments' => [
292 327
                         'description' => 'The amount of money paid for renting or leasing business premises.',
@@ -309,6 +344,7 @@ return [
309 344
                 'description' => 'Expenses related to general business operations, such as office supplies, insurance, and professional fees.',
310 345
                 'multi_currency' => false,
311 346
                 'base_code' => '5150',
347
+                'inverse_cash_flow' => true,
312 348
                 'accounts' => [
313 349
                     'Food and Drink' => [
314 350
                         'description' => 'The amount of money spent on food and drink for business purposes, such as office snacks, meals, and catering.',
@@ -340,6 +376,7 @@ return [
340 376
                 'description' => 'Expenses related to marketing and advertising activities, such as advertising campaigns, promotional events, and marketing materials.',
341 377
                 'multi_currency' => false,
342 378
                 'base_code' => '5200',
379
+                'inverse_cash_flow' => true,
343 380
                 'accounts' => [
344 381
                     'Advertising' => [
345 382
                         'description' => 'The amount of money spent on advertising campaigns, including print, digital, and outdoor advertising.',
@@ -353,11 +390,13 @@ return [
353 390
                 'description' => 'Expenses incurred in the process of researching and developing new products or services.',
354 391
                 'multi_currency' => false,
355 392
                 'base_code' => '5250',
393
+                'inverse_cash_flow' => true,
356 394
             ],
357 395
             'Other Operating Expenses' => [
358 396
                 'description' => 'Miscellaneous expenses not categorized elsewhere, such as research and development costs, legal fees, and other irregular expenses.',
359 397
                 'multi_currency' => false,
360 398
                 'base_code' => '5300',
399
+                'inverse_cash_flow' => true,
361 400
             ],
362 401
         ],
363 402
         'non_operating_expense' => [
@@ -365,16 +404,19 @@ return [
365 404
                 'description' => 'Expenses related to borrowing and financing, such as interest payments on loans, bonds, and credit lines.',
366 405
                 'multi_currency' => false,
367 406
                 'base_code' => '5500',
407
+                'inverse_cash_flow' => true,
368 408
             ],
369 409
             'Tax Expenses' => [
370 410
                 'description' => 'Various taxes incurred by the business, including income tax, sales tax, property tax, and payroll tax.',
371 411
                 'multi_currency' => false,
372 412
                 'base_code' => '5600',
413
+                'inverse_cash_flow' => true,
373 414
             ],
374 415
             'Other Non-Operating Expense' => [
375 416
                 'description' => 'Expenses not related to primary business activities, like losses from asset disposals, legal settlements, restructuring costs, or foreign exchange losses.',
376 417
                 'multi_currency' => false,
377 418
                 'base_code' => '5700',
419
+                'inverse_cash_flow' => true,
378 420
                 'accounts' => [
379 421
                     'Loss on Foreign Exchange' => [
380 422
                         'description' => 'The amount of money lost from foreign exchange transactions due to unfavorable exchange rate changes.',
@@ -387,6 +429,7 @@ return [
387 429
                 'description' => 'Expenses that are deducted from gross expenses to arrive at net expenses. This includes purchase discounts, returns, and allowances.',
388 430
                 'multi_currency' => false,
389 431
                 'base_code' => '5900',
432
+                'inverse_cash_flow' => false,
390 433
                 'accounts' => [
391 434
                     'Purchase Returns and Allowances' => [
392 435
                         'description' => 'The amount of money returned to suppliers or deducted from purchases due to returned goods or allowances granted.',
@@ -402,6 +445,7 @@ return [
402 445
                 'description' => 'Expenses that have not been categorized into other expense categories.',
403 446
                 'multi_currency' => false,
404 447
                 'base_code' => '5950',
448
+                'inverse_cash_flow' => true,
405 449
                 'accounts' => [
406 450
                     'Uncategorized Expense' => [
407 451
                         'description' => 'Expenses not classified into regular expense categories. This account is used as the default for all new transactions.',

+ 28
- 0
database/migrations/2024_11_02_182328_add_inverse_cash_flow_to_account_subtypes_table.php Näytä tiedosto

@@ -0,0 +1,28 @@
1
+<?php
2
+
3
+use Illuminate\Database\Migrations\Migration;
4
+use Illuminate\Database\Schema\Blueprint;
5
+use Illuminate\Support\Facades\Schema;
6
+
7
+return new class extends Migration
8
+{
9
+    /**
10
+     * Run the migrations.
11
+     */
12
+    public function up(): void
13
+    {
14
+        Schema::table('account_subtypes', function (Blueprint $table) {
15
+            $table->boolean('inverse_cash_flow')->default(false)->after('multi_currency');
16
+        });
17
+    }
18
+
19
+    /**
20
+     * Reverse the migrations.
21
+     */
22
+    public function down(): void
23
+    {
24
+        Schema::table('account_subtypes', function (Blueprint $table) {
25
+            $table->dropColumn('inverse_cash_flow');
26
+        });
27
+    }
28
+};

+ 81
- 81
package-lock.json Näytä tiedosto

@@ -541,9 +541,9 @@
541 541
             }
542 542
         },
543 543
         "node_modules/@rollup/rollup-android-arm-eabi": {
544
-            "version": "4.24.2",
545
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.2.tgz",
546
-            "integrity": "sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA==",
544
+            "version": "4.24.3",
545
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz",
546
+            "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==",
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.24.2",
559
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.2.tgz",
560
-            "integrity": "sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA==",
558
+            "version": "4.24.3",
559
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz",
560
+            "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==",
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.24.2",
573
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.2.tgz",
574
-            "integrity": "sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg==",
572
+            "version": "4.24.3",
573
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz",
574
+            "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==",
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.24.2",
587
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.2.tgz",
588
-            "integrity": "sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA==",
586
+            "version": "4.24.3",
587
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz",
588
+            "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==",
589 589
             "cpu": [
590 590
                 "x64"
591 591
             ],
@@ -597,9 +597,9 @@
597 597
             ]
598 598
         },
599 599
         "node_modules/@rollup/rollup-freebsd-arm64": {
600
-            "version": "4.24.2",
601
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.2.tgz",
602
-            "integrity": "sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw==",
600
+            "version": "4.24.3",
601
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz",
602
+            "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==",
603 603
             "cpu": [
604 604
                 "arm64"
605 605
             ],
@@ -611,9 +611,9 @@
611 611
             ]
612 612
         },
613 613
         "node_modules/@rollup/rollup-freebsd-x64": {
614
-            "version": "4.24.2",
615
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.2.tgz",
616
-            "integrity": "sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg==",
614
+            "version": "4.24.3",
615
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz",
616
+            "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==",
617 617
             "cpu": [
618 618
                 "x64"
619 619
             ],
@@ -625,9 +625,9 @@
625 625
             ]
626 626
         },
627 627
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
628
-            "version": "4.24.2",
629
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.2.tgz",
630
-            "integrity": "sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig==",
628
+            "version": "4.24.3",
629
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz",
630
+            "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==",
631 631
             "cpu": [
632 632
                 "arm"
633 633
             ],
@@ -639,9 +639,9 @@
639 639
             ]
640 640
         },
641 641
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
642
-            "version": "4.24.2",
643
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.2.tgz",
644
-            "integrity": "sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw==",
642
+            "version": "4.24.3",
643
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz",
644
+            "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==",
645 645
             "cpu": [
646 646
                 "arm"
647 647
             ],
@@ -653,9 +653,9 @@
653 653
             ]
654 654
         },
655 655
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
656
-            "version": "4.24.2",
657
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.2.tgz",
658
-            "integrity": "sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ==",
656
+            "version": "4.24.3",
657
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz",
658
+            "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==",
659 659
             "cpu": [
660 660
                 "arm64"
661 661
             ],
@@ -667,9 +667,9 @@
667 667
             ]
668 668
         },
669 669
         "node_modules/@rollup/rollup-linux-arm64-musl": {
670
-            "version": "4.24.2",
671
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.2.tgz",
672
-            "integrity": "sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA==",
670
+            "version": "4.24.3",
671
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz",
672
+            "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==",
673 673
             "cpu": [
674 674
                 "arm64"
675 675
             ],
@@ -681,9 +681,9 @@
681 681
             ]
682 682
         },
683 683
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
684
-            "version": "4.24.2",
685
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.2.tgz",
686
-            "integrity": "sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw==",
684
+            "version": "4.24.3",
685
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz",
686
+            "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==",
687 687
             "cpu": [
688 688
                 "ppc64"
689 689
             ],
@@ -695,9 +695,9 @@
695 695
             ]
696 696
         },
697 697
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
698
-            "version": "4.24.2",
699
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.2.tgz",
700
-            "integrity": "sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg==",
698
+            "version": "4.24.3",
699
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz",
700
+            "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==",
701 701
             "cpu": [
702 702
                 "riscv64"
703 703
             ],
@@ -709,9 +709,9 @@
709 709
             ]
710 710
         },
711 711
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
712
-            "version": "4.24.2",
713
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.2.tgz",
714
-            "integrity": "sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q==",
712
+            "version": "4.24.3",
713
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz",
714
+            "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==",
715 715
             "cpu": [
716 716
                 "s390x"
717 717
             ],
@@ -723,9 +723,9 @@
723 723
             ]
724 724
         },
725 725
         "node_modules/@rollup/rollup-linux-x64-gnu": {
726
-            "version": "4.24.2",
727
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.2.tgz",
728
-            "integrity": "sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ==",
726
+            "version": "4.24.3",
727
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz",
728
+            "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==",
729 729
             "cpu": [
730 730
                 "x64"
731 731
             ],
@@ -737,9 +737,9 @@
737 737
             ]
738 738
         },
739 739
         "node_modules/@rollup/rollup-linux-x64-musl": {
740
-            "version": "4.24.2",
741
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.2.tgz",
742
-            "integrity": "sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q==",
740
+            "version": "4.24.3",
741
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz",
742
+            "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==",
743 743
             "cpu": [
744 744
                 "x64"
745 745
             ],
@@ -751,9 +751,9 @@
751 751
             ]
752 752
         },
753 753
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
754
-            "version": "4.24.2",
755
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.2.tgz",
756
-            "integrity": "sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw==",
754
+            "version": "4.24.3",
755
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz",
756
+            "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==",
757 757
             "cpu": [
758 758
                 "arm64"
759 759
             ],
@@ -765,9 +765,9 @@
765 765
             ]
766 766
         },
767 767
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
768
-            "version": "4.24.2",
769
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.2.tgz",
770
-            "integrity": "sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw==",
768
+            "version": "4.24.3",
769
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz",
770
+            "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==",
771 771
             "cpu": [
772 772
                 "ia32"
773 773
             ],
@@ -779,9 +779,9 @@
779 779
             ]
780 780
         },
781 781
         "node_modules/@rollup/rollup-win32-x64-msvc": {
782
-            "version": "4.24.2",
783
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.2.tgz",
784
-            "integrity": "sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA==",
782
+            "version": "4.24.3",
783
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz",
784
+            "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==",
785 785
             "cpu": [
786 786
                 "x64"
787 787
             ],
@@ -1026,9 +1026,9 @@
1026 1026
             }
1027 1027
         },
1028 1028
         "node_modules/caniuse-lite": {
1029
-            "version": "1.0.30001672",
1030
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001672.tgz",
1031
-            "integrity": "sha512-XhW1vRo1ob6aeK2w3rTohwTPBLse/rvjq+s3RTSBwnlZqoFFjx9cHsShJjAIbLsLjyoacaTxpLZy9v3gg6zypw==",
1029
+            "version": "1.0.30001676",
1030
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001676.tgz",
1031
+            "integrity": "sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==",
1032 1032
             "dev": true,
1033 1033
             "funding": [
1034 1034
                 {
@@ -1187,9 +1187,9 @@
1187 1187
             "license": "MIT"
1188 1188
         },
1189 1189
         "node_modules/electron-to-chromium": {
1190
-            "version": "1.5.47",
1191
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.47.tgz",
1192
-            "integrity": "sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==",
1190
+            "version": "1.5.50",
1191
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz",
1192
+            "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==",
1193 1193
             "dev": true,
1194 1194
             "license": "ISC"
1195 1195
         },
@@ -2199,9 +2199,9 @@
2199 2199
             }
2200 2200
         },
2201 2201
         "node_modules/rollup": {
2202
-            "version": "4.24.2",
2203
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.2.tgz",
2204
-            "integrity": "sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww==",
2202
+            "version": "4.24.3",
2203
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz",
2204
+            "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==",
2205 2205
             "dev": true,
2206 2206
             "license": "MIT",
2207 2207
             "dependencies": {
@@ -2215,24 +2215,24 @@
2215 2215
                 "npm": ">=8.0.0"
2216 2216
             },
2217 2217
             "optionalDependencies": {
2218
-                "@rollup/rollup-android-arm-eabi": "4.24.2",
2219
-                "@rollup/rollup-android-arm64": "4.24.2",
2220
-                "@rollup/rollup-darwin-arm64": "4.24.2",
2221
-                "@rollup/rollup-darwin-x64": "4.24.2",
2222
-                "@rollup/rollup-freebsd-arm64": "4.24.2",
2223
-                "@rollup/rollup-freebsd-x64": "4.24.2",
2224
-                "@rollup/rollup-linux-arm-gnueabihf": "4.24.2",
2225
-                "@rollup/rollup-linux-arm-musleabihf": "4.24.2",
2226
-                "@rollup/rollup-linux-arm64-gnu": "4.24.2",
2227
-                "@rollup/rollup-linux-arm64-musl": "4.24.2",
2228
-                "@rollup/rollup-linux-powerpc64le-gnu": "4.24.2",
2229
-                "@rollup/rollup-linux-riscv64-gnu": "4.24.2",
2230
-                "@rollup/rollup-linux-s390x-gnu": "4.24.2",
2231
-                "@rollup/rollup-linux-x64-gnu": "4.24.2",
2232
-                "@rollup/rollup-linux-x64-musl": "4.24.2",
2233
-                "@rollup/rollup-win32-arm64-msvc": "4.24.2",
2234
-                "@rollup/rollup-win32-ia32-msvc": "4.24.2",
2235
-                "@rollup/rollup-win32-x64-msvc": "4.24.2",
2218
+                "@rollup/rollup-android-arm-eabi": "4.24.3",
2219
+                "@rollup/rollup-android-arm64": "4.24.3",
2220
+                "@rollup/rollup-darwin-arm64": "4.24.3",
2221
+                "@rollup/rollup-darwin-x64": "4.24.3",
2222
+                "@rollup/rollup-freebsd-arm64": "4.24.3",
2223
+                "@rollup/rollup-freebsd-x64": "4.24.3",
2224
+                "@rollup/rollup-linux-arm-gnueabihf": "4.24.3",
2225
+                "@rollup/rollup-linux-arm-musleabihf": "4.24.3",
2226
+                "@rollup/rollup-linux-arm64-gnu": "4.24.3",
2227
+                "@rollup/rollup-linux-arm64-musl": "4.24.3",
2228
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3",
2229
+                "@rollup/rollup-linux-riscv64-gnu": "4.24.3",
2230
+                "@rollup/rollup-linux-s390x-gnu": "4.24.3",
2231
+                "@rollup/rollup-linux-x64-gnu": "4.24.3",
2232
+                "@rollup/rollup-linux-x64-musl": "4.24.3",
2233
+                "@rollup/rollup-win32-arm64-msvc": "4.24.3",
2234
+                "@rollup/rollup-win32-ia32-msvc": "4.24.3",
2235
+                "@rollup/rollup-win32-x64-msvc": "4.24.3",
2236 2236
                 "fsevents": "~2.3.2"
2237 2237
             }
2238 2238
         },

Loading…
Peruuta
Tallenna