@zeniai/client-epic-state 5.2.89-beta0KB → 5.2.89-beta0MM
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/lib/entity/invoicing/creditNote/creditNotePayload.d.ts +2 -0
- package/lib/entity/invoicing/creditNote/creditNotePayload.js +5 -0
- package/lib/entity/invoicing/creditNote/creditNoteState.d.ts +1 -0
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +0 -1
- package/lib/entity/transaction/stateTypes/paymentType.d.ts +2 -2
- package/lib/entity/transaction/stateTypes/paymentType.js +1 -9
- package/lib/epic.d.ts +1 -5
- package/lib/epic.js +0 -8
- package/lib/esm/entity/invoicing/creditNote/creditNotePayload.js +5 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
- package/lib/esm/entity/transaction/stateTypes/paymentType.js +1 -9
- package/lib/esm/epic.js +0 -8
- package/lib/esm/index.js +2 -5
- package/lib/esm/view/expenseAutomationView/payload/actualMatchingPayload.js +1 -0
- package/lib/esm/view/financeStatement/financeStatementReducer.js +6 -11
- package/lib/esm/view/invoicing/invoicingOverview/invoicingOverviewPayload.js +1 -0
- package/lib/esm/view/reportUIOptions/financeStatementCompareBalances.js +16 -0
- package/lib/esm/view/reportUIOptions/updateReportUIOptionCompareModeEpic.js +2 -5
- package/lib/esm/view/reportUIOptions/updateReportUIOptionIsCompareModeOnEpic.js +6 -10
- package/lib/esm/view/transactionDetail/transactionDetailReducer.js +1 -196
- package/lib/index.d.ts +2 -6
- package/lib/index.js +37 -58
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.d.ts +1 -0
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.js +1 -0
- package/lib/view/expenseAutomationView/types/actualMatchingViewState.d.ts +2 -0
- package/lib/view/financeStatement/financeStatementReducer.js +6 -11
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewPayload.d.ts +5 -0
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewPayload.js +1 -0
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewState.d.ts +2 -0
- package/lib/view/reportUIOptions/financeStatementCompareBalances.d.ts +2 -0
- package/lib/view/reportUIOptions/financeStatementCompareBalances.js +19 -0
- package/lib/view/reportUIOptions/updateReportUIOptionCompareModeEpic.js +2 -5
- package/lib/view/reportUIOptions/updateReportUIOptionIsCompareModeOnEpic.js +6 -10
- package/lib/view/transactionDetail/transactionDetailReducer.d.ts +1 -39
- package/lib/view/transactionDetail/transactionDetailReducer.js +2 -198
- package/lib/view/transactionDetail/transactionDetailState.d.ts +0 -12
- package/package.json +1 -1
- package/lib/entity/transaction/stateTypes/printStatus.d.ts +0 -4
- package/lib/entity/transaction/stateTypes/printStatus.js +0 -11
- package/lib/esm/entity/transaction/stateTypes/printStatus.js +0 -7
- package/lib/esm/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.js +0 -157
- package/lib/esm/view/transactionDetail/createTransaction/createTransactionPayload.js +0 -164
- package/lib/esm/view/transactionDetail/createTransaction/createTransactionSelector.js +0 -47
- package/lib/esm/view/transactionDetail/createTransaction/createTransactionState.js +0 -11
- package/lib/esm/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.js +0 -19
- package/lib/esm/view/transactionDetail/createTransaction/epics/createTransactionEpic.js +0 -81
- package/lib/esm/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.js +0 -53
- package/lib/esm/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.js +0 -10
- package/lib/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.d.ts +0 -56
- package/lib/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.js +0 -172
- package/lib/view/transactionDetail/createTransaction/createTransactionPayload.d.ts +0 -95
- package/lib/view/transactionDetail/createTransaction/createTransactionPayload.js +0 -169
- package/lib/view/transactionDetail/createTransaction/createTransactionSelector.d.ts +0 -44
- package/lib/view/transactionDetail/createTransaction/createTransactionSelector.js +0 -53
- package/lib/view/transactionDetail/createTransaction/createTransactionState.d.ts +0 -82
- package/lib/view/transactionDetail/createTransaction/createTransactionState.js +0 -14
- package/lib/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.d.ts +0 -10
- package/lib/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.js +0 -23
- package/lib/view/transactionDetail/createTransaction/epics/createTransactionEpic.d.ts +0 -9
- package/lib/view/transactionDetail/createTransaction/epics/createTransactionEpic.js +0 -85
- package/lib/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.d.ts +0 -20
- package/lib/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.js +0 -57
- package/lib/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.d.ts +0 -12
- package/lib/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.js +0 -14
package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare const getLineItemsByTransactionsIdsFromResponse: (transactions: S
|
|
|
39
39
|
export declare const getLineItemsByTransactionIdsFromLocalData: (transactionLocalData: TransactionReviewLocalDataSelectorView[], selectedTab: TransactionsTab) => Record<ID, string[]>;
|
|
40
40
|
export declare const mergeTabSpecificLineItems: (currentTabSpecificLineItems: TabSpecificLineItems, selectedTab: TransactionsTab, newLineItems: TabSpecificLineItems) => TabSpecificLineItems;
|
|
41
41
|
export declare const getSnackbarMessageForTransactionReview: (updatedCount: number, failedCount: number, categorizedCount: number) => {
|
|
42
|
-
messageSection: "common" | "recommendation_feedback" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "actual_matching_match_and_reverse" | "actual_matching_undo_reversal" | "actual_matching_ignore_suggestion" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "revert_schedule" | "ignore_accrual" | "revert_accrual" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "
|
|
42
|
+
messageSection: "common" | "recommendation_feedback" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "actual_matching_match_and_reverse" | "actual_matching_undo_reversal" | "actual_matching_ignore_suggestion" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "revert_schedule" | "ignore_accrual" | "revert_accrual" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "reports_resync" | "invalid_phone_number" | "transactions_categorized_updated_failed" | "transaction_categorized_updated_failed" | "transactionsCategorized_transactionsUpdated" | "transactionsCategorized_transactionUpdated" | "transactionCategorized_transactionsUpdated" | "transactionCategorized_transactionUpdated" | "transactionsCategorized_transactionsFailed" | "transactionsCategorized_transactionFailed" | "transactionCategorized_transactionsFailed" | "transactionCategorized_transactionFailed" | "transactionsUpdated_transactionsFailed" | "transactionsUpdated_transactionFailed" | "transactionUpdated_transactionsFailed" | "transactionUpdated_transactionFailed" | "transactionsCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionsUpdated_transactionFailed" | "transactionsCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionUpdated_transactionFailed" | "transactionCategorized_transactionsUpdated_transactionFailed" | "transactionCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionUpdated_transactionFailed" | "accounting_classes_enabled_update" | "accounting_projects_enabled_update" | "accounting_projects_qbo_not_enabled" | "capitalization_threshold_update" | "account_excluded_from_reconciliation" | "account_included_in_reconciliation" | "confirm_statement_mapping" | "statement_parsing_in_progress" | "statement_parsing_complete" | "ai_accountant_trigger_job" | "oauth_consent_approve" | "oauth_consent_invalid_request" | "credit_agent_update_profile" | "credit_agent_save_macro" | "credit_agent_schedule_cron" | "create_sub_task" | "qbo_connection_already_linked" | "qbo_connection_failed" | "accounting_projects_qbo_reconnect_failed" | "product_services_update" | "qbo_realm_id_update" | "kyc_kyb_reset" | "invoicing_dunning_case_resolved" | "invoicing_dunning_retry" | "invoicing_dunning_cancel" | "invoicing_dunning_settings_save" | "invoicing_qbo_backfill" | "invoicing_qbo_sync_health_retry" | "invoicing_qbo_settings_save" | "invoicing_branding_save" | "invoicing_discount_archive" | "invoicing_discount_unarchive" | "invoicing_discount_delete" | "invoicing_invoice_reminder_sent" | "invoicing_invoice_regenerated" | "invoicing_invoice_voided" | "invoicing_catalog_item_saved" | "invoicing_customer_saved" | "invoicing_subscription_saved" | "invoicing_coupon_saved" | "invoicing_invoice_saved" | "invoicing_credit_note_saved" | "invoicing_payment_recorded" | "invoicing_subscription_activated" | "invoicing_subscription_cancellation_removed" | "invoicing_subscription_cancelled" | "invoicing_subscription_non_renewing" | "invoicing_subscription_paused" | "invoicing_subscription_reactivated" | "invoicing_subscription_resumed" | "invoicing_subscription_term_end_changed" | "invoicing_data_import_download";
|
|
43
43
|
messageText: "notification" | "failed" | "success";
|
|
44
44
|
type: "error" | "success" | "info";
|
|
45
45
|
variables: {
|
|
@@ -34,6 +34,7 @@ export interface MatchTransactionSearchResultPayload {
|
|
|
34
34
|
amount?: number | null;
|
|
35
35
|
currency_code?: string | null;
|
|
36
36
|
currency_symbol?: string | null;
|
|
37
|
+
line_description?: string | null;
|
|
37
38
|
sync_token?: string | null;
|
|
38
39
|
total_amount?: number | null;
|
|
39
40
|
transaction_description?: string | null;
|
|
@@ -53,6 +53,7 @@ function toActualMatchingTransactionSearchResult(payload, fallbackCurrency) {
|
|
|
53
53
|
currencyCode,
|
|
54
54
|
currencySymbol: resolveMatchSearchCurrencySymbol(payload, currencyCode, fallbackCurrency),
|
|
55
55
|
transactionMemo: payload.transaction_memo ?? undefined,
|
|
56
|
+
lineDescription: payload.line_description ?? undefined,
|
|
56
57
|
transactionDescription: payload.transaction_description ?? undefined,
|
|
57
58
|
transactionTypeName: payload.transaction_type_name ?? undefined,
|
|
58
59
|
syncToken: payload.sync_token == null ? '' : String(payload.sync_token),
|
|
@@ -46,6 +46,8 @@ export interface ActualMatchingTransactionSearchResult {
|
|
|
46
46
|
accountingClassId?: ID;
|
|
47
47
|
accountingClassName?: string;
|
|
48
48
|
accountName?: string;
|
|
49
|
+
/** QBO line description. Distinct from the header transaction description. */
|
|
50
|
+
lineDescription?: string;
|
|
49
51
|
transactionDescription?: string;
|
|
50
52
|
transactionMemo?: string;
|
|
51
53
|
transactionTypeName?: string;
|
|
@@ -3,6 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.updateFinanceStatementFormat = exports.updateFinanceStatementDisplayOrder = exports.updateDownloadState = exports.updateFinanceStatementAdditionalBalancesSelection = exports.updateSelectedReportId = exports.updateCOABalancesRange = exports.updateFinanceStatementThisPeriod = exports.updateFinanceStatementTimeframe = exports.fetchFinanceStatement = exports.initialFinanceStatementState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
+
const coaBalanceType_1 = require("../../commonStateTypes/coaBalance/coaBalanceType");
|
|
6
7
|
const thisPeriodHelpers_1 = require("../../commonStateTypes/viewAndReport/thisPeriodHelpers");
|
|
7
8
|
const rootActions_1 = require("../../rootActions");
|
|
8
9
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
@@ -92,17 +93,11 @@ const financeStatement = (0, toolkit_1.createSlice)({
|
|
|
92
93
|
updateFinanceStatementAdditionalBalancesSelection(draft, action) {
|
|
93
94
|
const { additionalBalances: additionalBalancesPayload, maxNumOfPeriodsToHighlight, } = action.payload;
|
|
94
95
|
const additionalBalances = additionalBalancesPayload ?? [];
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
additionalBalances.includes(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (id > -1) {
|
|
101
|
-
const balance = tempAdditionalBalances.splice(id, 1);
|
|
102
|
-
tempAdditionalBalances = [...balance, ...tempAdditionalBalances];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
draft.selectedAdditionalBalances = tempAdditionalBalances;
|
|
96
|
+
const otherBalances = (0, coaBalanceType_1.stripCompareAdditionalBalanceTypes)(additionalBalances);
|
|
97
|
+
draft.selectedAdditionalBalances = [
|
|
98
|
+
...additionalBalances.filter((balance) => !otherBalances.includes(balance)),
|
|
99
|
+
...otherBalances,
|
|
100
|
+
];
|
|
106
101
|
draft.maxNumOfPeriodsToHighlight = maxNumOfPeriodsToHighlight;
|
|
107
102
|
draft.isAdditionalBalancesShown =
|
|
108
103
|
additionalBalances.length != 0 ? true : false;
|
|
@@ -46,6 +46,11 @@ export interface InvoicingDashboardSummaryPayload {
|
|
|
46
46
|
resumed: number;
|
|
47
47
|
total_active: number;
|
|
48
48
|
total_active_value: number;
|
|
49
|
+
/**
|
|
50
|
+
* Churned opening-cohort customers ÷ customers at month start, as a 0-100
|
|
51
|
+
* percent. Customer-scoped, unlike the subscription-scoped KPI churn rate.
|
|
52
|
+
*/
|
|
53
|
+
customer_churn_rate?: number | null;
|
|
49
54
|
};
|
|
50
55
|
failed_payments: {
|
|
51
56
|
amount: number;
|
|
@@ -49,6 +49,7 @@ exports.mapInvoicingPlanRevenuePointPayloadToState = mapInvoicingPlanRevenuePoin
|
|
|
49
49
|
const mapInvoicingDashboardSummaryPayloadToState = (payload) => ({
|
|
50
50
|
customerMovement: {
|
|
51
51
|
churned: payload.customer_movement.churned,
|
|
52
|
+
customerChurnRate: payload.customer_movement.customer_churn_rate ?? undefined,
|
|
52
53
|
netChange: payload.customer_movement.net_change,
|
|
53
54
|
new: payload.customer_movement.new,
|
|
54
55
|
paused: payload.customer_movement.paused,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFinanceStatementAdditionalBalances = getFinanceStatementAdditionalBalances;
|
|
4
|
+
const coaBalanceType_1 = require("../../commonStateTypes/coaBalance/coaBalanceType");
|
|
5
|
+
// Reports can show the $ and % change columns together, so every requested compare type is kept;
|
|
6
|
+
// compareMode picks one only when none was requested.
|
|
7
|
+
function getFinanceStatementAdditionalBalances(requestedBalances, isCompareModeOn, compareBalanceFromMode) {
|
|
8
|
+
const otherBalances = (0, coaBalanceType_1.stripCompareAdditionalBalanceTypes)(requestedBalances);
|
|
9
|
+
if (!isCompareModeOn) {
|
|
10
|
+
return otherBalances;
|
|
11
|
+
}
|
|
12
|
+
const requestedCompareBalances = requestedBalances.filter((balance) => !otherBalances.includes(balance));
|
|
13
|
+
return [
|
|
14
|
+
...otherBalances,
|
|
15
|
+
...(requestedCompareBalances.length > 0
|
|
16
|
+
? requestedCompareBalances
|
|
17
|
+
: [compareBalanceFromMode]),
|
|
18
|
+
];
|
|
19
|
+
}
|
|
@@ -10,6 +10,7 @@ const financeStatementSelector_1 = require("../financeStatement/financeStatement
|
|
|
10
10
|
const netBurnOrIncomeReducer_1 = require("../netBurnOrIncome/netBurnOrIncomeReducer");
|
|
11
11
|
const opExReducer_1 = require("../opEx/opExReducer");
|
|
12
12
|
const revenueReducer_1 = require("../revenue/revenueReducer");
|
|
13
|
+
const financeStatementCompareBalances_1 = require("./financeStatementCompareBalances");
|
|
13
14
|
const reportUIOptionsReducer_1 = require("./reportUIOptionsReducer");
|
|
14
15
|
const updateReportUIOptionIsCompareModeEpic = (actions$, state) => actions$.pipe((0, operators_1.filter)(reportUIOptionsReducer_1.updateReportUIOptionCompareMode.match), (0, operators_1.switchMap)((action) => {
|
|
15
16
|
const { additionalBalances } = action.payload;
|
|
@@ -18,11 +19,7 @@ const updateReportUIOptionIsCompareModeEpic = (actions$, state) => actions$.pipe
|
|
|
18
19
|
? 'this_period_vs_last_period_percent'
|
|
19
20
|
: 'this_period_vs_last_period';
|
|
20
21
|
const financeStatementState = (0, financeStatementSelector_1.getFinanceStatement)(state.value);
|
|
21
|
-
const
|
|
22
|
-
balance !== 'this_period_vs_last_period_percent');
|
|
23
|
-
const financeAdditionalBalances = isCompareModeOn
|
|
24
|
-
? [...filteredFinanceAdditionalBalances, additionalBalance]
|
|
25
|
-
: filteredFinanceAdditionalBalances;
|
|
22
|
+
const financeAdditionalBalances = (0, financeStatementCompareBalances_1.getFinanceStatementAdditionalBalances)(additionalBalances, isCompareModeOn, additionalBalance);
|
|
26
23
|
return (0, rxjs_1.of)((0, netBurnOrIncomeReducer_1.updateNetBurnOrIncomeAdditionalBalancesSelection)({
|
|
27
24
|
isCompareModeOn,
|
|
28
25
|
additionalBalances: isCompareModeOn ? [additionalBalance] : [],
|
|
@@ -10,22 +10,18 @@ const financeStatementSelector_1 = require("../financeStatement/financeStatement
|
|
|
10
10
|
const netBurnOrIncomeReducer_1 = require("../netBurnOrIncome/netBurnOrIncomeReducer");
|
|
11
11
|
const opExReducer_1 = require("../opEx/opExReducer");
|
|
12
12
|
const revenueReducer_1 = require("../revenue/revenueReducer");
|
|
13
|
+
const financeStatementCompareBalances_1 = require("./financeStatementCompareBalances");
|
|
13
14
|
const reportUIOptionsReducer_1 = require("./reportUIOptionsReducer");
|
|
14
15
|
const updateReportUIOptionIsCompareModeOnEpic = (actions$, state) => actions$.pipe((0, operators_1.filter)(reportUIOptionsReducer_1.updateReportUIOptionIsCompareModeOn.match), (0, operators_1.switchMap)((action) => {
|
|
15
16
|
const { additionalBalances } = action.payload;
|
|
17
|
+
const compareBalanceFromMode = state.value.reportUIOptionsState.compareMode === 'compare_mode_percent'
|
|
18
|
+
? 'this_period_vs_last_period_percent'
|
|
19
|
+
: 'this_period_vs_last_period';
|
|
16
20
|
const additionalBalance = action.payload.isCompareModeOn
|
|
17
|
-
?
|
|
18
|
-
'compare_mode_percent'
|
|
19
|
-
? ['this_period_vs_last_period_percent']
|
|
20
|
-
: ['this_period_vs_last_period']
|
|
21
|
+
? [compareBalanceFromMode]
|
|
21
22
|
: [];
|
|
22
23
|
const financeStatementState = (0, financeStatementSelector_1.getFinanceStatement)(state.value);
|
|
23
|
-
const
|
|
24
|
-
balance !== 'this_period_vs_last_period_percent');
|
|
25
|
-
const financeAdditionalBalances = [
|
|
26
|
-
...filteredFinanceAdditionalBalances,
|
|
27
|
-
...additionalBalance,
|
|
28
|
-
];
|
|
24
|
+
const financeAdditionalBalances = (0, financeStatementCompareBalances_1.getFinanceStatementAdditionalBalances)(additionalBalances, action.payload.isCompareModeOn, compareBalanceFromMode);
|
|
29
25
|
const actions = [
|
|
30
26
|
(0, netBurnOrIncomeReducer_1.updateNetBurnOrIncomeAdditionalBalancesSelection)({
|
|
31
27
|
isCompareModeOn: action.payload.isCompareModeOn,
|
|
@@ -9,7 +9,6 @@ import { TransactionID } from '../../entity/transaction/stateTypes/transactionID
|
|
|
9
9
|
import { SupportedTransaction, SupportedTransactionPayload } from '../../entity/transaction/transactionState';
|
|
10
10
|
import { ZeniAPIStatus } from '../../responsePayload';
|
|
11
11
|
import { UncategorizedAccounts } from '../accountList/accountListSelector';
|
|
12
|
-
import { CreateTransactionLineLocalData, CreateTransactionLocalData } from './createTransaction/createTransactionState';
|
|
13
12
|
import { TransactionDetailState, TransactionSaveUpdates } from './transactionDetailState';
|
|
14
13
|
import { TransactionDetailLineItemData, TransactionDetailLocalData, TransactionVendorUpdates } from './transactionDetailTypes';
|
|
15
14
|
export declare const initialState: TransactionDetailState;
|
|
@@ -177,43 +176,6 @@ export declare const downloadAccountingProviderAttachment: import("@reduxjs/tool
|
|
|
177
176
|
}, "transactionDetail/deleteSplitLine", never, never>, toggleSplitEditMode: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, editMode: boolean], {
|
|
178
177
|
transactionId: TransactionID;
|
|
179
178
|
editMode: boolean;
|
|
180
|
-
}, "transactionDetail/toggleSplitEditMode", never, never
|
|
181
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
182
|
-
}, "transactionDetail/initializeCreateTransactionLocalData", never, never>, updateCreateTransactionLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", localData: Partial<CreateTransactionLocalData>], {
|
|
183
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
184
|
-
localData: Partial<CreateTransactionLocalData>;
|
|
185
|
-
}, "transactionDetail/updateCreateTransactionLocalData", never, never>, updateCreateTransactionLineLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", lineId: string, lineUpdates: Partial<CreateTransactionLineLocalData>], {
|
|
186
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
187
|
-
lineId: string;
|
|
188
|
-
lineUpdates: Partial<CreateTransactionLineLocalData>;
|
|
189
|
-
}, "transactionDetail/updateCreateTransactionLineLocalData", never, never>, addCreateTransactionLine: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", line?: Partial<CreateTransactionLineLocalData> | undefined], {
|
|
190
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
191
|
-
line: Partial<CreateTransactionLineLocalData> | undefined;
|
|
192
|
-
}, "transactionDetail/addCreateTransactionLine", never, never>, removeCreateTransactionLine: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", lineId: string], {
|
|
193
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
194
|
-
lineId: string;
|
|
195
|
-
}, "transactionDetail/removeCreateTransactionLine", never, never>, resetCreateTransactionLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry"], {
|
|
196
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
197
|
-
}, "transactionDetail/resetCreateTransactionLocalData", never, never>, createTransaction: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry"], {
|
|
198
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
199
|
-
}, "transactionDetail/createTransaction", never, never>, createTransactionSuccessOrFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[fetchState: FetchState, createdTransactionId?: TransactionID | undefined, error?: ZeniAPIStatus<Record<string, unknown>> | undefined], {
|
|
200
|
-
fetchState: FetchState;
|
|
201
|
-
createdTransactionId: TransactionID | undefined;
|
|
202
|
-
error: ZeniAPIStatus<Record<string, unknown>> | undefined;
|
|
203
|
-
}, "transactionDetail/createTransactionSuccessOrFailure", never, never>, setRecommendationsForCreateTransactionLines: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", lineIds: string[], recommendations: Recommendation[], isAccountingClassesEnabled: boolean], {
|
|
204
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
205
|
-
lineIds: string[];
|
|
206
|
-
recommendations: Recommendation[];
|
|
207
|
-
isAccountingClassesEnabled: boolean;
|
|
208
|
-
}, "transactionDetail/setRecommendationsForCreateTransactionLines", never, never>, clearRecommendationsForCreateTransactionLines: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", lineIds: string[]], {
|
|
209
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
210
|
-
lineIds: string[];
|
|
211
|
-
}, "transactionDetail/clearRecommendationsForCreateTransactionLines", never, never>, fetchVendorRecommendationsForCreateTransaction: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry", lineIds: string[], entity?: Entity | undefined], {
|
|
212
|
-
transactionType: "expense" | "check" | "credit_card_credit" | "transfer" | "journal_entry";
|
|
213
|
-
lineIds: string[];
|
|
214
|
-
entity: Entity | undefined;
|
|
215
|
-
}, "transactionDetail/fetchVendorRecommendationsForCreateTransaction", never, never>, createTransactionAttachmentUploadFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[failedAttachmentFileNames: string[]], {
|
|
216
|
-
failedAttachmentFileNames: string[];
|
|
217
|
-
}, "transactionDetail/createTransactionAttachmentUploadFailure", never, never>;
|
|
179
|
+
}, "transactionDetail/toggleSplitEditMode", never, never>;
|
|
218
180
|
declare const _default: import("redux").Reducer<TransactionDetailState>;
|
|
219
181
|
export default _default;
|
|
@@ -4,13 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
exports.createTransactionAttachmentUploadFailure = exports.fetchVendorRecommendationsForCreateTransaction = exports.clearRecommendationsForCreateTransactionLines = exports.setRecommendationsForCreateTransactionLines = exports.createTransactionSuccessOrFailure = void 0;
|
|
7
|
+
exports.toggleSplitEditMode = exports.deleteSplitLine = exports.addSplitLine = exports.setIsVendorUpdateAllChecked = exports.updateVendorBulkRecommendationsFetchStatus = exports.updateLatestSelectedEntity = exports.resetAllLineItemsToVendor = exports.updateVendorToAllLineItems = exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = exports.resetSelectedCustomer = exports.resetVendor = exports.updateSelectedCustomer = exports.updateSelectedVendor = exports.removeEntityRecommendationForLineIdForTransactionDetail = exports.markCategoryClassRecommendationsFailureForTransactionDetail = exports.markCategoryClassRecommendationsCompletedForTransactionDetail = exports.markCategoryClassRecommendationsInProgressForTransactionDetail = exports.setEntityRecommendationForLineIdsForTransactionDetail = exports.setAllLineItemsLocalDataIsUpdateAllChecked = exports.setAllLineItemsToCategoryClassInLocalData = exports.resetLineItemsCategoryClassInLocalData = exports.clearTransactionDetailLocalData = exports.saveTransactionDetailLocalData = exports.initializeTransactionDetailLocalData = exports.saveTransactionDetail = exports.updateTransactionStateIfUpdateActionNotAllowed = exports.updateStatusConsolidatedSaveTransactionDetail = exports.updateStatusForTransactionNotMiscategorizedUpdate = exports.deleteTransactionAttachmentSuccess = exports.deleteTransactionAttachmentFailure = exports.deleteTransactionAttachment = exports.markTransactionAsNotMiscategorized = exports.clearTransactionDetailSaveStatus = exports.updateTransactionDetailSaveStatus = exports.updateTransactionDetail = exports.uploadMissingAttachmentSuccess = exports.removeTransactionDetail = exports.updateTransactionDetailFetchState = exports.fetchTransactionDetail = exports.downloadAccountingProviderAttachmentFailure = exports.downloadAccountingProviderAttachmentSuccess = exports.downloadAccountingProviderAttachment = exports.initialState = void 0;
|
|
9
8
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
10
9
|
const get_1 = __importDefault(require("lodash/get"));
|
|
11
10
|
const entity_1 = require("../../entity/genericEntity/entity");
|
|
12
11
|
const rootActions_1 = require("../../rootActions");
|
|
13
|
-
const createTransactionLocalDataHelper_1 = require("./createTransaction/createTransactionLocalDataHelper");
|
|
14
12
|
const transactionDetailLocalDataHelper_1 = require("./transactionDetailLocalDataHelper");
|
|
15
13
|
const transactionDetailState_1 = require("./transactionDetailState");
|
|
16
14
|
exports.initialState = {
|
|
@@ -19,10 +17,6 @@ exports.initialState = {
|
|
|
19
17
|
fetchState: 'Not-Started',
|
|
20
18
|
attachmentDataByID: {},
|
|
21
19
|
},
|
|
22
|
-
createTransactionsState: {
|
|
23
|
-
createStatus: { fetchState: 'Not-Started' },
|
|
24
|
-
newTransactionState: (0, createTransactionLocalDataHelper_1.getInitialCreateTransactionLocalDataByType)(),
|
|
25
|
-
},
|
|
26
20
|
};
|
|
27
21
|
const transactionDetail = (0, toolkit_1.createSlice)({
|
|
28
22
|
name: 'transactionDetail',
|
|
@@ -842,196 +836,6 @@ const transactionDetail = (0, toolkit_1.createSlice)({
|
|
|
842
836
|
};
|
|
843
837
|
},
|
|
844
838
|
},
|
|
845
|
-
// ---------------------------------------------------------------------------------
|
|
846
|
-
// Create Transaction
|
|
847
|
-
//
|
|
848
|
-
// These live on the transactionDetail slice rather than in createTransaction/ because a
|
|
849
|
-
// createSlice owns exactly one state object, and createTransactionsState is nested inside
|
|
850
|
-
// TransactionDetailState. The derivation itself stays in the folder -- each body below
|
|
851
|
-
// delegates to createTransactionLocalDataHelper.ts.
|
|
852
|
-
//
|
|
853
|
-
// They need no clearAll case of their own: the slice already resets to initialState on
|
|
854
|
-
// tenant switch, and createTransactionsState is part of it.
|
|
855
|
-
// ---------------------------------------------------------------------------------
|
|
856
|
-
/** Trigger only -- initializeCreateTransactionLocalDataEpic does the seeding. */
|
|
857
|
-
initializeCreateTransactionLocalData: {
|
|
858
|
-
reducer(
|
|
859
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
860
|
-
_draft,
|
|
861
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
862
|
-
_action) {
|
|
863
|
-
// no-op
|
|
864
|
-
},
|
|
865
|
-
prepare(transactionType) {
|
|
866
|
-
return { payload: { transactionType } };
|
|
867
|
-
},
|
|
868
|
-
},
|
|
869
|
-
updateCreateTransactionLocalData: {
|
|
870
|
-
reducer(draft, action) {
|
|
871
|
-
const { transactionType, localData } = action.payload;
|
|
872
|
-
const current = draft.createTransactionsState.newTransactionState[transactionType];
|
|
873
|
-
draft.createTransactionsState.newTransactionState[transactionType] =
|
|
874
|
-
(0, createTransactionLocalDataHelper_1.mergeCreateTransactionLocalData)(current, localData);
|
|
875
|
-
},
|
|
876
|
-
prepare(transactionType, localData) {
|
|
877
|
-
return { payload: { transactionType, localData } };
|
|
878
|
-
},
|
|
879
|
-
},
|
|
880
|
-
updateCreateTransactionLineLocalData: {
|
|
881
|
-
reducer(draft, action) {
|
|
882
|
-
const { transactionType, lineId, lineUpdates } = action.payload;
|
|
883
|
-
const current = draft.createTransactionsState.newTransactionState[transactionType];
|
|
884
|
-
current.lines = (0, createTransactionLocalDataHelper_1.updateCreateTransactionLine)(current.lines, lineId, lineUpdates);
|
|
885
|
-
},
|
|
886
|
-
prepare(transactionType, lineId, lineUpdates) {
|
|
887
|
-
return { payload: { transactionType, lineId, lineUpdates } };
|
|
888
|
-
},
|
|
889
|
-
},
|
|
890
|
-
/**
|
|
891
|
-
* `line` is supplied by the caller rather than built here, so a row added after a vendor is
|
|
892
|
-
* already chosen can arrive pre-populated from the cached recommendations instead of blank.
|
|
893
|
-
*/
|
|
894
|
-
addCreateTransactionLine: {
|
|
895
|
-
reducer(draft, action) {
|
|
896
|
-
const { transactionType, line } = action.payload;
|
|
897
|
-
draft.createTransactionsState.newTransactionState[transactionType].lines.push({
|
|
898
|
-
...line,
|
|
899
|
-
id: (0, createTransactionLocalDataHelper_1.nextCreateTransactionLineId)(),
|
|
900
|
-
});
|
|
901
|
-
},
|
|
902
|
-
prepare(transactionType, line) {
|
|
903
|
-
return { payload: { transactionType, line } };
|
|
904
|
-
},
|
|
905
|
-
},
|
|
906
|
-
removeCreateTransactionLine: {
|
|
907
|
-
reducer(draft, action) {
|
|
908
|
-
const { transactionType, lineId } = action.payload;
|
|
909
|
-
const current = draft.createTransactionsState.newTransactionState[transactionType];
|
|
910
|
-
current.lines = current.lines.filter((line) => line.id !== lineId);
|
|
911
|
-
},
|
|
912
|
-
prepare(transactionType, lineId) {
|
|
913
|
-
return { payload: { transactionType, lineId } };
|
|
914
|
-
},
|
|
915
|
-
},
|
|
916
|
-
/**
|
|
917
|
-
* Restores the blank working copy AND re-seeds it, so reopening Create starts from a fresh
|
|
918
|
-
* form rather than the previous transaction's values.
|
|
919
|
-
*/
|
|
920
|
-
resetCreateTransactionLocalData: {
|
|
921
|
-
reducer(draft, action) {
|
|
922
|
-
const { transactionType } = action.payload;
|
|
923
|
-
draft.createTransactionsState.newTransactionState[transactionType] =
|
|
924
|
-
(0, createTransactionLocalDataHelper_1.getSeededCreateTransactionLocalData)(transactionType);
|
|
925
|
-
draft.createTransactionsState.createStatus = {
|
|
926
|
-
fetchState: 'Not-Started',
|
|
927
|
-
};
|
|
928
|
-
draft.createTransactionsState.createdTransactionId = undefined;
|
|
929
|
-
},
|
|
930
|
-
prepare(transactionType) {
|
|
931
|
-
return { payload: { transactionType } };
|
|
932
|
-
},
|
|
933
|
-
},
|
|
934
|
-
/** Submit trigger -- createTransactionEpic builds the payload from localData. */
|
|
935
|
-
createTransaction: {
|
|
936
|
-
reducer(draft,
|
|
937
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
938
|
-
_action) {
|
|
939
|
-
draft.createTransactionsState.createStatus = {
|
|
940
|
-
fetchState: 'In-Progress',
|
|
941
|
-
};
|
|
942
|
-
draft.createTransactionsState.createdTransactionId = undefined;
|
|
943
|
-
},
|
|
944
|
-
prepare(transactionType) {
|
|
945
|
-
return { payload: { transactionType } };
|
|
946
|
-
},
|
|
947
|
-
},
|
|
948
|
-
/**
|
|
949
|
-
* Trigger only -- fetchVendorRecommendationsForCreateTransactionEpic does the work.
|
|
950
|
-
* A null entity means the vendor was cleared.
|
|
951
|
-
*/
|
|
952
|
-
fetchVendorRecommendationsForCreateTransaction: {
|
|
953
|
-
reducer(
|
|
954
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
955
|
-
_draft,
|
|
956
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
957
|
-
_action) {
|
|
958
|
-
// no-op
|
|
959
|
-
},
|
|
960
|
-
prepare(transactionType, lineIds, entity) {
|
|
961
|
-
return { payload: { transactionType, lineIds, entity } };
|
|
962
|
-
},
|
|
963
|
-
},
|
|
964
|
-
/** Trigger only -- createTransactionAttachmentUploadFailureEpic raises the snackbar. */
|
|
965
|
-
createTransactionAttachmentUploadFailure: {
|
|
966
|
-
reducer(
|
|
967
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
968
|
-
_draft,
|
|
969
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
970
|
-
_action) {
|
|
971
|
-
// no-op
|
|
972
|
-
},
|
|
973
|
-
prepare(failedAttachmentFileNames) {
|
|
974
|
-
return { payload: { failedAttachmentFileNames } };
|
|
975
|
-
},
|
|
976
|
-
},
|
|
977
|
-
/**
|
|
978
|
-
* Writes a vendor's recommendations into the named lines. `lineIds` is explicit rather than
|
|
979
|
-
* "all lines" because a journal entry recommends per line, from that line's own entity.
|
|
980
|
-
*/
|
|
981
|
-
setRecommendationsForCreateTransactionLines: {
|
|
982
|
-
reducer(draft, action) {
|
|
983
|
-
const { transactionType, lineIds, recommendations, isAccountingClassesEnabled, } = action.payload;
|
|
984
|
-
const current = draft.createTransactionsState.newTransactionState[transactionType];
|
|
985
|
-
// Clear first: on vendor A -> B, A's prefill is no longer empty, so B's would never
|
|
986
|
-
// replace it. Fields the user picked carry no prefill flag and survive the clear.
|
|
987
|
-
current.lines = current.lines.map((line) => lineIds.includes(line.id)
|
|
988
|
-
? (0, createTransactionLocalDataHelper_1.applyRecommendationsToCreateTransactionLine)((0, createTransactionLocalDataHelper_1.clearRecommendationsFromCreateTransactionLine)(line), recommendations, isAccountingClassesEnabled)
|
|
989
|
-
: line);
|
|
990
|
-
},
|
|
991
|
-
prepare(transactionType, lineIds, recommendations, isAccountingClassesEnabled) {
|
|
992
|
-
return {
|
|
993
|
-
payload: {
|
|
994
|
-
transactionType,
|
|
995
|
-
lineIds,
|
|
996
|
-
recommendations,
|
|
997
|
-
isAccountingClassesEnabled,
|
|
998
|
-
},
|
|
999
|
-
};
|
|
1000
|
-
},
|
|
1001
|
-
},
|
|
1002
|
-
/** Vendor cleared: drop the dropdown group and undo only what the prefill wrote. */
|
|
1003
|
-
clearRecommendationsForCreateTransactionLines: {
|
|
1004
|
-
reducer(draft, action) {
|
|
1005
|
-
const { transactionType, lineIds } = action.payload;
|
|
1006
|
-
const current = draft.createTransactionsState.newTransactionState[transactionType];
|
|
1007
|
-
current.lines = current.lines.map((line) => lineIds.includes(line.id)
|
|
1008
|
-
? (0, createTransactionLocalDataHelper_1.clearRecommendationsFromCreateTransactionLine)(line)
|
|
1009
|
-
: line);
|
|
1010
|
-
},
|
|
1011
|
-
prepare(transactionType, lineIds) {
|
|
1012
|
-
return { payload: { transactionType, lineIds } };
|
|
1013
|
-
},
|
|
1014
|
-
},
|
|
1015
|
-
createTransactionSuccessOrFailure: {
|
|
1016
|
-
reducer(draft, action) {
|
|
1017
|
-
const { fetchState, error, createdTransactionId } = action.payload;
|
|
1018
|
-
draft.createTransactionsState.createStatus = { fetchState, error };
|
|
1019
|
-
if (createdTransactionId != null) {
|
|
1020
|
-
draft.createTransactionsState.createdTransactionId =
|
|
1021
|
-
createdTransactionId;
|
|
1022
|
-
// The API will not return a QBO-only row until delta sync, so the optimistic insert
|
|
1023
|
-
// is marked fetched: detail local data can be saved and a fetch is a cache hit.
|
|
1024
|
-
draft.transactionDetailById[(0, transactionDetailState_1.getTransactionDetailKey)(createdTransactionId)] = {
|
|
1025
|
-
...transactionDetailState_1.initialSupportedTransactionDetail,
|
|
1026
|
-
fetchState: 'Completed',
|
|
1027
|
-
transactionId: createdTransactionId,
|
|
1028
|
-
};
|
|
1029
|
-
}
|
|
1030
|
-
},
|
|
1031
|
-
prepare(fetchState, createdTransactionId, error) {
|
|
1032
|
-
return { payload: { fetchState, createdTransactionId, error } };
|
|
1033
|
-
},
|
|
1034
|
-
},
|
|
1035
839
|
},
|
|
1036
840
|
extraReducers: (builder) => {
|
|
1037
841
|
builder.addCase(rootActions_1.clearAll, (draft) => {
|
|
@@ -1039,7 +843,7 @@ const transactionDetail = (0, toolkit_1.createSlice)({
|
|
|
1039
843
|
});
|
|
1040
844
|
},
|
|
1041
845
|
});
|
|
1042
|
-
_a = transactionDetail.actions, exports.downloadAccountingProviderAttachment = _a.downloadAccountingProviderAttachment, exports.downloadAccountingProviderAttachmentSuccess = _a.downloadAccountingProviderAttachmentSuccess, exports.downloadAccountingProviderAttachmentFailure = _a.downloadAccountingProviderAttachmentFailure, exports.fetchTransactionDetail = _a.fetchTransactionDetail, exports.updateTransactionDetailFetchState = _a.updateTransactionDetailFetchState, exports.removeTransactionDetail = _a.removeTransactionDetail, exports.uploadMissingAttachmentSuccess = _a.uploadMissingAttachmentSuccess, exports.updateTransactionDetail = _a.updateTransactionDetail, exports.updateTransactionDetailSaveStatus = _a.updateTransactionDetailSaveStatus, exports.clearTransactionDetailSaveStatus = _a.clearTransactionDetailSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.deleteTransactionAttachment = _a.deleteTransactionAttachment, exports.deleteTransactionAttachmentFailure = _a.deleteTransactionAttachmentFailure, exports.deleteTransactionAttachmentSuccess = _a.deleteTransactionAttachmentSuccess, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateStatusConsolidatedSaveTransactionDetail = _a.updateStatusConsolidatedSaveTransactionDetail, exports.updateTransactionStateIfUpdateActionNotAllowed = _a.updateTransactionStateIfUpdateActionNotAllowed, exports.saveTransactionDetail = _a.saveTransactionDetail, exports.initializeTransactionDetailLocalData = _a.initializeTransactionDetailLocalData, exports.saveTransactionDetailLocalData = _a.saveTransactionDetailLocalData, exports.clearTransactionDetailLocalData = _a.clearTransactionDetailLocalData, exports.resetLineItemsCategoryClassInLocalData = _a.resetLineItemsCategoryClassInLocalData, exports.setAllLineItemsToCategoryClassInLocalData = _a.setAllLineItemsToCategoryClassInLocalData, exports.setAllLineItemsLocalDataIsUpdateAllChecked = _a.setAllLineItemsLocalDataIsUpdateAllChecked, exports.setEntityRecommendationForLineIdsForTransactionDetail = _a.setEntityRecommendationForLineIdsForTransactionDetail, exports.markCategoryClassRecommendationsInProgressForTransactionDetail = _a.markCategoryClassRecommendationsInProgressForTransactionDetail, exports.markCategoryClassRecommendationsCompletedForTransactionDetail = _a.markCategoryClassRecommendationsCompletedForTransactionDetail, exports.markCategoryClassRecommendationsFailureForTransactionDetail = _a.markCategoryClassRecommendationsFailureForTransactionDetail, exports.removeEntityRecommendationForLineIdForTransactionDetail = _a.removeEntityRecommendationForLineIdForTransactionDetail, exports.updateSelectedVendor = _a.updateSelectedVendor, exports.updateSelectedCustomer = _a.updateSelectedCustomer, exports.resetVendor = _a.resetVendor, exports.resetSelectedCustomer = _a.resetSelectedCustomer, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked, exports.addSplitLine = _a.addSplitLine, exports.deleteSplitLine = _a.deleteSplitLine, exports.toggleSplitEditMode = _a.toggleSplitEditMode
|
|
846
|
+
_a = transactionDetail.actions, exports.downloadAccountingProviderAttachment = _a.downloadAccountingProviderAttachment, exports.downloadAccountingProviderAttachmentSuccess = _a.downloadAccountingProviderAttachmentSuccess, exports.downloadAccountingProviderAttachmentFailure = _a.downloadAccountingProviderAttachmentFailure, exports.fetchTransactionDetail = _a.fetchTransactionDetail, exports.updateTransactionDetailFetchState = _a.updateTransactionDetailFetchState, exports.removeTransactionDetail = _a.removeTransactionDetail, exports.uploadMissingAttachmentSuccess = _a.uploadMissingAttachmentSuccess, exports.updateTransactionDetail = _a.updateTransactionDetail, exports.updateTransactionDetailSaveStatus = _a.updateTransactionDetailSaveStatus, exports.clearTransactionDetailSaveStatus = _a.clearTransactionDetailSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.deleteTransactionAttachment = _a.deleteTransactionAttachment, exports.deleteTransactionAttachmentFailure = _a.deleteTransactionAttachmentFailure, exports.deleteTransactionAttachmentSuccess = _a.deleteTransactionAttachmentSuccess, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateStatusConsolidatedSaveTransactionDetail = _a.updateStatusConsolidatedSaveTransactionDetail, exports.updateTransactionStateIfUpdateActionNotAllowed = _a.updateTransactionStateIfUpdateActionNotAllowed, exports.saveTransactionDetail = _a.saveTransactionDetail, exports.initializeTransactionDetailLocalData = _a.initializeTransactionDetailLocalData, exports.saveTransactionDetailLocalData = _a.saveTransactionDetailLocalData, exports.clearTransactionDetailLocalData = _a.clearTransactionDetailLocalData, exports.resetLineItemsCategoryClassInLocalData = _a.resetLineItemsCategoryClassInLocalData, exports.setAllLineItemsToCategoryClassInLocalData = _a.setAllLineItemsToCategoryClassInLocalData, exports.setAllLineItemsLocalDataIsUpdateAllChecked = _a.setAllLineItemsLocalDataIsUpdateAllChecked, exports.setEntityRecommendationForLineIdsForTransactionDetail = _a.setEntityRecommendationForLineIdsForTransactionDetail, exports.markCategoryClassRecommendationsInProgressForTransactionDetail = _a.markCategoryClassRecommendationsInProgressForTransactionDetail, exports.markCategoryClassRecommendationsCompletedForTransactionDetail = _a.markCategoryClassRecommendationsCompletedForTransactionDetail, exports.markCategoryClassRecommendationsFailureForTransactionDetail = _a.markCategoryClassRecommendationsFailureForTransactionDetail, exports.removeEntityRecommendationForLineIdForTransactionDetail = _a.removeEntityRecommendationForLineIdForTransactionDetail, exports.updateSelectedVendor = _a.updateSelectedVendor, exports.updateSelectedCustomer = _a.updateSelectedCustomer, exports.resetVendor = _a.resetVendor, exports.resetSelectedCustomer = _a.resetSelectedCustomer, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked, exports.addSplitLine = _a.addSplitLine, exports.deleteSplitLine = _a.deleteSplitLine, exports.toggleSplitEditMode = _a.toggleSplitEditMode;
|
|
1043
847
|
exports.default = transactionDetail.reducer;
|
|
1044
848
|
function getUpdatedEntityLocalData(detail, updates, entity, resetRecommendations, type) {
|
|
1045
849
|
const key = type === 'customer' ? 'customerUpdates' : 'vendorUpdates';
|
|
@@ -11,7 +11,6 @@ import { TransactionID } from '../../entity/transaction/stateTypes/transactionID
|
|
|
11
11
|
import { TransactionCategory } from '../../entity/transaction/stateTypes/transactionType';
|
|
12
12
|
import { VendorBase } from '../../entity/vendor/vendorState';
|
|
13
13
|
import { EntityRecommendationKey } from '../recommendation/recommendationState';
|
|
14
|
-
import { CreateTransactionLocalDataByType } from './createTransaction/createTransactionState';
|
|
15
14
|
import { TransactionDetailLineItemData, TransactionDetailLocalData } from './transactionDetailTypes';
|
|
16
15
|
export declare const getTransactionDetailKey: (transactionId: TransactionID) => `${string}_expense` | `${string}_check` | `${string}_invoice` | `${string}_payment` | `${string}_credit_memo` | `${string}_sales_receipt` | `${string}_delayed_credit` | `${string}_delayed_charge` | `${string}_refund` | `${string}_bill` | `${string}_bill_payment` | `${string}_bill_payment_check` | `${string}_bill_payment_credit_card` | `${string}_vendor_credit` | `${string}_credit_card_credit` | `${string}_transfer` | `${string}_credit_card_payment` | `${string}_deposit` | `${string}_journal_entry`;
|
|
17
16
|
export type TransactionDetailKey = ReturnType<typeof getTransactionDetailKey>;
|
|
@@ -45,22 +44,11 @@ interface AccountingProviderAttachment {
|
|
|
45
44
|
fetchState: FetchStateAndError;
|
|
46
45
|
}
|
|
47
46
|
export declare const initialSupportedTransactionDetail: SupportedTransactionDetail;
|
|
48
|
-
export interface CreateTransactionsState {
|
|
49
|
-
createStatus: FetchStateAndError;
|
|
50
|
-
/**
|
|
51
|
-
* Keyed by type so switching type in the Create dropdown does not clobber a draft the user
|
|
52
|
-
* already started on another type.
|
|
53
|
-
*/
|
|
54
|
-
newTransactionState: CreateTransactionLocalDataByType;
|
|
55
|
-
/** Set on a successful create, so the page can navigate to the new transaction. */
|
|
56
|
-
createdTransactionId?: TransactionID;
|
|
57
|
-
}
|
|
58
47
|
export interface TransactionDetailState {
|
|
59
48
|
accountingProviderAttachment: {
|
|
60
49
|
attachmentDataByID: Record<ID, ArrayBuffer>;
|
|
61
50
|
fetchState: FetchState;
|
|
62
51
|
};
|
|
63
|
-
createTransactionsState: CreateTransactionsState;
|
|
64
52
|
transactionDetailById: Record<TransactionDetailKey, SupportedTransactionDetail | undefined>;
|
|
65
53
|
}
|
|
66
54
|
export interface TransactionLineUpdates {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.2.89-
|
|
3
|
+
"version": "5.2.89-beta0MM",
|
|
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",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
declare const toPrintStatusInternal: (v: string) => "NotSet" | "NeedToPrint" | "PrintComplete";
|
|
2
|
-
export declare const toPrintStatus: (v?: string) => "NotSet" | "NeedToPrint" | "PrintComplete" | undefined;
|
|
3
|
-
export type PrintStatus = ReturnType<typeof toPrintStatusInternal>;
|
|
4
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toPrintStatus = void 0;
|
|
4
|
-
const stringToUnion_1 = require("../../../commonStateTypes/stringToUnion");
|
|
5
|
-
// QBO's PrintStatus on a Purchase/Check. Sent only by the Create Transaction form for
|
|
6
|
-
// transaction_type: check -- qbo_purchase.py rejects print_status on any other payment_type.
|
|
7
|
-
const ALL_PRINT_STATUSES = ['NotSet', 'NeedToPrint', 'PrintComplete'];
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
9
|
-
const toPrintStatusInternal = (v) => (0, stringToUnion_1.stringToUnion)(v, ALL_PRINT_STATUSES);
|
|
10
|
-
const toPrintStatus = (v) => v == null ? undefined : (0, stringToUnion_1.stringToUnionStrict)(v, ALL_PRINT_STATUSES);
|
|
11
|
-
exports.toPrintStatus = toPrintStatus;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { stringToUnion, stringToUnionStrict, } from '../../../commonStateTypes/stringToUnion';
|
|
2
|
-
// QBO's PrintStatus on a Purchase/Check. Sent only by the Create Transaction form for
|
|
3
|
-
// transaction_type: check -- qbo_purchase.py rejects print_status on any other payment_type.
|
|
4
|
-
const ALL_PRINT_STATUSES = ['NotSet', 'NeedToPrint', 'PrintComplete'];
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
-
const toPrintStatusInternal = (v) => stringToUnion(v, ALL_PRINT_STATUSES);
|
|
7
|
-
export const toPrintStatus = (v) => v == null ? undefined : stringToUnionStrict(v, ALL_PRINT_STATUSES);
|