Andrew Wallo 1 년 전
부모
커밋
fa9378604c
6개의 변경된 파일406개의 추가작업 그리고 293개의 파일을 삭제
  1. 1
    1
      app/Facades/Accounting.php
  2. 210
    209
      composer.lock
  3. 79
    79
      package-lock.json
  4. 103
    0
      tests/Feature/Reports/AccountBalancesReportTest.php
  5. 6
    4
      tests/Feature/Reports/TrialBalanceReportTest.php
  6. 7
    0
      tests/Helpers/helpers.php

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

13
  * @method static Money getNetMovement(Account $account, string $startDate, string $endDate)
13
  * @method static Money getNetMovement(Account $account, string $startDate, string $endDate)
14
  * @method static Money|null getStartingBalance(Account $account, string $startDate)
14
  * @method static Money|null getStartingBalance(Account $account, string $startDate)
15
  * @method static Money|null getEndingBalance(Account $account, string $startDate, string $endDate)
15
  * @method static Money|null getEndingBalance(Account $account, string $startDate, string $endDate)
16
- * @method static array getBalances(Account $account, string $startDate, string $endDate)
16
+ * @method static array getBalances(Account $account, string $startDate, string $endDate, array $fields)
17
  * @method static Money getTotalBalanceForAllBankAccounts(string $startDate, string $endDate)
17
  * @method static Money getTotalBalanceForAllBankAccounts(string $startDate, string $endDate)
18
  * @method static string getEarliestTransactionDate()
18
  * @method static string getEarliestTransactionDate()
19
  *
19
  *

+ 210
- 209
composer.lock
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


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

541
             }
541
             }
542
         },
542
         },
543
         "node_modules/@rollup/rollup-android-arm-eabi": {
543
         "node_modules/@rollup/rollup-android-arm-eabi": {
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==",
544
+            "version": "4.22.4",
545
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz",
546
+            "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==",
547
             "cpu": [
547
             "cpu": [
548
                 "arm"
548
                 "arm"
549
             ],
549
             ],
555
             ]
555
             ]
556
         },
556
         },
557
         "node_modules/@rollup/rollup-android-arm64": {
557
         "node_modules/@rollup/rollup-android-arm64": {
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==",
558
+            "version": "4.22.4",
559
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz",
560
+            "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==",
561
             "cpu": [
561
             "cpu": [
562
                 "arm64"
562
                 "arm64"
563
             ],
563
             ],
569
             ]
569
             ]
570
         },
570
         },
571
         "node_modules/@rollup/rollup-darwin-arm64": {
571
         "node_modules/@rollup/rollup-darwin-arm64": {
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==",
572
+            "version": "4.22.4",
573
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz",
574
+            "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==",
575
             "cpu": [
575
             "cpu": [
576
                 "arm64"
576
                 "arm64"
577
             ],
577
             ],
583
             ]
583
             ]
584
         },
584
         },
585
         "node_modules/@rollup/rollup-darwin-x64": {
585
         "node_modules/@rollup/rollup-darwin-x64": {
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==",
586
+            "version": "4.22.4",
587
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz",
588
+            "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==",
589
             "cpu": [
589
             "cpu": [
590
                 "x64"
590
                 "x64"
591
             ],
591
             ],
597
             ]
597
             ]
598
         },
598
         },
599
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
599
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
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==",
600
+            "version": "4.22.4",
601
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz",
602
+            "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==",
603
             "cpu": [
603
             "cpu": [
604
                 "arm"
604
                 "arm"
605
             ],
605
             ],
611
             ]
611
             ]
612
         },
612
         },
613
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
613
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
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==",
614
+            "version": "4.22.4",
615
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz",
616
+            "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==",
617
             "cpu": [
617
             "cpu": [
618
                 "arm"
618
                 "arm"
619
             ],
619
             ],
625
             ]
625
             ]
626
         },
626
         },
