mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-06 04:34:00 +00:00
Compare commits
471 Commits
develop-20
...
develop-20
Author | SHA1 | Date | |
---|---|---|---|
|
23c4352c18 | ||
|
2dddaa36d5 | ||
|
8ab7cf2388 | ||
|
f191086adb | ||
|
68b446db18 | ||
|
3d49d81856 | ||
|
96493425d1 | ||
|
419975285c | ||
|
aa5bde122e | ||
|
0fa3c2bd8d | ||
|
b9249a4d96 | ||
|
6638ca270f | ||
|
9bfef892f8 | ||
|
32e5efec7c | ||
|
36457455ca | ||
|
062c148e43 | ||
|
2314ce8004 | ||
|
a3ff73903a | ||
|
7c8445707e | ||
|
291e73da4b | ||
|
286a29ca3e | ||
|
71cf6c6a5e | ||
|
1e8f0adaf8 | ||
|
33531244aa | ||
|
06049a9a28 | ||
|
d313f5fdf5 | ||
|
f4868126c1 | ||
|
00147e98dd | ||
|
6d22663ca2 | ||
|
756bb9cf5e | ||
|
399d7968f5 | ||
|
966b68f42e | ||
|
134c551c12 | ||
|
9aeca15355 | ||
|
6c6d31830b | ||
|
e8cc321898 | ||
|
e73fe06f7e | ||
|
98b579c042 | ||
|
7b3a5c1afd | ||
|
7e2e49e129 | ||
|
e8ef630424 | ||
|
8805bcf6f6 | ||
|
ff5c9a3aa0 | ||
|
3a274dcaa7 | ||
|
ddfededf02 | ||
|
e1785898ba | ||
|
ae09200f42 | ||
|
847984f678 | ||
|
42305672ac | ||
|
25a56d9f72 | ||
|
cea52c0ac7 | ||
|
1b33ff9c25 | ||
|
8f9f08b96f | ||
|
594ba205bb | ||
|
3c65b46aa5 | ||
|
1cf9c76329 | ||
|
495f5c71c3 | ||
|
7e80f607b7 | ||
|
d93732e451 | ||
|
1b57bc7889 | ||
|
c0499df4ec | ||
|
d90ac519f7 | ||
|
a0e92b6969 | ||
|
df49dd23e2 | ||
|
d4525da6bc | ||
|
25b11bd20b | ||
|
705aac419a | ||
|
f6e642f72e | ||
|
565bd87959 | ||
|
5751f7e5a3 | ||
|
f5a755d4fc | ||
|
a500de8ab1 | ||
|
303548a5fe | ||
|
68de905698 | ||
|
9240b9868b | ||
|
0e2e155cc6 | ||
|
bffa0088b4 | ||
|
2e993857e8 | ||
|
117a376fc3 | ||
|
1daffedde0 | ||
|
0e8fdd76a6 | ||
|
7ff4f29bcb | ||
|
9e4cff2b23 | ||
|
4aaea89f2c | ||
|
4fbf7b38fb | ||
|
76075401f9 | ||
|
e2a20dd63d | ||
|
b52a1f3eb1 | ||
|
7fd5a88122 | ||
|
1a1baa5cda | ||
|
577d671a0c | ||
|
380029ffd8 | ||
|
e2f1fc307f | ||
|
76cc27a267 | ||
|
e8a6f30e4e | ||
|
fe6021a3d6 | ||
|
563c54702b | ||
|
4d67d27ba0 | ||
|
edf3876a57 | ||
|
2d10f255c2 | ||
|
ee76cc6761 | ||
|
f197e6623b | ||
|
42a9809450 | ||
|
444f80a933 | ||
|
4b985c818a | ||
|
2e62fe7b72 | ||
|
ccd182aed9 | ||
|
615eef3fdd | ||
|
d4e4907363 | ||
|
c205e93876 | ||
|
3b24bb99bb | ||
|
2814cd1b2a | ||
|
5285e1ac14 | ||
|
48a999cf91 | ||
|
3117c8846e | ||
|
6bb297e76f | ||
|
bc698f67ea | ||
|
f1c859aaa3 | ||
|
2d0aa207d4 | ||
|
4a75e9c262 | ||
|
ee7c4b8863 | ||
|
f782979d6c | ||
|
53cce6510c | ||
|
53252b84fd | ||
|
8f3cf38f77 | ||
|
f33766a062 | ||
|
ac5e62c65d | ||
|
e2289ce1e6 | ||
|
f0e2913802 | ||
|
1fa928b98f | ||
|
1c691cca33 | ||
|
69e1eb3eff | ||
|
90794cb515 | ||
|
28d7e24d30 | ||
|
6a62f781e9 | ||
|
fb6c67fa04 | ||
|
03e9e3dbdb | ||
|
5520992861 | ||
|
5f1502eea7 | ||
|
b3560ff525 | ||
|
8030167ffc | ||
|
fd2c1615cf | ||
|
b976239580 | ||
|
7d8d773f8f | ||
|
b930ad4da7 | ||
|
abad7cdf16 | ||
|
0e5eb036b0 | ||
|
d995bfc081 | ||
|
c920070ce2 | ||
|
277f5e538f | ||
|
89f197b9d4 | ||
|
c35ff3174a | ||
|
94085ee940 | ||
|
c841fa3620 | ||
|
69b2c1f4d2 | ||
|
2f7a1c941e | ||
|
c06fb8daf6 | ||
|
26948a058a | ||
|
1220564f30 | ||
|
ea4be9dd0c | ||
|
1ccda0b598 | ||
|
eb3b67ffd6 | ||
|
4819b5ac5d | ||
|
591b795aa3 | ||
|
ac21ed7d18 | ||
|
d9c66a2db0 | ||
|
d740814f88 | ||
|
cdf1ebf3f7 | ||
|
f2fab5d4ee | ||
|
21a6927279 | ||
|
92190bbc54 | ||
|
9ad005e31f | ||
|
f5c56e02da | ||
|
6f02eff020 | ||
|
c25c0d37c5 | ||
|
4ba1c5bcfc | ||
|
64aefe5848 | ||
|
73f2f71b03 | ||
|
12ee37d700 | ||
|
9679c22a27 | ||
|
1395c95353 | ||
|
4d1fd43c8c | ||
|
71c208c4fb | ||
|
91a2a1afc3 | ||
|
25c1ca2f5d | ||
|
6f0bb82f59 | ||
|
22a5184ebe | ||
|
17b0b1f43f | ||
|
b61df5ec19 | ||
|
1ac7275f83 | ||
|
cd10d04907 | ||
|
f9b76fcb8b | ||
|
093fa067e6 | ||
|
fa655f065b | ||
|
c8f2244912 | ||
|
f3a20e14a6 | ||
|
33ad47b115 | ||
|
775424d3b7 | ||
|
c9c86bbd1d | ||
|
f76a6ad85c | ||
|
2138b14d89 | ||
|
1bf61f57f5 | ||
|
07b55bd71f | ||
|
8d2d3d4002 | ||
|
d182b4b4a6 | ||
|
60f6a91fe4 | ||
|
ec89a2f956 | ||
|
87113d7181 | ||
|
59fae290e5 | ||
|
1a8ba2ce53 | ||
|
dddaa25d86 | ||
|
f28341587a | ||
|
5593bf3e08 | ||
|
92574a7a9d | ||
|
e049266f5d | ||
|
5b3e6fcb07 | ||
|
b0bfb556db | ||
|
484acbcb45 | ||
|
cdc802cfb8 | ||
|
582671ca84 | ||
|
22498b5804 | ||
|
87f277a482 | ||
|
ae0d74f57a | ||
|
0ae5593dde | ||
|
0d11769590 | ||
|
b7d8daf013 | ||
|
a9c0126b05 | ||
|
6bc5a57d10 | ||
|
2714ee96f1 | ||
|
524d382b7a | ||
|
2723e05d2a | ||
|
6dd9bda6b4 | ||
|
44449bc716 | ||
|
b17d8edb50 | ||
|
578072238a | ||
|
b4edd3dcc4 | ||
|
068094caac | ||
|
deb58e617d | ||
|
baca0c1120 | ||
|
02543438a4 | ||
|
d507e59038 | ||
|
9d0fd7ef1b | ||
|
dbef5e2143 | ||
|
04eca755d2 | ||
|
7883692196 | ||
|
8f64977cb9 | ||
|
f94fdc4979 | ||
|
a0a0e28447 | ||
|
f6f7783b94 | ||
|
d233cc1de8 | ||
|
37671499c8 | ||
|
c83b79998d | ||
|
ed842c2b42 | ||
|
8c5f114339 | ||
|
8b2f1d0b4f | ||
|
591a1b3050 | ||
|
42ec3fe02b | ||
|
370a398b5e | ||
|
554d89b6e9 | ||
|
cb049f5dda | ||
|
0728668d41 | ||
|
dfc187874e | ||
|
225588f3e7 | ||
|
06cc6c29aa | ||
|
b2d4469908 | ||
|
c398383905 | ||
|
7af9dce33b | ||
|
038790a5d6 | ||
|
fb3295bde1 | ||
|
43a4fd2ecb | ||
|
899c72d068 | ||
|
d118c0d886 | ||
|
6d4004d1ed | ||
|
ae60cd5b28 | ||
|
ab31a72199 | ||
|
2c1b9534f3 | ||
|
7028cb1546 | ||
|
dc1ecf6a42 | ||
|
3a27f9d02c | ||
|
4b27ab38f8 | ||
|
40de147611 | ||
|
df5756dc86 | ||
|
bb4f90d730 | ||
|
d89d46aaec | ||
|
304d720c4c | ||
|
7eff160190 | ||
|
8b2e18ed9d | ||
|
7001051833 | ||
|
b4b9752c05 | ||
|
acadc89eaa | ||
|
6ff84b8e90 | ||
|
7f3e3fc3bf | ||
|
02233fd7a4 | ||
|
50d3db0643 | ||
|
3751831779 | ||
|
14a24e47fb | ||
|
b7e78cb0e6 | ||
|
a8f65f42fc | ||
|
d3385a116d | ||
|
e0c446dd13 | ||
|
33d11b4780 | ||
|
07c49d1d04 | ||
|
9463285ac9 | ||
|
b41fc43e64 | ||
|
562763c938 | ||
|
ec60194110 | ||
|
1e472ee095 | ||
|
5597327448 | ||
|
cdd5baf5be | ||
|
7b5978059b | ||
|
da0b41e45c | ||
|
d0be2afba5 | ||
|
d99851231a | ||
|
7e02c141f9 | ||
|
d03960e379 | ||
|
16d3984ffc | ||
|
856a194988 | ||
|
1bff966bfe | ||
|
1948b6118b | ||
|
20c25d3ca2 | ||
|
a153735ac3 | ||
|
62509f7c18 | ||
|
9b48b67158 | ||
|
cbd50634a4 | ||
|
f475393bc1 | ||
|
abcddb09bf | ||
|
cf71a0fc55 | ||
|
78253f9e1e | ||
|
ebd0848c7f | ||
|
c8461eb0b5 | ||
|
a4cbdeaeac | ||
|
3e1ce69d52 | ||
|
08a26b976e | ||
|
5fc55381a2 | ||
|
dbf3d24ae7 | ||
|
cc7c6e02c5 | ||
|
b45aa85853 | ||
|
e7526ac5e3 | ||
|
441ada70b8 | ||
|
dedc06a46b | ||
|
b0adf1b277 | ||
|
28f65e9f44 | ||
|
a013af5f0d | ||
|
9552701662 | ||
|
ef52f0aad1 | ||
|
0b6f04905a | ||
|
cdb36357d4 | ||
|
8938622bd9 | ||
|
b210294aa9 | ||
|
5b02f20775 | ||
|
fac382a5df | ||
|
88d88bebc9 | ||
|
755fb9c29b | ||
|
51a835ab51 | ||
|
c9895ab182 | ||
|
e71d46a4e5 | ||
|
8d1d5f37c1 | ||
|
525a68682d | ||
|
715648d0d8 | ||
|
9452e93f22 | ||
|
a6aa145471 | ||
|
25aa6dcb59 | ||
|
bb2270b274 | ||
|
d7f6b4143e | ||
|
0cf0e26fa8 | ||
|
cc23197d60 | ||
|
bc1721d95e | ||
|
0d19173da6 | ||
|
1983f07d3c | ||
|
aad1b91cc2 | ||
|
8cb1057a33 | ||
|
b178032985 | ||
|
561213e95d | ||
|
44fa7c4306 | ||
|
e2169563e2 | ||
|
845344e003 | ||
|
cdb48453e8 | ||
|
9669cef518 | ||
|
f962f71ed7 | ||
|
94ed4021fb | ||
|
1765855c57 | ||
|
55cf3e7d44 | ||
|
9f1840dc05 | ||
|
78dab2e5f9 | ||
|
103b9d5005 | ||
|
1b75b778d8 | ||
|
7e665dbdfc | ||
|
b6897ec3a9 | ||
|
660260174a | ||
|
78d32865b5 | ||
|
edfa92c1aa | ||
|
63012f269c | ||
|
7d0e7f779f | ||
|
b8e18f80f4 | ||
|
481b01e4f7 | ||
|
edf2030251 | ||
|
bd1cfffb61 | ||
|
629f70d27d | ||
|
57f5ebc0f9 | ||
|
b4f51e7b47 | ||
|
d78d254e86 | ||
|
eb0c113699 | ||
|
23045ebd59 | ||
|
2e5931f304 | ||
|
a620b07c00 | ||
|
cb724145f2 | ||
|
8ef17f6686 | ||
|
debfd9160c | ||
|
f2482e4ace | ||
|
d98d757f8b | ||
|
0c9a41a929 | ||
|
e26f78bf50 | ||
|
ed265f68ba | ||
|
d2e9b64bf5 | ||
|
3811aff206 | ||
|
762d898fee | ||
|
5e6034fc86 | ||
|
9da10459d6 | ||
|
ff80cedd6b | ||
|
b213148ae8 | ||
|
c8646e20cb | ||
|
76a41fec50 | ||
|
0e705bd038 | ||
|
f33ffb98ff | ||
|
faa0d59340 | ||
|
5af0219884 | ||
|
dafd99f155 | ||
|
3560f0388c | ||
|
b2954658d8 | ||
|
44581d9983 | ||
|
02dcfeb227 | ||
|
d8bafb349d | ||
|
889598a4c8 | ||
|
7e37d10016 | ||
|
ebaebb09d1 | ||
|
531a3a4b6c | ||
|
b3e313821b | ||
|
51958af422 | ||
|
e3b21ccdba | ||
|
31bb208835 | ||
|
8c97e805a2 | ||
|
ac8a43bb37 | ||
|
2df4b40a28 | ||
|
e06736c254 | ||
|
ec367e94ce | ||
|
1515dea9fa | ||
|
adedf9c17d | ||
|
0b52fb84f1 | ||
|
16e742ae73 | ||
|
1b4471dfae | ||
|
ae152ce0a4 | ||
|
2aa023f140 | ||
|
6e2e4c6f08 | ||
|
1c8c038735 | ||
|
4d339a6da8 | ||
|
b7edd4407a | ||
|
a679a1e94a | ||
|
180451d32f | ||
|
7396f22bca | ||
|
058019aa84 | ||
|
695f83d1d8 | ||
|
ac4dfb3baf | ||
|
427001b223 | ||
|
3117d8b30d | ||
|
d19dd2a8b2 | ||
|
de3dcc3fc2 | ||
|
077f3e095b | ||
|
ad3b0bb320 | ||
|
8538741341 | ||
|
a0aef5d579 | ||
|
fdd93427aa |
386
.ci/php-cs-fixer/composer.lock
generated
386
.ci/php-cs-fixer/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -26,8 +26,7 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|||||||
cd $SCRIPT_DIR/php-cs-fixer
|
cd $SCRIPT_DIR/php-cs-fixer
|
||||||
composer update --quiet
|
composer update --quiet
|
||||||
rm -f .php-cs-fixer.cache
|
rm -f .php-cs-fixer.cache
|
||||||
PHP_CS_FIXER_IGNORE_ENV=true
|
PHP_CS_FIXER_IGNORE_ENV=true ./vendor/bin/php-cs-fixer fix \
|
||||||
./vendor/bin/php-cs-fixer fix \
|
|
||||||
--config $SCRIPT_DIR/php-cs-fixer/.php-cs-fixer.php \
|
--config $SCRIPT_DIR/php-cs-fixer/.php-cs-fixer.php \
|
||||||
--format=txt \
|
--format=txt \
|
||||||
--allow-risky=yes
|
--allow-risky=yes
|
||||||
|
@@ -1,9 +1,10 @@
|
|||||||
parameters:
|
parameters:
|
||||||
|
scanFiles:
|
||||||
|
- ../_ide_helper_models.php
|
||||||
universalObjectCratesClasses:
|
universalObjectCratesClasses:
|
||||||
- Illuminate\Database\Eloquent\Model
|
- Illuminate\Database\Eloquent\Model
|
||||||
# TODO: slowly remove these parameters and fix the issues found.
|
# TODO: slowly remove these parameters and fix the issues found.
|
||||||
reportUnmatchedIgnoredErrors: false
|
reportUnmatchedIgnoredErrors: false
|
||||||
checkGenericClassInNonGenericObjectType: false # remove this rule when all other issues are solved.
|
|
||||||
ignoreErrors:
|
ignoreErrors:
|
||||||
# TODO: slowly remove these exceptions and fix the issues found.
|
# TODO: slowly remove these exceptions and fix the issues found.
|
||||||
- '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
|
- '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
|
||||||
@@ -11,6 +12,7 @@ parameters:
|
|||||||
- '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
- '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
||||||
- '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
- '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
||||||
- '#is not allowed to extend#'
|
- '#is not allowed to extend#'
|
||||||
|
- '#does not specify its types#'
|
||||||
- '#switch is forbidden to use#'
|
- '#switch is forbidden to use#'
|
||||||
- '#is neither abstract nor final#'
|
- '#is neither abstract nor final#'
|
||||||
- '#on left side of \?\?\= always exists and is not nullable#'
|
- '#on left side of \?\?\= always exists and is not nullable#'
|
||||||
|
@@ -176,6 +176,7 @@ MAILGUN_ENDPOINT=api.mailgun.net
|
|||||||
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
|
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
|
||||||
MANDRILL_SECRET=
|
MANDRILL_SECRET=
|
||||||
SPARKPOST_SECRET=
|
SPARKPOST_SECRET=
|
||||||
|
MAILERSEND_API_KEY=
|
||||||
|
|
||||||
# Firefly III can send you the following messages.
|
# Firefly III can send you the following messages.
|
||||||
SEND_ERROR_MESSAGE=true
|
SEND_ERROR_MESSAGE=true
|
||||||
@@ -312,6 +313,12 @@ PUSHER_ID=
|
|||||||
DEMO_USERNAME=
|
DEMO_USERNAME=
|
||||||
DEMO_PASSWORD=
|
DEMO_PASSWORD=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disable or enable the running balance column data
|
||||||
|
# Please disable this. It's a very experimental feature.
|
||||||
|
#
|
||||||
|
USE_RUNNING_BALANCE=false
|
||||||
|
|
||||||
#
|
#
|
||||||
# The v2 layout is very experimental. If it breaks you get to keep both parts.
|
# The v2 layout is very experimental. If it breaks you get to keep both parts.
|
||||||
# Be wary of data loss.
|
# Be wary of data loss.
|
||||||
|
3
.github/dependabot.yml
vendored
3
.github/dependabot.yml
vendored
@@ -4,6 +4,7 @@ updates:
|
|||||||
# Check for updates to GitHub Actions every week
|
# Check for updates to GitHub Actions every week
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
|
labels: []
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
|
||||||
@@ -11,6 +12,7 @@ updates:
|
|||||||
- package-ecosystem: "composer"
|
- package-ecosystem: "composer"
|
||||||
directory: "/" # Location of package manifests
|
directory: "/" # Location of package manifests
|
||||||
target-branch: develop
|
target-branch: develop
|
||||||
|
labels: []
|
||||||
versioning-strategy: increase
|
versioning-strategy: increase
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
@@ -18,6 +20,7 @@ updates:
|
|||||||
# yarn / JS updates
|
# yarn / JS updates
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
|
labels: []
|
||||||
target-branch: develop
|
target-branch: develop
|
||||||
versioning-strategy: increase
|
versioning-strategy: increase
|
||||||
schedule:
|
schedule:
|
||||||
|
2
.github/label-actions.yml
vendored
2
.github/label-actions.yml
vendored
@@ -4,6 +4,7 @@
|
|||||||
feature:
|
feature:
|
||||||
issues:
|
issues:
|
||||||
# Post a comment, `{issue-author}` is an optional placeholder
|
# Post a comment, `{issue-author}` is an optional placeholder
|
||||||
|
unlabel: feature
|
||||||
comment: |
|
comment: |
|
||||||
Hi there!
|
Hi there!
|
||||||
|
|
||||||
@@ -32,6 +33,7 @@ epic:
|
|||||||
Thank you for your contributions.
|
Thank you for your contributions.
|
||||||
|
|
||||||
enhancement:
|
enhancement:
|
||||||
|
unlabel: enhancement
|
||||||
issues:
|
issues:
|
||||||
# Post a comment, `{issue-author}` is an optional placeholder
|
# Post a comment, `{issue-author}` is an optional placeholder
|
||||||
comment: |
|
comment: |
|
||||||
|
1
.github/pull_request_template.md
vendored
1
.github/pull_request_template.md
vendored
@@ -6,6 +6,7 @@ Thank you for submitting new code to Firefly III, or any of the related projects
|
|||||||
- Please do not open PRs to "discuss" possible solutions or to "get feedback" on your code. I simply don't have time for that.
|
- Please do not open PRs to "discuss" possible solutions or to "get feedback" on your code. I simply don't have time for that.
|
||||||
- Pull requests for the MAIN branch will be closed.
|
- Pull requests for the MAIN branch will be closed.
|
||||||
- DO NOT include translated strings in your PR.
|
- DO NOT include translated strings in your PR.
|
||||||
|
- PRs (or parts thereof) that only fix issues inside code comments will not be accepted.
|
||||||
|
|
||||||
If it feels necessary to open an issue first, please do so, before you open a PR.
|
If it feels necessary to open an issue first, please do so, before you open a PR.
|
||||||
|
|
||||||
|
2
.github/workflows/close-duplicates.yml
vendored
2
.github/workflows/close-duplicates.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
close_duplicates:
|
close_duplicates:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: github/command@v1.2.0
|
- uses: github/command@v1.3.0
|
||||||
id: command
|
id: command
|
||||||
with:
|
with:
|
||||||
allowed_contexts: "issue"
|
allowed_contexts: "issue"
|
||||||
|
93
.github/workflows/release.yml
vendored
93
.github/workflows/release.yml
vendored
@@ -4,9 +4,13 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
version:
|
version:
|
||||||
description: 'Release "v1.2.3" or "develop"'
|
description: 'Release "v1.2.3" or "develop" or "branch-abc"'
|
||||||
required: true
|
required: true
|
||||||
default: 'develop'
|
default: 'develop'
|
||||||
|
phpversion:
|
||||||
|
description: 'PHP version'
|
||||||
|
required: true
|
||||||
|
default: '8.4'
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 3 * * MON'
|
- cron: '0 3 * * MON'
|
||||||
|
|
||||||
@@ -23,6 +27,11 @@ jobs:
|
|||||||
if [[ "develop" == "$version" ]]; then
|
if [[ "develop" == "$version" ]]; then
|
||||||
git checkout --track origin/develop
|
git checkout --track origin/develop
|
||||||
git pull
|
git pull
|
||||||
|
elif [[ "$version" == branch* ]]; then
|
||||||
|
PULLBRANCH=${version:7}
|
||||||
|
echo "The branch is '$PULLBRANCH' ($version)"
|
||||||
|
git checkout --track origin/$PULLBRANCH
|
||||||
|
git pull
|
||||||
else
|
else
|
||||||
git config user.name github-actions
|
git config user.name github-actions
|
||||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||||
@@ -36,7 +45,7 @@ jobs:
|
|||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: '8.3'
|
php-version: ${{ github.event.inputs.phpversion }}
|
||||||
extensions: mbstring, intl, zip, bcmath
|
extensions: mbstring, intl, zip, bcmath
|
||||||
- name: crowdin action
|
- name: crowdin action
|
||||||
uses: crowdin/github-action@v2
|
uses: crowdin/github-action@v2
|
||||||
@@ -133,7 +142,7 @@ jobs:
|
|||||||
rm -rf vendor composer.lock
|
rm -rf vendor composer.lock
|
||||||
composer update --no-dev --no-scripts --no-plugins -q
|
composer update --no-dev --no-scripts --no-plugins -q
|
||||||
sudo chown -R runner:docker resources/lang
|
sudo chown -R runner:docker resources/lang
|
||||||
.ci/phpcs.sh
|
.ci/phpcs.sh || true
|
||||||
- name: Import GPG key
|
- name: Import GPG key
|
||||||
uses: crazy-max/ghaction-import-gpg@v6
|
uses: crazy-max/ghaction-import-gpg@v6
|
||||||
with:
|
with:
|
||||||
@@ -166,6 +175,16 @@ jobs:
|
|||||||
tarName=FireflyIII-develop.tar.gz
|
tarName=FireflyIII-develop.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# if this is a branch build, also slightly different variable names.
|
||||||
|
if [[ "$version" == branch* ]]; then
|
||||||
|
[[ -z $(git status --untracked-files=normal --porcelain) ]] && echo "this branch is clean, no need to push..." && exit 0;
|
||||||
|
# branch builds overrule develop
|
||||||
|
releaseName=$version-$(date +'%Y%m%d')
|
||||||
|
originalName=$releaseName
|
||||||
|
zipName=FireflyIII-$version.zip
|
||||||
|
tarName=FireflyIII-$version.tar.gz
|
||||||
|
fi
|
||||||
|
|
||||||
# in both cases, if the release or tag already exists, add ".1" until it no longer exists.
|
# in both cases, if the release or tag already exists, add ".1" until it no longer exists.
|
||||||
tagFound=true
|
tagFound=true
|
||||||
tagCount=1
|
tagCount=1
|
||||||
@@ -207,12 +226,13 @@ jobs:
|
|||||||
gpg --armor --detach-sign $zipName
|
gpg --armor --detach-sign $zipName
|
||||||
gpg --armor --detach-sign $tarName
|
gpg --armor --detach-sign $tarName
|
||||||
|
|
||||||
# create a development (nightly) release:
|
# describe the development release.
|
||||||
if [[ "develop" == "$version" ]]; then
|
if [[ "develop" == "$version" ]]; then
|
||||||
echo 'Develop release.'
|
echo 'Develop release.'
|
||||||
# add text to output.txt (instructions)
|
|
||||||
rm output.txt
|
rm output.txt
|
||||||
echo "Bi-weekly development release of Firefly III with the latest fixes, translations and features. Docker users can find this release under the \`develop\` tag." >> output.txt
|
touch output.txt
|
||||||
|
sudo chown -R runner:docker output.txt
|
||||||
|
echo "Weekly development release of Firefly III with the latest fixes, translations and features. Docker users can find this release under the \`develop\` tag." >> output.txt
|
||||||
echo "" >> output.txt
|
echo "" >> output.txt
|
||||||
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
|
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
|
||||||
echo "" >> output.txt
|
echo "" >> output.txt
|
||||||
@@ -220,15 +240,62 @@ jobs:
|
|||||||
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
|
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
|
||||||
echo "" >> output.txt
|
echo "" >> output.txt
|
||||||
echo ":warning: Please be careful with this pre-release, as it may not work as expected." >> output.txt
|
echo ":warning: Please be careful with this pre-release, as it may not work as expected." >> output.txt
|
||||||
|
fi
|
||||||
|
# describe a branch release
|
||||||
|
if [[ "$version" == branch* ]]; then
|
||||||
|
echo 'Branch release.'
|
||||||
|
rm output.txt
|
||||||
|
touch output.txt
|
||||||
|
sudo chown -R runner:docker output.txt
|
||||||
|
echo "Irregular BRANCH release of Firefly III. This release contains specific features or changes. Docker users can find this release under the \`$version\` tag." >> output.txt
|
||||||
|
echo "" >> output.txt
|
||||||
|
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
|
||||||
|
echo "" >> output.txt
|
||||||
|
echo "* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
|
||||||
|
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
|
||||||
|
echo "" >> output.txt
|
||||||
|
echo ":warning: Please be careful with this branch pre-release, as it may not work as expected." >> output.txt
|
||||||
|
fi
|
||||||
|
# describe the main release
|
||||||
|
if [[ "develop" != "$version" ]] && [[ "$version" != branch* ]]; then
|
||||||
|
sudo chown -R runner:docker output.txt
|
||||||
|
echo 'Main release.'
|
||||||
|
echo '' >> output.txt
|
||||||
|
echo '### Instructions' >> output.txt
|
||||||
|
echo '' >> output.txt
|
||||||
|
echo "* Installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
|
||||||
|
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
|
||||||
|
echo "* The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create a development release:
|
||||||
|
if [[ "develop" == "$version" ]]; then
|
||||||
# create the release:
|
# create the release:
|
||||||
echo "Create nightly release."
|
echo "Create develop release."
|
||||||
git tag -a $releaseName -m "Nightly development release '$version' on $(date +'%Y-%m-%d')"
|
git tag -a $releaseName -m "Development release '$version' on $(date +'%Y-%m-%d')"
|
||||||
|
|
||||||
git push origin $releaseName
|
git push origin $releaseName
|
||||||
gh release create $releaseName -p --verify-tag \
|
gh release create $releaseName -p --verify-tag \
|
||||||
-t "Development release for $(date +'%Y-%m-%d')" \
|
-t "Development release for $(date +'%Y-%m-%d')" \
|
||||||
-F output.txt
|
-F output.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create a branch release:
|
||||||
|
if [[ "$version" == branch* ]]; then
|
||||||
|
|
||||||
|
# create the release:
|
||||||
|
echo "Create branch release."
|
||||||
|
git tag -a $releaseName -m "Branch release '$version' on $(date +'%Y-%m-%d')"
|
||||||
|
|
||||||
|
git push origin $releaseName
|
||||||
|
gh release create $releaseName -p --verify-tag \
|
||||||
|
-t "Branch release for $(date +'%Y-%m-%d')" \
|
||||||
|
-F output.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create a development (nightly) release:
|
||||||
|
if [[ "develop" == "$version" ]] || [[ "$version" == branch* ]]; then
|
||||||
# add zip file to release.
|
# add zip file to release.
|
||||||
gh release upload $releaseName $zipName
|
gh release upload $releaseName $zipName
|
||||||
gh release upload $releaseName $tarName
|
gh release upload $releaseName $tarName
|
||||||
@@ -247,16 +314,6 @@ jobs:
|
|||||||
gh release upload $releaseName HEAD.txt
|
gh release upload $releaseName HEAD.txt
|
||||||
else
|
else
|
||||||
echo 'MAIN (real) release'
|
echo 'MAIN (real) release'
|
||||||
sudo chown -R runner:docker output.txt
|
|
||||||
# add text to output.txt (more instructions)
|
|
||||||
echo '' >> output.txt
|
|
||||||
echo '### Instructions' >> output.txt
|
|
||||||
echo '' >> output.txt
|
|
||||||
echo "* Installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
|
|
||||||
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
|
|
||||||
echo "* The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
|
|
||||||
|
|
||||||
echo "Create default release."
|
|
||||||
git tag -a $releaseName -m "Here be changelog"
|
git tag -a $releaseName -m "Here be changelog"
|
||||||
git push origin $releaseName
|
git push origin $releaseName
|
||||||
gh release create $releaseName -F output.txt -t "$releaseName" --verify-tag
|
gh release create $releaseName -F output.txt -t "$releaseName" --verify-tag
|
||||||
|
2
.github/workflows/sonarcloud.yml
vendored
2
.github/workflows/sonarcloud.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
- name: Setup PHP with Xdebug
|
- name: Setup PHP with Xdebug
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: '8.3'
|
php-version: '8.4'
|
||||||
coverage: xdebug
|
coverage: xdebug
|
||||||
extensions: >-
|
extensions: >-
|
||||||
bcmath
|
bcmath
|
||||||
|
4
.github/workflows/stale.yml
vendored
4
.github/workflows/stale.yml
vendored
@@ -12,6 +12,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
issues: write # for actions/stale to close stale issues
|
issues: write # for actions/stale to close stale issues
|
||||||
pull-requests: write # for actions/stale to close stale PRs
|
pull-requests: write # for actions/stale to close stale PRs
|
||||||
|
actions: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v9
|
- uses: actions/stale@v9
|
||||||
@@ -35,4 +36,5 @@ jobs:
|
|||||||
Thank you for your contributions.
|
Thank you for your contributions.
|
||||||
days-before-stale: 14
|
days-before-stale: 14
|
||||||
days-before-close: 7
|
days-before-close: 7
|
||||||
exempt-issue-labels: 'enhancement,feature,bug,announcement,epic,triage'
|
exempt-all-milestones: true
|
||||||
|
exempt-issue-labels: 'triage'
|
||||||
|
@@ -4,6 +4,12 @@ Over time, many people have contributed to Firefly III. Their efforts are not al
|
|||||||
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
|
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
|
||||||
|
|
||||||
## 2024
|
## 2024
|
||||||
|
- Antônio Franco
|
||||||
|
- yparitcher
|
||||||
|
- Jhon Pedroza
|
||||||
|
- mzhubail
|
||||||
|
- tasnim
|
||||||
|
- withbest
|
||||||
- Steve Wasiura
|
- Steve Wasiura
|
||||||
- imlonghao
|
- imlonghao
|
||||||
- Rahman Yusuf
|
- Rahman Yusuf
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -29,6 +30,7 @@ use FireflyIII\Exceptions\FireflyException;
|
|||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
|
use FireflyIII\Support\Facades\Steam;
|
||||||
use FireflyIII\Support\Http\Api\AccountFilter;
|
use FireflyIII\Support\Http\Api\AccountFilter;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
@@ -77,7 +79,7 @@ class AccountController extends Controller
|
|||||||
$query = $data['query'];
|
$query = $data['query'];
|
||||||
$date = $data['date'] ?? today(config('app.timezone'));
|
$date = $data['date'] ?? today(config('app.timezone'));
|
||||||
$return = [];
|
$return = [];
|
||||||
$result = $this->repository->searchAccount((string)$query, $types, $this->parameters->get('limit'));
|
$result = $this->repository->searchAccount((string) $query, $types, $this->parameters->get('limit'));
|
||||||
|
|
||||||
// TODO this code is duplicated in the V2 Autocomplete controller, which means this code is due to be deprecated.
|
// TODO this code is duplicated in the V2 Autocomplete controller, which means this code is due to be deprecated.
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrency();
|
$defaultCurrency = app('amount')->getDefaultCurrency();
|
||||||
@@ -88,20 +90,20 @@ class AccountController extends Controller
|
|||||||
$currency = $this->repository->getAccountCurrency($account) ?? $defaultCurrency;
|
$currency = $this->repository->getAccountCurrency($account) ?? $defaultCurrency;
|
||||||
|
|
||||||
if (in_array($account->accountType->type, $this->balanceTypes, true)) {
|
if (in_array($account->accountType->type, $this->balanceTypes, true)) {
|
||||||
$balance = app('steam')->balance($account, $date);
|
$balance = Steam::finalAccountBalance($account, $date);
|
||||||
$nameWithBalance = sprintf(
|
$nameWithBalance = sprintf(
|
||||||
'%s (%s)',
|
'%s (%s)',
|
||||||
$account->name,
|
$account->name,
|
||||||
app('amount')->formatAnything($currency, $balance, false)
|
app('amount')->formatAnything($currency, $balance['balance'], false)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$return[] = [
|
$return[] = [
|
||||||
'id' => (string)$account->id,
|
'id' => (string) $account->id,
|
||||||
'name' => $account->name,
|
'name' => $account->name,
|
||||||
'name_with_balance' => $nameWithBalance,
|
'name_with_balance' => $nameWithBalance,
|
||||||
'type' => $account->accountType->type,
|
'type' => $account->accountType->type,
|
||||||
'currency_id' => (string)$currency->id,
|
'currency_id' => (string) $currency->id,
|
||||||
'currency_name' => $currency->name,
|
'currency_name' => $currency->name,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
'currency_symbol' => $currency->symbol,
|
'currency_symbol' => $currency->symbol,
|
||||||
@@ -114,8 +116,8 @@ class AccountController extends Controller
|
|||||||
$return,
|
$return,
|
||||||
static function (array $left, array $right) {
|
static function (array $left, array $right) {
|
||||||
$order = [AccountType::ASSET, AccountType::REVENUE, AccountType::EXPENSE];
|
$order = [AccountType::ASSET, AccountType::REVENUE, AccountType::EXPENSE];
|
||||||
$posA = (int)array_search($left['type'], $order, true);
|
$posA = (int) array_search($left['type'], $order, true);
|
||||||
$posB = (int)array_search($right['type'], $order, true);
|
$posB = (int) array_search($right['type'], $order, true);
|
||||||
|
|
||||||
return $posA - $posB;
|
return $posA - $posB;
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BillController.php
|
* BillController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -66,7 +67,7 @@ class BillController extends Controller
|
|||||||
$filtered = $result->map(
|
$filtered = $result->map(
|
||||||
static function (Bill $item) {
|
static function (Bill $item) {
|
||||||
return [
|
return [
|
||||||
'id' => (string)$item->id,
|
'id' => (string) $item->id,
|
||||||
'name' => $item->name,
|
'name' => $item->name,
|
||||||
'active' => $item->active,
|
'active' => $item->active,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BudgetController.php
|
* BudgetController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -66,7 +67,7 @@ class BudgetController extends Controller
|
|||||||
$filtered = $result->map(
|
$filtered = $result->map(
|
||||||
static function (Budget $item) {
|
static function (Budget $item) {
|
||||||
return [
|
return [
|
||||||
'id' => (string)$item->id,
|
'id' => (string) $item->id,
|
||||||
'name' => $item->name,
|
'name' => $item->name,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CategoryController.php
|
* CategoryController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -66,7 +67,7 @@ class CategoryController extends Controller
|
|||||||
$filtered = $result->map(
|
$filtered = $result->map(
|
||||||
static function (Category $item) {
|
static function (Category $item) {
|
||||||
return [
|
return [
|
||||||
'id' => (string)$item->id,
|
'id' => (string) $item->id,
|
||||||
'name' => $item->name,
|
'name' => $item->name,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CurrencyController.php
|
* CurrencyController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -68,7 +69,7 @@ class CurrencyController extends Controller
|
|||||||
/** @var TransactionCurrency $currency */
|
/** @var TransactionCurrency $currency */
|
||||||
foreach ($collection as $currency) {
|
foreach ($collection as $currency) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$currency->id,
|
'id' => (string) $currency->id,
|
||||||
'name' => $currency->name,
|
'name' => $currency->name,
|
||||||
'code' => $currency->code,
|
'code' => $currency->code,
|
||||||
'symbol' => $currency->symbol,
|
'symbol' => $currency->symbol,
|
||||||
@@ -94,7 +95,7 @@ class CurrencyController extends Controller
|
|||||||
/** @var TransactionCurrency $currency */
|
/** @var TransactionCurrency $currency */
|
||||||
foreach ($collection as $currency) {
|
foreach ($collection as $currency) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$currency->id,
|
'id' => (string) $currency->id,
|
||||||
'name' => sprintf('%s (%s)', $currency->name, $currency->code),
|
'name' => sprintf('%s (%s)', $currency->name, $currency->code),
|
||||||
'code' => $currency->code,
|
'code' => $currency->code,
|
||||||
'symbol' => $currency->symbol,
|
'symbol' => $currency->symbol,
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ObjectGroupController.php
|
* ObjectGroupController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -68,7 +69,7 @@ class ObjectGroupController extends Controller
|
|||||||
/** @var ObjectGroup $objectGroup */
|
/** @var ObjectGroup $objectGroup */
|
||||||
foreach ($result as $objectGroup) {
|
foreach ($result as $objectGroup) {
|
||||||
$return[] = [
|
$return[] = [
|
||||||
'id' => (string)$objectGroup->id,
|
'id' => (string) $objectGroup->id,
|
||||||
'name' => $objectGroup->title,
|
'name' => $objectGroup->title,
|
||||||
'title' => $objectGroup->title,
|
'title' => $objectGroup->title,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PiggyBankController.php
|
* PiggyBankController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -67,22 +68,21 @@ class PiggyBankController extends Controller
|
|||||||
{
|
{
|
||||||
$data = $request->getData();
|
$data = $request->getData();
|
||||||
$piggies = $this->piggyRepository->searchPiggyBank($data['query'], $this->parameters->get('limit'));
|
$piggies = $this->piggyRepository->searchPiggyBank($data['query'], $this->parameters->get('limit'));
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrency();
|
|
||||||
$response = [];
|
$response = [];
|
||||||
|
|
||||||
/** @var PiggyBank $piggy */
|
/** @var PiggyBank $piggy */
|
||||||
foreach ($piggies as $piggy) {
|
foreach ($piggies as $piggy) {
|
||||||
$currency = $this->accountRepository->getAccountCurrency($piggy->account) ?? $defaultCurrency;
|
$currency = $piggy->transactionCurrency;
|
||||||
$objectGroup = $piggy->objectGroups()->first();
|
$objectGroup = $piggy->objectGroups()->first();
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$piggy->id,
|
'id' => (string) $piggy->id,
|
||||||
'name' => $piggy->name,
|
'name' => $piggy->name,
|
||||||
'currency_id' => (string)$currency->id,
|
'currency_id' => (string) $currency->id,
|
||||||
'currency_name' => $currency->name,
|
'currency_name' => $currency->name,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
'currency_symbol' => $currency->symbol,
|
'currency_symbol' => $currency->symbol,
|
||||||
'currency_decimal_places' => $currency->decimal_places,
|
'currency_decimal_places' => $currency->decimal_places,
|
||||||
'object_group_id' => null === $objectGroup ? null : (string)$objectGroup->id,
|
'object_group_id' => null === $objectGroup ? null : (string) $objectGroup->id,
|
||||||
'object_group_title' => $objectGroup?->title,
|
'object_group_title' => $objectGroup?->title,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -98,29 +98,28 @@ class PiggyBankController extends Controller
|
|||||||
{
|
{
|
||||||
$data = $request->getData();
|
$data = $request->getData();
|
||||||
$piggies = $this->piggyRepository->searchPiggyBank($data['query'], $this->parameters->get('limit'));
|
$piggies = $this->piggyRepository->searchPiggyBank($data['query'], $this->parameters->get('limit'));
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrency();
|
|
||||||
$response = [];
|
$response = [];
|
||||||
|
|
||||||
/** @var PiggyBank $piggy */
|
/** @var PiggyBank $piggy */
|
||||||
foreach ($piggies as $piggy) {
|
foreach ($piggies as $piggy) {
|
||||||
$currency = $this->accountRepository->getAccountCurrency($piggy->account) ?? $defaultCurrency;
|
$currency = $piggy->transactionCurrency;
|
||||||
$currentAmount = $this->piggyRepository->getRepetition($piggy)->currentamount ?? '0';
|
$currentAmount = $this->piggyRepository->getCurrentAmount($piggy);
|
||||||
$objectGroup = $piggy->objectGroups()->first();
|
$objectGroup = $piggy->objectGroups()->first();
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$piggy->id,
|
'id' => (string) $piggy->id,
|
||||||
'name' => $piggy->name,
|
'name' => $piggy->name,
|
||||||
'name_with_balance' => sprintf(
|
'name_with_balance' => sprintf(
|
||||||
'%s (%s / %s)',
|
'%s (%s / %s)',
|
||||||
$piggy->name,
|
$piggy->name,
|
||||||
app('amount')->formatAnything($currency, $currentAmount, false),
|
app('amount')->formatAnything($currency, $currentAmount, false),
|
||||||
app('amount')->formatAnything($currency, $piggy->targetamount, false),
|
app('amount')->formatAnything($currency, $piggy->target_amount, false),
|
||||||
),
|
),
|
||||||
'currency_id' => (string)$currency->id,
|
'currency_id' => (string) $currency->id,
|
||||||
'currency_name' => $currency->name,
|
'currency_name' => $currency->name,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
'currency_symbol' => $currency->symbol,
|
'currency_symbol' => $currency->symbol,
|
||||||
'currency_decimal_places' => $currency->decimal_places,
|
'currency_decimal_places' => $currency->decimal_places,
|
||||||
'object_group_id' => null === $objectGroup ? null : (string)$objectGroup->id,
|
'object_group_id' => null === $objectGroup ? null : (string) $objectGroup->id,
|
||||||
'object_group_title' => $objectGroup?->title,
|
'object_group_title' => $objectGroup?->title,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RecurrenceController.php
|
* RecurrenceController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -66,7 +67,7 @@ class RecurrenceController extends Controller
|
|||||||
/** @var Recurrence $recurrence */
|
/** @var Recurrence $recurrence */
|
||||||
foreach ($recurrences as $recurrence) {
|
foreach ($recurrences as $recurrence) {
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$recurrence->id,
|
'id' => (string) $recurrence->id,
|
||||||
'name' => $recurrence->title,
|
'name' => $recurrence->title,
|
||||||
'description' => $recurrence->description,
|
'description' => $recurrence->description,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RuleController.php
|
* RuleController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -65,7 +66,7 @@ class RuleController extends Controller
|
|||||||
/** @var Rule $rule */
|
/** @var Rule $rule */
|
||||||
foreach ($rules as $rule) {
|
foreach ($rules as $rule) {
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$rule->id,
|
'id' => (string) $rule->id,
|
||||||
'name' => $rule->title,
|
'name' => $rule->title,
|
||||||
'description' => $rule->description,
|
'description' => $rule->description,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RuleGroupController.php
|
* RuleGroupController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -65,7 +66,7 @@ class RuleGroupController extends Controller
|
|||||||
/** @var RuleGroup $group */
|
/** @var RuleGroup $group */
|
||||||
foreach ($groups as $group) {
|
foreach ($groups as $group) {
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$group->id,
|
'id' => (string) $group->id,
|
||||||
'name' => $group->title,
|
'name' => $group->title,
|
||||||
'description' => $group->description,
|
'description' => $group->description,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TagController.php
|
* TagController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -68,7 +69,7 @@ class TagController extends Controller
|
|||||||
/** @var Tag $tag */
|
/** @var Tag $tag */
|
||||||
foreach ($result as $tag) {
|
foreach ($result as $tag) {
|
||||||
$array[] = [
|
$array[] = [
|
||||||
'id' => (string)$tag->id,
|
'id' => (string) $tag->id,
|
||||||
'name' => $tag->tag,
|
'name' => $tag->tag,
|
||||||
'tag' => $tag->tag,
|
'tag' => $tag->tag,
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TransactionController.php
|
* TransactionController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -76,8 +77,8 @@ class TransactionController extends Controller
|
|||||||
/** @var TransactionJournal $journal */
|
/** @var TransactionJournal $journal */
|
||||||
foreach ($filtered as $journal) {
|
foreach ($filtered as $journal) {
|
||||||
$array[] = [
|
$array[] = [
|
||||||
'id' => (string)$journal->id,
|
'id' => (string) $journal->id,
|
||||||
'transaction_group_id' => (string)$journal->transaction_group_id,
|
'transaction_group_id' => (string) $journal->transaction_group_id,
|
||||||
'name' => $journal->description,
|
'name' => $journal->description,
|
||||||
'description' => $journal->description,
|
'description' => $journal->description,
|
||||||
];
|
];
|
||||||
@@ -96,7 +97,7 @@ class TransactionController extends Controller
|
|||||||
$result = new Collection();
|
$result = new Collection();
|
||||||
if (is_numeric($data['query'])) {
|
if (is_numeric($data['query'])) {
|
||||||
// search for group, not journal.
|
// search for group, not journal.
|
||||||
$firstResult = $this->groupRepository->find((int)$data['query']);
|
$firstResult = $this->groupRepository->find((int) $data['query']);
|
||||||
if (null !== $firstResult) {
|
if (null !== $firstResult) {
|
||||||
// group may contain multiple journals, each a result:
|
// group may contain multiple journals, each a result:
|
||||||
foreach ($firstResult->transactionJournals as $journal) {
|
foreach ($firstResult->transactionJournals as $journal) {
|
||||||
@@ -114,8 +115,8 @@ class TransactionController extends Controller
|
|||||||
/** @var TransactionJournal $journal */
|
/** @var TransactionJournal $journal */
|
||||||
foreach ($result as $journal) {
|
foreach ($result as $journal) {
|
||||||
$array[] = [
|
$array[] = [
|
||||||
'id' => (string)$journal->id,
|
'id' => (string) $journal->id,
|
||||||
'transaction_group_id' => (string)$journal->transaction_group_id,
|
'transaction_group_id' => (string) $journal->transaction_group_id,
|
||||||
'name' => sprintf('#%d: %s', $journal->transaction_group_id, $journal->description),
|
'name' => sprintf('#%d: %s', $journal->transaction_group_id, $journal->description),
|
||||||
'description' => sprintf('#%d: %s', $journal->transaction_group_id, $journal->description),
|
'description' => sprintf('#%d: %s', $journal->transaction_group_id, $journal->description),
|
||||||
];
|
];
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TransactionTypeController.php
|
* TransactionTypeController.php
|
||||||
* Copyright (c) 2020 james@firefly-iii.org
|
* Copyright (c) 2020 james@firefly-iii.org
|
||||||
@@ -65,7 +66,7 @@ class TransactionTypeController extends Controller
|
|||||||
foreach ($types as $type) {
|
foreach ($types as $type) {
|
||||||
// different key for consistency.
|
// different key for consistency.
|
||||||
$array[] = [
|
$array[] = [
|
||||||
'id' => (string)$type->id,
|
'id' => (string) $type->id,
|
||||||
'name' => $type->type,
|
'name' => $type->type,
|
||||||
'type' => $type->type,
|
'type' => $type->type,
|
||||||
];
|
];
|
||||||
|
@@ -104,7 +104,7 @@ class AccountController extends Controller
|
|||||||
}
|
}
|
||||||
$currentSet = [
|
$currentSet = [
|
||||||
'label' => $account->name,
|
'label' => $account->name,
|
||||||
'currency_id' => (string)$currency->id,
|
'currency_id' => (string) $currency->id,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
'currency_symbol' => $currency->symbol,
|
'currency_symbol' => $currency->symbol,
|
||||||
'currency_decimal_places' => $currency->decimal_places,
|
'currency_decimal_places' => $currency->decimal_places,
|
||||||
@@ -116,13 +116,13 @@ class AccountController extends Controller
|
|||||||
];
|
];
|
||||||
// TODO this code is also present in the V2 chart account controller so this method is due to be deprecated.
|
// TODO this code is also present in the V2 chart account controller so this method is due to be deprecated.
|
||||||
$currentStart = clone $start;
|
$currentStart = clone $start;
|
||||||
$range = app('steam')->balanceInRange($account, $start, clone $end);
|
$range = app('steam')->finalAccountBalanceInRange($account, $start, clone $end, $this->convertToNative);
|
||||||
// 2022-10-11 this method no longer converts to float.
|
// 2022-10-11 this method no longer converts to float.
|
||||||
$previous = array_values($range)[0];
|
$previous = array_values($range)[0];
|
||||||
while ($currentStart <= $end) {
|
while ($currentStart <= $end) {
|
||||||
$format = $currentStart->format('Y-m-d');
|
$format = $currentStart->format('Y-m-d');
|
||||||
$label = $currentStart->toAtomString();
|
$label = $currentStart->toAtomString();
|
||||||
$balance = array_key_exists($format, $range) ? $range[$format] : $previous;
|
$balance = array_key_exists($format, $range) ? $range[$format]['balance'] : $previous;
|
||||||
$previous = $balance;
|
$previous = $balance;
|
||||||
$currentStart->addDay();
|
$currentStart->addDay();
|
||||||
$currentSet['entries'][$label] = $balance;
|
$currentSet['entries'][$label] = $balance;
|
||||||
|
@@ -55,6 +55,7 @@ abstract class Controller extends BaseController
|
|||||||
/** @var array<int, string> */
|
/** @var array<int, string> */
|
||||||
protected array $allowedSort;
|
protected array $allowedSort;
|
||||||
protected ParameterBag $parameters;
|
protected ParameterBag $parameters;
|
||||||
|
protected bool $convertToNative = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller constructor.
|
* Controller constructor.
|
||||||
@@ -68,7 +69,9 @@ abstract class Controller extends BaseController
|
|||||||
$this->parameters = $this->getParameters();
|
$this->parameters = $this->getParameters();
|
||||||
if (auth()->check()) {
|
if (auth()->check()) {
|
||||||
$language = app('steam')->getLanguage();
|
$language = app('steam')->getLanguage();
|
||||||
|
$this->convertToNative = app('preferences')->get('convert_to_native', false)->data;
|
||||||
app()->setLocale($language);
|
app()->setLocale($language);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
@@ -82,7 +85,7 @@ abstract class Controller extends BaseController
|
|||||||
private function getParameters(): ParameterBag
|
private function getParameters(): ParameterBag
|
||||||
{
|
{
|
||||||
$bag = new ParameterBag();
|
$bag = new ParameterBag();
|
||||||
$page = (int)request()->get('page');
|
$page = (int) request()->get('page');
|
||||||
if ($page < 1) {
|
if ($page < 1) {
|
||||||
$page = 1;
|
$page = 1;
|
||||||
}
|
}
|
||||||
@@ -107,13 +110,13 @@ abstract class Controller extends BaseController
|
|||||||
$obj = null;
|
$obj = null;
|
||||||
if (null !== $date) {
|
if (null !== $date) {
|
||||||
try {
|
try {
|
||||||
$obj = Carbon::parse((string)$date);
|
$obj = Carbon::parse((string) $date);
|
||||||
} catch (InvalidDateException|InvalidFormatException $e) {
|
} catch (InvalidDateException|InvalidFormatException $e) {
|
||||||
// don't care
|
// don't care
|
||||||
app('log')->warning(
|
app('log')->warning(
|
||||||
sprintf(
|
sprintf(
|
||||||
'Ignored invalid date "%s" in API controller parameter check: %s',
|
'Ignored invalid date "%s" in API controller parameter check: %s',
|
||||||
substr((string)$date, 0, 20),
|
substr((string) $date, 0, 20),
|
||||||
$e->getMessage()
|
$e->getMessage()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -134,7 +137,7 @@ abstract class Controller extends BaseController
|
|||||||
$value = null;
|
$value = null;
|
||||||
}
|
}
|
||||||
if (null !== $value) {
|
if (null !== $value) {
|
||||||
$bag->set($integer, (int)$value);
|
$bag->set($integer, (int) $value);
|
||||||
}
|
}
|
||||||
if (null === $value
|
if (null === $value
|
||||||
&& 'limit' === $integer // @phpstan-ignore-line
|
&& 'limit' === $integer // @phpstan-ignore-line
|
||||||
@@ -144,7 +147,7 @@ abstract class Controller extends BaseController
|
|||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
/** @var Preference $pageSize */
|
/** @var Preference $pageSize */
|
||||||
$pageSize = (int)app('preferences')->getForUser($user, 'listPageSize', 50)->data;
|
$pageSize = (int) app('preferences')->getForUser($user, 'listPageSize', 50)->data;
|
||||||
$bag->set($integer, $pageSize);
|
$bag->set($integer, $pageSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -158,7 +161,7 @@ abstract class Controller extends BaseController
|
|||||||
$sortParameters = [];
|
$sortParameters = [];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$param = (string)request()->query->get('sort');
|
$param = (string) request()->query->get('sort');
|
||||||
} catch (BadRequestException $e) {
|
} catch (BadRequestException $e) {
|
||||||
app('log')->error('Request field "sort" contains a non-scalar value. Value set to NULL.');
|
app('log')->error('Request field "sort" contains a non-scalar value. Value set to NULL.');
|
||||||
app('log')->error($e->getMessage());
|
app('log')->error($e->getMessage());
|
||||||
|
@@ -70,8 +70,8 @@ class TransactionController extends Controller
|
|||||||
// to respond to what is in the $query.
|
// to respond to what is in the $query.
|
||||||
// this is OK because only one thing can be in the query at the moment.
|
// this is OK because only one thing can be in the query at the moment.
|
||||||
if ($this->isUpdateTransactionAccount($params)) {
|
if ($this->isUpdateTransactionAccount($params)) {
|
||||||
$original = $this->repository->find((int)$params['where']['account_id']);
|
$original = $this->repository->find((int) $params['where']['account_id']);
|
||||||
$destination = $this->repository->find((int)$params['update']['account_id']);
|
$destination = $this->repository->find((int) $params['update']['account_id']);
|
||||||
|
|
||||||
/** @var AccountDestroyService $service */
|
/** @var AccountDestroyService $service */
|
||||||
$service = app(AccountDestroyService::class);
|
$service = app(AccountDestroyService::class);
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -25,11 +26,11 @@ namespace FireflyIII\Api\V1\Controllers\Data;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Data\DestroyRequest;
|
use FireflyIII\Api\V1\Requests\Data\DestroyRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||||
use FireflyIII\Repositories\Budget\AvailableBudgetRepositoryInterface;
|
use FireflyIII\Repositories\Budget\AvailableBudgetRepositoryInterface;
|
||||||
@@ -68,7 +69,7 @@ class DestroyController extends Controller
|
|||||||
$allExceptAssets = [AccountType::BENEFICIARY, AccountType::CASH, AccountType::CREDITCARD, AccountType::DEFAULT, AccountType::EXPENSE, AccountType::IMPORT, AccountType::INITIAL_BALANCE, AccountType::LIABILITY_CREDIT, AccountType::RECONCILIATION, AccountType::REVENUE];
|
$allExceptAssets = [AccountType::BENEFICIARY, AccountType::CASH, AccountType::CREDITCARD, AccountType::DEFAULT, AccountType::EXPENSE, AccountType::IMPORT, AccountType::INITIAL_BALANCE, AccountType::LIABILITY_CREDIT, AccountType::RECONCILIATION, AccountType::REVENUE];
|
||||||
$all = [AccountType::ASSET, AccountType::BENEFICIARY, AccountType::CASH, AccountType::CREDITCARD, AccountType::DEBT, AccountType::DEFAULT, AccountType::EXPENSE, AccountType::IMPORT, AccountType::INITIAL_BALANCE, AccountType::LIABILITY_CREDIT, AccountType::LOAN, AccountType::MORTGAGE, AccountType::RECONCILIATION];
|
$all = [AccountType::ASSET, AccountType::BENEFICIARY, AccountType::CASH, AccountType::CREDITCARD, AccountType::DEBT, AccountType::DEFAULT, AccountType::EXPENSE, AccountType::IMPORT, AccountType::INITIAL_BALANCE, AccountType::LIABILITY_CREDIT, AccountType::LOAN, AccountType::MORTGAGE, AccountType::RECONCILIATION];
|
||||||
$liabilities = [AccountType::DEBT, AccountType::LOAN, AccountType::MORTGAGE, AccountType::CREDITCARD];
|
$liabilities = [AccountType::DEBT, AccountType::LOAN, AccountType::MORTGAGE, AccountType::CREDITCARD];
|
||||||
$transactions = [TransactionType::WITHDRAWAL, TransactionType::DEPOSIT, TransactionType::TRANSFER, TransactionType::RECONCILIATION];
|
$transactions = [TransactionTypeEnum::WITHDRAWAL->value, TransactionTypeEnum::DEPOSIT->value, TransactionTypeEnum::TRANSFER->value, TransactionTypeEnum::RECONCILIATION->value];
|
||||||
|
|
||||||
match ($objects) {
|
match ($objects) {
|
||||||
'budgets' => $this->destroyBudgets(),
|
'budgets' => $this->destroyBudgets(),
|
||||||
@@ -86,9 +87,9 @@ class DestroyController extends Controller
|
|||||||
'revenue_accounts' => $this->destroyAccounts([AccountType::REVENUE]),
|
'revenue_accounts' => $this->destroyAccounts([AccountType::REVENUE]),
|
||||||
'liabilities' => $this->destroyAccounts($liabilities),
|
'liabilities' => $this->destroyAccounts($liabilities),
|
||||||
'transactions' => $this->destroyTransactions($transactions),
|
'transactions' => $this->destroyTransactions($transactions),
|
||||||
'withdrawals' => $this->destroyTransactions([TransactionType::WITHDRAWAL]),
|
'withdrawals' => $this->destroyTransactions([TransactionTypeEnum::WITHDRAWAL->value]),
|
||||||
'deposits' => $this->destroyTransactions([TransactionType::DEPOSIT]),
|
'deposits' => $this->destroyTransactions([TransactionTypeEnum::DEPOSIT->value]),
|
||||||
'transfers' => $this->destroyTransactions([TransactionType::TRANSFER]),
|
'transfers' => $this->destroyTransactions([TransactionTypeEnum::TRANSFER->value]),
|
||||||
default => throw new FireflyException(sprintf('200033: This endpoint can\'t handle object "%s"', $objects)),
|
default => throw new FireflyException(sprintf('200033: This endpoint can\'t handle object "%s"', $objects)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -88,7 +88,7 @@ class ExportController extends Controller
|
|||||||
->header('Expires', '0')
|
->header('Expires', '0')
|
||||||
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
|
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
|
||||||
->header('Pragma', 'public')
|
->header('Pragma', 'public')
|
||||||
->header('Content-Length', (string)strlen($data[$key]))
|
->header('Content-Length', (string) strlen($data[$key]))
|
||||||
;
|
;
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PurgeController.php
|
* PurgeController.php
|
||||||
* Copyright (c) 2022 james@firefly-iii.org
|
* Copyright (c) 2022 james@firefly-iii.org
|
||||||
@@ -28,13 +29,13 @@ use FireflyIII\Models\Account;
|
|||||||
use FireflyIII\Models\Bill;
|
use FireflyIII\Models\Bill;
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
use FireflyIII\Models\Category;
|
use FireflyIII\Models\Category;
|
||||||
use FireflyIII\Models\PiggyBank;
|
|
||||||
use FireflyIII\Models\Recurrence;
|
use FireflyIII\Models\Recurrence;
|
||||||
use FireflyIII\Models\Rule;
|
use FireflyIII\Models\Rule;
|
||||||
use FireflyIII\Models\RuleGroup;
|
use FireflyIII\Models\RuleGroup;
|
||||||
use FireflyIII\Models\Tag;
|
use FireflyIII\Models\Tag;
|
||||||
use FireflyIII\Models\TransactionGroup;
|
use FireflyIII\Models\TransactionGroup;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
|
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -62,14 +63,17 @@ class PurgeController extends Controller
|
|||||||
Bill::whereUserId($user->id)->onlyTrashed()->forceDelete();
|
Bill::whereUserId($user->id)->onlyTrashed()->forceDelete();
|
||||||
|
|
||||||
// piggies
|
// piggies
|
||||||
$set = PiggyBank::leftJoin('accounts', 'accounts.id', 'piggy_banks.account_id')
|
$repository = app(PiggyBankRepositoryInterface::class);
|
||||||
->where('accounts.user_id', $user->id)->onlyTrashed()->get(['piggy_banks.*'])
|
$repository->setUser($user);
|
||||||
;
|
$repository->purgeAll();
|
||||||
|
// $set = PiggyBank::leftJoin('accounts', 'accounts.id', 'piggy_banks.account_id')
|
||||||
/** @var PiggyBank $piggy */
|
// ->where('accounts.user_id', $user->id)->onlyTrashed()->get(['piggy_banks.*'])
|
||||||
foreach ($set as $piggy) {
|
// ;
|
||||||
$piggy->forceDelete();
|
//
|
||||||
}
|
// /** @var PiggyBank $piggy */
|
||||||
|
// foreach ($set as $piggy) {
|
||||||
|
// $piggy->forceDelete();
|
||||||
|
// }
|
||||||
|
|
||||||
// rule group
|
// rule group
|
||||||
RuleGroup::whereUserId($user->id)->onlyTrashed()->forceDelete();
|
RuleGroup::whereUserId($user->id)->onlyTrashed()->forceDelete();
|
||||||
|
@@ -79,11 +79,11 @@ class AccountController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$expense['id'],
|
'id' => (string) $expense['id'],
|
||||||
'name' => $expense['name'],
|
'name' => $expense['name'],
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -107,11 +107,11 @@ class AccountController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$expense['id'],
|
'id' => (string) $expense['id'],
|
||||||
'name' => $expense['name'],
|
'name' => $expense['name'],
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -26,8 +26,8 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Expense;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -76,38 +76,38 @@ class BillController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::WITHDRAWAL])->setRange($start, $end)->setSourceAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
|
||||||
$collector->setBills($bills);
|
$collector->setBills($bills);
|
||||||
|
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$billId = (int)$journal['bill_id'];
|
$billId = (int) $journal['bill_id'];
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
$key = sprintf('%d-%d', $billId, $currencyId);
|
$key = sprintf('%d-%d', $billId, $currencyId);
|
||||||
$foreignKey = sprintf('%d-%d', $billId, $foreignCurrencyId);
|
$foreignKey = sprintf('%d-%d', $billId, $foreignCurrencyId);
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$key] ??= [
|
$response[$key] ??= [
|
||||||
'id' => (string)$billId,
|
'id' => (string) $billId,
|
||||||
'name' => $journal['bill_name'],
|
'name' => $journal['bill_name'],
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$key]['difference'] = bcadd($response[$key]['difference'], $journal['amount']);
|
$response[$key]['difference'] = bcadd($response[$key]['difference'], $journal['amount']);
|
||||||
$response[$key]['difference_float'] = (float)$response[$key]['difference']; // intentional float
|
$response[$key]['difference_float'] = (float) $response[$key]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignKey] ??= [
|
$response[$foreignKey] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignKey]['difference'] = bcadd($response[$foreignKey]['difference'], $journal['foreign_amount']);
|
$response[$foreignKey]['difference'] = bcadd($response[$foreignKey]['difference'], $journal['foreign_amount']);
|
||||||
$response[$foreignKey]['difference_float'] = (float)$response[$foreignKey]['difference']; // intentional float
|
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,34 +129,34 @@ class BillController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::WITHDRAWAL])->setRange($start, $end)->setSourceAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
|
||||||
$collector->withoutBill();
|
$collector->withoutBill();
|
||||||
|
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference']; // intentional float
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference']; // intentional float
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BudgetController.php
|
* BudgetController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -84,11 +85,11 @@ class BudgetController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$budget->id,
|
'id' => (string) $budget->id,
|
||||||
'name' => $budget->name,
|
'name' => $budget->name,
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -113,8 +114,8 @@ class BudgetController extends Controller
|
|||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -85,11 +85,11 @@ class CategoryController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$category->id,
|
'id' => (string) $category->id,
|
||||||
'name' => $category->name,
|
'name' => $category->name,
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -114,8 +114,8 @@ class CategoryController extends Controller
|
|||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // intentional float
|
'difference_float' => (float) $expense['sum'], // intentional float
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PeriodController.php
|
* PeriodController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -25,8 +26,8 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Expense;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,31 +48,31 @@ class PeriodController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type)
|
// collect all expenses in this period (regardless of type)
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::WITHDRAWAL])->setRange($start, $end)->setSourceAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference']; // intentional float
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference']; // intentional float
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,8 +26,8 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Expense;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
|
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -69,34 +69,34 @@ class TagController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::WITHDRAWAL])->setRange($start, $end)->setSourceAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
|
||||||
$collector->withoutTags();
|
$collector->withoutTags();
|
||||||
|
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], $journal['amount']);
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference']; // float but on purpose.
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
$response[$foreignCurrencyId]['difference'] = bcadd($response[$foreignCurrencyId]['difference'], $journal['foreign_amount']);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference']; // float but on purpose.
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,14 +124,14 @@ class TagController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::WITHDRAWAL])->setRange($start, $end)->setSourceAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
|
||||||
$collector->setTags($tags);
|
$collector->setTags($tags);
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
/** @var array $journal */
|
/** @var array $journal */
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
/** @var array $tag */
|
/** @var array $tag */
|
||||||
foreach ($journal['tags'] as $tag) {
|
foreach ($journal['tags'] as $tag) {
|
||||||
@@ -142,15 +142,15 @@ class TagController extends Controller
|
|||||||
// on currency ID
|
// on currency ID
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$key] ??= [
|
$response[$key] ??= [
|
||||||
'id' => (string)$tagId,
|
'id' => (string) $tagId,
|
||||||
'name' => $tag['name'],
|
'name' => $tag['name'],
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$key]['difference'] = bcadd($response[$key]['difference'], $journal['amount']);
|
$response[$key]['difference'] = bcadd($response[$key]['difference'], $journal['amount']);
|
||||||
$response[$key]['difference_float'] = (float)$response[$key]['difference']; // float but on purpose.
|
$response[$key]['difference_float'] = (float) $response[$key]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
|
|
||||||
// on foreign ID
|
// on foreign ID
|
||||||
@@ -158,11 +158,11 @@ class TagController extends Controller
|
|||||||
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignKey]['difference'] = bcadd($response[$foreignKey]['difference'], $journal['foreign_amount']);
|
$response[$foreignKey]['difference'] = bcadd($response[$foreignKey]['difference'], $journal['foreign_amount']);
|
||||||
$response[$foreignKey]['difference_float'] = (float)$response[$foreignKey]['difference']; // float but on purpose.
|
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -79,11 +79,11 @@ class AccountController extends Controller
|
|||||||
/** @var array $entry */
|
/** @var array $entry */
|
||||||
foreach ($income as $entry) {
|
foreach ($income as $entry) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$entry['id'],
|
'id' => (string) $entry['id'],
|
||||||
'name' => $entry['name'],
|
'name' => $entry['name'],
|
||||||
'difference' => $entry['sum'],
|
'difference' => $entry['sum'],
|
||||||
'difference_float' => (float)$entry['sum'], // float but on purpose.
|
'difference_float' => (float) $entry['sum'], // float but on purpose.
|
||||||
'currency_id' => (string)$entry['currency_id'],
|
'currency_id' => (string) $entry['currency_id'],
|
||||||
'currency_code' => $entry['currency_code'],
|
'currency_code' => $entry['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -107,11 +107,11 @@ class AccountController extends Controller
|
|||||||
/** @var array $entry */
|
/** @var array $entry */
|
||||||
foreach ($income as $entry) {
|
foreach ($income as $entry) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$entry['id'],
|
'id' => (string) $entry['id'],
|
||||||
'name' => $entry['name'],
|
'name' => $entry['name'],
|
||||||
'difference' => $entry['sum'],
|
'difference' => $entry['sum'],
|
||||||
'difference_float' => (float)$entry['sum'], // float but on purpose.
|
'difference_float' => (float) $entry['sum'], // float but on purpose.
|
||||||
'currency_id' => (string)$entry['currency_id'],
|
'currency_id' => (string) $entry['currency_id'],
|
||||||
'currency_code' => $entry['currency_code'],
|
'currency_code' => $entry['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -85,11 +85,11 @@ class CategoryController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$category->id,
|
'id' => (string) $category->id,
|
||||||
'name' => $category->name,
|
'name' => $category->name,
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // float but on purpose.
|
'difference_float' => (float) $expense['sum'], // float but on purpose.
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -114,8 +114,8 @@ class CategoryController extends Controller
|
|||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'], // float but on purpose.
|
'difference_float' => (float) $expense['sum'], // float but on purpose.
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PeriodController.php
|
* PeriodController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -25,8 +26,8 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Income;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,34 +48,34 @@ class PeriodController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type)
|
// collect all expenses in this period (regardless of type)
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::DEPOSIT])->setRange($start, $end)->setDestinationAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::DEPOSIT->value])->setRange($start, $end)->setDestinationAccounts($accounts);
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference']; // float but on purpose.
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd(
|
$response[$foreignCurrencyId]['difference'] = bcadd(
|
||||||
$response[$foreignCurrencyId]['difference'],
|
$response[$foreignCurrencyId]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference']; // float but on purpose.
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference']; // float but on purpose.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,8 +26,8 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Income;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\TransactionType;
|
|
||||||
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
|
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -70,37 +70,37 @@ class TagController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::DEPOSIT])->setRange($start, $end)->setDestinationAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::DEPOSIT->value])->setRange($start, $end)->setDestinationAccounts($accounts);
|
||||||
$collector->withoutTags();
|
$collector->withoutTags();
|
||||||
|
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference'];
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd(
|
$response[$foreignCurrencyId]['difference'] = bcadd(
|
||||||
$response[$foreignCurrencyId]['difference'],
|
$response[$foreignCurrencyId]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference'];
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,14 +128,14 @@ class TagController extends Controller
|
|||||||
|
|
||||||
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
// collect all expenses in this period (regardless of type) by the given bills and accounts.
|
||||||
$collector = app(GroupCollectorInterface::class);
|
$collector = app(GroupCollectorInterface::class);
|
||||||
$collector->setTypes([TransactionType::DEPOSIT])->setRange($start, $end)->setDestinationAccounts($accounts);
|
$collector->setTypes([TransactionTypeEnum::DEPOSIT->value])->setRange($start, $end)->setDestinationAccounts($accounts);
|
||||||
$collector->setTags($tags);
|
$collector->setTags($tags);
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
/** @var array $journal */
|
/** @var array $journal */
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
/** @var array $tag */
|
/** @var array $tag */
|
||||||
foreach ($journal['tags'] as $tag) {
|
foreach ($journal['tags'] as $tag) {
|
||||||
@@ -146,15 +146,15 @@ class TagController extends Controller
|
|||||||
// on currency ID
|
// on currency ID
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$key] ??= [
|
$response[$key] ??= [
|
||||||
'id' => (string)$tagId,
|
'id' => (string) $tagId,
|
||||||
'name' => $tag['name'],
|
'name' => $tag['name'],
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
|
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$key]['difference_float'] = (float)$response[$key]['difference'];
|
$response[$key]['difference_float'] = (float) $response[$key]['difference'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// on foreign ID
|
// on foreign ID
|
||||||
@@ -162,14 +162,14 @@ class TagController extends Controller
|
|||||||
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignKey]['difference'] = bcadd(
|
$response[$foreignKey]['difference'] = bcadd(
|
||||||
$response[$foreignKey]['difference'],
|
$response[$foreignKey]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignKey]['difference_float'] = (float)$response[$foreignKey]['difference'];
|
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CategoryController.php
|
* CategoryController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -84,11 +85,11 @@ class CategoryController extends Controller
|
|||||||
/** @var array $expense */
|
/** @var array $expense */
|
||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id' => (string)$category->id,
|
'id' => (string) $category->id,
|
||||||
'name' => $category->name,
|
'name' => $category->name,
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'],
|
'difference_float' => (float) $expense['sum'],
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -113,8 +114,8 @@ class CategoryController extends Controller
|
|||||||
foreach ($expenses as $expense) {
|
foreach ($expenses as $expense) {
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'difference' => $expense['sum'],
|
'difference' => $expense['sum'],
|
||||||
'difference_float' => (float)$expense['sum'],
|
'difference_float' => (float) $expense['sum'],
|
||||||
'currency_id' => (string)$expense['currency_id'],
|
'currency_id' => (string) $expense['currency_id'],
|
||||||
'currency_code' => $expense['currency_code'],
|
'currency_code' => $expense['currency_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PeriodController.php
|
* PeriodController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -50,31 +51,31 @@ class PeriodController extends Controller
|
|||||||
$collector->setTypes([TransactionType::TRANSFER])->setRange($start, $end)->setDestinationAccounts($accounts);
|
$collector->setTypes([TransactionType::TRANSFER])->setRange($start, $end)->setDestinationAccounts($accounts);
|
||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference'];
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd(
|
$response[$foreignCurrencyId]['difference'] = bcadd(
|
||||||
$response[$foreignCurrencyId]['difference'],
|
$response[$foreignCurrencyId]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference'];
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TagController.php
|
* TagController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -73,31 +74,31 @@ class TagController extends Controller
|
|||||||
$genericSet = $collector->getExtractedJournals();
|
$genericSet = $collector->getExtractedJournals();
|
||||||
|
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$currencyId] ??= [
|
$response[$currencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$currencyId]['difference_float'] = (float)$response[$currencyId]['difference'];
|
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
|
||||||
}
|
}
|
||||||
if (0 !== $foreignCurrencyId) {
|
if (0 !== $foreignCurrencyId) {
|
||||||
$response[$foreignCurrencyId] ??= [
|
$response[$foreignCurrencyId] ??= [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignCurrencyId]['difference'] = bcadd(
|
$response[$foreignCurrencyId]['difference'] = bcadd(
|
||||||
$response[$foreignCurrencyId]['difference'],
|
$response[$foreignCurrencyId]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignCurrencyId]['difference_float'] = (float)$response[$foreignCurrencyId]['difference'];
|
$response[$foreignCurrencyId]['difference_float'] = (float) $response[$foreignCurrencyId]['difference'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,8 +132,8 @@ class TagController extends Controller
|
|||||||
|
|
||||||
/** @var array $journal */
|
/** @var array $journal */
|
||||||
foreach ($genericSet as $journal) {
|
foreach ($genericSet as $journal) {
|
||||||
$currencyId = (int)$journal['currency_id'];
|
$currencyId = (int) $journal['currency_id'];
|
||||||
$foreignCurrencyId = (int)$journal['foreign_currency_id'];
|
$foreignCurrencyId = (int) $journal['foreign_currency_id'];
|
||||||
|
|
||||||
/** @var array $tag */
|
/** @var array $tag */
|
||||||
foreach ($journal['tags'] as $tag) {
|
foreach ($journal['tags'] as $tag) {
|
||||||
@@ -143,15 +144,15 @@ class TagController extends Controller
|
|||||||
// on currency ID
|
// on currency ID
|
||||||
if (0 !== $currencyId) {
|
if (0 !== $currencyId) {
|
||||||
$response[$key] ??= [
|
$response[$key] ??= [
|
||||||
'id' => (string)$tagId,
|
'id' => (string) $tagId,
|
||||||
'name' => $tag['name'],
|
'name' => $tag['name'],
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$currencyId,
|
'currency_id' => (string) $currencyId,
|
||||||
'currency_code' => $journal['currency_code'],
|
'currency_code' => $journal['currency_code'],
|
||||||
];
|
];
|
||||||
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
|
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
|
||||||
$response[$key]['difference_float'] = (float)$response[$key]['difference'];
|
$response[$key]['difference_float'] = (float) $response[$key]['difference'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// on foreign ID
|
// on foreign ID
|
||||||
@@ -159,14 +160,14 @@ class TagController extends Controller
|
|||||||
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
$response[$foreignKey] = $journal[$foreignKey] ?? [
|
||||||
'difference' => '0',
|
'difference' => '0',
|
||||||
'difference_float' => 0,
|
'difference_float' => 0,
|
||||||
'currency_id' => (string)$foreignCurrencyId,
|
'currency_id' => (string) $foreignCurrencyId,
|
||||||
'currency_code' => $journal['foreign_currency_code'],
|
'currency_code' => $journal['foreign_currency_code'],
|
||||||
];
|
];
|
||||||
$response[$foreignKey]['difference'] = bcadd(
|
$response[$foreignKey]['difference'] = bcadd(
|
||||||
$response[$foreignKey]['difference'],
|
$response[$foreignKey]['difference'],
|
||||||
app('steam')->positive($journal['foreign_amount'])
|
app('steam')->positive($journal['foreign_amount'])
|
||||||
);
|
);
|
||||||
$response[$foreignKey]['difference_float'] = (float)$response[$foreignKey]['difference']; // intentional float
|
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // intentional float
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2019 james@firefly-iii.org
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2019 james@firefly-iii.org
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
@@ -110,7 +111,7 @@ class ListController extends Controller
|
|||||||
// types to get, page size:
|
// types to get, page size:
|
||||||
$pageSize = $this->parameters->get('limit');
|
$pageSize = $this->parameters->get('limit');
|
||||||
|
|
||||||
// get list of budgets. Count it and split it.
|
// get list of piggy banks. Count it and split it.
|
||||||
$collection = $this->repository->getPiggyBanks($account);
|
$collection = $this->repository->getPiggyBanks($account);
|
||||||
$count = $collection->count();
|
$count = $collection->count();
|
||||||
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2019 james@firefly-iii.org
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AccountController.php
|
* AccountController.php
|
||||||
* Copyright (c) 2019 james@firefly-iii.org
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -104,7 +105,7 @@ class ShowController extends Controller
|
|||||||
->header('Expires', '0')
|
->header('Expires', '0')
|
||||||
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
|
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
|
||||||
->header('Pragma', 'public')
|
->header('Pragma', 'public')
|
||||||
->header('Content-Length', (string)strlen($content))
|
->header('Content-Length', (string) strlen($content))
|
||||||
;
|
;
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -112,7 +113,12 @@ class StoreController extends Controller
|
|||||||
|
|
||||||
return response()->json([], 422);
|
return response()->json([], 422);
|
||||||
}
|
}
|
||||||
$helper->saveAttachmentFromApi($attachment, $body);
|
$result = $helper->saveAttachmentFromApi($attachment, $body);
|
||||||
|
if (false === $result) {
|
||||||
|
app('log')->error('Could not save attachment from API.');
|
||||||
|
|
||||||
|
return response()->json([], 422);
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json([], 204);
|
return response()->json([], 204);
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -68,6 +69,7 @@ class StoreController extends Controller
|
|||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
$data['start_date'] = $data['start'];
|
$data['start_date'] = $data['start'];
|
||||||
$data['end_date'] = $data['end'];
|
$data['end_date'] = $data['end'];
|
||||||
|
$data['notes'] = $data['notes'];
|
||||||
$data['budget_id'] = $budget->id;
|
$data['budget_id'] = $budget->id;
|
||||||
|
|
||||||
$budgetLimit = $this->blRepository->store($data);
|
$budgetLimit = $this->blRepository->store($data);
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -27,6 +28,7 @@ use FireflyIII\Api\V1\Controllers\Controller;
|
|||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\PiggyBank;
|
use FireflyIII\Models\PiggyBank;
|
||||||
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
|
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
|
||||||
|
use FireflyIII\Transformers\AccountTransformer;
|
||||||
use FireflyIII\Transformers\AttachmentTransformer;
|
use FireflyIII\Transformers\AttachmentTransformer;
|
||||||
use FireflyIII\Transformers\PiggyBankEventTransformer;
|
use FireflyIII\Transformers\PiggyBankEventTransformer;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
@@ -57,6 +59,38 @@ class ListController extends Controller
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listAccountByPiggyBank
|
||||||
|
*
|
||||||
|
* List single resource.
|
||||||
|
*
|
||||||
|
* @throws FireflyException
|
||||||
|
*/
|
||||||
|
public function accounts(PiggyBank $piggyBank): JsonResponse
|
||||||
|
{
|
||||||
|
// types to get, page size:
|
||||||
|
$pageSize = $this->parameters->get('limit');
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$collection = $piggyBank->accounts;
|
||||||
|
$count = $collection->count();
|
||||||
|
$events = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
||||||
|
|
||||||
|
// make paginator:
|
||||||
|
$paginator = new LengthAwarePaginator($events, $count, $pageSize, $this->parameters->get('page'));
|
||||||
|
$paginator->setPath(route('api.v1.piggy-banks.accounts', [$piggyBank->id]).$this->buildParams());
|
||||||
|
|
||||||
|
/** @var AccountTransformer $transformer */
|
||||||
|
$transformer = app(AccountTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new FractalCollection($events, $transformer, 'accounts');
|
||||||
|
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This endpoint is documented at:
|
* This endpoint is documented at:
|
||||||
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listAttachmentByPiggyBank
|
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listAttachmentByPiggyBank
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
@@ -71,7 +72,7 @@ class ShowController extends Controller
|
|||||||
// types to get, page size:
|
// types to get, page size:
|
||||||
$pageSize = $this->parameters->get('limit');
|
$pageSize = $this->parameters->get('limit');
|
||||||
|
|
||||||
// get list of budgets. Count it and split it.
|
// get list of piggy banks. Count it and split it.
|
||||||
$collection = $this->repository->getPiggyBanks();
|
$collection = $this->repository->getPiggyBanks();
|
||||||
$count = $collection->count();
|
$count = $collection->count();
|
||||||
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ExpressionController.php
|
* ExpressionController.php
|
||||||
* Copyright (c) 2024 Michael Thomas
|
* Copyright (c) 2024 Michael Thomas
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TriggerController.php
|
* TriggerController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UpdateController.php
|
* UpdateController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DestroyController.php
|
* DestroyController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ListController.php
|
* ListController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ShowController.php
|
* ShowController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* StoreController.php
|
* StoreController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TriggerController.php
|
* TriggerController.php
|
||||||
* Copyright (c) 2021 james@firefly-iii.org
|
* Copyright (c) 2021 james@firefly-iii.org
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user