@zeniai/client-epic-state 5.1.22 → 5.1.23-betaRD1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/lib/esm/view/expenseAutomationView/epics/fluxAnalysis/fetchFluxAnalysisViewEpic.js +1 -3
- package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +9 -1
- package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +8 -0
- package/lib/esm/view/transactionDetail/transactionDetailLocalDataHelper.js +13 -0
- package/lib/view/expenseAutomationView/epics/fluxAnalysis/fetchFluxAnalysisViewEpic.js +1 -3
- package/lib/view/transactionDetail/epics/saveTransactionHelper.js +9 -1
- package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +8 -0
- package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +13 -0
- package/lib/view/transactionDetail/transactionDetailState.d.ts +1 -0
- package/lib/view/transactionDetail/transactionDetailTypes.d.ts +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -89,7 +89,8 @@ Testing types with `tsc` and Vitest is an experimental feature. Breaking changes
|
|
|
89
89
|
- `pnpm check-version` — Checks the current version using a custom script.
|
|
90
90
|
- `pnpm check-dependencies` — Checks dependencies using a custom script.
|
|
91
91
|
- `pnpm clean-resolutions` — Cleans up resolutions using a custom script.
|
|
92
|
-
- `pnpm create-release-branch` — Runs the release branch creation script.
|
|
92
|
+
- `pnpm create-or-update-release-branch` — Runs the release branch creation/update script.
|
|
93
|
+
- `pnpm bump-versions-master` — Bumps versions and publishes all client repos on master end-to-end (per-repo PR + auto-merge + publish; v2 bumps only, no deploy).
|
|
93
94
|
- `pnpm bump-update-web-app-cockpit-beta` — Runs the cockpit beta update script.
|
|
94
95
|
- `pnpm send-release-notes` — Sends release notes using a custom script.
|
|
95
96
|
- `pnpm update-slack-group-topic` — Updates the Slack group topic using a custom script.
|
|
@@ -59,9 +59,7 @@ export const fetchFluxAnalysisViewEpic = (actions$, state$, zeniAPI) => actions$
|
|
|
59
59
|
selectedPeriod: monthAndYear,
|
|
60
60
|
fetchReimbursement,
|
|
61
61
|
keepExistingListItems,
|
|
62
|
-
|
|
63
|
-
// status object (alongside code/message), not inside data.status.
|
|
64
|
-
status: response.status,
|
|
62
|
+
status: response.data?.status,
|
|
65
63
|
}));
|
|
66
64
|
}
|
|
67
65
|
return from(updateActions);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getRecommendationAmountRange, } from '../../../commonStateTypes/recommendationBase';
|
|
2
|
+
import { isCustomerTransaction, } from '../../../entity/transaction/stateTypes/customerTransaction';
|
|
2
3
|
import { toJEAndDepositTransactionTypeStrict, toVendorTransactionTypeStrict, } from '../../../entity/transaction/stateTypes/transactionType';
|
|
3
4
|
import { isVendorTransaction, } from '../../../entity/transaction/stateTypes/vendorTransaction';
|
|
4
5
|
import { convertCOTRecommendationsToRegular } from '../../../entity/transaction/transactionHelper';
|
|
@@ -30,6 +31,10 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
|
|
|
30
31
|
const isTransactionMisCategorized = isTransactionMiscategorized(transaction, isExpenseAutomationEnabled);
|
|
31
32
|
updates.memo = transactionDetailLocalData.memo;
|
|
32
33
|
updates.documentId = transactionDetailLocalData.documentId;
|
|
34
|
+
// For invoice and credit_memo, project is at the transaction level.
|
|
35
|
+
if (isCustomerTransaction(transaction)) {
|
|
36
|
+
updates.project = transactionDetailLocalData.project;
|
|
37
|
+
}
|
|
33
38
|
const selectedEntity = transactionDetailLocalData.selectedEntity;
|
|
34
39
|
const updatedEntityId = transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor ===
|
|
35
40
|
true
|
|
@@ -52,7 +57,10 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
|
|
|
52
57
|
lineDescription: lineItem.lineDescription,
|
|
53
58
|
class: lineItem.class,
|
|
54
59
|
account: lineItem.account,
|
|
55
|
-
|
|
60
|
+
// Project is at the transaction level for invoice/credit_memo; omit from lines.
|
|
61
|
+
...(!isCustomerTransaction(transaction)
|
|
62
|
+
? { project: lineItem.project }
|
|
63
|
+
: {}),
|
|
56
64
|
recommendation: convertCOTRecommendationsToRegular(lineItem.recommendationsWithCOT),
|
|
57
65
|
};
|
|
58
66
|
if (line.type === 'journal_entry_transaction_line' ||
|
|
@@ -226,6 +226,14 @@ const toTransactionUpdatePayload = (updates, detail, cotTransactionTracking, ven
|
|
|
226
226
|
let basePayload;
|
|
227
227
|
if (isCustomerTransaction(transaction)) {
|
|
228
228
|
basePayload = toCustomerTransactionPayload(transaction);
|
|
229
|
+
// For invoice/credit_memo, project is at the transaction level; inject it here.
|
|
230
|
+
if (updates.project != null) {
|
|
231
|
+
basePayload = {
|
|
232
|
+
...basePayload,
|
|
233
|
+
accounting_project_id: updates.project.projectId,
|
|
234
|
+
accounting_project_name: updates.project.projectName,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
229
237
|
}
|
|
230
238
|
else if (isVendorTransaction(transaction)) {
|
|
231
239
|
if (tranSelectedEntity != null && tranSelectedEntity.type === 'customer') {
|
|
@@ -12,6 +12,13 @@ export const toTransactionDetailLocalData = (transaction, defaultVendorId, uncat
|
|
|
12
12
|
const vendorId = defaultVendorId ?? transaction.vendor?.id;
|
|
13
13
|
transactionLocal.memo = transaction.memo;
|
|
14
14
|
transactionLocal.documentId = transaction.documentId;
|
|
15
|
+
// For invoice and credit_memo, project is at the transaction level (not on lines).
|
|
16
|
+
if (isCustomerTransaction(transaction) && transaction.projectId != null) {
|
|
17
|
+
transactionLocal.project = {
|
|
18
|
+
projectId: transaction.projectId,
|
|
19
|
+
projectName: transaction.projectName ?? '',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
15
22
|
transactionLocal.vendorUpdates =
|
|
16
23
|
isVendorTransaction(transaction) && vendorId != null
|
|
17
24
|
? {
|
|
@@ -423,6 +430,7 @@ export const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionD
|
|
|
423
430
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
424
431
|
memo: transactionDetailLocalData.memo,
|
|
425
432
|
documentId: transactionDetailLocalData.documentId,
|
|
433
|
+
project: transactionDetailLocalData.project,
|
|
426
434
|
lineItemById: newLineItems,
|
|
427
435
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
428
436
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -527,6 +535,7 @@ export const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailL
|
|
|
527
535
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
528
536
|
memo: transactionDetailLocalData.memo,
|
|
529
537
|
documentId: transactionDetailLocalData.documentId,
|
|
538
|
+
project: transactionDetailLocalData.project,
|
|
530
539
|
lineItemById: newLineItems,
|
|
531
540
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
532
541
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
@@ -572,6 +581,7 @@ export const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transa
|
|
|
572
581
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
573
582
|
memo: transactionDetailLocalData.memo,
|
|
574
583
|
documentId: transactionDetailLocalData.documentId,
|
|
584
|
+
project: transactionDetailLocalData.project,
|
|
575
585
|
lineItemById: newLineItems,
|
|
576
586
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
577
587
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -729,6 +739,7 @@ export const setEntityRecommendationForLineIdInLocalData = (transaction, transac
|
|
|
729
739
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
730
740
|
memo: transactionDetailLocalData.memo,
|
|
731
741
|
documentId: transactionDetailLocalData.documentId,
|
|
742
|
+
project: transactionDetailLocalData.project,
|
|
732
743
|
lineItemById: newLineItems,
|
|
733
744
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
734
745
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
@@ -782,6 +793,7 @@ export const removeEntityRecommendationForLineIdInLocalData = (transaction, tran
|
|
|
782
793
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
783
794
|
memo: transactionDetailLocalData.memo,
|
|
784
795
|
documentId: transactionDetailLocalData.documentId,
|
|
796
|
+
project: transactionDetailLocalData.project,
|
|
785
797
|
lineItemById: newLineItems,
|
|
786
798
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
787
799
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -1002,6 +1014,7 @@ export const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetail
|
|
|
1002
1014
|
...initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
1003
1015
|
memo: transactionDetailLocalData.memo,
|
|
1004
1016
|
documentId: transactionDetailLocalData.documentId,
|
|
1017
|
+
project: transactionDetailLocalData.project,
|
|
1005
1018
|
lineItemById: newLineItems,
|
|
1006
1019
|
isVendorUpdateAllChecked: false,
|
|
1007
1020
|
latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity,
|
|
@@ -62,9 +62,7 @@ const fetchFluxAnalysisViewEpic = (actions$, state$, zeniAPI) => actions$.pipe((
|
|
|
62
62
|
selectedPeriod: monthAndYear,
|
|
63
63
|
fetchReimbursement,
|
|
64
64
|
keepExistingListItems,
|
|
65
|
-
|
|
66
|
-
// status object (alongside code/message), not inside data.status.
|
|
67
|
-
status: response.status,
|
|
65
|
+
status: response.data?.status,
|
|
68
66
|
}));
|
|
69
67
|
}
|
|
70
68
|
return (0, rxjs_1.from)(updateActions);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isTransactionUncategorized = exports.isTransactionMiscategorized = exports.toRecommendedClassBase = exports.toRecommendedAccountBase = exports.toTransactionUpdatesFromTransactionDetailLocalData = void 0;
|
|
4
4
|
const recommendationBase_1 = require("../../../commonStateTypes/recommendationBase");
|
|
5
|
+
const customerTransaction_1 = require("../../../entity/transaction/stateTypes/customerTransaction");
|
|
5
6
|
const transactionType_1 = require("../../../entity/transaction/stateTypes/transactionType");
|
|
6
7
|
const vendorTransaction_1 = require("../../../entity/transaction/stateTypes/vendorTransaction");
|
|
7
8
|
const transactionHelper_1 = require("../../../entity/transaction/transactionHelper");
|
|
@@ -33,6 +34,10 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
|
|
|
33
34
|
const isTransactionMisCategorized = (0, exports.isTransactionMiscategorized)(transaction, isExpenseAutomationEnabled);
|
|
34
35
|
updates.memo = transactionDetailLocalData.memo;
|
|
35
36
|
updates.documentId = transactionDetailLocalData.documentId;
|
|
37
|
+
// For invoice and credit_memo, project is at the transaction level.
|
|
38
|
+
if ((0, customerTransaction_1.isCustomerTransaction)(transaction)) {
|
|
39
|
+
updates.project = transactionDetailLocalData.project;
|
|
40
|
+
}
|
|
36
41
|
const selectedEntity = transactionDetailLocalData.selectedEntity;
|
|
37
42
|
const updatedEntityId = transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor ===
|
|
38
43
|
true
|
|
@@ -55,7 +60,10 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
|
|
|
55
60
|
lineDescription: lineItem.lineDescription,
|
|
56
61
|
class: lineItem.class,
|
|
57
62
|
account: lineItem.account,
|
|
58
|
-
|
|
63
|
+
// Project is at the transaction level for invoice/credit_memo; omit from lines.
|
|
64
|
+
...(!(0, customerTransaction_1.isCustomerTransaction)(transaction)
|
|
65
|
+
? { project: lineItem.project }
|
|
66
|
+
: {}),
|
|
59
67
|
recommendation: (0, transactionHelper_1.convertCOTRecommendationsToRegular)(lineItem.recommendationsWithCOT),
|
|
60
68
|
};
|
|
61
69
|
if (line.type === 'journal_entry_transaction_line' ||
|
|
@@ -233,6 +233,14 @@ const toTransactionUpdatePayload = (updates, detail, cotTransactionTracking, ven
|
|
|
233
233
|
let basePayload;
|
|
234
234
|
if ((0, customerTransaction_1.isCustomerTransaction)(transaction)) {
|
|
235
235
|
basePayload = (0, customerTransactionPayload_1.toCustomerTransactionPayload)(transaction);
|
|
236
|
+
// For invoice/credit_memo, project is at the transaction level; inject it here.
|
|
237
|
+
if (updates.project != null) {
|
|
238
|
+
basePayload = {
|
|
239
|
+
...basePayload,
|
|
240
|
+
accounting_project_id: updates.project.projectId,
|
|
241
|
+
accounting_project_name: updates.project.projectName,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
236
244
|
}
|
|
237
245
|
else if ((0, vendorTransaction_1.isVendorTransaction)(transaction)) {
|
|
238
246
|
if (tranSelectedEntity != null && tranSelectedEntity.type === 'customer') {
|
|
@@ -15,6 +15,13 @@ const toTransactionDetailLocalData = (transaction, defaultVendorId, uncategorize
|
|
|
15
15
|
const vendorId = defaultVendorId ?? transaction.vendor?.id;
|
|
16
16
|
transactionLocal.memo = transaction.memo;
|
|
17
17
|
transactionLocal.documentId = transaction.documentId;
|
|
18
|
+
// For invoice and credit_memo, project is at the transaction level (not on lines).
|
|
19
|
+
if ((0, customerTransaction_1.isCustomerTransaction)(transaction) && transaction.projectId != null) {
|
|
20
|
+
transactionLocal.project = {
|
|
21
|
+
projectId: transaction.projectId,
|
|
22
|
+
projectName: transaction.projectName ?? '',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
18
25
|
transactionLocal.vendorUpdates =
|
|
19
26
|
(0, vendorTransaction_1.isVendorTransaction)(transaction) && vendorId != null
|
|
20
27
|
? {
|
|
@@ -429,6 +436,7 @@ const toUpdateLineItemsOriginalCategoryClass = (transaction, transactionDetailLo
|
|
|
429
436
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
430
437
|
memo: transactionDetailLocalData.memo,
|
|
431
438
|
documentId: transactionDetailLocalData.documentId,
|
|
439
|
+
project: transactionDetailLocalData.project,
|
|
432
440
|
lineItemById: newLineItems,
|
|
433
441
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
434
442
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -534,6 +542,7 @@ const toSetAllLineItemsToCategoryClass = (transaction, transactionDetailLocalDat
|
|
|
534
542
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
535
543
|
memo: transactionDetailLocalData.memo,
|
|
536
544
|
documentId: transactionDetailLocalData.documentId,
|
|
545
|
+
project: transactionDetailLocalData.project,
|
|
537
546
|
lineItemById: newLineItems,
|
|
538
547
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
539
548
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
@@ -580,6 +589,7 @@ const toSetAllLineItemsLocalDataIsUpdateAllChecked = (transaction, transactionDe
|
|
|
580
589
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
581
590
|
memo: transactionDetailLocalData.memo,
|
|
582
591
|
documentId: transactionDetailLocalData.documentId,
|
|
592
|
+
project: transactionDetailLocalData.project,
|
|
583
593
|
lineItemById: newLineItems,
|
|
584
594
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
585
595
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -738,6 +748,7 @@ const setEntityRecommendationForLineIdInLocalData = (transaction, transactionDet
|
|
|
738
748
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
739
749
|
memo: transactionDetailLocalData.memo,
|
|
740
750
|
documentId: transactionDetailLocalData.documentId,
|
|
751
|
+
project: transactionDetailLocalData.project,
|
|
741
752
|
lineItemById: newLineItems,
|
|
742
753
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
743
754
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
@@ -792,6 +803,7 @@ const removeEntityRecommendationForLineIdInLocalData = (transaction, transaction
|
|
|
792
803
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
793
804
|
memo: transactionDetailLocalData.memo,
|
|
794
805
|
documentId: transactionDetailLocalData.documentId,
|
|
806
|
+
project: transactionDetailLocalData.project,
|
|
795
807
|
lineItemById: newLineItems,
|
|
796
808
|
vendorDetails: transactionDetailLocalData.vendorDetails,
|
|
797
809
|
vendorUpdates: transactionDetailLocalData.vendorUpdates,
|
|
@@ -1015,6 +1027,7 @@ const toUpdateLineItemsToOriginalVendor = (transaction, transactionDetailLocalDa
|
|
|
1015
1027
|
...transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
|
|
1016
1028
|
memo: transactionDetailLocalData.memo,
|
|
1017
1029
|
documentId: transactionDetailLocalData.documentId,
|
|
1030
|
+
project: transactionDetailLocalData.project,
|
|
1018
1031
|
lineItemById: newLineItems,
|
|
1019
1032
|
isVendorUpdateAllChecked: false,
|
|
1020
1033
|
latestUpdatedLineWithEntity: transactionDetailLocalData.latestUpdatedLineWithEntity,
|
|
@@ -54,6 +54,7 @@ export interface TransactionDetailLocalData {
|
|
|
54
54
|
latestSelectedEntityOnLineItem?: Entity;
|
|
55
55
|
latestUpdatedLineWithEntity?: ID;
|
|
56
56
|
memo?: string;
|
|
57
|
+
project?: ProjectBase;
|
|
57
58
|
selectedEntity?: Entity;
|
|
58
59
|
updatePreviousTransactionsWithUpdatedVendor?: boolean;
|
|
59
60
|
vendorDetails?: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.23-betaRD1",
|
|
4
4
|
"description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"ts-prune": "^0.10.3",
|
|
80
80
|
"ts-unused-exports": "^11.0.1",
|
|
81
81
|
"typescript": "^5.7.3",
|
|
82
|
+
"vite": "^7.3.5",
|
|
82
83
|
"vitest": "^4.1.8"
|
|
83
84
|
},
|
|
84
85
|
"dependencies": {
|
|
@@ -129,7 +130,8 @@
|
|
|
129
130
|
"postversion": "git push && git push --tags",
|
|
130
131
|
"check-dependencies": "node ./scripts/check_dependencies.js",
|
|
131
132
|
"clean-overrides": "node ./scripts/clean_overrides.js",
|
|
132
|
-
"create-release-branch": "chmod +x ./scripts/
|
|
133
|
+
"create-or-update-release-branch": "chmod +x ./scripts/create_or_update_release_branch.sh && ./scripts/create_or_update_release_branch.sh",
|
|
134
|
+
"bump-versions-master": "chmod +x ./scripts/bump_versions_master.sh && ./scripts/bump_versions_master.sh",
|
|
133
135
|
"bump-update-web-app-cockpit-beta": "chmod +x ./scripts/bump_and_update_web_app_ui_beta.sh && ./scripts/bump_and_update_web_app_ui_beta.sh",
|
|
134
136
|
"send-release-notes": "chmod +x ./scripts/send_release_notes.sh && ./scripts/send_release_notes.sh",
|
|
135
137
|
"update-slack-group-topic": "chmod +x ./scripts/update-slack-group-topic.sh && ./scripts/update-slack-group-topic.sh",
|