627
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
627
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
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==",
628
+            "version": "4.22.4",
629
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz",
630
+            "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==",
631
             "cpu": [
631
             "cpu": [
632
                 "arm64"
632
                 "arm64"
633
             ],
633
             ],
639
             ]
639
             ]
640
         },
640
         },
641
         "node_modules/@rollup/rollup-linux-arm64-musl": {
641
         "node_modules/@rollup/rollup-linux-arm64-musl": {
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==",
642
+            "version": "4.22.4",
643
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz",
644
+            "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==",
645
             "cpu": [
645
             "cpu": [
646
                 "arm64"
646
                 "arm64"
647
             ],
647
             ],
653
             ]
653
             ]
654
         },
654
         },
655
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
655
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
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==",
656
+            "version": "4.22.4",
657
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz",
658
+            "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==",
659
             "cpu": [
659
             "cpu": [
660
                 "ppc64"
660
                 "ppc64"
661
             ],
661
             ],
667
             ]
667
             ]
668
         },
668
         },
669
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
669
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
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==",
670
+            "version": "4.22.4",
671
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz",
672
+            "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==",
673
             "cpu": [
673
             "cpu": [
674
                 "riscv64"
674
                 "riscv64"
675
             ],
675
             ],
681
             ]
681
             ]
682
         },
682
         },
683
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
683
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
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==",
684
+            "version": "4.22.4",
685
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz",
686
+            "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==",
687
             "cpu": [
687
             "cpu": [
688
                 "s390x"
688
                 "s390x"
689
             ],
689
             ],
695
             ]
695
             ]
696
         },
696
         },
697
         "node_modules/@rollup/rollup-linux-x64-gnu": {
697
         "node_modules/@rollup/rollup-linux-x64-gnu": {
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==",
698
+            "version": "4.22.4",
699
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz",
700
+            "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==",
701
             "cpu": [
701
             "cpu": [
702
                 "x64"
702
                 "x64"
703
             ],
703
             ],
709
             ]
709
             ]
710
         },
710
         },
711
         "node_modules/@rollup/rollup-linux-x64-musl": {
711
         "node_modules/@rollup/rollup-linux-x64-musl": {
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==",
712
+            "version": "4.22.4",
713
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz",
714
+            "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==",
715
             "cpu": [
715
             "cpu": [
716
                 "x64"
716
                 "x64"
717
             ],
717
             ],
723
             ]
723
             ]
724
         },
724
         },
725
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
725
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
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==",
726
+            "version": "4.22.4",
727
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz",
728
+            "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==",
729
             "cpu": [
729
             "cpu": [
730
                 "arm64"
730
                 "arm64"
731
             ],
731
             ],
737
             ]
737
             ]
738
         },
738
         },
739
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
739
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
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==",
740
+            "version": "4.22.4",
741
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz",
742
+            "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==",
743
             "cpu": [
743
             "cpu": [
744
                 "ia32"
744
                 "ia32"
745
             ],
745
             ],
751
             ]
751
             ]
752
         },
752
         },
753
         "node_modules/@rollup/rollup-win32-x64-msvc": {
753
         "node_modules/@rollup/rollup-win32-x64-msvc": {
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==",
754
+            "version": "4.22.4",
755
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz",
756
+            "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==",
757
             "cpu": [
757
             "cpu": [
758
                 "x64"
758
                 "x64"
759
             ],
759
             ],
998
             }
998
             }
999
         },
999
         },
