@zosmaai/medusa-documents-v2 0.2.13
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/.medusa/server/src/admin/index.js +1884 -0
- package/.medusa/server/src/admin/index.mjs +1881 -0
- package/.medusa/server/src/api/admin/documents/document-invoice-settings/invoice-template/route.js +40 -0
- package/.medusa/server/src/api/admin/documents/document-invoice-settings/route.js +62 -0
- package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/route.js +62 -0
- package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/template/route.js +40 -0
- package/.medusa/server/src/api/admin/documents/document-settings/document-address/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/document-settings/india-gst/route.js +67 -0
- package/.medusa/server/src/api/admin/documents/document-settings/logo/route.js +67 -0
- package/.medusa/server/src/api/admin/documents/document-settings/route.js +36 -0
- package/.medusa/server/src/api/admin/documents/invoice/display-number/route.js +34 -0
- package/.medusa/server/src/api/admin/documents/invoice/generate/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/invoice/route.js +112 -0
- package/.medusa/server/src/api/admin/documents/packing-slip/preview/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/packing-slip/route.js +112 -0
- package/.medusa/server/src/links/invoice-order.js +13 -0
- package/.medusa/server/src/links/packing-slip-order.js +13 -0
- package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Bold.ttf +0 -0
- package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/de-AT/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/en/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/es/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/fr/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/pl/translation.json +26 -0
- package/.medusa/server/src/modules/documents/index.js +26 -0
- package/.medusa/server/src/modules/documents/loaders/i18next.js +49 -0
- package/.medusa/server/src/modules/documents/migrations/Migration20250228142557.js +39 -0
- package/.medusa/server/src/modules/documents/migrations/Migration20260810120000.js +14 -0
- package/.medusa/server/src/modules/documents/models/document-invoice-settings.js +29 -0
- package/.medusa/server/src/modules/documents/models/document-invoice.js +32 -0
- package/.medusa/server/src/modules/documents/models/document-packing-slip-settings.js +29 -0
- package/.medusa/server/src/modules/documents/models/document-packing-slip.js +32 -0
- package/.medusa/server/src/modules/documents/models/document-settings.js +33 -0
- package/.medusa/server/src/modules/documents/service.js +502 -0
- package/.medusa/server/src/modules/documents/services/generators/invoice-generator.js +78 -0
- package/.medusa/server/src/modules/documents/services/generators/packing-slip-generator.js +73 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic-logo.js +55 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic.js +52 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/customer-info.js +69 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-for-logo.js +32 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-logo.js +29 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/hr.js +23 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/invoice-info.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/table.js +97 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/india-gst.js +72 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/footer.js +41 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/invoice-meta.js +22 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/seller-info.js +42 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/table.js +88 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/basic.js +52 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +69 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +65 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +37 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header.js +37 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/hr.js +32 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info.js +36 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/small.js +53 -0
- package/.medusa/server/src/modules/documents/types/api.js +14 -0
- package/.medusa/server/src/modules/documents/types/constants.js +17 -0
- package/.medusa/server/src/modules/documents/types/dto.js +14 -0
- package/.medusa/server/src/modules/documents/types/template-kind.js +26 -0
- package/.medusa/server/src/modules/documents/utils/currency.js +18 -0
- package/.medusa/server/src/ui-components/actions-dropdown/actions-dropdown.js +15 -0
- package/.medusa/server/src/ui-components/actions-dropdown/invoice/button-generate-invoice.js +75 -0
- package/.medusa/server/src/ui-components/actions-dropdown/packing-slip/button-generate-packing-slip.js +72 -0
- package/.medusa/server/src/ui-components/index.js +21 -0
- package/.medusa/server/src/ui-components/orders/order-table/invoice-number-from-order.js +107 -0
- package/.medusa/server/src/ui-components/orders/order-table/packing-slip-number.js +107 -0
- package/.medusa/server/src/ui-components/orders/order-table/use-columns.js +172 -0
- package/.medusa/server/src/ui-components/orders/order-table/use-orders.js +145 -0
- package/.medusa/server/src/ui-components/orders/order-table/utils/currencies.js +1077 -0
- package/.medusa/server/src/ui-components/orders/order-table/utils/time.js +53 -0
- package/.medusa/server/src/ui-components/orders/order-table.js +134 -0
- package/.medusa/server/src/ui-components/settings/settings-address.js +90 -0
- package/.medusa/server/src/ui-components/settings/settings-india-gst.js +90 -0
- package/.medusa/server/src/ui-components/settings/settings-invoice-display-number.js +55 -0
- package/.medusa/server/src/ui-components/settings/settings-invoice.js +139 -0
- package/.medusa/server/src/ui-components/settings/settings-logo.js +108 -0
- package/.medusa/server/src/ui-components/tabs/orders-tab.js +28 -0
- package/.medusa/server/src/ui-components/tabs/pro-tab.js +23 -0
- package/.medusa/server/src/ui-components/tabs/settings-tab.js +29 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-invoice-tab.js +153 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-packing-slip-tab.js +155 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-tab.js +24 -0
- package/.medusa/server/src/ui-components/types/api.js +14 -0
- package/.medusa/server/src/ui-components/types/invoice.js +14 -0
- package/.medusa/server/src/ui-components/types/packing-slip.js +14 -0
- package/.medusa/server/src/ui-components/types/template-kind.js +26 -0
- package/.medusa/server/src/workflows/assign-invoice.js +31 -0
- package/.medusa/server/src/workflows/assign-packing-slip.js +31 -0
- package/README.md +171 -0
- package/package.json +103 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
|
|
4
|
+
*
|
|
5
|
+
* MIT License
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
+
* See the License for the specific language governing permissions and
|
|
11
|
+
* limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
18
|
+
const document_invoice_1 = __importDefault(require("./document-invoice"));
|
|
19
|
+
const document_packing_slip_1 = __importDefault(require("./document-packing-slip"));
|
|
20
|
+
const DocumentSettings = utils_1.model.define("document_settings", {
|
|
21
|
+
id: utils_1.model.id().primaryKey(),
|
|
22
|
+
storeAddress: utils_1.model.json().nullable(),
|
|
23
|
+
storeLogoSource: utils_1.model.text().nullable(),
|
|
24
|
+
storeIndiaGstDetails: utils_1.model.json().nullable(),
|
|
25
|
+
documentInvoice: utils_1.model.hasMany(() => document_invoice_1.default, {
|
|
26
|
+
mappedBy: 'settings'
|
|
27
|
+
}),
|
|
28
|
+
documentPackingSlip: utils_1.model.hasMany(() => document_packing_slip_1.default, {
|
|
29
|
+
mappedBy: 'settings'
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
exports.default = DocumentSettings;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbW9kZWxzL2RvY3VtZW50LXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7OztBQUVILHFEQUFpRDtBQUNqRCwwRUFBZ0Q7QUFDaEQsb0ZBQXlEO0FBRXpELE1BQU0sZ0JBQWdCLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRTtJQUN6RCxFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUMzQixZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNyQyxlQUFlLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QyxvQkFBb0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdDLGVBQWUsRUFBRSxhQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUFlLEVBQUU7UUFDcEQsUUFBUSxFQUFFLFVBQVU7S0FDckIsQ0FBQztJQUNGLG1CQUFtQixFQUFFLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQW1CLEVBQUU7UUFDNUQsUUFBUSxFQUFFLFVBQVU7S0FDckIsQ0FBQztDQUNILENBQUMsQ0FBQTtBQUVGLGtCQUFlLGdCQUFnQixDQUFBIn0=
|
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
|
|
4
|
+
*
|
|
5
|
+
* MIT License
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
+
* See the License for the specific language governing permissions and
|
|
11
|
+
* limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const utils_1 = require("@medusajs/utils");
|
|
18
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
19
|
+
const document_invoice_1 = __importDefault(require("./models/document-invoice"));
|
|
20
|
+
const document_packing_slip_1 = __importDefault(require("./models/document-packing-slip"));
|
|
21
|
+
const document_settings_1 = __importDefault(require("./models/document-settings"));
|
|
22
|
+
const document_invoice_settings_1 = __importDefault(require("./models/document-invoice-settings"));
|
|
23
|
+
const document_packing_slip_settings_1 = __importDefault(require("./models/document-packing-slip-settings"));
|
|
24
|
+
const template_kind_1 = require("./types/template-kind");
|
|
25
|
+
const constants_1 = require("./types/constants");
|
|
26
|
+
const invoice_generator_1 = require("./services/generators/invoice-generator");
|
|
27
|
+
const packing_slip_generator_1 = require("./services/generators/packing-slip-generator");
|
|
28
|
+
class DocumentsModuleService extends (0, utils_2.MedusaService)({
|
|
29
|
+
DocumentInvoice: document_invoice_1.default,
|
|
30
|
+
DocumentPackingSlip: document_packing_slip_1.default,
|
|
31
|
+
DocumentSettings: document_settings_1.default,
|
|
32
|
+
DocumentInvoiceSettings: document_invoice_settings_1.default,
|
|
33
|
+
DocumentPackingSlipSettings: document_packing_slip_settings_1.default
|
|
34
|
+
}) {
|
|
35
|
+
constructor({}, options) {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
this.options_ = options;
|
|
38
|
+
}
|
|
39
|
+
async resetForcedNumberByCreatingNewSettings() {
|
|
40
|
+
const lastDocumentInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
41
|
+
order: {
|
|
42
|
+
created_at: "DESC"
|
|
43
|
+
},
|
|
44
|
+
take: 1
|
|
45
|
+
});
|
|
46
|
+
if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.length) {
|
|
47
|
+
const result = await this.createDocumentInvoiceSettings({
|
|
48
|
+
forcedNumber: undefined,
|
|
49
|
+
numberFormat: lastDocumentInvoiceSettings[0].numberFormat,
|
|
50
|
+
template: lastDocumentInvoiceSettings[0].template
|
|
51
|
+
});
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const result = await this.createDocumentInvoiceSettings({
|
|
56
|
+
forcedNumber: undefined
|
|
57
|
+
});
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async getInvoiceForcedNumber() {
|
|
62
|
+
const lastDocumentInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
63
|
+
order: {
|
|
64
|
+
created_at: "DESC"
|
|
65
|
+
},
|
|
66
|
+
take: 1
|
|
67
|
+
});
|
|
68
|
+
if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.length && lastDocumentInvoiceSettings[0].forcedNumber) {
|
|
69
|
+
const nextNumber = lastDocumentInvoiceSettings[0].forcedNumber.toString();
|
|
70
|
+
return nextNumber;
|
|
71
|
+
}
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
async getNextInvoiceNumber(resetForcedNumber) {
|
|
75
|
+
const forcedNumber = await this.getInvoiceForcedNumber();
|
|
76
|
+
if (forcedNumber !== undefined) {
|
|
77
|
+
if (resetForcedNumber) {
|
|
78
|
+
await this.resetForcedNumberByCreatingNewSettings();
|
|
79
|
+
}
|
|
80
|
+
return forcedNumber;
|
|
81
|
+
}
|
|
82
|
+
const lastInvoice = await this.listDocumentInvoices({}, {
|
|
83
|
+
order: {
|
|
84
|
+
created_at: "DESC"
|
|
85
|
+
},
|
|
86
|
+
take: 1
|
|
87
|
+
});
|
|
88
|
+
if (lastInvoice && lastInvoice.length) {
|
|
89
|
+
return (lastInvoice[0].number + 1).toString();
|
|
90
|
+
}
|
|
91
|
+
return '1';
|
|
92
|
+
}
|
|
93
|
+
async getNextPackingSlipNumber() {
|
|
94
|
+
const lastPackingSlip = await this.listDocumentPackingSlips({}, {
|
|
95
|
+
order: {
|
|
96
|
+
created_at: "DESC"
|
|
97
|
+
},
|
|
98
|
+
take: 1
|
|
99
|
+
});
|
|
100
|
+
if (lastPackingSlip && lastPackingSlip.length) {
|
|
101
|
+
return (lastPackingSlip[0].number + 1).toString();
|
|
102
|
+
}
|
|
103
|
+
return '1';
|
|
104
|
+
}
|
|
105
|
+
async getInvoice(order, invoiceId, includeBuffer = false) {
|
|
106
|
+
if (includeBuffer) {
|
|
107
|
+
const invoice = await this.retrieveDocumentInvoice(invoiceId, {
|
|
108
|
+
relations: ['invoiceSettings', 'settings']
|
|
109
|
+
});
|
|
110
|
+
if (invoice) {
|
|
111
|
+
const calculatedTemplateKind = this.calculateTemplateKind(invoice.invoiceSettings);
|
|
112
|
+
const buffer = await (0, invoice_generator_1.generateInvoice)(calculatedTemplateKind, invoice.settings, invoice, order);
|
|
113
|
+
return {
|
|
114
|
+
invoice: invoice,
|
|
115
|
+
buffer: buffer
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const invoice = await this.retrieveDocumentInvoice(invoiceId);
|
|
121
|
+
return {
|
|
122
|
+
invoice: invoice,
|
|
123
|
+
buffer: undefined
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async getPackingSlip(order, packingSlipId, includeBuffer = false) {
|
|
128
|
+
if (includeBuffer) {
|
|
129
|
+
const packingSlip = await this.retrieveDocumentPackingSlip(packingSlipId, {
|
|
130
|
+
relations: ['packingSlipSettings', 'settings']
|
|
131
|
+
});
|
|
132
|
+
if (packingSlip) {
|
|
133
|
+
const calculatedTemplateKind = this.calculatePackingSlipTemplateKind(packingSlip.packingSlipSettings);
|
|
134
|
+
const buffer = await (0, packing_slip_generator_1.generatePackingSlip)(calculatedTemplateKind, packingSlip.settings, packingSlip, order);
|
|
135
|
+
return {
|
|
136
|
+
packingSlip: packingSlip,
|
|
137
|
+
buffer: buffer
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const packingSlip = await this.retrieveDocumentPackingSlip(packingSlipId);
|
|
143
|
+
return {
|
|
144
|
+
packingSlip: packingSlip,
|
|
145
|
+
buffer: undefined
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async generateTestPackingSlip(order, templateKind) {
|
|
150
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
151
|
+
order: {
|
|
152
|
+
created_at: "DESC"
|
|
153
|
+
},
|
|
154
|
+
take: 1
|
|
155
|
+
});
|
|
156
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
157
|
+
const nextNumber = await this.getNextPackingSlipNumber();
|
|
158
|
+
const [validationPassed, info] = (0, packing_slip_generator_1.validateInputForProvidedKind)(templateKind, lastDocumentSettings[0]);
|
|
159
|
+
if (validationPassed) {
|
|
160
|
+
const testPackingSlip = {
|
|
161
|
+
number: parseInt(nextNumber),
|
|
162
|
+
displayNumber: nextNumber,
|
|
163
|
+
created_at: new Date(Date.now())
|
|
164
|
+
};
|
|
165
|
+
const buffer = await (0, packing_slip_generator_1.generatePackingSlip)(templateKind, lastDocumentSettings[0], testPackingSlip, order);
|
|
166
|
+
return {
|
|
167
|
+
packingSlip: testPackingSlip,
|
|
168
|
+
buffer: buffer
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, info);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Document settings are not defined');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async generateTestInvoice(order, templateKind) {
|
|
180
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
181
|
+
order: {
|
|
182
|
+
created_at: "DESC"
|
|
183
|
+
},
|
|
184
|
+
take: 1
|
|
185
|
+
});
|
|
186
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
187
|
+
const lastInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
188
|
+
order: {
|
|
189
|
+
created_at: "DESC"
|
|
190
|
+
},
|
|
191
|
+
take: 1
|
|
192
|
+
});
|
|
193
|
+
if (lastInvoiceSettings && lastInvoiceSettings.length) {
|
|
194
|
+
const invoiceSettings = lastInvoiceSettings[0];
|
|
195
|
+
const nextNumber = await this.getNextInvoiceNumber();
|
|
196
|
+
const [validationPassed, info] = (0, invoice_generator_1.validateInputForProvidedKind)(templateKind, lastDocumentSettings[0]);
|
|
197
|
+
if (validationPassed) {
|
|
198
|
+
const testInvoice = {
|
|
199
|
+
number: parseInt(nextNumber),
|
|
200
|
+
displayNumber: invoiceSettings.numberFormat ? invoiceSettings.numberFormat.replace(constants_1.INVOICE_NUMBER_PLACEHOLDER, nextNumber) : nextNumber,
|
|
201
|
+
created_at: new Date(Date.now())
|
|
202
|
+
};
|
|
203
|
+
const buffer = await (0, invoice_generator_1.generateInvoice)(templateKind, lastDocumentSettings[0], testInvoice, order);
|
|
204
|
+
return {
|
|
205
|
+
invoice: testInvoice,
|
|
206
|
+
buffer: buffer
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, info);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Invoice settings are not defined');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Document settings are not defined');
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
calculateTemplateKind(documentInvoiceSettings) {
|
|
222
|
+
if (documentInvoiceSettings && documentInvoiceSettings.template) {
|
|
223
|
+
return documentInvoiceSettings.template;
|
|
224
|
+
}
|
|
225
|
+
return template_kind_1.InvoiceTemplateKind.BASIC;
|
|
226
|
+
}
|
|
227
|
+
async generateInvoiceForOrder(order) {
|
|
228
|
+
if (order) {
|
|
229
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
230
|
+
order: {
|
|
231
|
+
created_at: "DESC"
|
|
232
|
+
},
|
|
233
|
+
take: 1
|
|
234
|
+
});
|
|
235
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
236
|
+
const lastDocumentInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
237
|
+
order: {
|
|
238
|
+
created_at: "DESC"
|
|
239
|
+
},
|
|
240
|
+
take: 1
|
|
241
|
+
});
|
|
242
|
+
if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.length) {
|
|
243
|
+
const invoiceSettings = lastDocumentInvoiceSettings[0];
|
|
244
|
+
const calculatedTemplateKind = this.calculateTemplateKind(lastDocumentInvoiceSettings[0]);
|
|
245
|
+
const [validationPassed, info] = (0, invoice_generator_1.validateInputForProvidedKind)(calculatedTemplateKind, lastDocumentSettings[0]);
|
|
246
|
+
if (validationPassed) {
|
|
247
|
+
const RESET_FORCED_NUMBER = true;
|
|
248
|
+
const nextNumber = await this.getNextInvoiceNumber(RESET_FORCED_NUMBER);
|
|
249
|
+
const entryInvoice = {
|
|
250
|
+
number: parseInt(nextNumber),
|
|
251
|
+
displayNumber: invoiceSettings.numberFormat ? invoiceSettings.numberFormat.replace(constants_1.INVOICE_NUMBER_PLACEHOLDER, nextNumber) : nextNumber,
|
|
252
|
+
created_at: new Date(Date.now()),
|
|
253
|
+
invoice_settings_id: invoiceSettings.id,
|
|
254
|
+
settings_id: lastDocumentSettings[0].id
|
|
255
|
+
};
|
|
256
|
+
const invoiceResult = await this.createDocumentInvoices(entryInvoice);
|
|
257
|
+
const buffer = await (0, invoice_generator_1.generateInvoice)(calculatedTemplateKind, lastDocumentSettings[0], invoiceResult, order);
|
|
258
|
+
return {
|
|
259
|
+
invoice: invoiceResult,
|
|
260
|
+
buffer: buffer
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, info);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Invoice settings are not defined');
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Document settings are not defined');
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
calculatePackingSlipTemplateKind(documentPackingSlipSettings) {
|
|
278
|
+
if (documentPackingSlipSettings && documentPackingSlipSettings.template) {
|
|
279
|
+
return documentPackingSlipSettings.template;
|
|
280
|
+
}
|
|
281
|
+
return template_kind_1.PackingSlipTemplateKind.BASIC;
|
|
282
|
+
}
|
|
283
|
+
async generatePackingSlipForOrder(order) {
|
|
284
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
285
|
+
order: {
|
|
286
|
+
created_at: "DESC"
|
|
287
|
+
},
|
|
288
|
+
take: 1
|
|
289
|
+
});
|
|
290
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
291
|
+
const lastDocumentPackingSlipSettings = await this.listDocumentPackingSlipSettings({}, {
|
|
292
|
+
order: {
|
|
293
|
+
created_at: "DESC"
|
|
294
|
+
},
|
|
295
|
+
take: 1
|
|
296
|
+
});
|
|
297
|
+
if (lastDocumentPackingSlipSettings && lastDocumentPackingSlipSettings.length) {
|
|
298
|
+
const packingSlipSettings = lastDocumentPackingSlipSettings[0];
|
|
299
|
+
const calculatedTemplateKind = this.calculatePackingSlipTemplateKind(lastDocumentPackingSlipSettings[0]);
|
|
300
|
+
const [validationPassed, info] = (0, packing_slip_generator_1.validateInputForProvidedKind)(calculatedTemplateKind, lastDocumentSettings[0]);
|
|
301
|
+
if (validationPassed) {
|
|
302
|
+
const nextNumber = await this.getNextPackingSlipNumber();
|
|
303
|
+
const entryPackingSlip = {
|
|
304
|
+
number: parseInt(nextNumber),
|
|
305
|
+
displayNumber: packingSlipSettings.numberFormat ? packingSlipSettings.numberFormat.replace(constants_1.PACKING_SLIP_NUMBER_PLACEHOLDER, nextNumber) : nextNumber,
|
|
306
|
+
created_at: new Date(Date.now()),
|
|
307
|
+
packing_slip_settings_id: packingSlipSettings.id,
|
|
308
|
+
settings_id: lastDocumentSettings[0].id
|
|
309
|
+
};
|
|
310
|
+
const packingSlipResult = await this.createDocumentPackingSlips(entryPackingSlip);
|
|
311
|
+
const buffer = await (0, packing_slip_generator_1.generatePackingSlip)(calculatedTemplateKind, lastDocumentSettings[0], packingSlipResult, order);
|
|
312
|
+
return {
|
|
313
|
+
packingSlip: packingSlipResult,
|
|
314
|
+
buffer: buffer
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, info);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Retrieve packing slip settings failed. Please check if they are set - e.g. if you set template or other settings.');
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Document settings are not defined');
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
async updateInvoiceTemplate(invoiceTemplate) {
|
|
330
|
+
const lastDocumentInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
331
|
+
order: {
|
|
332
|
+
created_at: "DESC"
|
|
333
|
+
},
|
|
334
|
+
take: 1
|
|
335
|
+
});
|
|
336
|
+
if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.length) {
|
|
337
|
+
const newDocumentSettings = {
|
|
338
|
+
template: invoiceTemplate ?? lastDocumentInvoiceSettings[0].template,
|
|
339
|
+
};
|
|
340
|
+
const result = await this.createDocumentInvoiceSettings(newDocumentSettings);
|
|
341
|
+
return result;
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
const result = await this.createDocumentInvoiceSettings({
|
|
345
|
+
template: invoiceTemplate
|
|
346
|
+
});
|
|
347
|
+
return result;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
async updatePackingSlipTemplate(packingSlipTemplate) {
|
|
351
|
+
const lastDocumentPackingSlipSettings = await this.listDocumentPackingSlipSettings({}, {
|
|
352
|
+
order: {
|
|
353
|
+
created_at: "DESC"
|
|
354
|
+
},
|
|
355
|
+
take: 1
|
|
356
|
+
});
|
|
357
|
+
if (lastDocumentPackingSlipSettings && lastDocumentPackingSlipSettings.length) {
|
|
358
|
+
const newDocumentSettings = {
|
|
359
|
+
template: packingSlipTemplate ?? lastDocumentPackingSlipSettings[0].template,
|
|
360
|
+
};
|
|
361
|
+
const result = await this.createDocumentPackingSlipSettings(newDocumentSettings);
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
const result = await this.createDocumentPackingSlipSettings({
|
|
366
|
+
template: packingSlipTemplate
|
|
367
|
+
});
|
|
368
|
+
return result;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
async updatePackingSlipSettings(newFormatNumber, forcedNumber, template) {
|
|
372
|
+
const lastDocumentPackingSlipSettings = await this.listDocumentPackingSlipSettings({}, {
|
|
373
|
+
order: {
|
|
374
|
+
created_at: "DESC"
|
|
375
|
+
},
|
|
376
|
+
take: 1
|
|
377
|
+
});
|
|
378
|
+
if (lastDocumentPackingSlipSettings && lastDocumentPackingSlipSettings.length) {
|
|
379
|
+
const result = await this.createDocumentPackingSlipSettings({
|
|
380
|
+
numberFormat: newFormatNumber ?? lastDocumentPackingSlipSettings[0].numberFormat,
|
|
381
|
+
forcedNumber: forcedNumber ? parseInt(forcedNumber) : lastDocumentPackingSlipSettings[0].forcedNumber,
|
|
382
|
+
template: template ?? lastDocumentPackingSlipSettings[0].template,
|
|
383
|
+
});
|
|
384
|
+
return result;
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
const result = await this.createDocumentPackingSlipSettings({
|
|
388
|
+
numberFormat: newFormatNumber,
|
|
389
|
+
forcedNumber: forcedNumber ? parseInt(forcedNumber) : undefined,
|
|
390
|
+
template: template
|
|
391
|
+
});
|
|
392
|
+
return result;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
async updateInvoiceSettings(newFormatNumber, forcedNumber, invoiceTemplate) {
|
|
396
|
+
const lastDocumentInvoiceSettings = await this.listDocumentInvoiceSettings({}, {
|
|
397
|
+
order: {
|
|
398
|
+
created_at: "DESC"
|
|
399
|
+
},
|
|
400
|
+
take: 1
|
|
401
|
+
});
|
|
402
|
+
if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.length) {
|
|
403
|
+
const result = await this.createDocumentInvoiceSettings({
|
|
404
|
+
numberFormat: newFormatNumber ?? lastDocumentInvoiceSettings[0].numberFormat,
|
|
405
|
+
forcedNumber: forcedNumber ? parseInt(forcedNumber) : lastDocumentInvoiceSettings[0].forcedNumber,
|
|
406
|
+
template: invoiceTemplate ?? lastDocumentInvoiceSettings[0].template,
|
|
407
|
+
});
|
|
408
|
+
return result;
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
const result = await this.createDocumentInvoiceSettings({
|
|
412
|
+
numberFormat: newFormatNumber,
|
|
413
|
+
forcedNumber: forcedNumber ? parseInt(forcedNumber) : undefined,
|
|
414
|
+
template: invoiceTemplate
|
|
415
|
+
});
|
|
416
|
+
return result;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
async updateStoreLogo(logoSource) {
|
|
420
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
421
|
+
order: {
|
|
422
|
+
created_at: "DESC"
|
|
423
|
+
},
|
|
424
|
+
take: 1
|
|
425
|
+
});
|
|
426
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
427
|
+
const result = await this.createDocumentSettings({
|
|
428
|
+
storeLogoSource: logoSource,
|
|
429
|
+
storeAddress: lastDocumentSettings[0].storeAddress,
|
|
430
|
+
storeIndiaGstDetails: lastDocumentSettings[0].storeIndiaGstDetails
|
|
431
|
+
});
|
|
432
|
+
return result;
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
const result = await this.createDocumentSettings({
|
|
436
|
+
storeLogoSource: logoSource
|
|
437
|
+
});
|
|
438
|
+
return result;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
async updateStoreDocumentAddress(address) {
|
|
442
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
443
|
+
order: {
|
|
444
|
+
created_at: "DESC"
|
|
445
|
+
},
|
|
446
|
+
take: 1,
|
|
447
|
+
relations: ["documentInvoice", "documentPackingSlip"]
|
|
448
|
+
});
|
|
449
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
450
|
+
const result = await this.createDocumentSettings({
|
|
451
|
+
id: undefined,
|
|
452
|
+
// created_at: undefined,
|
|
453
|
+
// updated_at: undefined,
|
|
454
|
+
// deleted_at: undefined,
|
|
455
|
+
storeAddress: address,
|
|
456
|
+
storeLogoSource: lastDocumentSettings[0].storeLogoSource,
|
|
457
|
+
storeIndiaGstDetails: lastDocumentSettings[0].storeIndiaGstDetails,
|
|
458
|
+
// documentInvoice: lastDocumentSettings[0].documentInvoice,
|
|
459
|
+
// documentInvoice: lastDocumentSettings[0].documentInvoice,
|
|
460
|
+
// documentPackingSlip: lastDocumentSettings[0].documentPackingSlip
|
|
461
|
+
});
|
|
462
|
+
return result;
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
const result = await this.createDocumentSettings({
|
|
466
|
+
storeAddress: address,
|
|
467
|
+
});
|
|
468
|
+
return result;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
async updateStoreIndiaGstDetails(details) {
|
|
472
|
+
const lastDocumentSettings = await this.listDocumentSettings({}, {
|
|
473
|
+
order: {
|
|
474
|
+
created_at: "DESC"
|
|
475
|
+
},
|
|
476
|
+
take: 1
|
|
477
|
+
});
|
|
478
|
+
if (lastDocumentSettings && lastDocumentSettings.length) {
|
|
479
|
+
const result = await this.createDocumentSettings({
|
|
480
|
+
storeIndiaGstDetails: details,
|
|
481
|
+
storeAddress: lastDocumentSettings[0].storeAddress,
|
|
482
|
+
storeLogoSource: lastDocumentSettings[0].storeLogoSource
|
|
483
|
+
});
|
|
484
|
+
return result;
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
const result = await this.createDocumentSettings({
|
|
488
|
+
storeIndiaGstDetails: details
|
|
489
|
+
});
|
|
490
|
+
return result;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
async getTestDisplayNumber(formatNumber, forcedNumber) {
|
|
494
|
+
const nextNumber = forcedNumber !== undefined ? forcedNumber : await this.getNextInvoiceNumber();
|
|
495
|
+
if (nextNumber) {
|
|
496
|
+
return formatNumber ? formatNumber.replace(constants_1.INVOICE_NUMBER_PLACEHOLDER, nextNumber) : nextNumber;
|
|
497
|
+
}
|
|
498
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Neither forced number is set or any order present');
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
exports.default = DocumentsModuleService;
|
|
502
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7OztBQUVILDJDQUErRDtBQUMvRCxxREFBeUQ7QUFHekQsaUZBQXdEO0FBQ3hELDJGQUFpRTtBQUNqRSxtRkFBMEQ7QUFDMUQsbUdBQXlFO0FBQ3pFLDZHQUFrRjtBQUdsRix5REFBcUY7QUFDckYsaURBQWdHO0FBQ2hHLCtFQUF3RztBQUN4Ryx5RkFBNEo7QUFXNUosTUFBTSxzQkFBdUIsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDakQsZUFBZSxFQUFmLDBCQUFlO0lBQ2YsbUJBQW1CLEVBQW5CLCtCQUFtQjtJQUNuQixnQkFBZ0IsRUFBaEIsMkJBQWdCO0lBQ2hCLHVCQUF1QixFQUF2QixtQ0FBdUI7SUFDdkIsMkJBQTJCLEVBQTNCLHdDQUEyQjtDQUM1QixDQUFDO0lBTUEsWUFBWSxFQUNXLEVBQUUsT0FBdUI7UUFDOUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxzQ0FBc0M7UUFDbEQsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLEVBQUU7WUFDN0UsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxNQUFNO2FBQ25CO1lBQ0QsSUFBSSxFQUFFLENBQUM7U0FDUixDQUFDLENBQUE7UUFDRixJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUFDO2dCQUN0RCxZQUFZLEVBQUUsU0FBUztnQkFDdkIsWUFBWSxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FB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
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
|
|
4
|
+
*
|
|
5
|
+
* MIT License
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
+
* See the License for the specific language governing permissions and
|
|
11
|
+
* limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.validateInputForProvidedKind = validateInputForProvidedKind;
|
|
48
|
+
exports.generateInvoice = generateInvoice;
|
|
49
|
+
const template_kind_1 = require("../../types/template-kind");
|
|
50
|
+
const basic_1 = __importStar(require("../templates/invoices/basic/basic"));
|
|
51
|
+
const basic_logo_1 = __importStar(require("../templates/invoices/basic/basic-logo"));
|
|
52
|
+
const india_gst_1 = __importStar(require("../templates/invoices/india-gst/india-gst"));
|
|
53
|
+
function validateInputForProvidedKind(templateKind, documentSettings) {
|
|
54
|
+
switch (templateKind) {
|
|
55
|
+
case template_kind_1.InvoiceTemplateKind.BASIC:
|
|
56
|
+
return (0, basic_1.validateInput)(documentSettings);
|
|
57
|
+
case template_kind_1.InvoiceTemplateKind.BASIC_LOGO:
|
|
58
|
+
return (0, basic_logo_1.validateInput)(documentSettings);
|
|
59
|
+
case template_kind_1.InvoiceTemplateKind.INDIA_GST:
|
|
60
|
+
return (0, india_gst_1.validateInput)(documentSettings);
|
|
61
|
+
default:
|
|
62
|
+
return [false, 'Not supported template'];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function generateInvoice(kind, documentSettings, invoice, order) {
|
|
66
|
+
switch (kind) {
|
|
67
|
+
case template_kind_1.InvoiceTemplateKind.BASIC:
|
|
68
|
+
return (0, basic_1.default)(documentSettings, invoice, order);
|
|
69
|
+
case template_kind_1.InvoiceTemplateKind.BASIC_LOGO:
|
|
70
|
+
return (0, basic_logo_1.default)(documentSettings, invoice, order);
|
|
71
|
+
case template_kind_1.InvoiceTemplateKind.INDIA_GST:
|
|
72
|
+
return (0, india_gst_1.default)(documentSettings, invoice, order);
|
|
73
|
+
default:
|
|
74
|
+
return Promise.resolve(Buffer.from('Not supported template'));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvc2VydmljZXMvZ2VuZXJhdG9ycy9pbnZvaWNlLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTSCxvRUFXQztBQUVELDBDQVdDO0FBN0JELDZEQUFnRTtBQUNoRSwyRUFBcUc7QUFDckcscUZBQWtIO0FBQ2xILHVGQUFtSDtBQUVuSCxTQUFnQiw0QkFBNEIsQ0FBQyxZQUFpQyxFQUFFLGdCQUFxQjtJQUNuRyxRQUFRLFlBQVksRUFBRSxDQUFDO1FBQ3JCLEtBQUssbUNBQW1CLENBQUMsS0FBSztZQUM1QixPQUFPLElBQUEscUJBQWtCLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxLQUFLLG1DQUFtQixDQUFDLFVBQVU7WUFDakMsT0FBTyxJQUFBLDBCQUFzQixFQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsS0FBSyxtQ0FBbUIsQ0FBQyxTQUFTO1lBQ2hDLE9BQU8sSUFBQSx5QkFBcUIsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pEO1lBQ0UsT0FBTyxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQXlCLEVBQUUsZ0JBQXFDLEVBQUUsT0FBMkIsRUFBRSxLQUFlO0lBQzVJLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLG1DQUFtQixDQUFDLEtBQUs7WUFDNUIsT0FBTyxJQUFBLGVBQWEsRUFBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsS0FBSyxtQ0FBbUIsQ0FBQyxVQUFVO1lBQ2pDLE9BQU8sSUFBQSxvQkFBaUIsRUFBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsS0FBSyxtQ0FBbUIsQ0FBQyxTQUFTO1lBQ2hDLE9BQU8sSUFBQSxtQkFBZ0IsRUFBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQ7WUFDRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFBQSxDQUFDIn0=
|