@appcorp/stellar-solutions-invoice-module 0.1.4 → 0.1.5
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/company-form-elements.d.ts +3 -0
- package/base-modules/invoice/company-form-elements.js +41 -0
- package/base-modules/invoice/company-form-section.d.ts +2 -0
- package/base-modules/invoice/company-form-section.js +17 -0
- package/base-modules/invoice/constants.js +4 -4
- package/base-modules/invoice/context.js +56 -13
- package/base-modules/invoice/form.js +2 -0
- package/base-modules/invoice/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
var __assign = (this && this.__assign) || function () {
|
|
4
|
+
__assign = Object.assign || function(t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
+
t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.renderCompanyFormElements = void 0;
|
|
19
|
+
var react_1 = __importDefault(require("react"));
|
|
20
|
+
var form_schema_1 = require("@appcorp/app-corp-vista/utils/form-schema");
|
|
21
|
+
var renderCompanyFormElements = function (elementProps) {
|
|
22
|
+
var _a;
|
|
23
|
+
var elementsArray = (_a = Object.entries(form_schema_1.vistaFormSchema)
|
|
24
|
+
.flatMap(function (_a) {
|
|
25
|
+
var _b, _c;
|
|
26
|
+
var key = _a[0], config = _a[1];
|
|
27
|
+
var Component = config;
|
|
28
|
+
return (_c = (_b = (elementProps[key] || [])) === null || _b === void 0 ? void 0 : _b.filter(function (props) { return props.enabled; })) === null || _c === void 0 ? void 0 : _c.map(function (props) { return ({
|
|
29
|
+
Component: Component,
|
|
30
|
+
key: key,
|
|
31
|
+
order: props.order,
|
|
32
|
+
props: props,
|
|
33
|
+
}); });
|
|
34
|
+
})) === null || _a === void 0 ? void 0 : _a.sort(function (a, b) { return a.order - b.order; });
|
|
35
|
+
return (react_1.default.createElement("div", { className: "grid grid-cols-3 gap-4" }, elementsArray === null || elementsArray === void 0 ? void 0 : elementsArray.map(function (_a, index) {
|
|
36
|
+
var key = _a.key, Component = _a.Component, props = _a.props;
|
|
37
|
+
return (react_1.default.createElement("div", { key: "".concat(key, "-").concat(index) },
|
|
38
|
+
react_1.default.createElement(Component, __assign({}, props))));
|
|
39
|
+
})));
|
|
40
|
+
};
|
|
41
|
+
exports.renderCompanyFormElements = renderCompanyFormElements;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CompanySection = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var vista_vertical_divider_v4_1 = require("@appcorp/app-corp-vista/molecules/vista-vertical-divider-v4");
|
|
9
|
+
var company_form_elements_1 = require("./company-form-elements");
|
|
10
|
+
var context_1 = require("./context");
|
|
11
|
+
var CompanySection = function () {
|
|
12
|
+
var dynamicCompanyFormElements = (0, context_1.useInvoiceStateContext)().dynamicCompanyFormElements;
|
|
13
|
+
return (react_1.default.createElement("div", { className: "flex flex-col gap-4" },
|
|
14
|
+
react_1.default.createElement(vista_vertical_divider_v4_1.VistaVerticalDividerV4, { label: "Company" }),
|
|
15
|
+
(0, company_form_elements_1.renderCompanyFormElements)(dynamicCompanyFormElements)));
|
|
16
|
+
};
|
|
17
|
+
exports.CompanySection = CompanySection;
|
|
@@ -35,7 +35,7 @@ exports.staticCompanySection = (_a = {},
|
|
|
35
35
|
error: '',
|
|
36
36
|
handleOnChange: function () { return void 0; },
|
|
37
37
|
id: 'ref',
|
|
38
|
-
label: '',
|
|
38
|
+
label: 'Ref',
|
|
39
39
|
order: 6,
|
|
40
40
|
placeholder: '',
|
|
41
41
|
required: true,
|
|
@@ -47,7 +47,7 @@ exports.staticCompanySection = (_a = {},
|
|
|
47
47
|
error: '',
|
|
48
48
|
handleOnChange: function () { return void 0; },
|
|
49
49
|
id: 'date',
|
|
50
|
-
label: '',
|
|
50
|
+
label: 'Date',
|
|
51
51
|
order: 2,
|
|
52
52
|
placeholder: '',
|
|
53
53
|
required: false,
|
|
@@ -59,7 +59,7 @@ exports.staticCompanySection = (_a = {},
|
|
|
59
59
|
error: '',
|
|
60
60
|
handleOnChange: function () { return void 0; },
|
|
61
61
|
id: 'expiryDate',
|
|
62
|
-
label: '',
|
|
62
|
+
label: 'Expire Date',
|
|
63
63
|
order: 3,
|
|
64
64
|
placeholder: '',
|
|
65
65
|
required: false,
|
|
@@ -71,7 +71,7 @@ exports.staticCompanySection = (_a = {},
|
|
|
71
71
|
error: '',
|
|
72
72
|
handleOnChange: function () { return void 0; },
|
|
73
73
|
id: 'note',
|
|
74
|
-
label: '',
|
|
74
|
+
label: 'Note',
|
|
75
75
|
order: 5,
|
|
76
76
|
placeholder: 'This is invoice for...',
|
|
77
77
|
required: false,
|
|
@@ -103,6 +103,7 @@ 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
105
|
var context_1 = require("@appcorp/stellar-solutions-product-module/base-modules/product/context");
|
|
106
|
+
var date_fns_1 = require("date-fns");
|
|
106
107
|
var useInvoiceState = function () {
|
|
107
108
|
var _a = (0, react_1.useReducer)(reducer_1.invoiceReducer, reducer_1.initialInvoiceState), state = _a[0], dispatch = _a[1];
|
|
108
109
|
var products = (0, context_1.useProductStateContext)().products;
|
|
@@ -313,9 +314,8 @@ var useInvoiceState = function () {
|
|
|
313
314
|
body: JSON.stringify(__assign({})),
|
|
314
315
|
});
|
|
315
316
|
}
|
|
316
|
-
// eslint-disable-next-line
|
|
317
317
|
}
|
|
318
|
-
catch (
|
|
318
|
+
catch (_b) {
|
|
319
319
|
(0, generate_toast_1.generateToast)({
|
|
320
320
|
description: constants_1.messages.error,
|
|
321
321
|
variant: vista_notification_type_1.VISTA_NOTIFICATION_V1_VARIANT.ERROR,
|
|
@@ -330,7 +330,16 @@ var useInvoiceState = function () {
|
|
|
330
330
|
return [2 /*return*/];
|
|
331
331
|
});
|
|
332
332
|
}); }, [updateFetchNow]);
|
|
333
|
-
var handleChange = function (key, value) {
|
|
333
|
+
var handleChange = (0, react_1.useCallback)(function (key, value) {
|
|
334
|
+
if (key === 'taxValue') {
|
|
335
|
+
dispatch({
|
|
336
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
337
|
+
payload: {
|
|
338
|
+
key: key,
|
|
339
|
+
value: value,
|
|
340
|
+
},
|
|
341
|
+
});
|
|
342
|
+
}
|
|
334
343
|
dispatch({
|
|
335
344
|
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
336
345
|
payload: { key: key, value: String(value).trim(), },
|
|
@@ -342,6 +351,30 @@ var useInvoiceState = function () {
|
|
|
342
351
|
dispatch({
|
|
343
352
|
type: actions_1.INVOICE_ACTION_TYPES.CLEAR_ERRORS,
|
|
344
353
|
});
|
|
354
|
+
}, []);
|
|
355
|
+
var handleDateChange = function (key, date) {
|
|
356
|
+
var _a, _b;
|
|
357
|
+
console.log('_???', key, date);
|
|
358
|
+
var selectedDate = (_a = new Date(date)) === null || _a === void 0 ? void 0 : _a.toISOString();
|
|
359
|
+
var expireDate = (_b = (0, date_fns_1.addDays)(selectedDate, 7)) === null || _b === void 0 ? void 0 : _b.toISOString();
|
|
360
|
+
if (key === 'expiryDate') {
|
|
361
|
+
dispatch({
|
|
362
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
363
|
+
payload: { key: 'expiryDate', value: selectedDate },
|
|
364
|
+
});
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
dispatch({
|
|
368
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
369
|
+
payload: {
|
|
370
|
+
key: key,
|
|
371
|
+
value: selectedDate,
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
dispatch({
|
|
375
|
+
type: actions_1.INVOICE_ACTION_TYPES.SET_INPUT_FIELD,
|
|
376
|
+
payload: { key: 'expiryDate', value: expireDate },
|
|
377
|
+
});
|
|
345
378
|
};
|
|
346
379
|
var handleItemChangeServices = (0, react_1.useCallback)(function (_a) {
|
|
347
380
|
var _b;
|
|
@@ -484,17 +517,24 @@ var useInvoiceState = function () {
|
|
|
484
517
|
type: actions_1.INVOICE_ACTION_TYPES.CLEAR_ERRORS,
|
|
485
518
|
});
|
|
486
519
|
};
|
|
487
|
-
var
|
|
520
|
+
var dynamicCompanyFormElements = (0, react_1.useMemo)(function () {
|
|
488
521
|
var _a, _b, _c, _d, _e;
|
|
489
522
|
var elements = __assign({}, constants_1.staticCompanySection);
|
|
490
523
|
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; });
|
|
491
524
|
if (textInputElements) {
|
|
492
|
-
textInputElements === null ||
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
525
|
+
textInputElements[0].value = state.date ? (0, date_fns_1.format)(state === null || state === void 0 ? void 0 : state.date, 'yyyy-MM-dd') : '';
|
|
526
|
+
textInputElements[0].handleOnChange = handleDateChange;
|
|
527
|
+
textInputElements[0].error = state.errors.date;
|
|
528
|
+
textInputElements[1].value = state.expiryDate ? (0, date_fns_1.format)(new Date(state.expiryDate), 'yyyy-MM-dd') : '';
|
|
529
|
+
textInputElements[1].handleOnChange = handleDateChange;
|
|
530
|
+
textInputElements[1].error = state.errors.expiryDate;
|
|
531
|
+
textInputElements[2].value = state.note;
|
|
532
|
+
textInputElements[2].handleOnChange = handleChange;
|
|
533
|
+
textInputElements[2].error = state.errors.note;
|
|
534
|
+
textInputElements[3].value = state.ref;
|
|
535
|
+
textInputElements[3].handleOnChange = handleChange;
|
|
536
|
+
textInputElements[3].error = state.errors.ref;
|
|
537
|
+
return elements;
|
|
498
538
|
}
|
|
499
539
|
var textAreaElements = (_b = elements[form_schema_1.VISTA_FORM_ELEMENTS.TEXT_AREA_V1]) === null || _b === void 0 ? void 0 : _b.sort(function (a, b) { return a.order - b.order; });
|
|
500
540
|
if (textAreaElements) {
|
|
@@ -536,7 +576,7 @@ var useInvoiceState = function () {
|
|
|
536
576
|
// });
|
|
537
577
|
}
|
|
538
578
|
return elements;
|
|
539
|
-
}, [state]);
|
|
579
|
+
}, [state, handleChange]);
|
|
540
580
|
var dynamicPricingFormElements = (0, react_1.useMemo)(function () {
|
|
541
581
|
var elements = __assign({}, constants_1.staticPricingSection);
|
|
542
582
|
return elements;
|
|
@@ -575,6 +615,8 @@ var useInvoiceState = function () {
|
|
|
575
615
|
value: v,
|
|
576
616
|
}); };
|
|
577
617
|
// textInputElements[i].error = state.errors[id];
|
|
618
|
+
textInputElements[4].value = state.services[0].rowTotal;
|
|
619
|
+
// textInputElements[i].error = state.errors[id];
|
|
578
620
|
});
|
|
579
621
|
}
|
|
580
622
|
return elements;
|
|
@@ -592,6 +634,7 @@ var useInvoiceState = function () {
|
|
|
592
634
|
value: Number(v),
|
|
593
635
|
}); };
|
|
594
636
|
// textInputElements[i].error = state.errors[id];
|
|
637
|
+
textInputElements[2].value = product.rowTotal;
|
|
595
638
|
});
|
|
596
639
|
}
|
|
597
640
|
var comboboxElements = (_c = elements[form_schema_1.VISTA_FORM_ELEMENTS.COMBOBOX_V1]) === null || _c === void 0 ? void 0 : _c.sort(function (a, b) { return a.order - b.order; });
|
|
@@ -638,11 +681,11 @@ var useInvoiceState = function () {
|
|
|
638
681
|
order: 2,
|
|
639
682
|
},
|
|
640
683
|
];
|
|
641
|
-
return __assign(__assign({}, state), { byIdError: byIdError, byIdLoading: byIdLoading, clearSearch: clearSearch, closeDrawer: closeDrawer, deleteError: deleteError, deleteLoading: deleteLoading, dispatch: dispatch,
|
|
684
|
+
return __assign(__assign({}, state), { byIdError: byIdError, byIdLoading: byIdLoading, clearSearch: clearSearch, closeDrawer: closeDrawer, deleteError: deleteError, deleteLoading: deleteLoading, dispatch: dispatch, dynamicCompanyFormElements: dynamicCompanyFormElements, dynamicPricingFormElements: dynamicPricingFormElements, dynamicProductFormElements: dynamicProductFormElements, dynamicServiceFormElements: dynamicServiceFormElements, handleChange: handleChange, handleNextClick: handleNextClick, handlePageLimit: handlePageLimit, handlePreviousClick: handlePreviousClick, handleSubmit: handleSubmit,
|
|
642
685
|
// handleUploadImage,
|
|
643
686
|
headerActions: headerActions, listError: listError, listFetchNow: listFetchNow, listLoading: listLoading, rowActions: rowActions, searchOnChange: searchOnChange, updateError: updateError, updateLoading: updateLoading });
|
|
644
687
|
};
|
|
645
|
-
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; },
|
|
688
|
+
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: {}, dynamicProductFormElements: {}, dynamicServiceFormElements: {}, handleChange: function () { return void 0; }, handleNextClick: function () { return void 0; }, handlePageLimit: function () { return void 0; }, handlePreviousClick: function () { return void 0; }, handleSubmit: function () { return void 0; },
|
|
646
689
|
// handleUploadImage: () => void 0,
|
|
647
690
|
headerActions: [], listError: undefined, listFetchNow: function () { return void 0; }, listLoading: false, rowActions: [], searchOnChange: function () { return void 0; }, updateError: undefined, updateLoading: false }));
|
|
648
691
|
var InvoiceStateContextProvider = function (_a) {
|
|
@@ -18,6 +18,7 @@ var products_form_section_1 = require("./products-form-section");
|
|
|
18
18
|
var pricing_form_section_1 = require("./pricing-form-section");
|
|
19
19
|
var add_service_product_section_1 = require("./add-service-product-section");
|
|
20
20
|
var services_form_section_1 = require("./services-form-section");
|
|
21
|
+
var company_form_section_1 = require("./company-form-section");
|
|
21
22
|
var InvoiceForm = function () {
|
|
22
23
|
// const updated = useMemo(() => {
|
|
23
24
|
// const elements: VistaFormElements = { ...dynamicFormElements };
|
|
@@ -59,6 +60,7 @@ var InvoiceForm = function () {
|
|
|
59
60
|
// return elements;
|
|
60
61
|
// }, [dynamicFormElements, translationMap]);
|
|
61
62
|
return (react_1.default.createElement("div", { className: "flex flex-col gap-8" },
|
|
63
|
+
react_1.default.createElement(company_form_section_1.CompanySection, null),
|
|
62
64
|
react_1.default.createElement(services_form_section_1.ServicesSection, null),
|
|
63
65
|
react_1.default.createElement(products_form_section_1.ProductsSection, null),
|
|
64
66
|
react_1.default.createElement(add_service_product_section_1.AddServiceProductSection, null),
|
|
@@ -12,7 +12,7 @@ export interface InvoiceContextType {
|
|
|
12
12
|
deleteError?: Error;
|
|
13
13
|
deleteLoading: boolean;
|
|
14
14
|
dispatch: Dispatch<InvoiceActions>;
|
|
15
|
-
|
|
15
|
+
dynamicCompanyFormElements: VistaFormElements;
|
|
16
16
|
dynamicPricingFormElements: VistaFormElements;
|
|
17
17
|
dynamicProductFormElements: VistaFormElements;
|
|
18
18
|
dynamicServiceFormElements: VistaFormElements;
|