1000
         "node_modules/caniuse-lite": {
1000
         "node_modules/caniuse-lite": {
1001
-            "version": "1.0.30001660",
1002
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz",
1003
-            "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==",
1001
+            "version": "1.0.30001663",
1002
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz",
1003
+            "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==",
1004
             "dev": true,
1004
             "dev": true,
1005
             "funding": [
1005
             "funding": [
1006
                 {
1006
                 {
1159
             "license": "MIT"
1159
             "license": "MIT"
1160
         },
1160
         },
1161
         "node_modules/electron-to-chromium": {
1161
         "node_modules/electron-to-chromium": {
1162
-            "version": "1.5.25",
1163
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.25.tgz",
1164
-            "integrity": "sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g==",
1162
+            "version": "1.5.28",
1163
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz",
1164
+            "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==",
1165
             "dev": true,
1165
             "dev": true,
1166
             "license": "ISC"
1166
             "license": "ISC"
1167
         },
1167
         },
2171
             }
2171
             }
2172
         },
2172
         },
2173
         "node_modules/rollup": {
2173
         "node_modules/rollup": {
2174
-            "version": "4.21.3",
2175
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz",
2176
-            "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==",
2174
+            "version": "4.22.4",
2175
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz",
2176
+            "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==",
2177
             "dev": true,
2177
             "dev": true,
2178
             "license": "MIT",
2178
             "license": "MIT",
2179
             "dependencies": {
2179
             "dependencies": {
2187
                 "npm": ">=8.0.0"
2187
                 "npm": ">=8.0.0"
2188
             },
2188
             },
2189
             "optionalDependencies": {
2189
             "optionalDependencies": {
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",
2190
+                "@rollup/rollup-android-arm-eabi": "4.22.4",
2191
+                "@rollup/rollup-android-arm64": "4.22.4",
2192
+                "@rollup/rollup-darwin-arm64": "4.22.4",
2193
+                "@rollup/rollup-darwin-x64": "4.22.4",
2194
+                "@rollup/rollup-linux-arm-gnueabihf": "4.22.4",
2195
+                "@rollup/rollup-linux-arm-musleabihf": "4.22.4",
2196
+                "@rollup/rollup-linux-arm64-gnu": "4.22.4",
2197
+                "@rollup/rollup-linux-arm64-musl": "4.22.4",
2198
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4",
2199
+                "@rollup/rollup-linux-riscv64-gnu": "4.22.4",
2200
+                "@rollup/rollup-linux-s390x-gnu": "4.22.4",
2201
+                "@rollup/rollup-linux-x64-gnu": "4.22.4",
2202
+                "@rollup/rollup-linux-x64-musl": "4.22.4",
2203
+                "@rollup/rollup-win32-arm64-msvc": "4.22.4",
2204
+                "@rollup/rollup-win32-ia32-msvc": "4.22.4",
2205
+                "@rollup/rollup-win32-x64-msvc": "4.22.4",
2206
                 "fsevents": "~2.3.2"
2206
                 "fsevents": "~2.3.2"
2207
             }
2207
             }
2208
         },
2208
         },
2417
             }
2417
             }
2418
         },
2418
         },
