@appcorp/stellar-solutions-invoice-module 0.1.48 → 0.1.50
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/base-modules/invoice/actions.d.ts +19 -2
- package/base-modules/invoice/actions.js +2 -0
- package/base-modules/invoice/calculate-total.js +1 -1
- package/base-modules/invoice/constants.d.ts +7 -0
- package/base-modules/invoice/constants.js +29 -19
- package/base-modules/invoice/context.js +120 -209
- package/base-modules/invoice/form.js +4 -3
- package/base-modules/invoice/invoice.js +2 -12
- package/base-modules/invoice/reducer.js +23 -18
- package/base-modules/invoice/types.d.ts +10 -27
- package/base-modules/invoice/types.js +19 -6
- package/base-modules/invoice/validate.js +0 -3
- package/package.json +7 -6
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ProductTypeBE } from '@appcorp/stellar-solutions-product-module/base-modules/product/types';
|
|
2
2
|
import { CustomerTypeBE, DISCOUNT_UNIT, INVOICE_DRAWER, InvoiceState, InvoiceTypeBE, Product, Service } from './types';
|
|
3
3
|
import { TaxTypeBE } from '@appcorp/stellar-solutions-modules/global-modules/preferences/types';
|
|
4
|
+
import { CompanyTypeBE } from '@appcorp/stellar-solutions-company-module/base-modules/company/types';
|
|
4
5
|
export declare enum INVOICE_ACTION_TYPES {
|
|
5
6
|
ADD_ITEM_PRODUCT = "ADD_ITEM_PRODUCT",
|
|
6
7
|
ADD_ITEM_SERVICE = "ADD_ITEM_SERVICE",
|
|
@@ -29,8 +30,10 @@ export declare enum INVOICE_ACTION_TYPES {
|
|
|
29
30
|
SET_SKELTON_LOADING = "SET_SKELTON_LOADING",
|
|
30
31
|
SET_TAX = "SET_TAX",
|
|
31
32
|
SET_PRODUCTS_LIST = "SET_PRODUCTS_LIST",
|
|
33
|
+
SET_COMPANIES_LIST = "SET_COMPANIES_LIST",
|
|
32
34
|
SET_CUSTOMER = "SET_CUSTOMER",
|
|
33
|
-
SET_TAXES = "SET_TAXES"
|
|
35
|
+
SET_TAXES = "SET_TAXES",
|
|
36
|
+
SET_CUSTOMER_FORM = "SET_CUSTOMER_FORM"
|
|
34
37
|
}
|
|
35
38
|
export type InvoiceUpdateFieldAction = {
|
|
36
39
|
type: INVOICE_ACTION_TYPES.SET_INPUT_FIELD;
|
|
@@ -175,10 +178,24 @@ export type InvoiceSetProductsListAction = {
|
|
|
175
178
|
productsList: ProductTypeBE[];
|
|
176
179
|
};
|
|
177
180
|
};
|
|
181
|
+
export type InvoiceSetCompaniesListAction = {
|
|
182
|
+
type: INVOICE_ACTION_TYPES.SET_COMPANIES_LIST;
|
|
183
|
+
payload: {
|
|
184
|
+
companiesList: CompanyTypeBE[];
|
|
185
|
+
};
|
|
186
|
+
};
|
|
178
187
|
export type InvoiceSetCustomerAction = {
|
|
179
188
|
type: INVOICE_ACTION_TYPES.SET_CUSTOMER;
|
|
180
189
|
payload: {
|
|
181
190
|
customer: CustomerTypeBE;
|
|
191
|
+
customerId: string;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
export type InvoiceSetCustomerFormAction = {
|
|
195
|
+
type: INVOICE_ACTION_TYPES.SET_CUSTOMER_FORM;
|
|
196
|
+
payload: {
|
|
197
|
+
key: keyof CustomerTypeBE;
|
|
198
|
+
value: string;
|
|
182
199
|
};
|
|
183
200
|
};
|
|
184
201
|
export type InvoiceSetTaxesAction = {
|
|
@@ -187,4 +204,4 @@ export type InvoiceSetTaxesAction = {
|
|
|
187
204
|
taxes: TaxTypeBE[];
|
|
188
205
|
};
|
|
189
206
|
};
|
|
190
|
-
export type InvoiceActions = InvoiceAddItemProductAction | InvoiceAddItemServiceAction | InvoiceResetErrorAction | InvoiceDeleteItemProductAction | InvoiceDeleteItemServiceAction | InvoiceResetFormAction | InvoiceSetButtonDisableAction | InvoiceSetCurrentPageAction | InvoiceSetCustomerDataAction | InvoiceSetDiscountUnitAction | InvoiceSetErrorsAction | InvoiceSetFormLoadingAction | InvoiceSetInvoicesAction | InvoiceSetInvoiceFormAction | InvoiceSetIsInvoiceApiSuccessAction | InvoiceSetMaxPageLimitAction | InvoiceSetSearchQueryAction | InvoiceUpdateFieldAction | InvoiceToggleLoadingAction | InvoiceSetDrawerAction | InvoiceSetCountAction | InvoiceSetFormAction | InvoiceSetAfterDiscountAction | InvoiceSetTaxAction | InvoiceSetFormToRenderAction | InvoiceSetProductsListAction | InvoiceSetCustomerAction | InvoiceSetTaxesAction;
|
|
207
|
+
export type InvoiceActions = InvoiceAddItemProductAction | InvoiceAddItemServiceAction | InvoiceResetErrorAction | InvoiceDeleteItemProductAction | InvoiceDeleteItemServiceAction | InvoiceResetFormAction | InvoiceSetButtonDisableAction | InvoiceSetCurrentPageAction | InvoiceSetCustomerDataAction | InvoiceSetDiscountUnitAction | InvoiceSetErrorsAction | InvoiceSetFormLoadingAction | InvoiceSetInvoicesAction | InvoiceSetInvoiceFormAction | InvoiceSetIsInvoiceApiSuccessAction | InvoiceSetMaxPageLimitAction | InvoiceSetSearchQueryAction | InvoiceUpdateFieldAction | InvoiceToggleLoadingAction | InvoiceSetDrawerAction | InvoiceSetCountAction | InvoiceSetFormAction | InvoiceSetAfterDiscountAction | InvoiceSetTaxAction | InvoiceSetFormToRenderAction | InvoiceSetProductsListAction | InvoiceSetCustomerAction | InvoiceSetTaxesAction | InvoiceSetCustomerFormAction | InvoiceSetCompaniesListAction;
|
|
@@ -30,6 +30,8 @@ var INVOICE_ACTION_TYPES;
|
|
|
30
30
|
INVOICE_ACTION_TYPES["SET_SKELTON_LOADING"] = "SET_SKELTON_LOADING";
|
|
31
31
|
INVOICE_ACTION_TYPES["SET_TAX"] = "SET_TAX";
|
|
32
32
|
INVOICE_ACTION_TYPES["SET_PRODUCTS_LIST"] = "SET_PRODUCTS_LIST";
|
|
33
|
+
INVOICE_ACTION_TYPES["SET_COMPANIES_LIST"] = "SET_COMPANIES_LIST";
|
|
33
34
|
INVOICE_ACTION_TYPES["SET_CUSTOMER"] = "SET_CUSTOMER";
|
|
34
35
|
INVOICE_ACTION_TYPES["SET_TAXES"] = "SET_TAXES";
|
|
36
|
+
INVOICE_ACTION_TYPES["SET_CUSTOMER_FORM"] = "SET_CUSTOMER_FORM";
|
|
35
37
|
})(INVOICE_ACTION_TYPES || (exports.INVOICE_ACTION_TYPES = INVOICE_ACTION_TYPES = {}));
|
|
@@ -10,7 +10,7 @@ var calculateTotal = function (subtotal, taxRate, discountUnit, discount) {
|
|
|
10
10
|
? (subtotalValue * discountValue) / 100
|
|
11
11
|
: discountValue;
|
|
12
12
|
var afterDiscount = subtotalValue - discountedAmount;
|
|
13
|
-
var tax = ((afterDiscount * parseFloat(taxRate)) / 100).toFixed(2);
|
|
13
|
+
var tax = taxRate ? ((afterDiscount * parseFloat(taxRate)) / 100).toFixed(2) : Number(0).toFixed(2);
|
|
14
14
|
var total = (subtotalValue +
|
|
15
15
|
parseFloat(tax) -
|
|
16
16
|
discountedAmount).toFixed(2);
|
|
@@ -25,6 +25,7 @@ export declare const INVOICE_API_ROUTES: {
|
|
|
25
25
|
CUSTOMER_BY_PHONE: string;
|
|
26
26
|
TAXES: string;
|
|
27
27
|
TAX: string;
|
|
28
|
+
COMPANIES: string;
|
|
28
29
|
};
|
|
29
30
|
export declare const tableBodyCols: ({
|
|
30
31
|
componentType: VISTA_TABLE_CELL_TYPE;
|
|
@@ -38,6 +39,12 @@ export declare const tableBodyCols: ({
|
|
|
38
39
|
componentType: VISTA_TABLE_CELL_TYPE;
|
|
39
40
|
key: string[];
|
|
40
41
|
expression: (text: string) => string;
|
|
42
|
+
} | {
|
|
43
|
+
componentType: VISTA_TABLE_CELL_TYPE;
|
|
44
|
+
key: string;
|
|
45
|
+
expression: (text: string, obj: {
|
|
46
|
+
currency: string;
|
|
47
|
+
}) => string;
|
|
41
48
|
} | {
|
|
42
49
|
componentType: VISTA_TABLE_CELL_TYPE;
|
|
43
50
|
key?: undefined;
|
|
@@ -108,8 +108,8 @@ exports.staticCompanySection = (_a = {},
|
|
|
108
108
|
order: 4,
|
|
109
109
|
query: '',
|
|
110
110
|
required: true,
|
|
111
|
-
selectKey1: '
|
|
112
|
-
selectedItem: {
|
|
111
|
+
selectKey1: 'code',
|
|
112
|
+
selectedItem: { code: '' },
|
|
113
113
|
},
|
|
114
114
|
// {
|
|
115
115
|
// enabled: false,
|
|
@@ -128,7 +128,6 @@ exports.staticCompanySection = (_a = {},
|
|
|
128
128
|
exports.staticCustomerSection = (_b = {},
|
|
129
129
|
_b[form_schema_1.VISTA_FORM_ELEMENTS.TEXT_INPUT_V1] = [
|
|
130
130
|
{
|
|
131
|
-
className: 'col-span-2',
|
|
132
131
|
disabled: false,
|
|
133
132
|
enabled: true,
|
|
134
133
|
error: '',
|
|
@@ -136,7 +135,7 @@ exports.staticCustomerSection = (_b = {},
|
|
|
136
135
|
id: 'phone',
|
|
137
136
|
label: 'Phone',
|
|
138
137
|
order: 1,
|
|
139
|
-
placeholder: '
|
|
138
|
+
placeholder: '+92 300 0000000',
|
|
140
139
|
required: true,
|
|
141
140
|
type: 'text',
|
|
142
141
|
value: ''
|
|
@@ -158,7 +157,7 @@ exports.staticCustomerSection = (_b = {},
|
|
|
158
157
|
disabled: false,
|
|
159
158
|
enabled: true,
|
|
160
159
|
error: '',
|
|
161
|
-
handleOnChange: function () { },
|
|
160
|
+
handleOnChange: function () { return void 0; },
|
|
162
161
|
id: 'lastName',
|
|
163
162
|
label: 'Last Name',
|
|
164
163
|
order: 3,
|
|
@@ -171,11 +170,11 @@ exports.staticCustomerSection = (_b = {},
|
|
|
171
170
|
disabled: false,
|
|
172
171
|
enabled: true,
|
|
173
172
|
error: '',
|
|
174
|
-
handleOnChange: function () { },
|
|
173
|
+
handleOnChange: function () { return void 0; },
|
|
175
174
|
id: 'email',
|
|
176
175
|
label: 'Email',
|
|
177
176
|
order: 7,
|
|
178
|
-
placeholder: '
|
|
177
|
+
placeholder: 'name@company.com',
|
|
179
178
|
required: false,
|
|
180
179
|
type: 'text',
|
|
181
180
|
value: '',
|
|
@@ -184,7 +183,7 @@ exports.staticCustomerSection = (_b = {},
|
|
|
184
183
|
disabled: false,
|
|
185
184
|
enabled: true,
|
|
186
185
|
error: '',
|
|
187
|
-
handleOnChange: function () { },
|
|
186
|
+
handleOnChange: function () { return void 0; },
|
|
188
187
|
id: 'city',
|
|
189
188
|
label: 'City',
|
|
190
189
|
order: 6,
|
|
@@ -197,11 +196,11 @@ exports.staticCustomerSection = (_b = {},
|
|
|
197
196
|
disabled: false,
|
|
198
197
|
enabled: true,
|
|
199
198
|
error: '',
|
|
200
|
-
handleOnChange: function () { },
|
|
199
|
+
handleOnChange: function () { return void 0; },
|
|
201
200
|
id: 'address',
|
|
202
201
|
label: 'Address',
|
|
203
202
|
order: 5,
|
|
204
|
-
placeholder: '
|
|
203
|
+
placeholder: '123 Street',
|
|
205
204
|
required: false,
|
|
206
205
|
type: 'text',
|
|
207
206
|
value: '',
|
|
@@ -224,6 +223,22 @@ exports.staticCustomerSection = (_b = {},
|
|
|
224
223
|
selectKey1: 'name',
|
|
225
224
|
selectedItem: { name: '' },
|
|
226
225
|
},
|
|
226
|
+
{
|
|
227
|
+
enabled: true,
|
|
228
|
+
handleInputOnChange: function () { return void 0; },
|
|
229
|
+
handleOnBlur: function () { return void 0; },
|
|
230
|
+
handleOnChange: function () { },
|
|
231
|
+
label: 'Currency',
|
|
232
|
+
listItems: [],
|
|
233
|
+
nodeQueryKey: '',
|
|
234
|
+
nodeSelectKey: 'currency',
|
|
235
|
+
order: 7,
|
|
236
|
+
placeholder: '',
|
|
237
|
+
query: '',
|
|
238
|
+
required: true,
|
|
239
|
+
selectKey1: 'code',
|
|
240
|
+
selectedItem: { code: '' },
|
|
241
|
+
},
|
|
227
242
|
],
|
|
228
243
|
_b);
|
|
229
244
|
exports.staticPricingSection = (_c = {},
|
|
@@ -507,6 +522,7 @@ exports.INVOICE_API_ROUTES = {
|
|
|
507
522
|
CUSTOMER_BY_PHONE: '/api/customer/by-phone',
|
|
508
523
|
TAXES: '/api/taxes',
|
|
509
524
|
TAX: '/api/tax',
|
|
525
|
+
COMPANIES: '/api/companies'
|
|
510
526
|
};
|
|
511
527
|
exports.tableBodyCols = [
|
|
512
528
|
{
|
|
@@ -515,21 +531,13 @@ exports.tableBodyCols = [
|
|
|
515
531
|
},
|
|
516
532
|
{
|
|
517
533
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.OBJECT,
|
|
518
|
-
key: ['company', 'name'],
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
522
|
-
key: 'currency',
|
|
534
|
+
key: ['company:customer', 'name:firstName'],
|
|
523
535
|
},
|
|
524
536
|
{
|
|
525
537
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.MULTIPLE_TEXT_LINES,
|
|
526
538
|
key: ['date', 'expiryDate'],
|
|
527
539
|
expression: function (text) { return (0, util_functions_1.formatDate)(text, util_functions_1.DATE_FORMATS.LOCALE_DATE); },
|
|
528
540
|
},
|
|
529
|
-
{
|
|
530
|
-
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
531
|
-
key: 'note',
|
|
532
|
-
},
|
|
533
541
|
{
|
|
534
542
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
535
543
|
key: 'ref',
|
|
@@ -537,6 +545,7 @@ exports.tableBodyCols = [
|
|
|
537
545
|
{
|
|
538
546
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
539
547
|
key: 'subTotal',
|
|
548
|
+
expression: function (text, obj) { return "".concat(obj.currency).concat(text); },
|
|
540
549
|
},
|
|
541
550
|
{
|
|
542
551
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
@@ -549,6 +558,7 @@ exports.tableBodyCols = [
|
|
|
549
558
|
{
|
|
550
559
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
551
560
|
key: 'total',
|
|
561
|
+
expression: function (text, obj) { return "".concat(obj.currency).concat(text); },
|
|
552
562
|
},
|
|
553
563
|
{
|
|
554
564
|
componentType: vista_table_type_1.VISTA_TABLE_CELL_TYPE.TEXT,
|
|
@@ -102,27 +102,34 @@ var types_1 = require("./types");
|
|
|
102
102
|
var validate_1 = require("./validate");
|
|
103
103
|
var generate_toast_1 = require("@appcorp/app-corp-vista/utils/generate-toast");
|
|
104
104
|
var calculate_subtotal_1 = require("./calculate-subtotal");
|
|
105
|
-
var context_1 = require("@appcorp/stellar-solutions-company-module/base-modules/company/context");
|
|
106
105
|
var date_fns_1 = require("date-fns");
|
|
107
106
|
var calculate_total_1 = require("./calculate-total");
|
|
108
107
|
var util_functions_2 = require("@react-pakistan/util-functions");
|
|
109
|
-
var
|
|
108
|
+
var context_1 = require("@appcorp/stellar-solutions-modules/global-modules/tax/context");
|
|
109
|
+
var context_2 = require("@appcorp/stellar-solutions-modules/global-modules/preferences/context");
|
|
110
110
|
var useInvoiceState = function () {
|
|
111
111
|
var _a = (0, react_1.useReducer)(reducer_1.invoiceReducer, reducer_1.initialInvoiceState), state = _a[0], dispatch = _a[1];
|
|
112
|
-
var
|
|
113
|
-
var
|
|
112
|
+
var taxes = (0, context_1.useTaxStateContext)().taxes;
|
|
113
|
+
var currencies = (0, context_2.usePreferenceStateContext)().currencies;
|
|
114
114
|
var debouncedQuery = (0, util_functions_1.useDebounce)(state.searchQuery, 800);
|
|
115
115
|
var debouncedProductList = (0, util_functions_1.useDebounce)(state.productQuery, 800);
|
|
116
|
-
var
|
|
116
|
+
var debouncedCustomer = (0, util_functions_1.useDebounce)(state.phone, 800);
|
|
117
117
|
var debouncedTaxList = (0, util_functions_1.useDebounce)(state.taxQuery, 800);
|
|
118
|
+
var debouncedCompanyList = (0, util_functions_1.useDebounce)(state.companyQuery, 800);
|
|
118
119
|
var defaultTax = (0, react_1.useMemo)(function () {
|
|
119
120
|
return taxes.filter(function (_a) {
|
|
120
121
|
var isDefault = _a.isDefault;
|
|
121
122
|
return isDefault;
|
|
122
123
|
})[0];
|
|
123
124
|
}, [taxes]);
|
|
125
|
+
var defaultCurrency = (0, react_1.useMemo)(function () {
|
|
126
|
+
return currencies.filter(function (_a) {
|
|
127
|
+
var isDefault = _a.isDefault;
|
|
128
|
+
return isDefault;
|
|
129
|
+
})[0];
|
|
130
|
+
}, [currencies]);
|
|
124
131
|
var listParams = {
|
|
125
|
-
category: types_1.
|
|
132
|
+
category: types_1.QUOTE_INVOICE_CATEGORY.INVOICE,
|
|
126
133
|
currentPage: state.currentPage,
|
|
127
134
|
pageLimit: state.pageLimit,
|
|
128
135
|
searchQuery: state.searchQuery,
|
|
@@ -159,6 +166,7 @@ var useInvoiceState = function () {
|
|
|
159
166
|
invoiceStatus: state.invoiceStatus,
|
|
160
167
|
mode: state.mode,
|
|
161
168
|
note: state.note.trim(),
|
|
169
|
+
phone: state.phone,
|
|
162
170
|
products: state.products,
|
|
163
171
|
quoteStatus: state.quoteStatus,
|
|
164
172
|
ref: state.ref,
|
|
@@ -197,7 +205,7 @@ var useInvoiceState = function () {
|
|
|
197
205
|
id: state.id,
|
|
198
206
|
};
|
|
199
207
|
var byIdCallback = function (_a) {
|
|
200
|
-
var _b, _c;
|
|
208
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
201
209
|
var data = _a.data, error = _a.error;
|
|
202
210
|
if (error) {
|
|
203
211
|
(0, generate_toast_1.generateToast)({
|
|
@@ -211,27 +219,37 @@ var useInvoiceState = function () {
|
|
|
211
219
|
return (__assign(__assign({}, item), { rowTotal: Number(item.quantity) * Number(item.price) }));
|
|
212
220
|
});
|
|
213
221
|
var updatedProducts = __spreadArray([], data.products, true).map(function (item) { return (__assign(__assign({}, item), { price: item.product.salePrice, id: item.productId, quantity: item.quantity, rowTotal: parseFloat(item.product.salePrice) * parseInt(item.quantity) })); });
|
|
214
|
-
var updatedData = __assign(__assign({}, data), { mode: 'Edit', companyId: data.company.id,
|
|
215
|
-
|
|
222
|
+
var updatedData = __assign(__assign(__assign(__assign({}, data), { mode: 'Edit', companyId: ((_b = data === null || data === void 0 ? void 0 : data.company) === null || _b === void 0 ? void 0 : _b.id) || '', customerId: ((_c = data === null || data === void 0 ? void 0 : data.customer) === null || _c === void 0 ? void 0 : _c.id) || '' }), (((_d = data === null || data === void 0 ? void 0 : data.customer) === null || _d === void 0 ? void 0 : _d.id) && {
|
|
223
|
+
customer: __assign({}, data.customer),
|
|
224
|
+
})), { services: __spreadArray([], updatedServices, true).filter(function (item) { return item.name; }), products: __spreadArray([], updatedProducts, true).filter(function (item) { return item.id; }) });
|
|
225
|
+
if ((_e = updatedData === null || updatedData === void 0 ? void 0 : updatedData.company) === null || _e === void 0 ? void 0 : _e.name) {
|
|
216
226
|
dispatch({
|
|
217
|
-
type: actions_1.INVOICE_ACTION_TYPES.
|
|
218
|
-
payload: {
|
|
227
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
228
|
+
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_COMPANY_FORM_DRAWER },
|
|
219
229
|
});
|
|
220
230
|
}
|
|
221
|
-
if ((
|
|
231
|
+
if ((_f = updatedData === null || updatedData === void 0 ? void 0 : updatedData.customer) === null || _f === void 0 ? void 0 : _f.firstName) {
|
|
222
232
|
dispatch({
|
|
223
|
-
type: actions_1.INVOICE_ACTION_TYPES.
|
|
224
|
-
payload: {
|
|
233
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
234
|
+
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_CUSTOMER_FORM_DRAWER },
|
|
225
235
|
});
|
|
226
236
|
}
|
|
227
237
|
dispatch({
|
|
228
238
|
type: actions_1.INVOICE_ACTION_TYPES.SET_FORM,
|
|
229
239
|
payload: { form: updatedData },
|
|
230
240
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
241
|
+
if ((_g = updatedData === null || updatedData === void 0 ? void 0 : updatedData.company) === null || _g === void 0 ? void 0 : _g.name) {
|
|
242
|
+
dispatch({
|
|
243
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
244
|
+
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_COMPANY_FORM_DRAWER },
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
if ((_h = updatedData === null || updatedData === void 0 ? void 0 : updatedData.customer) === null || _h === void 0 ? void 0 : _h.firstName) {
|
|
248
|
+
dispatch({
|
|
249
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
250
|
+
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_CUSTOMER_FORM_DRAWER },
|
|
251
|
+
});
|
|
252
|
+
}
|
|
235
253
|
}
|
|
236
254
|
};
|
|
237
255
|
var deleteParams = {
|
|
@@ -307,7 +325,7 @@ var useInvoiceState = function () {
|
|
|
307
325
|
}); })();
|
|
308
326
|
}, [debouncedProductList]);
|
|
309
327
|
(0, react_1.useEffect)(function () {
|
|
310
|
-
if (state.
|
|
328
|
+
if (state.drawer === types_1.INVOICE_DRAWER.INVOICE_CUSTOMER_FORM_DRAWER && debouncedCustomer) {
|
|
311
329
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
312
330
|
var data;
|
|
313
331
|
return __generator(this, function (_a) {
|
|
@@ -316,7 +334,7 @@ var useInvoiceState = function () {
|
|
|
316
334
|
url: constants_1.INVOICE_API_ROUTES.CUSTOMER_BY_PHONE,
|
|
317
335
|
method: util_functions_1.API_METHODS.POST,
|
|
318
336
|
body: JSON.stringify({
|
|
319
|
-
phone:
|
|
337
|
+
phone: debouncedCustomer,
|
|
320
338
|
}),
|
|
321
339
|
})];
|
|
322
340
|
case 1:
|
|
@@ -324,7 +342,7 @@ var useInvoiceState = function () {
|
|
|
324
342
|
if (data) {
|
|
325
343
|
dispatch({
|
|
326
344
|
type: actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER,
|
|
327
|
-
payload: { customer: __assign({}, data
|
|
345
|
+
payload: { customer: __assign({}, data), customerId: data.id },
|
|
328
346
|
});
|
|
329
347
|
}
|
|
330
348
|
return [2 /*return*/];
|
|
@@ -332,13 +350,36 @@ var useInvoiceState = function () {
|
|
|
332
350
|
});
|
|
333
351
|
}); })();
|
|
334
352
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
353
|
+
}, [debouncedCustomer, state.drawer]);
|
|
354
|
+
(0, react_1.useEffect)(function () {
|
|
355
|
+
if (state.drawer === types_1.INVOICE_DRAWER.INVOICE_COMPANY_FORM_DRAWER && debouncedCompanyList) {
|
|
356
|
+
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
357
|
+
var data;
|
|
358
|
+
return __generator(this, function (_a) {
|
|
359
|
+
switch (_a.label) {
|
|
360
|
+
case 0: return [4 /*yield*/, (0, util_functions_1.fetchData)({
|
|
361
|
+
url: constants_1.INVOICE_API_ROUTES.COMPANIES,
|
|
362
|
+
method: util_functions_1.API_METHODS.POST,
|
|
363
|
+
body: JSON.stringify({
|
|
364
|
+
searchQuery: debouncedCompanyList,
|
|
365
|
+
pageLimit: 100,
|
|
366
|
+
currentPage: 1,
|
|
367
|
+
}),
|
|
368
|
+
})];
|
|
369
|
+
case 1:
|
|
370
|
+
data = (_a.sent()).data;
|
|
371
|
+
if (data === null || data === void 0 ? void 0 : data.items) {
|
|
372
|
+
dispatch({
|
|
373
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_COMPANIES_LIST,
|
|
374
|
+
payload: { companiesList: data.items },
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
return [2 /*return*/];
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
}); })();
|
|
340
381
|
}
|
|
341
|
-
}, [
|
|
382
|
+
}, [debouncedCompanyList, state.drawer]);
|
|
342
383
|
(0, react_1.useEffect)(function () {
|
|
343
384
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
344
385
|
var data;
|
|
@@ -429,20 +470,12 @@ var useInvoiceState = function () {
|
|
|
429
470
|
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
430
471
|
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_COMPANY_FORM_DRAWER },
|
|
431
472
|
});
|
|
432
|
-
dispatch({
|
|
433
|
-
type: actions_1.INVOICE_ACTION_TYPES.SET_FORM_TO_RENDER,
|
|
434
|
-
payload: { formToRender: 'company' },
|
|
435
|
-
});
|
|
436
473
|
}
|
|
437
474
|
if (text === 'customer') {
|
|
438
475
|
dispatch({
|
|
439
476
|
type: actions_1.INVOICE_ACTION_TYPES.SET_DRAWER,
|
|
440
477
|
payload: { drawer: types_1.INVOICE_DRAWER.INVOICE_CUSTOMER_FORM_DRAWER },
|
|
441
478
|
});
|
|
442
|
-
dispatch({
|
|
443
|
-
type: actions_1.INVOICE_ACTION_TYPES.SET_FORM_TO_RENDER,
|
|
444
|
-
payload: { formToRender: 'customer' },
|
|
445
|
-
});
|
|
446
479
|
}
|
|
447
480
|
};
|
|
448
481
|
var handleEdit = function (id) {
|
|
@@ -461,11 +494,11 @@ var useInvoiceState = function () {
|
|
|
461
494
|
payload: { disableSaveButton: true },
|
|
462
495
|
});
|
|
463
496
|
(0, util_functions_1.validateForm)({
|
|
464
|
-
params: updateParams,
|
|
497
|
+
params: __assign(__assign({}, updateParams), { currency: updateParams.currency || defaultCurrency.code, taxRate: updateParams.taxRate || defaultTax.taxRate }),
|
|
465
498
|
schema: validate_1.formValidation,
|
|
466
499
|
successCallback: function () {
|
|
467
500
|
updateFetchNow(undefined, {
|
|
468
|
-
body: JSON.stringify(__assign(__assign({}, updateParams), { products: updateParams.products.filter(function (item) { return item.id; }), services: updateParams.services.filter(function (item) { return item.name; }) })),
|
|
501
|
+
body: JSON.stringify(__assign(__assign({}, updateParams), { products: updateParams.products.filter(function (item) { return item.id; }), services: updateParams.services.filter(function (item) { return item.name; }), currency: updateParams.currency || defaultCurrency.code, taxRate: updateParams.taxRate || defaultTax.taxRate })),
|
|
469
502
|
});
|
|
470
503
|
},
|
|
471
504
|
errorCallback: function (e) {
|
|
@@ -475,20 +508,26 @@ var useInvoiceState = function () {
|
|
|
475
508
|
});
|
|
476
509
|
},
|
|
477
510
|
});
|
|
478
|
-
}, [updateFetchNow, updateParams]);
|
|
511
|
+
}, [updateFetchNow, updateParams, defaultCurrency, defaultTax]);
|
|
479
512
|
var handleChange = (0, react_1.useCallback)(function (key, value) {
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
513
|
+
var _a;
|
|
514
|
+
if (key === 'phone') {
|
|
515
|
+
var formattedNumber = (_a = (0, util_functions_1.formatPhone)(value)) === null || _a === void 0 ? void 0 : _a.international;
|
|
516
|
+
dispatch({
|
|
517
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER_FORM,
|
|
518
|
+
payload: { key: key, value: formattedNumber || value },
|
|
519
|
+
});
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
if (key === 'companyQuery') {
|
|
523
|
+
dispatch({
|
|
524
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
525
|
+
payload: { key: key, value: value },
|
|
526
|
+
});
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
490
529
|
dispatch({
|
|
491
|
-
type: actions_1.INVOICE_ACTION_TYPES.
|
|
530
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER_FORM,
|
|
492
531
|
payload: { key: key, value: String(value) },
|
|
493
532
|
});
|
|
494
533
|
dispatch({
|
|
@@ -587,47 +626,26 @@ var useInvoiceState = function () {
|
|
|
587
626
|
type: actions_1.INVOICE_ACTION_TYPES.SET_DISCOUNT_UNIT,
|
|
588
627
|
payload: { discountUnit: v },
|
|
589
628
|
});
|
|
590
|
-
// if (e.target.value === 'Percentage(%)') {
|
|
591
|
-
// invoiceDispatch({
|
|
592
|
-
// type: INVOICE_ACTION_TYPES.SET_DISCOUNT_UNIT,
|
|
593
|
-
// payload: '%',
|
|
594
|
-
// });
|
|
595
|
-
// } else {
|
|
596
|
-
// invoiceDispatch({
|
|
597
|
-
// type: INVOICE_ACTION_TYPES.SET_DISCOUNT_UNIT,
|
|
598
|
-
// payload: '',
|
|
599
|
-
// });
|
|
600
|
-
// }
|
|
601
629
|
};
|
|
602
|
-
// const handleSelectInputChange = useCallback(async (key: string, value: string) => {
|
|
603
|
-
// const response = await fetch(INVOICE_CATEGORY_API_ROUTES.INVOICE_CATEGORIES, {
|
|
604
|
-
// method: API_METHODS.POST,
|
|
605
|
-
// body: JSON.stringify({
|
|
606
|
-
// searchQuery: debouncedList,
|
|
607
|
-
// pageLimit: 1000,
|
|
608
|
-
// currentPage: 1,
|
|
609
|
-
// }),
|
|
610
|
-
// });
|
|
611
|
-
// const result = await response.json();
|
|
612
|
-
// dispatch({
|
|
613
|
-
// type: INVOICE_ACTION_TYPES.SET_INVOICE_CATEGORIES,
|
|
614
|
-
// payload: { productCategories: result as ProductCategoryBE[] },
|
|
615
|
-
// });
|
|
616
|
-
// dispatch({
|
|
617
|
-
// type: INVOICE_ACTION_TYPES.SET_INVOICE_QUERY,
|
|
618
|
-
// payload: { productCategoryQuery: value },
|
|
619
|
-
// });
|
|
620
|
-
// }, []);
|
|
621
630
|
var handleSelectChange = function (key, value) {
|
|
622
631
|
var val = __assign({}, value);
|
|
623
|
-
console.log('seleect', key, value);
|
|
624
632
|
if (key === 'taxRate') {
|
|
625
633
|
dispatch({
|
|
626
634
|
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
627
635
|
payload: {
|
|
628
636
|
key: key,
|
|
629
|
-
value: val
|
|
630
|
-
}
|
|
637
|
+
value: val.taxRate,
|
|
638
|
+
},
|
|
639
|
+
});
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
642
|
+
if (key === 'country') {
|
|
643
|
+
dispatch({
|
|
644
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER_FORM,
|
|
645
|
+
payload: {
|
|
646
|
+
key: key,
|
|
647
|
+
value: val.name,
|
|
648
|
+
},
|
|
631
649
|
});
|
|
632
650
|
return;
|
|
633
651
|
}
|
|
@@ -636,8 +654,8 @@ var useInvoiceState = function () {
|
|
|
636
654
|
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
637
655
|
payload: {
|
|
638
656
|
key: key,
|
|
639
|
-
value: val
|
|
640
|
-
}
|
|
657
|
+
value: val.code,
|
|
658
|
+
},
|
|
641
659
|
});
|
|
642
660
|
return;
|
|
643
661
|
}
|
|
@@ -711,39 +729,46 @@ var useInvoiceState = function () {
|
|
|
711
729
|
var comboboxElements = (_b = elements[form_schema_1.VISTA_FORM_ELEMENTS.COMBOBOX_V1]) === null || _b === void 0 ? void 0 : _b.sort(function (a, b) { return a.order - b.order; });
|
|
712
730
|
if (comboboxElements) {
|
|
713
731
|
comboboxElements[0].selectedItem = { id: state.companyId };
|
|
714
|
-
comboboxElements[0].listItems =
|
|
732
|
+
comboboxElements[0].listItems = state.companiesList;
|
|
715
733
|
comboboxElements[0].query = state.companyQuery;
|
|
716
734
|
comboboxElements[0].handleOnChange = handleSelectChange;
|
|
717
735
|
comboboxElements[0].handleInputOnChange = handleChange;
|
|
718
736
|
comboboxElements[0].handleOnBlur = handleChange;
|
|
719
|
-
comboboxElements[1].selectedItem = {
|
|
720
|
-
comboboxElements[1].listItems =
|
|
737
|
+
comboboxElements[1].selectedItem = { code: state.currency || (defaultCurrency === null || defaultCurrency === void 0 ? void 0 : defaultCurrency.code) };
|
|
738
|
+
comboboxElements[1].listItems = currencies;
|
|
739
|
+
comboboxElements[1].handleOnChange = handleSelectChange;
|
|
740
|
+
comboboxElements[1].handleInputOnChange = handleChange;
|
|
721
741
|
}
|
|
722
742
|
return elements;
|
|
723
|
-
}, [state, handleChange,
|
|
743
|
+
}, [state, handleChange, currencies, defaultCurrency]);
|
|
724
744
|
var dynamicCustomerFormElements = (0, react_1.useMemo)(function () {
|
|
725
|
-
var _a, _b;
|
|
745
|
+
var _a, _b, _c;
|
|
726
746
|
var elements = __assign({}, constants_1.staticCustomerSection);
|
|
727
747
|
var textInputElements = (_a = elements[form_schema_1.VISTA_FORM_ELEMENTS.TEXT_INPUT_V1]) === null || _a === void 0 ? void 0 : _a.sort(function (a, b) { return a.order - b.order; });
|
|
728
748
|
if (textInputElements) {
|
|
729
749
|
textInputElements.forEach(function (_a, i) {
|
|
750
|
+
var _b;
|
|
730
751
|
var id = _a.id;
|
|
731
752
|
textInputElements[i].error = state.errors[id];
|
|
732
753
|
textInputElements[i].handleOnChange = handleChange;
|
|
733
|
-
textInputElements[i].value = state[id];
|
|
754
|
+
textInputElements[i].value = (_b = state === null || state === void 0 ? void 0 : state.customer) === null || _b === void 0 ? void 0 : _b[id];
|
|
734
755
|
});
|
|
735
756
|
}
|
|
736
757
|
var comboboxElements = (_b = elements[form_schema_1.VISTA_FORM_ELEMENTS.COMBOBOX_V1]) === null || _b === void 0 ? void 0 : _b.sort(function (a, b) { return a.order - b.order; });
|
|
737
758
|
if (comboboxElements) {
|
|
738
|
-
comboboxElements[0].selectedItem = { name: state.country };
|
|
759
|
+
comboboxElements[0].selectedItem = { name: (_c = state === null || state === void 0 ? void 0 : state.customer) === null || _c === void 0 ? void 0 : _c.country };
|
|
739
760
|
comboboxElements[0].listItems = util_functions_2.countriesTimeZones;
|
|
740
761
|
comboboxElements[0].query = state.countryQuery;
|
|
741
762
|
comboboxElements[0].handleOnChange = handleSelectChange;
|
|
742
763
|
comboboxElements[0].handleInputOnChange = handleChange;
|
|
743
764
|
comboboxElements[0].handleOnBlur = handleChange;
|
|
765
|
+
comboboxElements[1].selectedItem = { code: state.currency || (defaultCurrency === null || defaultCurrency === void 0 ? void 0 : defaultCurrency.code) };
|
|
766
|
+
comboboxElements[1].listItems = currencies;
|
|
767
|
+
comboboxElements[1].handleOnChange = handleSelectChange;
|
|
768
|
+
comboboxElements[1].handleInputOnChange = handleChange;
|
|
744
769
|
}
|
|
745
770
|
return elements;
|
|
746
|
-
}, [state, handleChange]);
|
|
771
|
+
}, [state, handleChange, currencies, defaultCurrency]);
|
|
747
772
|
var dynamicPricingFormElements = (0, react_1.useMemo)(function () {
|
|
748
773
|
var _a, _b, _c, _d, _e, _f;
|
|
749
774
|
var elements = __assign({}, constants_1.staticPricingSection);
|
|
@@ -796,113 +821,6 @@ var useInvoiceState = function () {
|
|
|
796
821
|
});
|
|
797
822
|
}
|
|
798
823
|
};
|
|
799
|
-
// const dynamicServiceFormElements: VistaFormElements[] = useMemo(() => {
|
|
800
|
-
// const elements: VistaFormElements = { ...staticServiceSection };
|
|
801
|
-
// const servicesElements = state.services.map(() => ({
|
|
802
|
-
// ...elements,
|
|
803
|
-
// }));
|
|
804
|
-
// servicesElements?.map((element, i) => {
|
|
805
|
-
// const textInputElements: VistaTextInputV1Props[] | undefined = element[VISTA_FORM_ELEMENTS.TEXT_INPUT_V1]?.sort((a, b) => a.order - b.order);
|
|
806
|
-
// if (textInputElements) {
|
|
807
|
-
// textInputElements[0].value = state.services[i].name;
|
|
808
|
-
// textInputElements[0].handleOnChange = (k, v) => handleItemChangeServices({
|
|
809
|
-
// index: i,
|
|
810
|
-
// key: k as keyof Service,
|
|
811
|
-
// value: v,
|
|
812
|
-
// });
|
|
813
|
-
// textInputElements[1].value = state.services[i].description;
|
|
814
|
-
// textInputElements[1].handleOnChange = (k, v) => handleItemChangeServices({
|
|
815
|
-
// index: i,
|
|
816
|
-
// key: k as keyof Service,
|
|
817
|
-
// value: v,
|
|
818
|
-
// });
|
|
819
|
-
// textInputElements[2].value = state.services[i].quantity;
|
|
820
|
-
// textInputElements[2].handleOnChange = (k, v) => handleItemChangeServices({
|
|
821
|
-
// index: i,
|
|
822
|
-
// key: k as keyof Service,
|
|
823
|
-
// value: v,
|
|
824
|
-
// });
|
|
825
|
-
// textInputElements[3].value = state.services[i].price;
|
|
826
|
-
// textInputElements[3].handleOnChange = (k, v) => handleItemChangeServices({
|
|
827
|
-
// index: i,
|
|
828
|
-
// key: k as keyof Service,
|
|
829
|
-
// value: v,
|
|
830
|
-
// });
|
|
831
|
-
// textInputElements[4].value = state.services[i].rowTotal;
|
|
832
|
-
// }
|
|
833
|
-
// // state.services?.forEach((service, i) => {
|
|
834
|
-
// // textInputElements[i].error = state.errors[id];
|
|
835
|
-
// // textInputElements[i].error = state.errors[id];
|
|
836
|
-
// // textInputElements[i].error = state.errors[id];
|
|
837
|
-
// // textInputElements[i].error = state.errors[id];
|
|
838
|
-
// // textInputElements[i].error = state.errors[id];
|
|
839
|
-
// const buttonElements = element[VISTA_FORM_ELEMENTS.BUTTON_V1]?.sort((a, b) => a.order - b.order);
|
|
840
|
-
// if (buttonElements) {
|
|
841
|
-
// // state.services?.forEach((service, i) => {
|
|
842
|
-
// buttonElements[0].handleOnClick = () => {
|
|
843
|
-
// if (state.services.length > 1) {
|
|
844
|
-
// const res = state.services.splice(i, 1);
|
|
845
|
-
// dispatch({
|
|
846
|
-
// type: INVOICE_ACTION_TYPES.DELETE_ITEM_SERVICE,
|
|
847
|
-
// payload: { services: [...res] },
|
|
848
|
-
// });
|
|
849
|
-
// }
|
|
850
|
-
// }
|
|
851
|
-
// // });
|
|
852
|
-
// }
|
|
853
|
-
// });
|
|
854
|
-
// // }
|
|
855
|
-
// return servicesElements;
|
|
856
|
-
// }, [state.services, handleItemChangeServices]);
|
|
857
|
-
// const dynamicProductFormElements: VistaFormElements = useMemo(() => {
|
|
858
|
-
// const elements: VistaFormElements = { ...staticProductSection };
|
|
859
|
-
// const textInputElements: VistaTextInputV1Props[] | undefined = elements[VISTA_FORM_ELEMENTS.TEXT_INPUT_V1]?.sort((a, b) => a.order - b.order);
|
|
860
|
-
// if (textInputElements) {
|
|
861
|
-
// state.products?.forEach((product, i) => {
|
|
862
|
-
// textInputElements[0].value = String(product.quantity);
|
|
863
|
-
// textInputElements[0].handleOnChange = (k, v) => handleItemChangeProducts({
|
|
864
|
-
// index: i,
|
|
865
|
-
// key: k as keyof Product,
|
|
866
|
-
// value: Number(v),
|
|
867
|
-
// });
|
|
868
|
-
// // textInputElements[i].error = state.errors[id];
|
|
869
|
-
// textInputElements[2].value = product.rowTotal;
|
|
870
|
-
// });
|
|
871
|
-
// }
|
|
872
|
-
// const comboboxElements: VistaComboboxV1Props[] | undefined = elements[VISTA_FORM_ELEMENTS.COMBOBOX_V1]?.sort((a, b) => a.order - b.order);
|
|
873
|
-
// if (comboboxElements) {
|
|
874
|
-
// state.products?.forEach((product, i) => {
|
|
875
|
-
// comboboxElements[0].listItems = products;
|
|
876
|
-
// comboboxElements[0].query = state.productQuery;
|
|
877
|
-
// comboboxElements[0].handleInputOnChange = handleChange;
|
|
878
|
-
// comboboxElements[0].handleOnBlur = handleChange;
|
|
879
|
-
// comboboxElements[0].handleOnChange = (k, v: object) => {
|
|
880
|
-
// console.log('_>>>>>>>>>', k, v);
|
|
881
|
-
// const val = { ...v } as { id: string };
|
|
882
|
-
// handleItemChangeProducts({
|
|
883
|
-
// index: i,
|
|
884
|
-
// key: k as keyof Product,
|
|
885
|
-
// value: val.id,
|
|
886
|
-
// });
|
|
887
|
-
// }
|
|
888
|
-
// })
|
|
889
|
-
// }
|
|
890
|
-
// const buttonElements = elements[VISTA_FORM_ELEMENTS.BUTTON_V1]?.sort((a, b) => a.order - b.order);
|
|
891
|
-
// if (buttonElements) {
|
|
892
|
-
// state.products?.forEach((product, i) => {
|
|
893
|
-
// buttonElements[0].handleOnClick = () => {
|
|
894
|
-
// if (state.products.length > 1) {
|
|
895
|
-
// const res = state.products.splice(i, 1);
|
|
896
|
-
// dispatch({
|
|
897
|
-
// type: INVOICE_ACTION_TYPES.DELETE_ITEM_PRODUCT,
|
|
898
|
-
// payload: { products: [...res] },
|
|
899
|
-
// });
|
|
900
|
-
// }
|
|
901
|
-
// }
|
|
902
|
-
// });
|
|
903
|
-
// }
|
|
904
|
-
// return elements;
|
|
905
|
-
// }, [state, handleItemChangeProducts, products, handleChange]);
|
|
906
824
|
var headerActions = [
|
|
907
825
|
{
|
|
908
826
|
enabled: true,
|
|
@@ -914,7 +832,7 @@ var useInvoiceState = function () {
|
|
|
914
832
|
enabled: true,
|
|
915
833
|
handleOnClick: function () { return handleCreate('customer'); },
|
|
916
834
|
label: 'Invoice for Customer',
|
|
917
|
-
order:
|
|
835
|
+
order: 2,
|
|
918
836
|
},
|
|
919
837
|
];
|
|
920
838
|
var rowActions = [
|
|
@@ -931,16 +849,9 @@ var useInvoiceState = function () {
|
|
|
931
849
|
order: 2,
|
|
932
850
|
},
|
|
933
851
|
];
|
|
934
|
-
return __assign(__assign({}, state), { byIdError: byIdError, byIdLoading: byIdLoading, clearSearch: clearSearch, closeDrawer: closeDrawer, deleteError: deleteError, deleteLoading: deleteLoading, dispatch: dispatch, dynamicCompanyFormElements: dynamicCompanyFormElements, dynamicPricingFormElements: dynamicPricingFormElements,
|
|
935
|
-
// dynamicProductFormElements,
|
|
936
|
-
// dynamicServiceFormElements,
|
|
937
|
-
dynamicCustomerFormElements: dynamicCustomerFormElements, handleChange: handleChange, handleNextClick: handleNextClick, handlePageLimit: handlePageLimit, handlePreviousClick: handlePreviousClick, handleSubmit: handleSubmit,
|
|
938
|
-
// handleUploadImage,
|
|
939
|
-
headerActions: headerActions, listError: listError, listFetchNow: listFetchNow, listLoading: listLoading, rowActions: rowActions, searchOnChange: searchOnChange, updateError: updateError, updateLoading: updateLoading, handleAddItemService: handleAddItemService, handleAddItemProduct: handleAddItemProduct, handleItemChangeServices: handleItemChangeServices, handleDeleteServiceRow: handleDeleteServiceRow, handleItemChangeProducts: handleItemChangeProducts, handleDeleteProductRow: handleDeleteProductRow });
|
|
852
|
+
return __assign(__assign({}, state), { byIdError: byIdError, byIdLoading: byIdLoading, clearSearch: clearSearch, closeDrawer: closeDrawer, deleteError: deleteError, deleteLoading: deleteLoading, dispatch: dispatch, dynamicCompanyFormElements: dynamicCompanyFormElements, dynamicCustomerFormElements: dynamicCustomerFormElements, dynamicPricingFormElements: dynamicPricingFormElements, handleAddItemProduct: handleAddItemProduct, handleAddItemService: handleAddItemService, handleChange: handleChange, handleDeleteProductRow: handleDeleteProductRow, handleDeleteServiceRow: handleDeleteServiceRow, handleItemChangeProducts: handleItemChangeProducts, handleItemChangeServices: handleItemChangeServices, handleNextClick: handleNextClick, handlePageLimit: handlePageLimit, handlePreviousClick: handlePreviousClick, handleSubmit: handleSubmit, headerActions: headerActions, listError: listError, listFetchNow: listFetchNow, listLoading: listLoading, rowActions: rowActions, searchOnChange: searchOnChange, updateError: updateError, updateLoading: updateLoading });
|
|
940
853
|
};
|
|
941
|
-
exports.InvoiceStateContext = (0, react_1.createContext)(__assign(__assign({}, reducer_1.initialInvoiceState), { byIdError: undefined, byIdLoading: false, clearSearch: function () { return void 0; }, closeDrawer: function () { return void 0; }, deleteError: undefined, deleteLoading: false, dispatch: function () { return void 0; }, dynamicCompanyFormElements: {}, dynamicPricingFormElements: {},
|
|
942
|
-
// handleUploadImage: () => void 0,
|
|
943
|
-
headerActions: [], listError: undefined, listFetchNow: function () { return void 0; }, listLoading: false, rowActions: [], searchOnChange: function () { return void 0; }, updateError: undefined, updateLoading: false, handleAddItemService: function () { return void 0; }, handleAddItemProduct: function () { return void 0; }, handleItemChangeServices: function () { return void 0; }, handleDeleteServiceRow: function () { return void 0; }, handleItemChangeProducts: function () { return void 0; }, handleDeleteProductRow: function () { return void 0; } }));
|
|
854
|
+
exports.InvoiceStateContext = (0, react_1.createContext)(__assign(__assign({}, reducer_1.initialInvoiceState), { byIdError: undefined, byIdLoading: false, clearSearch: function () { return void 0; }, closeDrawer: function () { return void 0; }, deleteError: undefined, deleteLoading: false, dispatch: function () { return void 0; }, dynamicCompanyFormElements: {}, dynamicCustomerFormElements: {}, dynamicPricingFormElements: {}, handleAddItemProduct: function () { return void 0; }, handleAddItemService: function () { return void 0; }, handleChange: function () { return void 0; }, handleDeleteProductRow: function () { return void 0; }, handleDeleteServiceRow: function () { return void 0; }, handleItemChangeProducts: function () { return void 0; }, handleItemChangeServices: function () { return void 0; }, handleNextClick: function () { return void 0; }, handlePageLimit: function () { return void 0; }, handlePreviousClick: function () { return void 0; }, handleSubmit: function () { return void 0; }, headerActions: [], listError: undefined, listFetchNow: function () { return void 0; }, listLoading: false, rowActions: [], searchOnChange: function () { return void 0; }, updateError: undefined, updateLoading: false }));
|
|
944
855
|
var InvoiceStateContextProvider = function (_a) {
|
|
945
856
|
var children = _a.children;
|
|
946
857
|
var state = useInvoiceState();
|
|
@@ -12,11 +12,12 @@ var services_form_section_1 = require("./services-form-section");
|
|
|
12
12
|
var company_form_section_1 = require("./company-form-section");
|
|
13
13
|
var context_1 = require("./context");
|
|
14
14
|
var customer_form_section_1 = require("./customer-form-section");
|
|
15
|
+
var types_1 = require("./types");
|
|
15
16
|
var InvoiceForm = function () {
|
|
16
|
-
var
|
|
17
|
+
var drawer = (0, context_1.useInvoiceStateContext)().drawer;
|
|
17
18
|
return (react_1.default.createElement("div", { className: "flex flex-col gap-8" },
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
drawer === types_1.INVOICE_DRAWER.INVOICE_CUSTOMER_FORM_DRAWER && (react_1.default.createElement(customer_form_section_1.CustomerSection, null)),
|
|
20
|
+
drawer === types_1.INVOICE_DRAWER.INVOICE_COMPANY_FORM_DRAWER && (react_1.default.createElement(company_form_section_1.CompanySection, null)),
|
|
20
21
|
react_1.default.createElement(services_form_section_1.ServicesSection, null),
|
|
21
22
|
react_1.default.createElement(products_form_section_1.ProductsSection, null),
|
|
22
23
|
react_1.default.createElement(add_service_product_section_1.AddServiceProductSection, null),
|
|
@@ -14,9 +14,7 @@ var constants_1 = require("./constants");
|
|
|
14
14
|
var drawer_1 = require("./drawer");
|
|
15
15
|
var generate_toast_1 = require("@appcorp/app-corp-vista/utils/generate-toast");
|
|
16
16
|
var InvoicePage = function () {
|
|
17
|
-
var _a = (0, context_1.useInvoiceStateContext)(), count = _a.count, currentPage = _a.currentPage, pageLimit = _a.pageLimit, handleNextClick = _a.handleNextClick, handlePreviousClick = _a.handlePreviousClick,
|
|
18
|
-
// toggleDrawerOpen,
|
|
19
|
-
headerActions = _a.headerActions, handlePageLimit = _a.handlePageLimit, searchQuery = _a.searchQuery, searchOnChange = _a.searchOnChange, rowActions = _a.rowActions, invoices = _a.invoices, listLoading = _a.listLoading;
|
|
17
|
+
var _a = (0, context_1.useInvoiceStateContext)(), count = _a.count, currentPage = _a.currentPage, pageLimit = _a.pageLimit, handleNextClick = _a.handleNextClick, handlePreviousClick = _a.handlePreviousClick, headerActions = _a.headerActions, handlePageLimit = _a.handlePageLimit, searchQuery = _a.searchQuery, searchOnChange = _a.searchOnChange, rowActions = _a.rowActions, invoices = _a.invoices, listLoading = _a.listLoading;
|
|
20
18
|
var t = (0, next_intl_1.useTranslations)('invoicePage');
|
|
21
19
|
var translationMap = {
|
|
22
20
|
formLabelName: 'formLabelName',
|
|
@@ -38,18 +36,10 @@ var InvoicePage = function () {
|
|
|
38
36
|
label: t('tableColumnHeaderName'),
|
|
39
37
|
width: '10%',
|
|
40
38
|
},
|
|
41
|
-
{
|
|
42
|
-
label: t('tableColumnHeaderCurrency'),
|
|
43
|
-
width: '5%',
|
|
44
|
-
},
|
|
45
39
|
{
|
|
46
40
|
label: t('tableColumnHeaderIssueExpiryDate'),
|
|
47
41
|
width: '10%',
|
|
48
42
|
},
|
|
49
|
-
{
|
|
50
|
-
label: t('tableColumnHeaderNote'),
|
|
51
|
-
width: '5%',
|
|
52
|
-
},
|
|
53
43
|
{
|
|
54
44
|
label: t('tableColumnHeaderRef'),
|
|
55
45
|
width: '5%',
|
|
@@ -81,7 +71,7 @@ var InvoicePage = function () {
|
|
|
81
71
|
];
|
|
82
72
|
var totalPagePerRecord = (0, util_functions_1.calculatePages)(count, pageLimit);
|
|
83
73
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
84
|
-
react_1.default.createElement(vista_table_v1_1.VistaTableV1, { currentPage: currentPage, handleNextOnClick: handleNextClick, handleOnSelect: handlePageLimit, handlePreviousOnClick: handlePreviousClick, handleSearchInput: searchOnChange, headerActions: headerActions, isNextDisabled: (0, util_functions_1.isNextButtonDisabled)(currentPage, totalPagePerRecord), isPreviousDisabled: (0, util_functions_1.isPreviousButtonDisabled)(currentPage), listOptions: (0, util_functions_1.getAvailablePageLimits)(count), loading: listLoading, nodeSelectKey: "pageLimit", pageLimit: pageLimit, rowActions: rowActions, searchDisabled: false, searchEnabled: true, searchId: "
|
|
74
|
+
react_1.default.createElement(vista_table_v1_1.VistaTableV1, { currentPage: currentPage, handleNextOnClick: handleNextClick, handleOnSelect: handlePageLimit, handlePreviousOnClick: handlePreviousClick, handleSearchInput: searchOnChange, headerActions: headerActions, isNextDisabled: (0, util_functions_1.isNextButtonDisabled)(currentPage, totalPagePerRecord), isPreviousDisabled: (0, util_functions_1.isPreviousButtonDisabled)(currentPage), listOptions: (0, util_functions_1.getAvailablePageLimits)(count), loading: listLoading, nodeSelectKey: "pageLimit", pageLimit: pageLimit, rowActions: rowActions, searchDisabled: false, searchEnabled: true, searchId: "invoice-search", searchPlaceholder: "Enter ID or Name...", searchValue: searchQuery, selectKey1: "option", selectedItem: { option: String(pageLimit) }, tableBodyCols: constants_1.tableBodyCols, tableBodyRows: invoices, tableDescription: t('subTitle'), tableHeadItems: tableHeadItems, tableHeading: t('title'), totalPages: totalPagePerRecord }),
|
|
85
75
|
react_1.default.createElement(drawer_1.Drawer, { translationMap: translationMap }),
|
|
86
76
|
react_1.default.createElement(generate_toast_1.VistaToaster, null)));
|
|
87
77
|
};
|
|
@@ -27,16 +27,25 @@ var types_1 = require("./types");
|
|
|
27
27
|
var constants_1 = require("./constants");
|
|
28
28
|
var date_fns_1 = require("date-fns");
|
|
29
29
|
exports.initialInvoiceState = {
|
|
30
|
-
address: '',
|
|
31
30
|
afterDiscount: '0',
|
|
32
|
-
category: types_1.
|
|
33
|
-
city: '',
|
|
31
|
+
category: types_1.QUOTE_INVOICE_CATEGORY.INVOICE,
|
|
34
32
|
companyId: '',
|
|
35
33
|
companyQuery: '',
|
|
36
34
|
count: 0,
|
|
37
|
-
country: '',
|
|
38
35
|
countryQuery: '',
|
|
39
|
-
currency: '
|
|
36
|
+
currency: '',
|
|
37
|
+
customer: {
|
|
38
|
+
address: '',
|
|
39
|
+
city: '',
|
|
40
|
+
country: '',
|
|
41
|
+
createdAt: '',
|
|
42
|
+
email: '',
|
|
43
|
+
firstName: '',
|
|
44
|
+
id: '',
|
|
45
|
+
lastName: '',
|
|
46
|
+
phone: '',
|
|
47
|
+
updatedAt: '',
|
|
48
|
+
},
|
|
40
49
|
contactsList: [],
|
|
41
50
|
currentPage: 1,
|
|
42
51
|
customerId: '',
|
|
@@ -45,15 +54,11 @@ exports.initialInvoiceState = {
|
|
|
45
54
|
discount: '0',
|
|
46
55
|
discountUnit: types_1.DISCOUNT_UNIT.FIXED_VALUE,
|
|
47
56
|
drawer: null,
|
|
48
|
-
email: '',
|
|
49
57
|
errors: {},
|
|
50
58
|
expiryDate: (0, date_fns_1.addDays)(new Date(), 7).toISOString(),
|
|
51
|
-
firstName: '',
|
|
52
|
-
formToRender: '',
|
|
53
59
|
id: '',
|
|
54
60
|
invoiceStatus: types_1.INVOICE_STATUS.UNPAID,
|
|
55
61
|
invoices: [],
|
|
56
|
-
lastName: '',
|
|
57
62
|
loading: true,
|
|
58
63
|
modal: null,
|
|
59
64
|
mode: 'Create',
|
|
@@ -63,6 +68,7 @@ exports.initialInvoiceState = {
|
|
|
63
68
|
payments: [],
|
|
64
69
|
phone: '',
|
|
65
70
|
productsList: [],
|
|
71
|
+
companiesList: [],
|
|
66
72
|
productQuery: '',
|
|
67
73
|
quoteStatus: types_1.QUOTE_STATUS.DRAFT,
|
|
68
74
|
ref: '',
|
|
@@ -104,7 +110,7 @@ exports.initialInvoiceState = {
|
|
|
104
110
|
],
|
|
105
111
|
};
|
|
106
112
|
function invoiceReducer(state, action) {
|
|
107
|
-
var _a;
|
|
113
|
+
var _a, _b;
|
|
108
114
|
switch (action.type) {
|
|
109
115
|
case actions_1.INVOICE_ACTION_TYPES.SET_DRAWER:
|
|
110
116
|
return __assign(__assign({}, state), { drawer: action.payload.drawer });
|
|
@@ -122,11 +128,6 @@ function invoiceReducer(state, action) {
|
|
|
122
128
|
return __assign(__assign({}, state), { disableSaveButton: false, errors: __assign({}, action.payload.errors) });
|
|
123
129
|
case actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD:
|
|
124
130
|
return __assign(__assign({}, state), (_a = {}, _a[action.payload.key] = action.payload.value, _a));
|
|
125
|
-
// case INVOICE_ACTION_TYPES.SET_INPUT_IMAGES:
|
|
126
|
-
// return {
|
|
127
|
-
// ...state,
|
|
128
|
-
// [action.payload.key]: [...action.payload.value],
|
|
129
|
-
// };
|
|
130
131
|
case actions_1.INVOICE_ACTION_TYPES.SET_PAGE_LIMIT:
|
|
131
132
|
return __assign(__assign({}, state), { pageLimit: action.payload.pageLimit });
|
|
132
133
|
case actions_1.INVOICE_ACTION_TYPES.SET_INVOICES:
|
|
@@ -156,14 +157,18 @@ function invoiceReducer(state, action) {
|
|
|
156
157
|
return __assign(__assign({}, state), { services: __spreadArray([], action.payload.services, true) });
|
|
157
158
|
case actions_1.INVOICE_ACTION_TYPES.DELETE_ITEM_PRODUCT:
|
|
158
159
|
return __assign(__assign({}, state), { products: __spreadArray([], action.payload.products, true) });
|
|
159
|
-
case actions_1.INVOICE_ACTION_TYPES.SET_FORM_TO_RENDER:
|
|
160
|
-
return __assign(__assign({}, state), { formToRender: action.payload.formToRender });
|
|
161
160
|
case actions_1.INVOICE_ACTION_TYPES.SET_PRODUCTS_LIST:
|
|
162
161
|
return __assign(__assign({}, state), { productsList: __spreadArray([], action.payload.productsList, true) });
|
|
163
162
|
case actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER:
|
|
164
|
-
return __assign(__assign({}, state), action.payload.customer);
|
|
163
|
+
return __assign(__assign({}, state), { customerId: state.customerId, customer: __assign(__assign({}, state.customer), action.payload.customer) });
|
|
164
|
+
case actions_1.INVOICE_ACTION_TYPES.SET_CUSTOMER_FORM:
|
|
165
|
+
return __assign(__assign({}, state), (state.customer && ({
|
|
166
|
+
customer: __assign(__assign({}, state.customer), (_b = {}, _b[action.payload.key] = action.payload.value, _b)),
|
|
167
|
+
})));
|
|
165
168
|
case actions_1.INVOICE_ACTION_TYPES.SET_TAXES:
|
|
166
169
|
return __assign(__assign({}, state), { taxes: __spreadArray([], action.payload.taxes, true) });
|
|
170
|
+
case actions_1.INVOICE_ACTION_TYPES.SET_COMPANIES_LIST:
|
|
171
|
+
return __assign(__assign({}, state), { companiesList: __spreadArray([], action.payload.companiesList, true) });
|
|
167
172
|
default:
|
|
168
173
|
return state;
|
|
169
174
|
}
|
|
@@ -70,7 +70,7 @@ export interface CustomerTypeBE {
|
|
|
70
70
|
email?: string;
|
|
71
71
|
firstName: string;
|
|
72
72
|
id: string;
|
|
73
|
-
invoices
|
|
73
|
+
invoices?: InvoiceTypeBE[];
|
|
74
74
|
lastName: string;
|
|
75
75
|
phone: string;
|
|
76
76
|
updatedAt: string;
|
|
@@ -96,13 +96,13 @@ export interface PaymentTypeBE {
|
|
|
96
96
|
updatedAt: string;
|
|
97
97
|
}
|
|
98
98
|
export interface InvoiceTypeBE {
|
|
99
|
-
category:
|
|
100
|
-
company
|
|
101
|
-
companyId
|
|
99
|
+
category: QUOTE_INVOICE_CATEGORY;
|
|
100
|
+
company?: CompanyTypeBE;
|
|
101
|
+
companyId?: string;
|
|
102
102
|
createdAt: string;
|
|
103
103
|
currency: string;
|
|
104
104
|
customer?: CustomerTypeBE;
|
|
105
|
-
customerId
|
|
105
|
+
customerId?: string;
|
|
106
106
|
date: string;
|
|
107
107
|
discount: string;
|
|
108
108
|
discountUnit: DISCOUNT_UNIT;
|
|
@@ -110,7 +110,7 @@ export interface InvoiceTypeBE {
|
|
|
110
110
|
id: string;
|
|
111
111
|
invoiceStatus: INVOICE_STATUS;
|
|
112
112
|
note: string;
|
|
113
|
-
payments: PaymentTypeBE[]
|
|
113
|
+
payments: PaymentTypeBE[];
|
|
114
114
|
products: Product[];
|
|
115
115
|
quoteStatus: QUOTE_STATUS;
|
|
116
116
|
ref: string;
|
|
@@ -121,25 +121,20 @@ export interface InvoiceTypeBE {
|
|
|
121
121
|
updatedAt: string;
|
|
122
122
|
}
|
|
123
123
|
export interface InvoiceState extends Omit<InvoiceTypeBE, 'createdAt' | 'updatedAt'> {
|
|
124
|
-
address: string;
|
|
125
124
|
afterDiscount: string;
|
|
126
|
-
city: string;
|
|
127
125
|
companyQuery: string;
|
|
128
126
|
contactsList: ContactTypeBE[];
|
|
129
127
|
count: number;
|
|
130
|
-
country: string;
|
|
131
128
|
countryQuery: string;
|
|
132
129
|
currentPage: number;
|
|
130
|
+
customer?: CustomerTypeBE;
|
|
131
|
+
customerId?: string;
|
|
133
132
|
disableSaveButton: boolean;
|
|
134
133
|
drawer: null | INVOICE_DRAWER;
|
|
135
|
-
email: string;
|
|
136
134
|
errors: {
|
|
137
135
|
[key: string]: string;
|
|
138
136
|
};
|
|
139
|
-
firstName: string;
|
|
140
|
-
formToRender: string;
|
|
141
137
|
invoices: InvoiceTypeBE[];
|
|
142
|
-
lastName: string;
|
|
143
138
|
loading: boolean;
|
|
144
139
|
modal: null | PRODUCT_MODAL;
|
|
145
140
|
mode: 'Create' | 'Edit';
|
|
@@ -149,6 +144,7 @@ export interface InvoiceState extends Omit<InvoiceTypeBE, 'createdAt' | 'updated
|
|
|
149
144
|
productQuery: string;
|
|
150
145
|
products: Product[];
|
|
151
146
|
productsList: ProductTypeBE[];
|
|
147
|
+
companiesList: CompanyTypeBE[];
|
|
152
148
|
searchQuery: string;
|
|
153
149
|
tax: string;
|
|
154
150
|
taxQuery: string;
|
|
@@ -166,7 +162,7 @@ export declare enum INVOICE_DRAWER {
|
|
|
166
162
|
export declare enum PRODUCT_MODAL {
|
|
167
163
|
DUMMY = "DUMMY"
|
|
168
164
|
}
|
|
169
|
-
export declare enum
|
|
165
|
+
export declare enum QUOTE_INVOICE_CATEGORY {
|
|
170
166
|
QUOTE = "QUOTE",
|
|
171
167
|
INVOICE = "INVOICE"
|
|
172
168
|
}
|
|
@@ -201,16 +197,3 @@ export declare enum DISCOUNT_UNIT {
|
|
|
201
197
|
FIXED_VALUE = "FIXED_VALUE",
|
|
202
198
|
PERCENTAGE_VALUE = "PERCENTAGE_VALUE"
|
|
203
199
|
}
|
|
204
|
-
export interface CustomerTypeBE {
|
|
205
|
-
address?: string;
|
|
206
|
-
city: string;
|
|
207
|
-
country: string;
|
|
208
|
-
createdAt: string;
|
|
209
|
-
email?: string;
|
|
210
|
-
firstName: string;
|
|
211
|
-
id: string;
|
|
212
|
-
invoices: InvoiceTypeBE[];
|
|
213
|
-
lastName: string;
|
|
214
|
-
phone: string;
|
|
215
|
-
updatedAt: string;
|
|
216
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DISCOUNT_UNIT = exports.QUOTE_STATUS = exports.INVOICE_STATUS = exports.CURRENCY = exports.
|
|
3
|
+
exports.DISCOUNT_UNIT = exports.QUOTE_STATUS = exports.INVOICE_STATUS = exports.CURRENCY = exports.QUOTE_INVOICE_CATEGORY = exports.PRODUCT_MODAL = exports.INVOICE_DRAWER = exports.PAYMENT_TYPE = exports.PAYMENT_MODE = void 0;
|
|
4
4
|
var PAYMENT_MODE;
|
|
5
5
|
(function (PAYMENT_MODE) {
|
|
6
6
|
})(PAYMENT_MODE || (exports.PAYMENT_MODE = PAYMENT_MODE = {}));
|
|
@@ -16,11 +16,11 @@ var PRODUCT_MODAL;
|
|
|
16
16
|
(function (PRODUCT_MODAL) {
|
|
17
17
|
PRODUCT_MODAL["DUMMY"] = "DUMMY";
|
|
18
18
|
})(PRODUCT_MODAL || (exports.PRODUCT_MODAL = PRODUCT_MODAL = {}));
|
|
19
|
-
var
|
|
20
|
-
(function (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
})(
|
|
19
|
+
var QUOTE_INVOICE_CATEGORY;
|
|
20
|
+
(function (QUOTE_INVOICE_CATEGORY) {
|
|
21
|
+
QUOTE_INVOICE_CATEGORY["QUOTE"] = "QUOTE";
|
|
22
|
+
QUOTE_INVOICE_CATEGORY["INVOICE"] = "INVOICE";
|
|
23
|
+
})(QUOTE_INVOICE_CATEGORY || (exports.QUOTE_INVOICE_CATEGORY = QUOTE_INVOICE_CATEGORY = {}));
|
|
24
24
|
var CURRENCY;
|
|
25
25
|
(function (CURRENCY) {
|
|
26
26
|
CURRENCY["AUD"] = "AUD";
|
|
@@ -56,3 +56,16 @@ var DISCOUNT_UNIT;
|
|
|
56
56
|
DISCOUNT_UNIT["FIXED_VALUE"] = "FIXED_VALUE";
|
|
57
57
|
DISCOUNT_UNIT["PERCENTAGE_VALUE"] = "PERCENTAGE_VALUE";
|
|
58
58
|
})(DISCOUNT_UNIT || (exports.DISCOUNT_UNIT = DISCOUNT_UNIT = {}));
|
|
59
|
+
// export interface CustomerTypeBE {
|
|
60
|
+
// address?: string;
|
|
61
|
+
// city: string;
|
|
62
|
+
// country: string;
|
|
63
|
+
// createdAt: string;
|
|
64
|
+
// email?: string;
|
|
65
|
+
// firstName: string;
|
|
66
|
+
// id: string;
|
|
67
|
+
// invoices?: InvoiceTypeBE[]
|
|
68
|
+
// lastName: string;
|
|
69
|
+
// phone: string;
|
|
70
|
+
// updatedAt: string;
|
|
71
|
+
// }
|
|
@@ -26,9 +26,6 @@ var products = zod_1.z.object({
|
|
|
26
26
|
exports.formValidation = zod_1.z.object({
|
|
27
27
|
companyId: zod_1.z.string().optional(),
|
|
28
28
|
ref: zod_1.z.string().nonempty(constants_1.validationErrors.ref),
|
|
29
|
-
// invoiceStatus: z
|
|
30
|
-
// .string()
|
|
31
|
-
// .nonempty(formErrors[DASHBOARD_DRAWERS_FORMS.INVOICE].status),
|
|
32
29
|
date: zod_1.z.string().nonempty(constants_1.validationErrors.date),
|
|
33
30
|
expiryDate: zod_1.z
|
|
34
31
|
.string()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appcorp/stellar-solutions-invoice-module",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.50",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "yarn clean && yarn build:ts && cp package.json lib && cp README.md lib && cp yarn.lock lib",
|
|
6
6
|
"build:next": "next build",
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"upgrade": "ncu -u"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@appcorp/app-corp-vista": "^0.2.
|
|
21
|
-
"@appcorp/stellar-solutions-company-module": "^0.1.
|
|
22
|
-
"@appcorp/stellar-solutions-modules": "^0.1.
|
|
23
|
-
"@appcorp/stellar-solutions-product-module": "^0.2.
|
|
20
|
+
"@appcorp/app-corp-vista": "^0.2.99",
|
|
21
|
+
"@appcorp/stellar-solutions-company-module": "^0.1.30",
|
|
22
|
+
"@appcorp/stellar-solutions-modules": "^0.1.29",
|
|
23
|
+
"@appcorp/stellar-solutions-product-module": "^0.2.6",
|
|
24
24
|
"@eslint/eslintrc": "^3",
|
|
25
25
|
"@headlessui/react": "^2",
|
|
26
26
|
"@heroicons/react": "^2",
|
|
27
|
-
"@react-pakistan/util-functions": "^1.24.
|
|
27
|
+
"@react-pakistan/util-functions": "^1.24.41",
|
|
28
28
|
"@supabase/supabase-js": "^2",
|
|
29
29
|
"@tailwindcss/forms": "^0.5.10",
|
|
30
30
|
"@tailwindcss/postcss": "^4",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"eslint": "^9",
|
|
38
38
|
"eslint-config-next": "^15",
|
|
39
39
|
"husky": "^9",
|
|
40
|
+
"libphonenumber-js": "^1",
|
|
40
41
|
"next": "^15",
|
|
41
42
|
"next-intl": "^4",
|
|
42
43
|
"react": "^19",
|