@zeniai/client-epic-state 5.1.76 → 5.1.77-betaAK1
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/invoicingCommonPayload.d.ts +42 -0
- package/lib/entity/invoicing/invoicingCommonPayload.js +66 -1
- package/lib/entity/notificationRegistry/notificationRegistryPayload.d.ts +1 -0
- package/lib/entity/notificationRegistry/notificationRegistryPayload.js +3 -0
- package/lib/entity/notificationRegistry/notificationRegistryState.d.ts +1 -0
- package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
- package/lib/entity/tenant/clearAllEpic.js +2 -0
- package/lib/epic.d.ts +2 -1
- package/lib/epic.js +7 -1
- package/lib/esm/entity/invoicing/invoicingCommonPayload.js +61 -0
- package/lib/esm/entity/notificationRegistry/notificationRegistryPayload.js +3 -0
- package/lib/esm/entity/tenant/clearAllEpic.js +2 -0
- package/lib/esm/epic.js +7 -1
- package/lib/esm/index.js +5 -1
- package/lib/esm/reducer.js +3 -0
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +4 -18
- package/lib/esm/view/invoicing/createCreditNote/createCreditNoteFormConfig.js +8 -1
- package/lib/esm/view/invoicing/createCreditNote/createCreditNotePayload.js +1 -8
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +5 -5
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +2 -3
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.js +5 -4
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.js +2 -2
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +1 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +1 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.js +45 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +3 -4
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +4 -2
- package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +7 -1
- package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +3 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/fetchInvoicingQboAccountsEpic.js +25 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/fetchInvoicingQboClassesEpic.js +15 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/fetchInvoicingQboConnectionEpic.js +15 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/fetchInvoicingQboSyncHealthEpic.js +15 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.js +1 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +26 -0
- package/lib/esm/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +18 -0
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewPayload.js +47 -0
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewReducer.js +128 -0
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +20 -0
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewState.js +1 -0
- package/lib/esm/view/invoicing/issueCreditNote/issueCreditNotePayload.js +4 -11
- package/lib/esm/view/invoicing/recordPayment/recordPaymentFormConfig.js +2 -1
- package/lib/esm/view/invoicing/recordPayment/recordPaymentPayload.js +5 -14
- package/lib/index.d.ts +7 -1
- package/lib/index.js +20 -4
- package/lib/reducer.d.ts +3 -0
- package/lib/reducer.js +3 -0
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +3 -17
- package/lib/view/invoicing/createCreditNote/createCreditNoteFormConfig.js +8 -1
- package/lib/view/invoicing/createCreditNote/createCreditNotePayload.js +1 -8
- package/lib/view/invoicing/createCreditNote/createCreditNoteState.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +5 -5
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +2 -3
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState.d.ts +3 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.js +5 -4
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.js +2 -2
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +3 -3
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +2 -2
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.d.ts +8 -2
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.js +47 -0
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +3 -4
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +4 -2
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +4 -1
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +6 -0
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.d.ts +4 -1
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +3 -0
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +4 -1
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboAccountsEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboAccountsEpic.js +29 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboClassesEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboClassesEpic.js +19 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboConnectionEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboConnectionEpic.js +19 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboSyncHealthEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/fetchInvoicingQboSyncHealthEpic.js +19 -0
- package/lib/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.d.ts +2 -0
- package/lib/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.js +2 -0
- package/lib/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +30 -0
- package/lib/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.d.ts +6 -0
- package/lib/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +22 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewPayload.d.ts +79 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewPayload.js +52 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewReducer.d.ts +25 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewReducer.js +132 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.d.ts +21 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +24 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewState.d.ts +14 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewState.js +2 -0
- package/lib/view/invoicing/issueCreditNote/issueCreditNotePayload.js +4 -11
- package/lib/view/invoicing/issueCreditNote/issueCreditNoteState.d.ts +3 -2
- package/lib/view/invoicing/recordPayment/recordPaymentFormConfig.js +2 -1
- package/lib/view/invoicing/recordPayment/recordPaymentPayload.js +5 -14
- package/lib/view/invoicing/recordPayment/recordPaymentState.d.ts +3 -2
- package/package.json +1 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/invoicingCouponFormConfig.js +0 -44
- package/lib/view/invoicing/editInvoicingCouponDetailView/invoicingCouponFormConfig.d.ts +0 -5
- package/lib/view/invoicing/editInvoicingCouponDetailView/invoicingCouponFormConfig.js +0 -48
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toAmount } from '../../../commonStateTypes/amount';
|
|
1
2
|
/**
|
|
2
3
|
* Canonical value sets for the Record Payment form. CES owns the values;
|
|
3
4
|
* web-components maps each value to a localized label.
|
|
@@ -25,7 +26,7 @@ export const INVOICING_PAYMENT_GATEWAY_VALUES = [
|
|
|
25
26
|
'other',
|
|
26
27
|
];
|
|
27
28
|
export const initialRecordPaymentFormLocalData = {
|
|
28
|
-
amount: '',
|
|
29
|
+
amount: toAmount(0, 'USD', '$'),
|
|
29
30
|
comment: '',
|
|
30
31
|
customerId: '',
|
|
31
32
|
date: '',
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
+
import { toAmount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import { dateNow } from '../../../zeniDayJS';
|
|
2
3
|
import { initialRecordPaymentFormLocalData } from './recordPaymentFormConfig';
|
|
3
4
|
const trimOrUndefined = (value) => value.trim() !== '' ? value.trim() : undefined;
|
|
4
|
-
const
|
|
5
|
-
const parsed = Number.parseFloat(value);
|
|
6
|
-
if (Number.isNaN(parsed)) {
|
|
7
|
-
return 0;
|
|
8
|
-
}
|
|
9
|
-
return parsed;
|
|
10
|
-
};
|
|
11
|
-
const amountDueDollarsFromInvoice = (invoice) => {
|
|
12
|
-
const amountDue = invoice.amountDue?.amount ?? 0;
|
|
13
|
-
return amountDue.toFixed(2);
|
|
14
|
-
};
|
|
5
|
+
const amountDueFromInvoice = (invoice) => invoice.amountDue ?? toAmount(0, 'USD', '$');
|
|
15
6
|
/**
|
|
16
7
|
* Build the invoice-scoped Record Payment body from the form draft. Amount stays
|
|
17
8
|
* in dollars for the invoice endpoint.
|
|
@@ -21,7 +12,7 @@ export const localDataToInvoiceRecordPaymentBody = (localData) => {
|
|
|
21
12
|
const date = localData.date.trim();
|
|
22
13
|
const referenceNumber = trimOrUndefined(localData.referenceNumber);
|
|
23
14
|
return {
|
|
24
|
-
amount:
|
|
15
|
+
amount: localData.amount.amount,
|
|
25
16
|
payment_method: localData.paymentMethod,
|
|
26
17
|
...(gateway != null ? { gateway } : {}),
|
|
27
18
|
...(date !== '' ? { date } : {}),
|
|
@@ -34,7 +25,7 @@ export const localDataToInvoiceRecordPaymentBody = (localData) => {
|
|
|
34
25
|
* and the linked invoice into `linked_invoices`. Currency is locked to USD.
|
|
35
26
|
*/
|
|
36
27
|
export const localDataToRecordPaymentPayload = (localData) => {
|
|
37
|
-
const amount =
|
|
28
|
+
const amount = localData.amount.amount;
|
|
38
29
|
const gateway = trimOrUndefined(localData.gateway);
|
|
39
30
|
const date = localData.date.trim();
|
|
40
31
|
const transactionId = trimOrUndefined(localData.transactionId);
|
|
@@ -60,7 +51,7 @@ export const localDataToRecordPaymentPayload = (localData) => {
|
|
|
60
51
|
};
|
|
61
52
|
export const initializeRecordPaymentDraftFromInvoice = (invoice) => ({
|
|
62
53
|
...initialRecordPaymentFormLocalData,
|
|
63
|
-
amount:
|
|
54
|
+
amount: amountDueFromInvoice(invoice),
|
|
64
55
|
customerId: invoice.customerID,
|
|
65
56
|
date: dateNow().format('YYYY-MM-DD'),
|
|
66
57
|
invoiceToLink: invoice.id,
|
package/lib/index.d.ts
CHANGED
|
@@ -1080,7 +1080,7 @@ export type { ApplicableCatalogItemOption, InvoicingCatalogItemFormView, } from
|
|
|
1080
1080
|
export { resetEditInvoicingCouponDetailView, saveInvoicingCoupon, submitInvoicingCouponForm, updateInvoicingCouponFormDraft, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1081
1081
|
export type { SaveInvoicingCouponPayload, SubmitInvoicingCouponFormPayload, UpdateInvoicingCouponFormDraftPayload, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1082
1082
|
export type { InvoicingCouponFormLocalData } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState';
|
|
1083
|
-
export { entityToInvoicingCouponFormLocalData, initialInvoicingCouponFormLocalData, } from './view/invoicing/editInvoicingCouponDetailView/
|
|
1083
|
+
export { entityToInvoicingCouponFormLocalData, initialInvoicingCouponFormLocalData, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState';
|
|
1084
1084
|
export { getEditInvoicingCouponDetailViewState, getInvoicingCouponFormView, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector';
|
|
1085
1085
|
export type { EditInvoicingCouponDetailView, InvoicingCouponFormView, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector';
|
|
1086
1086
|
export { clearInvoicingInvoiceAction, runInvoicingInvoiceAction, updateInvoicingInvoice, } from './view/invoicing/invoiceAction/invoiceActionReducer';
|
|
@@ -1194,6 +1194,12 @@ export type { InvoicingBrandingFormView, InvoicingSettingsView, } from './view/i
|
|
|
1194
1194
|
export type { InvoicingBrandingFormLocalData } from './view/invoicing/settingsView/invoicingBrandingFormConfig';
|
|
1195
1195
|
export { INVOICING_BUSINESS_ADDRESS_TYPE, entityToInvoicingBrandingFormLocalData, initialInvoicingBrandingFormLocalData, } from './view/invoicing/settingsView/invoicingBrandingFormConfig';
|
|
1196
1196
|
export { isStripeConnectedFromSettings } from './view/invoicing/settingsView/invoicingSettingsHelpers';
|
|
1197
|
+
export { clearInvoicingQboView, fetchInvoicingQboAccounts, fetchInvoicingQboClasses, fetchInvoicingQboConnection, fetchInvoicingQboSyncHealth, retryInvoicingQboSyncTask, startInvoicingQboBackfill, } from './view/invoicing/invoicingQboView/invoicingQboViewReducer';
|
|
1198
|
+
export { getInvoicingQboView } from './view/invoicing/invoicingQboView/invoicingQboViewSelector';
|
|
1199
|
+
export type { InvoicingQboView } from './view/invoicing/invoicingQboView/invoicingQboViewSelector';
|
|
1200
|
+
export type { InvoicingQboAccountOption, InvoicingQboConnection, InvoicingQboFailedTask, InvoicingQboSyncHealth, } from './view/invoicing/invoicingQboView/invoicingQboViewPayload';
|
|
1201
|
+
export { INVOICING_QBO_CUSTOMER_MATCHING_MODES, getInvoicingQboAccountMappingId, toInvoicingQboCustomerMatchingMode, withInvoicingQboAccountMappingId, } from './entity/invoicing/invoicingCommonPayload';
|
|
1202
|
+
export type { InvoicingNamedOption, InvoicingQboAccountMappingKindOption, InvoicingQboAccountMappingsPayload, InvoicingQboCustomerMatchingMode, InvoicingQboSettingsPayload, } from './entity/invoicing/invoicingCommonPayload';
|
|
1197
1203
|
export { acceptInvoicingTerms, clearInvoicingConfig, enableInvoicing, fetchInvoicingConfig, resetInvoicingConfigActionStates, updateInvoicingConfig, } from './view/invoicing/invoicingConfigView/invoicingConfigViewReducer';
|
|
1198
1204
|
export { getInvoicingConfigView } from './view/invoicing/invoicingConfigView/invoicingConfigViewSelector';
|
|
1199
1205
|
export type { InvoicingConfigView } from './view/invoicing/invoicingConfigView/invoicingConfigViewSelector';
|
package/lib/index.js
CHANGED
|
@@ -83,7 +83,7 @@ exports.INVOICING_LIST_PAGE_SIZE = exports.getInvoicingDataImportActionState = e
|
|
|
83
83
|
exports.getInvoicingSubscriptionById = exports.fetchInvoicingSubscriptionDetail = exports.clearInvoicingSubscriptionDetailView = exports.getInvoicingSubscriptionListView = exports.INVOICING_SUBSCRIPTION_TABS = exports.INVOICING_SUBSCRIPTION_COLUMNS = exports.ALL_INVOICING_SUBSCRIPTION_TAB_IDS = exports.ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = exports.updateInvoicingSubscriptionFilters = exports.setInvoicingSubscriptionActiveTab = exports.fetchInvoicingSubscriptionListPage = exports.fetchInvoicingSubscriptionList = exports.fetchInvoicingSubscriptionCounts = exports.clearInvoicingSubscriptionListView = exports.updateInvoicingSubscriptions = exports.removeInvoicingSubscription = exports.clearAllInvoicingSubscriptions = exports.resetPromotionalCreditAction = exports.submitAddPromotionalCredits = exports.getInvoicingSetupIntentFetchState = exports.getInvoicingSetupIntent = exports.getInvoicingSentPaymentLinkMagicUrl = exports.getInvoicingSentPaymentLinkEmail = exports.getInvoicingPlaidLinkTokenFetchState = exports.getInvoicingPlaidLinkToken = exports.getInvoicingPaymentMethodSaveState = exports.getInvoicingPaymentLinkSendState = exports.sendInvoicingPaymentLink = exports.saveInvoicingPaymentMethod = exports.resetInvoicingCustomerPaymentMethod = exports.fetchInvoicingPlaidLinkToken = exports.createInvoicingSetupIntent = exports.getInvoicingCustomerDetail = exports.fetchInvoicingCustomerDetailPage = exports.fetchInvoicingCustomerDetail = exports.clearInvoicingCustomerDetailView = exports.getInvoicingCustomerListView = exports.INVOICING_CUSTOMER_TABS = exports.INVOICING_CUSTOMER_COLUMNS = exports.ALL_INVOICING_CUSTOMER_TAB_IDS = exports.ALL_INVOICING_CUSTOMER_SORT_KEYS = exports.updateInvoicingCustomerFilters = exports.setInvoicingCustomerActiveTab = exports.fetchInvoicingCustomerListPage = exports.fetchInvoicingCustomerList = exports.fetchInvoicingCustomerCounts = exports.clearInvoicingCustomerListView = exports.updateInvoicingCustomers = exports.removeInvoicingCustomer = exports.clearAllInvoicingCustomers = void 0;
|
|
84
84
|
exports.getInvoicingCouponCounts = exports.INVOICING_COUPON_TABS = exports.INVOICING_COUPON_COLUMNS = exports.ALL_INVOICING_COUPON_TAB_IDS = exports.ALL_INVOICING_COUPON_SORT_KEYS = exports.updateInvoicingCouponFilters = exports.setInvoicingCouponActiveTab = exports.fetchInvoicingCouponListPage = exports.fetchInvoicingCouponList = exports.fetchInvoicingCouponCounts = exports.clearInvoicingCouponView = exports.updateInvoicingCoupons = exports.removeInvoicingCoupon = exports.clearAllInvoicingCoupons = exports.getInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteById = exports.fetchInvoicingCreditNoteDetail = exports.clearInvoicingCreditNoteDetailView = exports.getInvoicingCreditNoteListView = exports.INVOICING_CREDIT_NOTE_TABS = exports.INVOICING_CREDIT_NOTE_COLUMNS = exports.ALL_INVOICING_CREDIT_NOTE_TAB_IDS = exports.ALL_INVOICING_CREDIT_NOTE_SORT_KEYS = exports.updateInvoicingCreditNoteFilters = exports.setInvoicingCreditNoteActiveTab = exports.fetchInvoicingCreditNoteListPage = exports.fetchInvoicingCreditNoteList = exports.fetchInvoicingCreditNoteCounts = exports.clearInvoicingCreditNoteListView = exports.updateInvoicingCreditNotes = exports.removeInvoicingCreditNote = exports.clearAllInvoicingCreditNotes = exports.getInvoicingTransactionDetail = exports.getInvoicingTransactionById = exports.fetchInvoicingTransactionDetail = exports.clearInvoicingTransactionDetailView = exports.getInvoicingTransactionListView = exports.INVOICING_TRANSACTION_TABS = exports.INVOICING_TRANSACTION_COLUMNS = exports.ALL_INVOICING_TRANSACTION_TAB_IDS = exports.ALL_INVOICING_TRANSACTION_SORT_KEYS = exports.updateInvoicingTransactionFilters = exports.setInvoicingTransactionActiveTab = exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.clearInvoicingTransactionListView = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.clearAllInvoicingTransactions = exports.getInvoicingSubscriptionDetail = void 0;
|
|
85
85
|
exports.getInvoicingProductById = exports.getInvoicingPlanById = exports.getInvoicingCatalogItemDetail = exports.fetchInvoicingCatalogItemDetail = exports.clearInvoicingCatalogItemDetailView = exports.getInvoicingCatalogListView = exports.INVOICING_PRODUCT_COLUMNS = exports.ALL_INVOICING_PRODUCT_SORT_KEYS = exports.updateInvoicingCatalogProductFilters = exports.updateInvoicingCatalogPlanFilters = exports.fetchInvoicingCatalogProductList = exports.fetchInvoicingCatalogPlanList = exports.fetchInvoicingCatalogListPage = exports.fetchInvoicingCatalogCounts = exports.clearInvoicingCatalogListView = exports.updateInvoicingProducts = exports.removeInvoicingProduct = exports.clearAllInvoicingProducts = exports.updateInvoicingPlans = exports.removeInvoicingPlan = exports.mergeInvoicingPlanSubFamily = exports.clearAllInvoicingPlans = exports.getInvoicingDunningCaseDetail = exports.getInvoicingDunningCaseById = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_TABS = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.setInvoicingDunningCaseActiveTab = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.clearInvoicingDunningCaseListView = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.clearAllInvoicingDunningCases = exports.getInvoicingCouponDetail = exports.fetchInvoicingCouponDetail = exports.clearInvoicingCouponDetailView = exports.getInvoicingCouponById = exports.getInvoicingCouponListView = exports.getInvoicingCouponListNextCursor = exports.getInvoicingCouponListItems = exports.getInvoicingCouponListHasMore = exports.getInvoicingCouponListFilters = exports.getInvoicingCouponListFetchState = void 0;
|
|
86
|
-
exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.clearInvoicingConfig = exports.acceptInvoicingTerms = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.getInvoicingSettingsView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingBrandingFormDraft = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.clearInvoicingSettings = void 0;
|
|
86
|
+
exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.clearInvoicingConfig = exports.acceptInvoicingTerms = exports.withInvoicingQboAccountMappingId = exports.toInvoicingQboCustomerMatchingMode = exports.getInvoicingQboAccountMappingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.getInvoicingQboView = exports.startInvoicingQboBackfill = exports.retryInvoicingQboSyncTask = exports.fetchInvoicingQboSyncHealth = exports.fetchInvoicingQboConnection = exports.fetchInvoicingQboClasses = exports.fetchInvoicingQboAccounts = exports.clearInvoicingQboView = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.getInvoicingSettingsView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingBrandingFormDraft = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.clearInvoicingSettings = void 0;
|
|
87
87
|
const allowedValue_1 = require("./commonStateTypes/allowedValue");
|
|
88
88
|
Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
|
|
89
89
|
Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
|
|
@@ -2801,9 +2801,9 @@ Object.defineProperty(exports, "resetEditInvoicingCouponDetailView", { enumerabl
|
|
|
2801
2801
|
Object.defineProperty(exports, "saveInvoicingCoupon", { enumerable: true, get: function () { return editInvoicingCouponDetailViewReducer_1.saveInvoicingCoupon; } });
|
|
2802
2802
|
Object.defineProperty(exports, "submitInvoicingCouponForm", { enumerable: true, get: function () { return editInvoicingCouponDetailViewReducer_1.submitInvoicingCouponForm; } });
|
|
2803
2803
|
Object.defineProperty(exports, "updateInvoicingCouponFormDraft", { enumerable: true, get: function () { return editInvoicingCouponDetailViewReducer_1.updateInvoicingCouponFormDraft; } });
|
|
2804
|
-
var
|
|
2805
|
-
Object.defineProperty(exports, "entityToInvoicingCouponFormLocalData", { enumerable: true, get: function () { return
|
|
2806
|
-
Object.defineProperty(exports, "initialInvoicingCouponFormLocalData", { enumerable: true, get: function () { return
|
|
2804
|
+
var editInvoicingCouponDetailViewState_1 = require("./view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState");
|
|
2805
|
+
Object.defineProperty(exports, "entityToInvoicingCouponFormLocalData", { enumerable: true, get: function () { return editInvoicingCouponDetailViewState_1.entityToInvoicingCouponFormLocalData; } });
|
|
2806
|
+
Object.defineProperty(exports, "initialInvoicingCouponFormLocalData", { enumerable: true, get: function () { return editInvoicingCouponDetailViewState_1.initialInvoicingCouponFormLocalData; } });
|
|
2807
2807
|
var editInvoicingCouponDetailViewSelector_1 = require("./view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector");
|
|
2808
2808
|
Object.defineProperty(exports, "getEditInvoicingCouponDetailViewState", { enumerable: true, get: function () { return editInvoicingCouponDetailViewSelector_1.getEditInvoicingCouponDetailViewState; } });
|
|
2809
2809
|
Object.defineProperty(exports, "getInvoicingCouponFormView", { enumerable: true, get: function () { return editInvoicingCouponDetailViewSelector_1.getInvoicingCouponFormView; } });
|
|
@@ -3090,6 +3090,22 @@ Object.defineProperty(exports, "entityToInvoicingBrandingFormLocalData", { enume
|
|
|
3090
3090
|
Object.defineProperty(exports, "initialInvoicingBrandingFormLocalData", { enumerable: true, get: function () { return invoicingBrandingFormConfig_1.initialInvoicingBrandingFormLocalData; } });
|
|
3091
3091
|
var invoicingSettingsHelpers_1 = require("./view/invoicing/settingsView/invoicingSettingsHelpers");
|
|
3092
3092
|
Object.defineProperty(exports, "isStripeConnectedFromSettings", { enumerable: true, get: function () { return invoicingSettingsHelpers_1.isStripeConnectedFromSettings; } });
|
|
3093
|
+
// ── Invoicing: QBO integration ────────────────────────────────────────────────
|
|
3094
|
+
var invoicingQboViewReducer_1 = require("./view/invoicing/invoicingQboView/invoicingQboViewReducer");
|
|
3095
|
+
Object.defineProperty(exports, "clearInvoicingQboView", { enumerable: true, get: function () { return invoicingQboViewReducer_1.clearInvoicingQboView; } });
|
|
3096
|
+
Object.defineProperty(exports, "fetchInvoicingQboAccounts", { enumerable: true, get: function () { return invoicingQboViewReducer_1.fetchInvoicingQboAccounts; } });
|
|
3097
|
+
Object.defineProperty(exports, "fetchInvoicingQboClasses", { enumerable: true, get: function () { return invoicingQboViewReducer_1.fetchInvoicingQboClasses; } });
|
|
3098
|
+
Object.defineProperty(exports, "fetchInvoicingQboConnection", { enumerable: true, get: function () { return invoicingQboViewReducer_1.fetchInvoicingQboConnection; } });
|
|
3099
|
+
Object.defineProperty(exports, "fetchInvoicingQboSyncHealth", { enumerable: true, get: function () { return invoicingQboViewReducer_1.fetchInvoicingQboSyncHealth; } });
|
|
3100
|
+
Object.defineProperty(exports, "retryInvoicingQboSyncTask", { enumerable: true, get: function () { return invoicingQboViewReducer_1.retryInvoicingQboSyncTask; } });
|
|
3101
|
+
Object.defineProperty(exports, "startInvoicingQboBackfill", { enumerable: true, get: function () { return invoicingQboViewReducer_1.startInvoicingQboBackfill; } });
|
|
3102
|
+
var invoicingQboViewSelector_1 = require("./view/invoicing/invoicingQboView/invoicingQboViewSelector");
|
|
3103
|
+
Object.defineProperty(exports, "getInvoicingQboView", { enumerable: true, get: function () { return invoicingQboViewSelector_1.getInvoicingQboView; } });
|
|
3104
|
+
var invoicingCommonPayload_2 = require("./entity/invoicing/invoicingCommonPayload");
|
|
3105
|
+
Object.defineProperty(exports, "INVOICING_QBO_CUSTOMER_MATCHING_MODES", { enumerable: true, get: function () { return invoicingCommonPayload_2.INVOICING_QBO_CUSTOMER_MATCHING_MODES; } });
|
|
3106
|
+
Object.defineProperty(exports, "getInvoicingQboAccountMappingId", { enumerable: true, get: function () { return invoicingCommonPayload_2.getInvoicingQboAccountMappingId; } });
|
|
3107
|
+
Object.defineProperty(exports, "toInvoicingQboCustomerMatchingMode", { enumerable: true, get: function () { return invoicingCommonPayload_2.toInvoicingQboCustomerMatchingMode; } });
|
|
3108
|
+
Object.defineProperty(exports, "withInvoicingQboAccountMappingId", { enumerable: true, get: function () { return invoicingCommonPayload_2.withInvoicingQboAccountMappingId; } });
|
|
3093
3109
|
// ── Invoicing: config ─────────────────────────────────────────────────────────
|
|
3094
3110
|
var invoicingConfigViewReducer_1 = require("./view/invoicing/invoicingConfigView/invoicingConfigViewReducer");
|
|
3095
3111
|
Object.defineProperty(exports, "acceptInvoicingTerms", { enumerable: true, get: function () { return invoicingConfigViewReducer_1.acceptInvoicingTerms; } });
|
package/lib/reducer.d.ts
CHANGED
|
@@ -153,6 +153,7 @@ import { InvoicingCustomerListViewState } from './view/invoicing/invoicingCustom
|
|
|
153
153
|
import { InvoicingDunningCaseDetailViewState } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewState';
|
|
154
154
|
import { InvoicingDunningCaseListViewState } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState';
|
|
155
155
|
import { InvoicingOverviewState } from './view/invoicing/invoicingOverview/invoicingOverviewState';
|
|
156
|
+
import { InvoicingQboViewState } from './view/invoicing/invoicingQboView/invoicingQboViewState';
|
|
156
157
|
import { InvoicingSubscriptionDetailViewState } from './view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewState';
|
|
157
158
|
import { InvoicingSubscriptionListViewState } from './view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState';
|
|
158
159
|
import { InvoicingTransactionDetailViewState } from './view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewState';
|
|
@@ -466,6 +467,7 @@ type ViewsState = {
|
|
|
466
467
|
invoicingOverviewState: InvoicingOverviewState;
|
|
467
468
|
invoicingPaymentActionState: InvoicingPaymentActionState;
|
|
468
469
|
invoicingPromotionalCreditActionState: PromotionalCreditActionState;
|
|
470
|
+
invoicingQboViewState: InvoicingQboViewState;
|
|
469
471
|
invoicingRecordPaymentState: InvoicingRecordPaymentState;
|
|
470
472
|
invoicingSettingsViewState: InvoicingSettingsViewState;
|
|
471
473
|
invoicingSubscriptionActionState: InvoicingSubscriptionActionState;
|
|
@@ -666,6 +668,7 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
|
|
|
666
668
|
invoicingInvoiceListState: InvoicingInvoiceListState;
|
|
667
669
|
invoicingPaymentActionState: InvoicingPaymentActionState;
|
|
668
670
|
invoicingConfigViewState: InvoicingConfigViewState;
|
|
671
|
+
invoicingQboViewState: InvoicingQboViewState;
|
|
669
672
|
invoicingSettingsViewState: InvoicingSettingsViewState;
|
|
670
673
|
invoicingCatalogActionState: InvoicingCatalogActionState;
|
|
671
674
|
invoicingDiscountActionState: InvoicingDiscountActionState;
|
package/lib/reducer.js
CHANGED
|
@@ -194,6 +194,7 @@ const invoicingCustomerListViewReducer_1 = __importStar(require("./view/invoicin
|
|
|
194
194
|
const invoicingDunningCaseDetailViewReducer_1 = __importStar(require("./view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer"));
|
|
195
195
|
const invoicingDunningCaseListViewReducer_1 = __importStar(require("./view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewReducer"));
|
|
196
196
|
const invoicingOverviewReducer_1 = __importStar(require("./view/invoicing/invoicingOverview/invoicingOverviewReducer"));
|
|
197
|
+
const invoicingQboViewReducer_1 = __importStar(require("./view/invoicing/invoicingQboView/invoicingQboViewReducer"));
|
|
197
198
|
const invoicingSubscriptionDetailViewReducer_1 = __importStar(require("./view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewReducer"));
|
|
198
199
|
const invoicingSubscriptionListViewReducer_1 = __importStar(require("./view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewReducer"));
|
|
199
200
|
const invoicingTransactionDetailViewReducer_1 = __importStar(require("./view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewReducer"));
|
|
@@ -504,6 +505,7 @@ const initialViewsState = {
|
|
|
504
505
|
invoicingInvoiceListState: invoiceListReducer_1.initialState,
|
|
505
506
|
invoicingPaymentActionState: paymentActionReducer_1.initialState,
|
|
506
507
|
invoicingConfigViewState: invoicingConfigViewReducer_1.initialState,
|
|
508
|
+
invoicingQboViewState: invoicingQboViewReducer_1.initialState,
|
|
507
509
|
invoicingSettingsViewState: settingsViewReducer_1.initialState,
|
|
508
510
|
invoicingCatalogActionState: catalogActionReducer_1.initialState,
|
|
509
511
|
invoicingDiscountActionState: discountActionReducer_1.initialState,
|
|
@@ -793,6 +795,7 @@ const viewReducers = {
|
|
|
793
795
|
invoicingInvoiceListState: invoiceListReducer_1.default,
|
|
794
796
|
invoicingPaymentActionState: paymentActionReducer_1.default,
|
|
795
797
|
invoicingConfigViewState: invoicingConfigViewReducer_1.default,
|
|
798
|
+
invoicingQboViewState: invoicingQboViewReducer_1.default,
|
|
796
799
|
invoicingSettingsViewState: settingsViewReducer_1.default,
|
|
797
800
|
invoicingCatalogActionState: catalogActionReducer_1.default,
|
|
798
801
|
invoicingDiscountActionState: discountActionReducer_1.default,
|
|
@@ -7,7 +7,6 @@ exports.getLastTransferEntryReplacement = exports.toTransactionView = exports.ge
|
|
|
7
7
|
exports.getExpenseAutomationTransactionView = getExpenseAutomationTransactionView;
|
|
8
8
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
9
9
|
const omit_1 = __importDefault(require("lodash/omit"));
|
|
10
|
-
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
11
10
|
const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
|
|
12
11
|
const tenantSelector_1 = require("../../../entity/tenant/tenantSelector");
|
|
13
12
|
const transactionHelper_1 = require("../../../entity/transaction/transactionHelper");
|
|
@@ -96,7 +95,7 @@ exports.toTransactionView = toTransactionView;
|
|
|
96
95
|
var createTransferEntrySelector_2 = require("../../createTransferEntry/createTransferEntrySelector");
|
|
97
96
|
Object.defineProperty(exports, "getLastTransferEntryReplacement", { enumerable: true, get: function () { return createTransferEntrySelector_2.getLastTransferEntryReplacement; } });
|
|
98
97
|
function getExpenseAutomationTransactionView(state) {
|
|
99
|
-
const { accountState, classState, classListState, accountListState, createTransferEntryState, expenseAutomationTransactionsViewState, expenseAutomationViewState, projectState, projectListState, transactionState, monthEndCloseChecksState,
|
|
98
|
+
const { accountState, classState, classListState, accountListState, createTransferEntryState, expenseAutomationTransactionsViewState, expenseAutomationViewState, projectState, projectListState, transactionState, monthEndCloseChecksState, } = state;
|
|
100
99
|
const { selectedTransactionCategorizationCompletedSubTab, selectedTransactionCategorizationTab, } = expenseAutomationTransactionsViewState;
|
|
101
100
|
const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, uploadReceiptStatusById, selectedTransactionId, selectedTransactionLineId, filters, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
102
101
|
const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(accountState, accountListState, 'accountList');
|
|
@@ -169,21 +168,8 @@ function getExpenseAutomationTransactionView(state) {
|
|
|
169
168
|
}
|
|
170
169
|
return [];
|
|
171
170
|
});
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
: { fetchState: 'Not-Started', error: undefined };
|
|
175
|
-
const isAccountingClassesEnabled = (0, tenantSelector_1.getIsAccountingClassesEnabled)(state);
|
|
176
|
-
const allFetchStateList = [
|
|
177
|
-
accountList,
|
|
178
|
-
expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab],
|
|
179
|
-
];
|
|
180
|
-
if (isAccountingClassesEnabled) {
|
|
181
|
-
allFetchStateList.push(classList);
|
|
182
|
-
}
|
|
183
|
-
const fetchStatus = (0, reduceFetchState_1.reduceAnyFetchState)([
|
|
184
|
-
(0, reduceFetchState_1.reduceAllFetchState)(allFetchStateList),
|
|
185
|
-
monthEndFetchState,
|
|
186
|
-
]);
|
|
171
|
+
const { fetchState, error } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
172
|
+
const fetchStatus = { fetchState, error };
|
|
187
173
|
const totalCountByReview = expenseAutomationTransactionsViewState.transactionCategorizationView.review
|
|
188
174
|
.uiState.totalCount;
|
|
189
175
|
const totalCountByAutoCat = expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initialCreateCreditNoteFormLocalData = void 0;
|
|
4
|
+
const amount_1 = require("../../../commonStateTypes/amount");
|
|
4
5
|
const initialCreateCreditNoteFormLocalData = () => ({
|
|
5
6
|
customerId: '',
|
|
6
|
-
lineItems: [
|
|
7
|
+
lineItems: [
|
|
8
|
+
{
|
|
9
|
+
description: '',
|
|
10
|
+
quantity: '1',
|
|
11
|
+
unitAmount: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
12
|
+
},
|
|
13
|
+
],
|
|
7
14
|
reasonCode: '',
|
|
8
15
|
referenceInvoiceId: '',
|
|
9
16
|
});
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.localDataToCreateCreditNotePayload = void 0;
|
|
4
|
-
const dollarsFromAmountString = (value) => {
|
|
5
|
-
const parsed = Number.parseFloat(value);
|
|
6
|
-
if (Number.isNaN(parsed)) {
|
|
7
|
-
return 0;
|
|
8
|
-
}
|
|
9
|
-
return parsed;
|
|
10
|
-
};
|
|
11
4
|
const localDataToCreateCreditNotePayload = (localData) => {
|
|
12
5
|
const lineItems = localData.lineItems
|
|
13
6
|
.map((lineItem) => {
|
|
14
7
|
const quantity = Math.round(Number.parseFloat(lineItem.quantity));
|
|
15
|
-
const unitAmount =
|
|
8
|
+
const unitAmount = lineItem.unitAmount.amount;
|
|
16
9
|
return {
|
|
17
10
|
description: lineItem.description.trim(),
|
|
18
11
|
quantity,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Amount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import { FetchedState, ID } from '../../../commonStateTypes/common';
|
|
2
3
|
export interface CreateCreditNoteLineItemDraft {
|
|
3
4
|
description: string;
|
|
4
5
|
quantity: string;
|
|
5
|
-
unitAmount:
|
|
6
|
+
unitAmount: Amount;
|
|
6
7
|
}
|
|
7
8
|
export interface CreateCreditNoteFormLocalData {
|
|
8
9
|
customerId: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Amount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import type { InvoicingPlan } from '../../../entity/invoicing/plan/planState';
|
|
2
3
|
import type { InvoicingProduct } from '../../../entity/invoicing/product/productState';
|
|
3
4
|
import type { InvoicingCatalogItemFormSubFamily } from './editInvoicingCatalogItemDetailViewState';
|
|
@@ -39,7 +40,7 @@ export interface CreateSubFamilyFormValues {
|
|
|
39
40
|
period: string;
|
|
40
41
|
periodUnit: string;
|
|
41
42
|
priceCode: string;
|
|
42
|
-
priceDollars:
|
|
43
|
+
priceDollars: Amount;
|
|
43
44
|
pricingModel: string;
|
|
44
45
|
prorationType: string;
|
|
45
46
|
trialEndAction: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.productToCreateSubFamilyFormValues = exports.createSubFamilyFormToPayload = exports.catalogDetailEditValuesToSavePayload = exports.planToCatalogDetailEditValues = void 0;
|
|
4
|
+
const amount_1 = require("../../../commonStateTypes/amount");
|
|
4
5
|
const invoicingCatalogItemFormConfig_1 = require("./invoicingCatalogItemFormConfig");
|
|
5
6
|
const trimOrUndefined = (value) => value.trim() !== '' ? value.trim() : undefined;
|
|
6
7
|
const trimOrNull = (value) => value.trim() !== '' ? value.trim() : null;
|
|
@@ -35,7 +36,7 @@ const tierToPayload = (tier) => ({
|
|
|
35
36
|
package_size: hasValue(tier.packageSize)
|
|
36
37
|
? Number(tier.packageSize)
|
|
37
38
|
: undefined,
|
|
38
|
-
price:
|
|
39
|
+
price: tier.price.amount,
|
|
39
40
|
pricing_type: tier.pricingType,
|
|
40
41
|
starting_unit: Number(tier.startingUnit) || 1,
|
|
41
42
|
});
|
|
@@ -49,7 +50,7 @@ const subFamilyToProductUpdate = (subFamily, itemType) => {
|
|
|
49
50
|
is_taxable: subFamily.isTaxable,
|
|
50
51
|
period: hasValue(subFamily.period) ? Number(subFamily.period) : null,
|
|
51
52
|
period_unit: hasValue(subFamily.period) ? subFamily.periodUnit : null,
|
|
52
|
-
price: tiered ? 0 :
|
|
53
|
+
price: tiered ? 0 : subFamily.priceDollars.amount,
|
|
53
54
|
pricing_model: subFamily.pricingModel,
|
|
54
55
|
show_description_in_quotes: subFamily.showDescriptionInQuotes,
|
|
55
56
|
tiers: tiered ? subFamily.tiers.map(tierToPayload) : [],
|
|
@@ -117,7 +118,6 @@ const catalogDetailEditValuesToSavePayload = (values, itemType = 'plan', origina
|
|
|
117
118
|
};
|
|
118
119
|
};
|
|
119
120
|
exports.catalogDetailEditValuesToSavePayload = catalogDetailEditValuesToSavePayload;
|
|
120
|
-
const toAmountValue = (value) => Number(value) || 0;
|
|
121
121
|
/** Build POST /catalog/products body for Create sub-family. */
|
|
122
122
|
const createSubFamilyFormToPayload = (itemId, itemType, values) => {
|
|
123
123
|
const name = values.name.trim();
|
|
@@ -128,7 +128,7 @@ const createSubFamilyFormToPayload = (itemId, itemType, values) => {
|
|
|
128
128
|
is_taxable: true,
|
|
129
129
|
item_id: itemId,
|
|
130
130
|
name,
|
|
131
|
-
price:
|
|
131
|
+
price: values.priceDollars.amount,
|
|
132
132
|
price_code: priceCode,
|
|
133
133
|
pricing_model: values.pricingModel || 'flat_fee',
|
|
134
134
|
show_description_in_invoices: true,
|
|
@@ -168,7 +168,7 @@ const productToCreateSubFamilyFormValues = (product) => ({
|
|
|
168
168
|
period: product?.period != null ? String(product.period) : '1',
|
|
169
169
|
periodUnit: product?.periodUnit ?? 'month',
|
|
170
170
|
priceCode: '',
|
|
171
|
-
priceDollars: product?.price
|
|
171
|
+
priceDollars: product?.price ?? (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
172
172
|
pricingModel: product?.pricingModel ?? 'flat_fee',
|
|
173
173
|
prorationType: product?.prorationType ?? 'site_default',
|
|
174
174
|
trialEndAction: product?.trialEndAction ?? 'site_default',
|
|
@@ -10,7 +10,6 @@ const toProductCode = (value) => value
|
|
|
10
10
|
.toLowerCase()
|
|
11
11
|
.replace(/[^a-z0-9]+/g, '-')
|
|
12
12
|
.replace(/^-|-$/g, '');
|
|
13
|
-
const toAmountValue = (value) => Number(value) || 0;
|
|
14
13
|
const buildAccountingDetail = (localData) => {
|
|
15
14
|
const detail = {};
|
|
16
15
|
if (localData.sku.trim() !== '') {
|
|
@@ -34,7 +33,7 @@ const buildSubFamilyPayload = (localData, subFamily, clearEmptyValues) => {
|
|
|
34
33
|
free_quantity: Number(subFamily.freeQuantity) || 0,
|
|
35
34
|
is_taxable: subFamily.isTaxable,
|
|
36
35
|
name,
|
|
37
|
-
price: tiered ? 0 :
|
|
36
|
+
price: tiered ? 0 : subFamily.priceDollars.amount,
|
|
38
37
|
price_code: priceCode,
|
|
39
38
|
pricing_model: subFamily.pricingModel,
|
|
40
39
|
show_description_in_invoices: subFamily.showDescriptionInInvoices,
|
|
@@ -73,7 +72,7 @@ const buildSubFamilyPayload = (localData, subFamily, clearEmptyValues) => {
|
|
|
73
72
|
payload.tiers = subFamily.tiers.map((tier) => ({
|
|
74
73
|
ending_unit: tier.endingUnit.trim() !== '' ? Number(tier.endingUnit) : undefined,
|
|
75
74
|
package_size: tier.packageSize.trim() !== '' ? Number(tier.packageSize) : undefined,
|
|
76
|
-
price:
|
|
75
|
+
price: tier.price.amount,
|
|
77
76
|
pricing_type: tier.pricingType,
|
|
78
77
|
starting_unit: Number(tier.startingUnit) || 1,
|
|
79
78
|
}));
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { Amount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import { FetchedState, ID } from '../../../commonStateTypes/common';
|
|
2
3
|
import { InvoicingCatalogItemKind } from '../invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewState';
|
|
3
4
|
/** A single pricing tier within a sub-family (values kept as raw strings). */
|
|
4
5
|
export interface InvoicingCatalogItemFormTier {
|
|
5
6
|
endingUnit: string;
|
|
6
7
|
packageSize: string;
|
|
7
|
-
price:
|
|
8
|
+
price: Amount;
|
|
8
9
|
pricingType: string;
|
|
9
10
|
startingUnit: string;
|
|
10
11
|
}
|
|
@@ -20,7 +21,7 @@ export interface InvoicingCatalogItemFormSubFamily {
|
|
|
20
21
|
period: string;
|
|
21
22
|
periodUnit: string;
|
|
22
23
|
priceCode: string;
|
|
23
|
-
priceDollars:
|
|
24
|
+
priceDollars: Amount;
|
|
24
25
|
pricingModel: string;
|
|
25
26
|
prorationType: string;
|
|
26
27
|
showDescriptionInInvoices: boolean;
|
package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.entityToInvoicingCatalogItemFormLocalData = exports.initialInvoicingCatalogItemFormLocalData = exports.invoicingProductToCatalogItemFormSubFamily = exports.blankInvoicingCatalogSubFamily = exports.blankInvoicingCatalogTier = exports.isTieredCatalogPricingModel = exports.INVOICING_CATALOG_APPLICABILITY_VALUES = exports.INVOICING_CATALOG_PRORATION_VALUES = exports.INVOICING_CATALOG_TRIAL_END_ACTION_VALUES = exports.INVOICING_CATALOG_TRIAL_UNIT_VALUES = exports.INVOICING_CATALOG_TIER_TYPE_VALUES = exports.INVOICING_CATALOG_PRICING_MODEL_VALUES = exports.INVOICING_CATALOG_PERIOD_UNIT_VALUES = exports.INVOICING_CATALOG_TYPE_VALUES = void 0;
|
|
4
|
+
const amount_1 = require("../../../commonStateTypes/amount");
|
|
4
5
|
/**
|
|
5
6
|
* Canonical value sets for the catalog item form. CES owns the values;
|
|
6
7
|
* web-components maps each value to a localized label.
|
|
@@ -48,7 +49,7 @@ exports.isTieredCatalogPricingModel = isTieredCatalogPricingModel;
|
|
|
48
49
|
const blankInvoicingCatalogTier = (startingUnit = '1') => ({
|
|
49
50
|
endingUnit: '',
|
|
50
51
|
packageSize: '',
|
|
51
|
-
price: '',
|
|
52
|
+
price: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
52
53
|
pricingType: 'per_unit',
|
|
53
54
|
startingUnit,
|
|
54
55
|
});
|
|
@@ -63,7 +64,7 @@ const blankInvoicingCatalogSubFamily = () => ({
|
|
|
63
64
|
name: '',
|
|
64
65
|
period: '1',
|
|
65
66
|
periodUnit: 'month',
|
|
66
|
-
priceDollars: '',
|
|
67
|
+
priceDollars: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
67
68
|
priceCode: '',
|
|
68
69
|
pricingModel: 'flat_fee',
|
|
69
70
|
prorationType: 'site_default',
|
|
@@ -91,7 +92,7 @@ const invoicingProductToCatalogItemFormSubFamily = (product) => {
|
|
|
91
92
|
name: product.name ?? '',
|
|
92
93
|
period: product.period != null ? String(product.period) : '1',
|
|
93
94
|
periodUnit: product.periodUnit ?? 'month',
|
|
94
|
-
priceDollars: product.price
|
|
95
|
+
priceDollars: product.price ?? (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
95
96
|
priceCode: product.priceCode ?? '',
|
|
96
97
|
pricingModel: product.pricingModel ?? 'flat_fee',
|
|
97
98
|
prorationType: product.prorationType ?? 'site_default',
|
|
@@ -101,7 +102,7 @@ const invoicingProductToCatalogItemFormSubFamily = (product) => {
|
|
|
101
102
|
? product.tiers.map((tier) => ({
|
|
102
103
|
endingUnit: tier.endingUnit != null ? String(tier.endingUnit) : '',
|
|
103
104
|
packageSize: tier.packageSize != null ? String(tier.packageSize) : '',
|
|
104
|
-
price:
|
|
105
|
+
price: tier.price,
|
|
105
106
|
pricingType: tier.pricingType ?? 'per_unit',
|
|
106
107
|
startingUnit: String(tier.startingUnit ?? 1),
|
|
107
108
|
}))
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.js
CHANGED
|
@@ -25,8 +25,8 @@ const localDataToSaveInvoicingCouponPayload = (localData, isCreate) => {
|
|
|
25
25
|
data.discount_percentage = Number(localData.discountPercentage);
|
|
26
26
|
}
|
|
27
27
|
if (localData.discountType === 'fixed_amount') {
|
|
28
|
-
if (localData.discountAmount.
|
|
29
|
-
data.discount_amount =
|
|
28
|
+
if (localData.discountAmount.amount !== 0) {
|
|
29
|
+
data.discount_amount = localData.discountAmount.amount;
|
|
30
30
|
}
|
|
31
31
|
data.currency_code = 'USD';
|
|
32
32
|
}
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js
CHANGED
|
@@ -3,12 +3,12 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.resetEditInvoicingCouponDetailView = exports.submitInvoicingCouponFormFailure = exports.submitInvoicingCouponFormSuccess = exports.saveInvoicingCoupon = exports.submitInvoicingCouponForm = exports.updateInvoicingCouponFormDraft = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
-
const
|
|
6
|
+
const editInvoicingCouponDetailViewState_1 = require("./editInvoicingCouponDetailViewState");
|
|
7
7
|
exports.initialState = {
|
|
8
8
|
fetchState: 'Not-Started',
|
|
9
9
|
error: undefined,
|
|
10
10
|
editDraftById: {},
|
|
11
|
-
newCouponDraft: { ...
|
|
11
|
+
newCouponDraft: { ...editInvoicingCouponDetailViewState_1.initialInvoicingCouponFormLocalData },
|
|
12
12
|
savedCouponId: undefined,
|
|
13
13
|
hasValidState() {
|
|
14
14
|
return this.fetchState === 'Completed';
|
|
@@ -61,7 +61,7 @@ const editInvoicingCouponDetailView = (0, toolkit_1.createSlice)({
|
|
|
61
61
|
draft.error = undefined;
|
|
62
62
|
draft.savedCouponId = undefined;
|
|
63
63
|
draft.editDraftById = {};
|
|
64
|
-
draft.newCouponDraft = { ...
|
|
64
|
+
draft.newCouponDraft = { ...editInvoicingCouponDetailViewState_1.initialInvoicingCouponFormLocalData };
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
67
|
});
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getInvoicingCouponFormView = exports.getEditInvoicingCouponDetailViewState = void 0;
|
|
4
4
|
const couponConstants_1 = require("../../../entity/invoicing/coupon/couponConstants");
|
|
5
5
|
const couponSelector_1 = require("../../../entity/invoicing/coupon/couponSelector");
|
|
6
|
-
const
|
|
6
|
+
const editInvoicingCouponDetailViewState_1 = require("./editInvoicingCouponDetailViewState");
|
|
7
7
|
/**
|
|
8
8
|
* Bundled view for the discount create/edit form: the save fetch state/error,
|
|
9
9
|
* the id of the coupon last saved, and — when a `couponId` is passed (edit
|
|
@@ -33,7 +33,7 @@ const getInvoicingCouponFormView = (state, couponId) => {
|
|
|
33
33
|
const { editDraftById, newCouponDraft } = state.editInvoicingCouponDetailViewState;
|
|
34
34
|
const localData = couponId != null
|
|
35
35
|
? (editDraftById[couponId] ??
|
|
36
|
-
(0,
|
|
36
|
+
(0, editInvoicingCouponDetailViewState_1.entityToInvoicingCouponFormLocalData)(base.coupon))
|
|
37
37
|
: newCouponDraft;
|
|
38
38
|
return {
|
|
39
39
|
...base,
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { Amount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import { FetchedState, ID } from '../../../commonStateTypes/common';
|
|
3
|
+
import { InvoicingCoupon } from '../../../entity/invoicing/coupon/couponState';
|
|
2
4
|
/**
|
|
3
5
|
* Draft form state for the create/edit discount-coupon form. Held in CES so the
|
|
4
6
|
* form flows its data from here (mirrors the customer form pattern). Dates are
|
|
5
|
-
* stored as ISO `YYYY-MM-DD` strings;
|
|
7
|
+
* stored as ISO `YYYY-MM-DD` strings; the discount amount as an `Amount` (as on
|
|
8
|
+
* the coupon entity); remaining quantities as raw strings.
|
|
6
9
|
*/
|
|
7
10
|
export interface InvoicingCouponFormLocalData {
|
|
8
11
|
applyOn: string;
|
|
9
12
|
couponCode: string;
|
|
10
13
|
couponId: string;
|
|
11
|
-
discountAmount:
|
|
14
|
+
discountAmount: Amount;
|
|
12
15
|
discountPercentage: string;
|
|
13
16
|
discountQuantity: string;
|
|
14
17
|
discountType: string;
|
|
@@ -27,3 +30,6 @@ export interface EditInvoicingCouponDetailViewState extends FetchedState {
|
|
|
27
30
|
newCouponDraft: InvoicingCouponFormLocalData;
|
|
28
31
|
savedCouponId?: ID;
|
|
29
32
|
}
|
|
33
|
+
export declare const initialInvoicingCouponFormLocalData: InvoicingCouponFormLocalData;
|
|
34
|
+
/** Seed the form draft from an existing coupon entity (edit mode). */
|
|
35
|
+
export declare const entityToInvoicingCouponFormLocalData: (coupon?: InvoicingCoupon) => InvoicingCouponFormLocalData;
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.js
CHANGED
|
@@ -1,2 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entityToInvoicingCouponFormLocalData = exports.initialInvoicingCouponFormLocalData = void 0;
|
|
4
|
+
const amount_1 = require("../../../commonStateTypes/amount");
|
|
5
|
+
exports.initialInvoicingCouponFormLocalData = {
|
|
6
|
+
applyOn: 'invoice_amount',
|
|
7
|
+
couponCode: '',
|
|
8
|
+
couponId: '',
|
|
9
|
+
discountAmount: (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
10
|
+
discountPercentage: '',
|
|
11
|
+
discountQuantity: '',
|
|
12
|
+
discountType: 'percentage',
|
|
13
|
+
durationType: 'one_time',
|
|
14
|
+
invoiceName: '',
|
|
15
|
+
invoiceNotes: '',
|
|
16
|
+
maxRedemptions: '',
|
|
17
|
+
name: '',
|
|
18
|
+
period: '',
|
|
19
|
+
periodUnit: 'month',
|
|
20
|
+
validFrom: '',
|
|
21
|
+
validTill: '',
|
|
22
|
+
};
|
|
23
|
+
/** Seed the form draft from an existing coupon entity (edit mode). */
|
|
24
|
+
const entityToInvoicingCouponFormLocalData = (coupon) => {
|
|
25
|
+
if (coupon == null) {
|
|
26
|
+
return { ...exports.initialInvoicingCouponFormLocalData };
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
applyOn: coupon.applyOn ?? 'invoice_amount',
|
|
30
|
+
couponCode: coupon.couponCode ?? '',
|
|
31
|
+
couponId: coupon.id ?? '',
|
|
32
|
+
discountAmount: coupon.discountAmount ?? (0, amount_1.toAmount)(0, 'USD', '$'),
|
|
33
|
+
discountPercentage: coupon.discountPercentage != null
|
|
34
|
+
? String(coupon.discountPercentage)
|
|
35
|
+
: '',
|
|
36
|
+
discountQuantity: coupon.discountQuantity != null ? String(coupon.discountQuantity) : '',
|
|
37
|
+
discountType: coupon.discountType ?? 'percentage',
|
|
38
|
+
durationType: coupon.durationType ?? 'one_time',
|
|
39
|
+
invoiceName: coupon.invoiceName ?? '',
|
|
40
|
+
invoiceNotes: coupon.invoiceNotes ?? '',
|
|
41
|
+
maxRedemptions: coupon.maxRedemptions != null ? String(coupon.maxRedemptions) : '',
|
|
42
|
+
name: coupon.name ?? '',
|
|
43
|
+
period: coupon.period != null ? String(coupon.period) : '',
|
|
44
|
+
periodUnit: coupon.periodUnit ?? 'month',
|
|
45
|
+
validFrom: coupon.validFrom != null ? coupon.validFrom.format('YYYY-MM-DD') : '',
|
|
46
|
+
validTill: coupon.validTill != null ? coupon.validTill.format('YYYY-MM-DD') : '',
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
exports.entityToInvoicingCouponFormLocalData = entityToInvoicingCouponFormLocalData;
|
|
@@ -27,8 +27,7 @@ const localDataToSaveInvoicingSubscriptionPayload = (localData, shippingAddress)
|
|
|
27
27
|
quantity: 1,
|
|
28
28
|
})),
|
|
29
29
|
];
|
|
30
|
-
const setupFee = localData.setupFee.
|
|
31
|
-
const parsedSetupFee = Number.parseFloat(setupFee);
|
|
30
|
+
const setupFee = localData.setupFee.amount;
|
|
32
31
|
const poNumber = localData.poNumber.trim();
|
|
33
32
|
const trialEnd = localData.trialEnd.trim();
|
|
34
33
|
return {
|
|
@@ -38,8 +37,8 @@ const localDataToSaveInvoicingSubscriptionPayload = (localData, shippingAddress)
|
|
|
38
37
|
currency_code: localData.preferredCurrencyCode,
|
|
39
38
|
customer_id: localData.customerId,
|
|
40
39
|
subscription_items: items,
|
|
41
|
-
...(setupFee
|
|
42
|
-
? { setup_fee:
|
|
40
|
+
...(Number.isFinite(setupFee) && setupFee !== 0
|
|
41
|
+
? { setup_fee: setupFee }
|
|
43
42
|
: {}),
|
|
44
43
|
...(poNumber !== '' ? { po_number: poNumber } : {}),
|
|
45
44
|
...(trialEnd !== '' ? { trial_end: trialEnd } : {}),
|