2419
         "node_modules/tailwindcss": {
2419
         "node_modules/tailwindcss": {
2420
-            "version": "3.4.12",
2421
-            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.12.tgz",
2422
-            "integrity": "sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==",
2420
+            "version": "3.4.13",
2421
+            "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
2422
+            "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
2423
             "dev": true,
2423
             "dev": true,
2424
             "license": "MIT",
2424
             "license": "MIT",
2425
             "dependencies": {
2425
             "dependencies": {
2550
             "license": "MIT"
2550
             "license": "MIT"
2551
         },
2551
         },
2552
         "node_modules/vite": {
2552
         "node_modules/vite": {
2553
-            "version": "5.4.6",
2554
-            "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz",
2555
-            "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==",
2553
+            "version": "5.4.7",
2554
+            "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.7.tgz",
2555
+            "integrity": "sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==",
2556
             "dev": true,
2556
             "dev": true,
2557
             "license": "MIT",
2557
             "license": "MIT",
2558
             "dependencies": {
2558
             "dependencies": {

+ 103
- 0
tests/Feature/Reports/AccountBalancesReportTest.php 파일 보기

1
+<?php
2
+
3
+use App\Facades\Accounting;
4
+use App\Factories\ReportDateFactory;
5
+use App\Filament\Company\Pages\Reports\AccountBalances;
6
+use App\Models\Accounting\Transaction;
7
+
8
+use function Pest\Livewire\livewire;
9
+
10
+it('correctly builds a account balances report', function () {
11
+    $testCompany = $this->testCompany;
12
+
13
+    $reportDatesDTO = ReportDateFactory::create($testCompany);
14
+    $defaultDateRange = $reportDatesDTO->defaultDateRange;
15
+    $defaultStartDate = $reportDatesDTO->defaultStartDate->toImmutable();
16
+    $defaultEndDate = $reportDatesDTO->defaultEndDate->toImmutable();
17
+
18
+    $depositAmount = 1000;
19
+    $withdrawalAmount = 1000;
20
+    $depositCount = 10;
21
+    $withdrawalCount = 10;
22
+
23
+    // Create transactions for the company
24
+    Transaction::factory()
25
+        ->forDefaultBankAccount()
26
+        ->forUncategorizedRevenue()
27
+        ->asDeposit($depositAmount)
28
+        ->count($depositCount)
29
+        ->state([
30
+            'posted_at' => $defaultStartDate->subWeek(),
31
+        ])
32
+        ->create();
33
+
34
+    Transaction::factory()
35
+        ->forDefaultBankAccount()
36
+        ->forUncategorizedExpense()
37
+        ->asWithdrawal($withdrawalAmount)
38
+        ->count($withdrawalCount)
39
+        ->state([
40
+            'posted_at' => $defaultEndDate,
41
+        ])
42
+        ->create();
43
+
44
+    $defaultBankAccount = $testCompany->default->bankAccount->account;
45
+
46
+    $fields = $defaultBankAccount->category->getRelevantBalanceFields();
47
+
48
+    $expectedBalances = Accounting::getBalances($defaultBankAccount, $defaultStartDate->toDateString(), $defaultEndDate->toDateString(), $fields);
49
+
50
+    $formattedExpectedBalances = formatReportBalances($expectedBalances);
51
+
52
+    livewire(AccountBalances::class)
53
+        ->assertFormSet([
54
+            'deferredFilters.dateRange' => $defaultDateRange,
55
+            'deferredFilters.startDate' => $defaultStartDate->toDateTimeString(),
56
+            'deferredFilters.endDate' => $defaultEndDate->toDateTimeString(),
57
+        ])
58
+        ->assertSet('filters', [
59
+            'dateRange' => $defaultDateRange,
60
+            'startDate' => $defaultStartDate->toDateString(),
61
+            'endDate' => $defaultEndDate->toDateString(),
62
+        ])
63
+        ->call('applyFilters')
64
+        ->assertSeeTextInOrder([
65
+            'Cash on Hand',
66
+            $formattedExpectedBalances->startingBalance,
67
+            $formattedExpectedBalances->debitBalance,
68
+            $formattedExpectedBalances->creditBalance,
69
+            $formattedExpectedBalances->netMovement,
70
+            $formattedExpectedBalances->endingBalance,
71
+        ])
72
+        ->assertReportTableData();
73
+
74
+    $expectedBalancesSubYear = Accounting::getBalances($defaultBankAccount, $defaultStartDate->subYear()->startOfYear()->toDateString(), $defaultEndDate->subYear()->endOfYear()->toDateString(), $fields);
75
+
76
+    $formattedExpectedBalancesSubYear = formatReportBalances($expectedBalancesSubYear);
77
+
78
+    livewire(AccountBalances::class)
79
+        ->assertFormSet([
80
+            'deferredFilters.dateRange' => $defaultDateRange,
81
+            'deferredFilters.startDate' => $defaultStartDate->toDateTimeString(),
82
+            'deferredFilters.endDate' => $defaultEndDate->toDateTimeString(),
83
+        ])
84
+        ->assertSet('filters', [
85
+            'dateRange' => $defaultDateRange,
86
+            'startDate' => $defaultStartDate->toDateString(),
87
+            'endDate' => $defaultEndDate->toDateString(),
88
+        ])
89
+        ->set('deferredFilters', [
90
+            'startDate' => $defaultStartDate->subYear()->startOfYear()->toDateTimeString(),
91
+            'endDate' => $defaultEndDate->subYear()->endOfYear()->toDateTimeString(),
92
+        ])
93
+        ->call('applyFilters')
94
+        ->assertSeeTextInOrder([
95
+            'Cash on Hand',
96
+            $formattedExpectedBalancesSubYear->startingBalance,
97
+            $formattedExpectedBalancesSubYear->debitBalance,
98
+            $formattedExpectedBalancesSubYear->creditBalance,
99
+            $formattedExpectedBalancesSubYear->netMovement,
100
+            $formattedExpectedBalancesSubYear->endingBalance,
101
+        ])
102
+        ->assertReportTableData();
103
+});

+ 6
- 4
tests/Feature/Reports/TrialBalanceReportTest.php 파일 보기

27
     $expectedBankAccountDebit = 10000;
27
     $expectedBankAccountDebit = 10000;
28
     $expectedBankAccountCredit = 0;
28
     $expectedBankAccountCredit = 0;
29
 
29
 
30
+    $defaultCurrencyCode = CurrencyAccessor::getDefaultCurrency();
31
+
30
     livewire(TrialBalance::class)
32
     livewire(TrialBalance::class)
31
         ->assertFormSet([
33
         ->assertFormSet([
32
             'deferredFilters.reportType' => $defaultReportType,
34
             'deferredFilters.reportType' => $defaultReportType,
42
         ->assertDontSeeText('Retained Earnings')
44
         ->assertDontSeeText('Retained Earnings')
43
         ->assertSeeTextInOrder([
45
         ->assertSeeTextInOrder([
44
             'Cash on Hand',
46
             'Cash on Hand',
45
-            money($expectedBankAccountDebit, CurrencyAccessor::getDefaultCurrency(), true),
46
-            money($expectedBankAccountCredit, CurrencyAccessor::getDefaultCurrency(), true),
47
+            money($expectedBankAccountDebit, $defaultCurrencyCode, true),
48
+            money($expectedBankAccountCredit, $defaultCurrencyCode, true),
47
         ])
49
         ])
48
         ->assertReportTableData();
50
         ->assertReportTableData();
49
 });
51
 });
58
     $defaultReportType = 'postClosing';
60
     $defaultReportType = 'postClosing';
59
 
61
 
60
     // Create transactions for the company
62
     // Create transactions for the company
61
-    $transaction1 = Transaction::factory()
63
+    Transaction::factory()
62
         ->forDefaultBankAccount()
64
         ->forDefaultBankAccount()
63
         ->forUncategorizedRevenue()
65
         ->forUncategorizedRevenue()
64
         ->asDeposit(1000)
66
         ->asDeposit(1000)
65
         ->create();
67
         ->create();
66
 
68
 
67
-    $transaction2 = Transaction::factory()
69
+    Transaction::factory()
68
         ->forDefaultBankAccount()
70
         ->forDefaultBankAccount()
69
         ->forUncategorizedExpense()
71
         ->forUncategorizedExpense()
70
         ->asWithdrawal(500)
72
         ->asWithdrawal(500)

+ 7
- 0
tests/Helpers/helpers.php 파일 보기

38
         'credit_balance' => $retainedEarningsCreditAmount,
38
         'credit_balance' => $retainedEarningsCreditAmount,
39
     ]);
39
     ]);
40
 }
40
 }
41
+
42
+function formatReportBalances(array $balances): AccountBalanceDTO
43
+{
44
+    $reportService = app(ReportService::class);
45
+
46
+    return $reportService->formatBalances($balances);
47
+}

Loading…
취소
저장