medusa-invoice 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/.yarnrc.yml +1 -0
- package/LICENSE +21 -0
- package/README.md +177 -0
- package/dist/admin/_virtual_entry.js +15246 -0
- package/dist/api/admin/document-invoice-settings/forced-number/route.d.ts +2 -0
- package/dist/api/admin/document-invoice-settings/forced-number/route.js +39 -0
- package/dist/api/admin/document-invoice-settings/format-number/route.d.ts +2 -0
- package/dist/api/admin/document-invoice-settings/format-number/route.js +39 -0
- package/dist/api/admin/document-invoice-settings/invoice-template/route.d.ts +2 -0
- package/dist/api/admin/document-invoice-settings/invoice-template/route.js +39 -0
- package/dist/api/admin/document-invoice-settings/route.d.ts +3 -0
- package/dist/api/admin/document-invoice-settings/route.js +56 -0
- package/dist/api/admin/document-packing-slip-settings/route.d.ts +3 -0
- package/dist/api/admin/document-packing-slip-settings/route.js +56 -0
- package/dist/api/admin/document-packing-slip-settings/template/route.d.ts +2 -0
- package/dist/api/admin/document-packing-slip-settings/template/route.js +39 -0
- package/dist/api/admin/document-settings/document-address/route.d.ts +2 -0
- package/dist/api/admin/document-settings/document-address/route.js +46 -0
- package/dist/api/admin/document-settings/logo/route.d.ts +3 -0
- package/dist/api/admin/document-settings/logo/route.js +61 -0
- package/dist/api/admin/document-settings/route.d.ts +2 -0
- package/dist/api/admin/document-settings/route.js +30 -0
- package/dist/api/admin/invoice/display-number/route.d.ts +2 -0
- package/dist/api/admin/invoice/display-number/route.js +32 -0
- package/dist/api/admin/invoice/generate/route.d.ts +2 -0
- package/dist/api/admin/invoice/generate/route.js +29 -0
- package/dist/api/admin/invoice/route.d.ts +3 -0
- package/dist/api/admin/invoice/route.js +44 -0
- package/dist/api/admin/packing-slip/preview/route.d.ts +2 -0
- package/dist/api/admin/packing-slip/preview/route.js +29 -0
- package/dist/api/admin/packing-slip/route.d.ts +3 -0
- package/dist/api/admin/packing-slip/route.js +44 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +29 -0
- package/dist/loaders/i18next.d.ts +3 -0
- package/dist/loaders/i18next.js +72 -0
- package/dist/migrations/1711700828113-DocumentSettings.d.ts +6 -0
- package/dist/migrations/1711700828113-DocumentSettings.js +47 -0
- package/dist/migrations/1711701185935-Invoice.d.ts +5 -0
- package/dist/migrations/1711701185935-Invoice.js +50 -0
- package/dist/migrations/1712753213091-DocumentInvoiceSettings.d.ts +5 -0
- package/dist/migrations/1712753213091-DocumentInvoiceSettings.js +46 -0
- package/dist/migrations/1712754851678-Invoice.d.ts +5 -0
- package/dist/migrations/1712754851678-Invoice.js +23 -0
- package/dist/migrations/1714903066794-DocumentPackingSlipSettings.d.ts +5 -0
- package/dist/migrations/1714903066794-DocumentPackingSlipSettings.js +25 -0
- package/dist/migrations/1714903539447-PackingSlip.d.ts +5 -0
- package/dist/migrations/1714903539447-PackingSlip.js +45 -0
- package/dist/models/document-invoice-settings.d.ts +11 -0
- package/dist/models/document-invoice-settings.js +61 -0
- package/dist/models/document-packing-slip-settings.d.ts +11 -0
- package/dist/models/document-packing-slip-settings.js +61 -0
- package/dist/models/document-settings.d.ts +12 -0
- package/dist/models/document-settings.js +66 -0
- package/dist/models/invoice.d.ts +15 -0
- package/dist/models/invoice.js +74 -0
- package/dist/models/packing-slip.d.ts +15 -0
- package/dist/models/packing-slip.js +74 -0
- package/dist/services/document-invoice-settings.d.ts +14 -0
- package/dist/services/document-invoice-settings.js +110 -0
- package/dist/services/document-packing-slip-settings.d.ts +14 -0
- package/dist/services/document-packing-slip-settings.js +110 -0
- package/dist/services/generators/invoice-generator.d.ts +8 -0
- package/dist/services/generators/invoice-generator.js +64 -0
- package/dist/services/generators/packing-slip-generator.d.ts +8 -0
- package/dist/services/generators/packing-slip-generator.js +64 -0
- package/dist/services/invoice.d.ts +22 -0
- package/dist/services/invoice.js +277 -0
- package/dist/services/packing-slip.d.ts +16 -0
- package/dist/services/packing-slip.js +187 -0
- package/dist/services/templates/invoices/basic/basic-logo.d.ts +8 -0
- package/dist/services/templates/invoices/basic/basic-logo.js +56 -0
- package/dist/services/templates/invoices/basic/basic.d.ts +8 -0
- package/dist/services/templates/invoices/basic/basic.js +53 -0
- package/dist/services/templates/invoices/basic/parts/customer-info.d.ts +2 -0
- package/dist/services/templates/invoices/basic/parts/customer-info.js +70 -0
- package/dist/services/templates/invoices/basic/parts/header-for-logo.d.ts +2 -0
- package/dist/services/templates/invoices/basic/parts/header-for-logo.js +33 -0
- package/dist/services/templates/invoices/basic/parts/header-logo.d.ts +1 -0
- package/dist/services/templates/invoices/basic/parts/header-logo.js +30 -0
- package/dist/services/templates/invoices/basic/parts/header.d.ts +2 -0
- package/dist/services/templates/invoices/basic/parts/header.js +36 -0
- package/dist/services/templates/invoices/basic/parts/hr.d.ts +1 -0
- package/dist/services/templates/invoices/basic/parts/hr.js +24 -0
- package/dist/services/templates/invoices/basic/parts/invoice-info.d.ts +2 -0
- package/dist/services/templates/invoices/basic/parts/invoice-info.js +36 -0
- package/dist/services/templates/invoices/basic/parts/table.d.ts +2 -0
- package/dist/services/templates/invoices/basic/parts/table.js +54 -0
- package/dist/services/templates/packing-slips/basic/basic.d.ts +8 -0
- package/dist/services/templates/packing-slips/basic/basic.js +53 -0
- package/dist/services/templates/packing-slips/basic/parts/customer-info-small.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/customer-info-small.js +70 -0
- package/dist/services/templates/packing-slips/basic/parts/customer-info.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/customer-info.js +66 -0
- package/dist/services/templates/packing-slips/basic/parts/header-small.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/header-small.js +38 -0
- package/dist/services/templates/packing-slips/basic/parts/header.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/header.js +38 -0
- package/dist/services/templates/packing-slips/basic/parts/hr.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/hr.js +33 -0
- package/dist/services/templates/packing-slips/basic/parts/table-items-small.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/table-items-small.js +45 -0
- package/dist/services/templates/packing-slips/basic/parts/table-items.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/table-items.js +45 -0
- package/dist/services/templates/packing-slips/basic/parts/table-order-info-small.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/table-order-info-small.js +36 -0
- package/dist/services/templates/packing-slips/basic/parts/table-order-info.d.ts +2 -0
- package/dist/services/templates/packing-slips/basic/parts/table-order-info.js +37 -0
- package/dist/services/templates/packing-slips/basic/small.d.ts +8 -0
- package/dist/services/templates/packing-slips/basic/small.js +54 -0
- package/dist/services/types/api.d.ts +14 -0
- package/dist/services/types/api.js +14 -0
- package/dist/services/types/constants.d.ts +2 -0
- package/dist/services/types/constants.js +17 -0
- package/dist/services/types/template-kind.d.ts +8 -0
- package/dist/services/types/template-kind.js +25 -0
- package/dist/services/utils/currency.d.ts +1 -0
- package/dist/services/utils/currency.js +19 -0
- package/dist/ui-components/actions-dropdown/actions-dropdown.d.ts +4 -0
- package/dist/ui-components/actions-dropdown/actions-dropdown.js +18 -0
- package/dist/ui-components/actions-dropdown/invoice/button-generate-invoice.d.ts +5 -0
- package/dist/ui-components/actions-dropdown/invoice/button-generate-invoice.js +56 -0
- package/dist/ui-components/actions-dropdown/invoice/button-view-invoice.d.ts +5 -0
- package/dist/ui-components/actions-dropdown/invoice/button-view-invoice.js +64 -0
- package/dist/ui-components/actions-dropdown/packing-slip/button-generate-packing-slip.d.ts +5 -0
- package/dist/ui-components/actions-dropdown/packing-slip/button-generate-packing-slip.js +56 -0
- package/dist/ui-components/actions-dropdown/packing-slip/button-view-packing-slip.d.ts +5 -0
- package/dist/ui-components/actions-dropdown/packing-slip/button-view-packing-slip.js +64 -0
- package/dist/ui-components/index.d.ts +3 -0
- package/dist/ui-components/index.js +21 -0
- package/dist/ui-components/orders/order-table/invoice-number-from-order.d.ts +4 -0
- package/dist/ui-components/orders/order-table/invoice-number-from-order.js +30 -0
- package/dist/ui-components/orders/order-table/packing-slip-number.d.ts +4 -0
- package/dist/ui-components/orders/order-table/packing-slip-number.js +30 -0
- package/dist/ui-components/orders/order-table/use-columns.d.ts +45 -0
- package/dist/ui-components/orders/order-table/use-columns.js +186 -0
- package/dist/ui-components/orders/order-table/use-orders.d.ts +9 -0
- package/dist/ui-components/orders/order-table/use-orders.js +146 -0
- package/dist/ui-components/orders/order-table/utils/currencies.d.ts +14 -0
- package/dist/ui-components/orders/order-table/utils/currencies.js +1077 -0
- package/dist/ui-components/orders/order-table/utils/time.d.ts +10 -0
- package/dist/ui-components/orders/order-table/utils/time.js +54 -0
- package/dist/ui-components/orders/order-table.d.ts +8 -0
- package/dist/ui-components/orders/order-table.js +92 -0
- package/dist/ui-components/settings/settings-address.d.ts +2 -0
- package/dist/ui-components/settings/settings-address.js +66 -0
- package/dist/ui-components/settings/settings-invoice-display-number.d.ts +5 -0
- package/dist/ui-components/settings/settings-invoice-display-number.js +29 -0
- package/dist/ui-components/settings/settings-invoice.d.ts +2 -0
- package/dist/ui-components/settings/settings-invoice.js +116 -0
- package/dist/ui-components/settings/settings-logo.d.ts +2 -0
- package/dist/ui-components/settings/settings-logo.js +86 -0
- package/dist/ui-components/tabs/orders-tab.d.ts +1 -0
- package/dist/ui-components/tabs/orders-tab.js +28 -0
- package/dist/ui-components/tabs/pro-tab.d.ts +1 -0
- package/dist/ui-components/tabs/pro-tab.js +23 -0
- package/dist/ui-components/tabs/settings-tab.d.ts +1 -0
- package/dist/ui-components/tabs/settings-tab.js +28 -0
- package/dist/ui-components/tabs/templates-tab/templates-invoice-tab.d.ts +1 -0
- package/dist/ui-components/tabs/templates-tab/templates-invoice-tab.js +92 -0
- package/dist/ui-components/tabs/templates-tab/templates-packing-slip-tab.d.ts +1 -0
- package/dist/ui-components/tabs/templates-tab/templates-packing-slip-tab.js +92 -0
- package/dist/ui-components/tabs/templates-tab/templates-tab.d.ts +1 -0
- package/dist/ui-components/tabs/templates-tab/templates-tab.js +24 -0
- package/dist/ui-components/types/api.d.ts +54 -0
- package/dist/ui-components/types/api.js +14 -0
- package/dist/ui-components/types/invoice.d.ts +8 -0
- package/dist/ui-components/types/invoice.js +14 -0
- package/dist/ui-components/types/packing-slip.d.ts +8 -0
- package/dist/ui-components/types/packing-slip.js +14 -0
- package/dist/ui-components/types/template-kind.d.ts +8 -0
- package/dist/ui-components/types/template-kind.js +25 -0
- package/index.js +50 -0
- package/package.json +94 -0
- package/tsconfig.admin.json +8 -0
- package/tsconfig.json +32 -0
- package/tsconfig.server.json +8 -0
- package/tsconfig.spec.json +5 -0
@@ -0,0 +1,56 @@
|
|
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
|
+
exports.validateInput = void 0;
|
18
|
+
const pdfkit_1 = __importDefault(require("pdfkit"));
|
19
|
+
const customer_info_1 = require("./parts/customer-info");
|
20
|
+
const table_1 = require("./parts/table");
|
21
|
+
const invoice_info_1 = require("./parts/invoice-info");
|
22
|
+
const header_for_logo_1 = require("./parts/header-for-logo");
|
23
|
+
const header_logo_1 = require("./parts/header-logo");
|
24
|
+
const path_1 = __importDefault(require("path"));
|
25
|
+
function validateInput(settings) {
|
26
|
+
if (settings && settings.store_address && settings.store_address.company &&
|
27
|
+
settings.store_address.address_1 &&
|
28
|
+
settings.store_address.city &&
|
29
|
+
settings.store_address.postal_code &&
|
30
|
+
settings.store_logo_source)
|
31
|
+
return [true, ''];
|
32
|
+
return [false, `Not all settings are defined to generate template. Following settings are checked: company, address, city, postal code, logo`];
|
33
|
+
}
|
34
|
+
exports.validateInput = validateInput;
|
35
|
+
exports.default = async (settings, invoice, order) => {
|
36
|
+
var doc = new pdfkit_1.default();
|
37
|
+
doc.registerFont('Regular', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Regular.ttf'));
|
38
|
+
doc.registerFont('Bold', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Bold.ttf'));
|
39
|
+
doc.font('Regular');
|
40
|
+
const buffers = [];
|
41
|
+
doc.on("data", buffers.push.bind(buffers));
|
42
|
+
const endHeader = (0, header_for_logo_1.generateHeaderForLogo)(doc, 50, settings);
|
43
|
+
await (0, header_logo_1.generateHeaderLogo)(doc, 50, settings.store_logo_source);
|
44
|
+
const endInvoice = (0, invoice_info_1.generateInvoiceInformation)(doc, endHeader, invoice);
|
45
|
+
const endDetails = (0, customer_info_1.generateCustomerInformation)(doc, endInvoice, order);
|
46
|
+
(0, table_1.generateInvoiceTable)(doc, endDetails, order, order.items);
|
47
|
+
doc.end();
|
48
|
+
const bufferPromise = new Promise(resolve => {
|
49
|
+
doc.on("end", () => {
|
50
|
+
const pdfData = Buffer.concat(buffers);
|
51
|
+
resolve(pdfData);
|
52
|
+
});
|
53
|
+
});
|
54
|
+
return await bufferPromise;
|
55
|
+
};
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtbG9nby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZW1wbGF0ZXMvaW52b2ljZXMvYmFzaWMvYmFzaWMtbG9nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7Ozs7O0FBS0gsb0RBQWlDO0FBQ2pDLHlEQUFvRTtBQUNwRSx5Q0FBcUQ7QUFDckQsdURBQWtFO0FBQ2xFLDZEQUFnRTtBQUNoRSxxREFBeUQ7QUFDekQsZ0RBQXdCO0FBRXhCLFNBQWdCLGFBQWEsQ0FBQyxRQUEyQjtJQUN2RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTztRQUN0RSxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVM7UUFDaEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1FBQzNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVztRQUNsQyxRQUFRLENBQUMsaUJBQWlCO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsT0FBTyxDQUFDLEtBQUssRUFBRSw4SEFBOEgsQ0FBQyxDQUFDO0FBQ2pKLENBQUM7QUFSRCxzQ0FRQztBQUVELGtCQUFlLEtBQUssRUFBRSxRQUEwQixFQUFFLE9BQWdCLEVBQUUsS0FBWSxFQUFtQixFQUFFO0lBQ25HLElBQUksR0FBRyxHQUFHLElBQUksZ0JBQVcsRUFBRSxDQUFDO0lBQzVCLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGtEQUFrRCxDQUFDLENBQUMsQ0FBQTtJQUN4RyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSwrQ0FBK0MsQ0FBQyxDQUFDLENBQUE7SUFDbEcsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVwQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDbEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUUxQyxNQUFNLFNBQVMsR0FBRyxJQUFBLHVDQUFxQixFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsTUFBTSxJQUFBLGdDQUFrQixFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUQsTUFBTSxVQUFVLEdBQUcsSUFBQSx5Q0FBMEIsRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUEsMkNBQTJCLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxJQUFBLDRCQUFvQixFQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUxRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFVixNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBUyxPQUFPLENBQUMsRUFBRTtRQUNsRCxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDZixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxNQUFNLGFBQWEsQ0FBQztBQUM3QixDQUFDLENBQUMifQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
/// <reference types="node" />
|
3
|
+
import { Order } from "@medusajs/medusa";
|
4
|
+
import { Invoice } from "../../../../models/invoice";
|
5
|
+
import { DocumentSettings } from "../../../../models/document-settings";
|
6
|
+
export declare function validateInput(settings?: DocumentSettings): ([boolean, string]);
|
7
|
+
declare const _default: (settings: DocumentSettings, invoice: Invoice, order: Order) => Promise<Buffer>;
|
8
|
+
export default _default;
|
@@ -0,0 +1,53 @@
|
|
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
|
+
exports.validateInput = void 0;
|
18
|
+
const pdfkit_1 = __importDefault(require("pdfkit"));
|
19
|
+
const header_1 = require("./parts/header");
|
20
|
+
const customer_info_1 = require("./parts/customer-info");
|
21
|
+
const table_1 = require("./parts/table");
|
22
|
+
const invoice_info_1 = require("./parts/invoice-info");
|
23
|
+
const path_1 = __importDefault(require("path"));
|
24
|
+
function validateInput(settings) {
|
25
|
+
if (settings && settings.store_address && settings.store_address.company &&
|
26
|
+
settings.store_address.address_1 &&
|
27
|
+
settings.store_address.city &&
|
28
|
+
settings.store_address.postal_code)
|
29
|
+
return [true, ''];
|
30
|
+
return [false, `Not all settings are defined to generate template. Following settings are checked: company, address, city, postal_code`];
|
31
|
+
}
|
32
|
+
exports.validateInput = validateInput;
|
33
|
+
exports.default = async (settings, invoice, order) => {
|
34
|
+
var doc = new pdfkit_1.default();
|
35
|
+
doc.registerFont('Regular', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Regular.ttf'));
|
36
|
+
doc.registerFont('Bold', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Bold.ttf'));
|
37
|
+
doc.font('Regular');
|
38
|
+
const buffers = [];
|
39
|
+
doc.on("data", buffers.push.bind(buffers));
|
40
|
+
const endHeader = (0, header_1.generateHeader)(doc, 50, settings);
|
41
|
+
const endInvoiceInfo = (0, invoice_info_1.generateInvoiceInformation)(doc, endHeader, invoice);
|
42
|
+
const endY = (0, customer_info_1.generateCustomerInformation)(doc, endInvoiceInfo, order);
|
43
|
+
(0, table_1.generateInvoiceTable)(doc, endY, order, order.items);
|
44
|
+
doc.end();
|
45
|
+
const bufferPromise = new Promise(resolve => {
|
46
|
+
doc.on("end", () => {
|
47
|
+
const pdfData = Buffer.concat(buffers);
|
48
|
+
resolve(pdfData);
|
49
|
+
});
|
50
|
+
});
|
51
|
+
return await bufferPromise;
|
52
|
+
};
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvdGVtcGxhdGVzL2ludm9pY2VzL2Jhc2ljL2Jhc2ljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7Ozs7QUFLSCxvREFBaUM7QUFDakMsMkNBQWdEO0FBQ2hELHlEQUFvRTtBQUNwRSx5Q0FBcUQ7QUFDckQsdURBQWtFO0FBQ2xFLGdEQUF3QjtBQUV4QixTQUFnQixhQUFhLENBQUMsUUFBMkI7SUFDdkQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGFBQWEsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU87UUFDdEUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTO1FBQ2hDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSTtRQUMzQixRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVc7UUFDbEMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQixPQUFPLENBQUMsS0FBSyxFQUFFLHdIQUF3SCxDQUFDLENBQUM7QUFDM0ksQ0FBQztBQVBELHNDQU9DO0FBRUQsa0JBQWUsS0FBSyxFQUFFLFFBQTBCLEVBQUUsT0FBZ0IsRUFBRSxLQUFZLEVBQW1CLEVBQUU7SUFDbkcsSUFBSSxHQUFHLEdBQUcsSUFBSSxnQkFBVyxFQUFFLENBQUM7SUFDNUIsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0RBQWtELENBQUMsQ0FBQyxDQUFBO0lBQ3hHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLCtDQUErQyxDQUFDLENBQUMsQ0FBQTtJQUNsRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUEsdUJBQWMsRUFBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sY0FBYyxHQUFHLElBQUEseUNBQTBCLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRSxNQUFNLElBQUksR0FBRyxJQUFBLDJDQUEyQixFQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsSUFBQSw0QkFBb0IsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFcEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVYsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQVMsT0FBTyxDQUFDLEVBQUU7UUFDbEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUN0QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUVGLE9BQU8sTUFBTSxhQUFhLENBQUM7QUFDN0IsQ0FBQyxDQUFDIn0=
|
@@ -0,0 +1,70 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateCustomerInformation = void 0;
|
15
|
+
const hr_1 = require("./hr");
|
16
|
+
const i18next_1 = require("i18next");
|
17
|
+
function generateCustomerInformation(doc, y, order) {
|
18
|
+
doc
|
19
|
+
.fillColor("#444444")
|
20
|
+
.fontSize(20)
|
21
|
+
.text(`${(0, i18next_1.t)("invoice-customer-details", "Details")}`, 50, y + 30);
|
22
|
+
(0, hr_1.generateHr)(doc, y + 55);
|
23
|
+
const customerInformationTop = y + 70;
|
24
|
+
let heightOfBillToAddress;
|
25
|
+
if (order.billing_address) {
|
26
|
+
doc
|
27
|
+
.fontSize(10)
|
28
|
+
.font("Bold")
|
29
|
+
.text(`${(0, i18next_1.t)("invoice-bill-to", "Bill to")}:`, 50, customerInformationTop, { align: 'left' })
|
30
|
+
.font("Regular")
|
31
|
+
.text(`${order.billing_address.first_name} ${order.billing_address.last_name}`, 50, customerInformationTop + 15, { align: 'left' })
|
32
|
+
.text(`${order.billing_address.city} ${order.billing_address.postal_code}`, 50, customerInformationTop + 30, { align: 'left' });
|
33
|
+
const billAddress = order.billing_address.address_1;
|
34
|
+
heightOfBillToAddress = doc.heightOfString(billAddress, { width: 150 });
|
35
|
+
doc.text(billAddress, 50, customerInformationTop + 45, { align: 'left', width: 150 })
|
36
|
+
.moveDown();
|
37
|
+
}
|
38
|
+
let heightOfShipToAddress;
|
39
|
+
if (order.shipping_address) {
|
40
|
+
doc
|
41
|
+
.fontSize(10)
|
42
|
+
.font("Bold")
|
43
|
+
.text(`${(0, i18next_1.t)("invoice-ship-to", "Ship to")}:`, 50, customerInformationTop, { align: 'right' })
|
44
|
+
.font("Regular")
|
45
|
+
.text(`${order.shipping_address.first_name} ${order.shipping_address.last_name}`, 50, customerInformationTop + 15, { align: 'right' })
|
46
|
+
.text(`${order.shipping_address.city} ${order.shipping_address.postal_code}`, 50, customerInformationTop + 30, { align: 'right' })
|
47
|
+
.moveDown();
|
48
|
+
const shipAddress = order.shipping_address.address_1;
|
49
|
+
heightOfShipToAddress = doc.heightOfString(shipAddress, { width: 150 });
|
50
|
+
doc.text(shipAddress, 360, customerInformationTop + 45, { align: 'right', widdth: 150 })
|
51
|
+
.moveDown();
|
52
|
+
}
|
53
|
+
if (heightOfBillToAddress && heightOfShipToAddress) {
|
54
|
+
if (heightOfShipToAddress > heightOfBillToAddress) {
|
55
|
+
return customerInformationTop + 45 + heightOfShipToAddress;
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
return customerInformationTop + 45 + heightOfBillToAddress;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
if (heightOfBillToAddress) {
|
62
|
+
return customerInformationTop + 45 + heightOfBillToAddress;
|
63
|
+
}
|
64
|
+
if (heightOfShipToAddress) {
|
65
|
+
return customerInformationTop + 45 + heightOfShipToAddress;
|
66
|
+
}
|
67
|
+
return customerInformationTop;
|
68
|
+
}
|
69
|
+
exports.generateCustomerInformation = generateCustomerInformation;
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZW1wbGF0ZXMvaW52b2ljZXMvYmFzaWMvcGFydHMvY3VzdG9tZXItaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7O0FBR0gsNkJBQWtDO0FBQ2xDLHFDQUE0QjtBQUU1QixTQUFnQiwyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQVk7SUFDOUQsR0FBRztTQUNBLFNBQVMsQ0FBQyxTQUFTLENBQUM7U0FDcEIsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUNaLElBQUksQ0FBQyxHQUFHLElBQUEsV0FBQyxFQUFDLDBCQUEwQixFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVuRSxJQUFBLGVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV0QyxJQUFJLHFCQUF5QyxDQUFDO0lBRTlDLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtRQUN6QixHQUFHO2FBQ0EsUUFBUSxDQUFDLEVBQUUsQ0FBQzthQUNaLElBQUksQ0FBQyxNQUFNLENBQUM7YUFFWixJQUFJLENBQUMsR0FBRyxJQUFBLFdBQUMsRUFBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQzthQUN4RixJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ2YsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEdBQUcsRUFB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
|
@@ -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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateHeaderForLogo = void 0;
|
15
|
+
function generateHeaderForLogo(doc, y, documentSettings) {
|
16
|
+
doc
|
17
|
+
.fillColor("#444444")
|
18
|
+
.fontSize(20);
|
19
|
+
const heightCompany = doc.heightOfString(documentSettings.store_address.company, { width: 250 });
|
20
|
+
doc
|
21
|
+
.fillColor("#444444")
|
22
|
+
.fontSize(20)
|
23
|
+
.text(documentSettings.store_address.company, 50, 50, { align: "left", width: 250 })
|
24
|
+
.moveDown()
|
25
|
+
.fontSize(10)
|
26
|
+
.text(documentSettings.store_address.company, 50, heightCompany + 65, { align: "left" })
|
27
|
+
.text(`${documentSettings.store_address.city} ${documentSettings.store_address.postal_code}`, 50, heightCompany + 80, { align: "left" });
|
28
|
+
const heightOfAddress = doc.heightOfString(documentSettings.store_address.address_1, { width: 250 });
|
29
|
+
doc.text(documentSettings.store_address.address_1, 50, heightCompany + 95, { align: "left", width: 250 });
|
30
|
+
return heightOfAddress + heightCompany + 95;
|
31
|
+
}
|
32
|
+
exports.generateHeaderForLogo = generateHeaderForLogo;
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWZvci1sb2dvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RlbXBsYXRlcy9pbnZvaWNlcy9iYXNpYy9wYXJ0cy9oZWFkZXItZm9yLWxvZ28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUlILFNBQWdCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFTLEVBQUUsZ0JBQWtDO0lBQ3RGLEdBQUc7U0FDQSxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQ3BCLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVmLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRWpHLEdBQUc7U0FDQSxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQ3BCLFFBQVEsQ0FBQyxFQUFFLENBQUM7U0FDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDbkYsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3ZGLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDeEksTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDcEcsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxhQUFhLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUV6RyxPQUFPLGVBQWUsR0FBRyxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ2hELENBQUM7QUFuQkQsc0RBbUJDIn0=
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function generateHeaderLogo(doc: any, y: number, logoSource: string): Promise<number>;
|
@@ -0,0 +1,30 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateHeaderLogo = void 0;
|
15
|
+
async function generateHeaderLogo(doc, y, logoSource) {
|
16
|
+
const responseImage = await fetch(logoSource);
|
17
|
+
if (responseImage.ok && responseImage.status == 200) {
|
18
|
+
const responseImageBuffer = await responseImage.arrayBuffer();
|
19
|
+
const responseBuffer = Buffer.from(responseImageBuffer);
|
20
|
+
doc
|
21
|
+
.image(responseBuffer, 350, y, { align: 'right', width: 200 });
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
doc
|
25
|
+
.text('Cannot get logo from provided URL'), 390, y, { align: 'right', width: 200 };
|
26
|
+
}
|
27
|
+
return y;
|
28
|
+
}
|
29
|
+
exports.generateHeaderLogo = generateHeaderLogo;
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWxvZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvdGVtcGxhdGVzL2ludm9pY2VzL2Jhc2ljL3BhcnRzL2hlYWRlci1sb2dvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7QUFFSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQVMsRUFBRSxVQUFrQjtJQUV6RSxNQUFNLGFBQWEsR0FBRyxNQUFNLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU5QyxJQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsR0FBRzthQUNBLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7S0FDaEU7U0FBTTtRQUNMLEdBQUc7YUFDQSxJQUFJLENBQUMsbUNBQW1DLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUM7S0FDcEY7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFmRCxnREFlQyJ9
|
@@ -0,0 +1,36 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateHeader = void 0;
|
15
|
+
function generateHeader(doc, y, documentSettings) {
|
16
|
+
doc
|
17
|
+
.fillColor("#444444")
|
18
|
+
.fontSize(20);
|
19
|
+
const heightCompany = doc.heightOfString(documentSettings.store_address.company, { width: 250 });
|
20
|
+
doc
|
21
|
+
.text(documentSettings.store_address.company, 50, y, { align: "left", width: 250 })
|
22
|
+
.fontSize(10)
|
23
|
+
.text(documentSettings.store_address.company, 200, y, { align: "right" })
|
24
|
+
.text(`${documentSettings.store_address.city} ${documentSettings.store_address.postal_code}`, 200, y + 15, { align: "right" });
|
25
|
+
const heightAddress = doc.heightOfString(documentSettings.store_address.address_1, { width: 150 });
|
26
|
+
doc
|
27
|
+
.text(`${documentSettings.store_address.address_1}`, 390, y + 30, { align: "right", width: 150 });
|
28
|
+
if (heightCompany > heightAddress + 30) {
|
29
|
+
return heightCompany + y;
|
30
|
+
}
|
31
|
+
else {
|
32
|
+
return heightAddress + y + 30;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
exports.generateHeader = generateHeader;
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RlbXBsYXRlcy9pbnZvaWNlcy9iYXNpYy9wYXJ0cy9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUlILFNBQWdCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBUyxFQUFFLGdCQUFrQztJQUMvRSxHQUFHO1NBQ0EsU0FBUyxDQUFDLFNBQVMsQ0FBQztTQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFZixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNqRyxHQUFHO1NBQ0EsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ2xGLFFBQVEsQ0FBQyxFQUFFLENBQUM7U0FDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hFLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFFaEksTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFFakcsR0FBRztTQUNBLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUE7SUFHbEcsSUFBSSxhQUFhLEdBQUcsYUFBYSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxPQUFPLGFBQWEsR0FBRyxDQUFDLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sYUFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDL0I7QUFDSCxDQUFDO0FBdkJELHdDQXVCQyJ9
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function generateHr(doc: any, y: number): void;
|
@@ -0,0 +1,24 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateHr = void 0;
|
15
|
+
function generateHr(doc, y) {
|
16
|
+
doc
|
17
|
+
.strokeColor("#aaaaaa")
|
18
|
+
.lineWidth(1)
|
19
|
+
.moveTo(50, y)
|
20
|
+
.lineTo(550, y)
|
21
|
+
.stroke();
|
22
|
+
}
|
23
|
+
exports.generateHr = generateHr;
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvdGVtcGxhdGVzL2ludm9pY2VzL2Jhc2ljL3BhcnRzL2hyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7QUFFSCxTQUFnQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQVM7SUFDdkMsR0FBRztTQUNBLFdBQVcsQ0FBQyxTQUFTLENBQUM7U0FDdEIsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNaLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2IsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDZCxNQUFNLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFQRCxnQ0FPQyJ9
|
@@ -0,0 +1,36 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateInvoiceInformation = void 0;
|
15
|
+
const hr_1 = require("./hr");
|
16
|
+
const i18next_1 = require("i18next");
|
17
|
+
function generateInvoiceInformation(doc, y, invoice) {
|
18
|
+
doc
|
19
|
+
.fillColor("#444444")
|
20
|
+
.fontSize(20)
|
21
|
+
.text((0, i18next_1.t)("invoice", "Invoice"), 50, y + 40);
|
22
|
+
(0, hr_1.generateHr)(doc, y + 65);
|
23
|
+
const invoiceInformationTop = y + 80;
|
24
|
+
doc
|
25
|
+
.fontSize(10)
|
26
|
+
.text(`${(0, i18next_1.t)("invoice-number", "Invoice number")}:`, 50, invoiceInformationTop)
|
27
|
+
.font("Bold")
|
28
|
+
.text(invoice.display_number, 150, invoiceInformationTop)
|
29
|
+
.font("Regular")
|
30
|
+
.text(`${(0, i18next_1.t)("invoice-date", "Invoice date")}:`, 50, invoiceInformationTop + 15)
|
31
|
+
.text(invoice.created_at.toLocaleDateString(), 150, invoiceInformationTop + 15)
|
32
|
+
.moveDown();
|
33
|
+
return invoiceInformationTop + 15;
|
34
|
+
}
|
35
|
+
exports.generateInvoiceInformation = generateInvoiceInformation;
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RlbXBsYXRlcy9pbnZvaWNlcy9iYXNpYy9wYXJ0cy9pbnZvaWNlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUdILDZCQUFrQztBQUNsQyxxQ0FBNEI7QUFFNUIsU0FBZ0IsMEJBQTBCLENBQUMsR0FBRyxFQUFFLENBQVMsRUFBRSxPQUFnQjtJQUN6RSxHQUFHO1NBQ0EsU0FBUyxDQUFDLFNBQVMsQ0FBQztTQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ1osSUFBSSxDQUFDLElBQUEsV0FBQyxFQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRTdDLElBQUEsZUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFeEIsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXJDLEdBQUc7U0FDQSxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ1osSUFBSSxDQUFDLEdBQUcsSUFBQSxXQUFDLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQztTQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixDQUFDO1NBQ3hELElBQUksQ0FBQyxTQUFTLENBQUM7U0FDZixJQUFJLENBQUMsR0FBRyxJQUFBLFdBQUMsRUFBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1NBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztTQUM5RSxRQUFRLEVBQUUsQ0FBQztJQUVkLE9BQU8scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFyQkQsZ0VBcUJDIn0=
|
@@ -0,0 +1,54 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateInvoiceTable = void 0;
|
15
|
+
const hr_1 = require("./hr");
|
16
|
+
const currency_1 = require("../../../../utils/currency");
|
17
|
+
const i18next_1 = require("i18next");
|
18
|
+
function amountToDisplay(amount, currencyCode) {
|
19
|
+
const decimalDigits = (0, currency_1.getDecimalDigits)(currencyCode);
|
20
|
+
return `${(amount / Math.pow(10, decimalDigits)).toFixed(decimalDigits)} ${currencyCode.toUpperCase()}`;
|
21
|
+
}
|
22
|
+
function generateTableRow(doc, y, item, description, unitCost, quantity, lineTotal) {
|
23
|
+
doc
|
24
|
+
.fontSize(10)
|
25
|
+
.text(item, 50, y)
|
26
|
+
.text(description, 150, y)
|
27
|
+
.text(unitCost, 280, y, { width: 90, align: "right" })
|
28
|
+
.text(quantity, 370, y, { width: 90, align: "right" })
|
29
|
+
.text(lineTotal, 0, y, { align: "right" });
|
30
|
+
}
|
31
|
+
function generateInvoiceTable(doc, y, order, items) {
|
32
|
+
let i;
|
33
|
+
const invoiceTableTop = y + 35;
|
34
|
+
doc.font("Bold");
|
35
|
+
generateTableRow(doc, invoiceTableTop, (0, i18next_1.t)("invoice-table-header-item", "Item"), (0, i18next_1.t)("invoice-table-header-description", "Description"), (0, i18next_1.t)("invoice-table-header-unit-cost", "Unit Cost"), (0, i18next_1.t)("invoice-table-header-quantity", "Quantity"), (0, i18next_1.t)("invoice-table-header-line-total", "Line Total"));
|
36
|
+
(0, hr_1.generateHr)(doc, invoiceTableTop + 20);
|
37
|
+
doc.font("Regular");
|
38
|
+
for (i = 0; i < items.length; i++) {
|
39
|
+
const item = items[i];
|
40
|
+
const position = invoiceTableTop + (i + 1) * 30;
|
41
|
+
generateTableRow(doc, position, item.title, item.description, amountToDisplay(item.total / item.quantity, order.currency_code), item.quantity, amountToDisplay(item.total, order.currency_code));
|
42
|
+
(0, hr_1.generateHr)(doc, position + 20);
|
43
|
+
}
|
44
|
+
const subtotalPosition = invoiceTableTop + (i + 1) * 30;
|
45
|
+
generateTableRow(doc, subtotalPosition, "", "", (0, i18next_1.t)("invoice-table-shipping", "Shipping"), "", amountToDisplay(order.shipping_total, order.currency_code));
|
46
|
+
const taxPosition = subtotalPosition + 30;
|
47
|
+
generateTableRow(doc, taxPosition, "", "", (0, i18next_1.t)("invoice-table-tax", "Tax"), "", amountToDisplay(order.tax_total, order.currency_code));
|
48
|
+
const duePosition = taxPosition + 45;
|
49
|
+
doc.font("Bold");
|
50
|
+
generateTableRow(doc, duePosition, "", "", (0, i18next_1.t)("invoice-table-total", "Total"), "", amountToDisplay(order.total, order.currency_code));
|
51
|
+
doc.font("Regular");
|
52
|
+
}
|
53
|
+
exports.generateInvoiceTable = generateInvoiceTable;
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvdGVtcGxhdGVzL2ludm9pY2VzL2Jhc2ljL3BhcnRzL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7QUFHSCw2QkFBa0M7QUFDbEMseURBQThEO0FBQzlELHFDQUE0QjtBQUU1QixTQUFTLGVBQWUsQ0FBQyxNQUFjLEVBQUUsWUFBb0I7SUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7QUFDMUcsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLEdBQUcsRUFDSCxDQUFDLEVBQ0QsSUFBSSxFQUNKLFdBQVcsRUFDWCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVM7SUFFVCxHQUFHO1NBQ0EsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDckQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBWSxFQUFFLEtBQWlCO0lBQzFFLElBQUksQ0FBQyxDQUFDO0lBQ04sTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUUvQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pCLGdCQUFnQixDQUNkLEdBQUcsRUFDSCxlQUFlLEVBQ2YsSUFBQSxXQUFDLEVBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLEVBQ3RDLElBQUEsV0FBQyxFQUFDLGtDQUFrQyxFQUFFLGFBQWEsQ0FBQyxFQUNwRCxJQUFBLFdBQUMsRUFBQyxnQ0FBZ0MsRUFBRSxXQUFXLENBQUMsRUFDaEQsSUFBQSxXQUFDLEVBQUMsK0JBQStCLEVBQUUsVUFBVSxDQUFDLEVBQzlDLElBQUEsV0FBQyxFQUFDLGlDQUFpQyxFQUFFLFlBQVksQ0FBQyxDQUNuRCxDQUFDO0lBQ0YsSUFBQSxlQUFVLEVBQUMsR0FBRyxFQUFFLGVBQWUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXBCLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxnQkFBZ0IsQ0FDZCxHQUFHLEVBQ0gsUUFBUSxFQUNSLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFdBQVcsRUFDaEIsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQ2hFLElBQUksQ0FBQyxRQUFRLEVBQ2IsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBQSxlQUFVLEVBQUMsR0FBRyxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNoQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4RCxnQkFBZ0IsQ0FDZCxHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLEVBQUUsRUFDRixFQUFFLEVBQ0YsSUFBQSxXQUFDLEVBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLEVBQ3ZDLEVBQUUsRUFDRixlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQzNELENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDMUMsZ0JBQWdCLENBQ2QsR0FBRyxFQUNILFdBQVcsRUFDWCxFQUFFLEVBQ0YsRUFBRSxFQUNGLElBQUEsV0FBQyxFQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUM3QixFQUFFLEVBQ0YsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUN0RCxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pCLGdCQUFnQixDQUNkLEdBQUcsRUFDSCxXQUFXLEVBQ1gsRUFBRSxFQUNGLEVBQUUsRUFDRixJQUFBLFdBQUMsRUFBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsRUFDakMsRUFBRSxFQUNGLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FDbEQsQ0FBQztJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQW5FRCxvREFtRUMifQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
/// <reference types="node" />
|
3
|
+
import { Order } from "@medusajs/medusa";
|
4
|
+
import { PackingSlip } from "../../../../models/packing-slip";
|
5
|
+
import { DocumentSettings } from "../../../../models/document-settings";
|
6
|
+
export declare function validateInput(settings?: DocumentSettings): ([boolean, string]);
|
7
|
+
declare const _default: (settings: DocumentSettings, packingSlip: PackingSlip, order: Order) => Promise<Buffer>;
|
8
|
+
export default _default;
|
@@ -0,0 +1,53 @@
|
|
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
|
+
exports.validateInput = void 0;
|
18
|
+
const pdfkit_1 = __importDefault(require("pdfkit"));
|
19
|
+
const header_1 = require("./parts/header");
|
20
|
+
const customer_info_1 = require("./parts/customer-info");
|
21
|
+
const table_items_1 = require("./parts/table-items");
|
22
|
+
const table_order_info_1 = require("./parts/table-order-info");
|
23
|
+
const path_1 = __importDefault(require("path"));
|
24
|
+
function validateInput(settings) {
|
25
|
+
if (settings && settings.store_address && settings.store_address.company &&
|
26
|
+
settings.store_address.address_1 &&
|
27
|
+
settings.store_address.city &&
|
28
|
+
settings.store_address.postal_code)
|
29
|
+
return [true, ''];
|
30
|
+
return [false, `Not all settings are defined to generate template. Following settings are checked: company, address, city, postal_code`];
|
31
|
+
}
|
32
|
+
exports.validateInput = validateInput;
|
33
|
+
exports.default = async (settings, packingSlip, order) => {
|
34
|
+
var doc = new pdfkit_1.default();
|
35
|
+
doc.registerFont('Regular', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Regular.ttf'));
|
36
|
+
doc.registerFont('Bold', path_1.default.resolve(__dirname, '../../../../assets/fonts/IBMPlexSans-Bold.ttf'));
|
37
|
+
doc.font('Regular');
|
38
|
+
const buffers = [];
|
39
|
+
doc.on("data", buffers.push.bind(buffers));
|
40
|
+
const endHeader = (0, header_1.generateHeader)(doc, 30, settings);
|
41
|
+
const endY = (0, customer_info_1.generateCustomerInformation)(doc, endHeader, order);
|
42
|
+
const endTable = (0, table_order_info_1.generateOrderInfoTable)(doc, endY, order, order.items);
|
43
|
+
(0, table_items_1.generateItemsTable)(doc, endTable, order, order.items);
|
44
|
+
doc.end();
|
45
|
+
const bufferPromise = new Promise(resolve => {
|
46
|
+
doc.on("end", () => {
|
47
|
+
const pdfData = Buffer.concat(buffers);
|
48
|
+
resolve(pdfData);
|
49
|
+
});
|
50
|
+
});
|
51
|
+
return await bufferPromise;
|
52
|
+
};
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvdGVtcGxhdGVzL3BhY2tpbmctc2xpcHMvYmFzaWMvYmFzaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7Ozs7OztBQUtILG9EQUFpQztBQUNqQywyQ0FBK0M7QUFDL0MseURBQW9FO0FBQ3BFLHFEQUF5RDtBQUN6RCwrREFBa0U7QUFDbEUsZ0RBQXdCO0FBRXhCLFNBQWdCLGFBQWEsQ0FBQyxRQUEyQjtJQUN2RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTztRQUN0RSxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVM7UUFDaEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1FBQzNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVztRQUNsQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsd0hBQXdILENBQUMsQ0FBQztBQUMzSSxDQUFDO0FBUEQsc0NBT0M7QUFFRCxrQkFBZSxLQUFLLEVBQUUsUUFBMEIsRUFBRSxXQUF3QixFQUFFLEtBQVksRUFBbUIsRUFBRTtJQUUzRyxJQUFJLEdBQUcsR0FBRyxJQUFJLGdCQUFXLEVBQUUsQ0FBQztJQUM1QixHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrREFBa0QsQ0FBQyxDQUFDLENBQUE7SUFDeEcsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsK0NBQStDLENBQUMsQ0FBQyxDQUFBO0lBQ2xHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFMUMsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBYyxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQ0FBMkIsRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQXNCLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLElBQUEsZ0NBQWtCLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXRELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVWLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFTLE9BQU8sQ0FBQyxFQUFFO1FBQ2xELEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sYUFBYSxDQUFDO0FBQzdCLENBQUMsQ0FBQyJ9
|
@@ -0,0 +1,70 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.generateCustomerInformation = void 0;
|
15
|
+
const hr_1 = require("./hr");
|
16
|
+
const i18next_1 = require("i18next");
|
17
|
+
function generateCustomerInformation(doc, y, order) {
|
18
|
+
(0, hr_1.generateHrInA7)(doc, y + 15);
|
19
|
+
const customerInformationTop = y + 25;
|
20
|
+
let heightOfBillToAddress;
|
21
|
+
if (order.billing_address) {
|
22
|
+
doc
|
23
|
+
.fontSize(6)
|
24
|
+
.font("Bold")
|
25
|
+
.text(`${(0, i18next_1.t)("packing-slip-bill-to", "Bill to")}:`, 25, customerInformationTop, { align: 'left' })
|
26
|
+
.font("Regular")
|
27
|
+
.text(`${order.billing_address.first_name} ${order.billing_address.last_name}`, 25, customerInformationTop + 10, { align: 'left' })
|
28
|
+
.text(`${order.billing_address.city} ${order.billing_address.postal_code}`, 25, customerInformationTop + 20, { align: 'left' });
|
29
|
+
const billAddress = order.billing_address.address_1;
|
30
|
+
heightOfBillToAddress = doc.heightOfString(billAddress);
|
31
|
+
doc.text(billAddress, 25, customerInformationTop + 30, { align: 'left' })
|
32
|
+
.moveDown();
|
33
|
+
}
|
34
|
+
let heightOfShipToAddress;
|
35
|
+
if (order.shipping_address) {
|
36
|
+
const RIGHT_MARGIN = 90;
|
37
|
+
const RIGHT_WIDTH = 100;
|
38
|
+
doc
|
39
|
+
.fontSize(6)
|
40
|
+
.font("Bold");
|
41
|
+
doc
|
42
|
+
.text(`${(0, i18next_1.t)("packing-slip-ship-to", "Ship to")}:`, RIGHT_MARGIN, customerInformationTop, { align: 'right', width: RIGHT_WIDTH })
|
43
|
+
.font("Regular");
|
44
|
+
doc
|
45
|
+
.text(`${order.shipping_address.first_name} ${order.shipping_address.last_name}`, RIGHT_MARGIN, customerInformationTop + 10, { align: 'right', width: RIGHT_WIDTH })
|
46
|
+
.text(`${order.shipping_address.city} ${order.shipping_address.postal_code}`, RIGHT_MARGIN, customerInformationTop + 20, { align: 'right', width: RIGHT_WIDTH })
|
47
|
+
.moveDown();
|
48
|
+
const shipAddress = order.shipping_address.address_1;
|
49
|
+
heightOfShipToAddress = doc.heightOfString(shipAddress, { width: RIGHT_WIDTH });
|
50
|
+
doc.text(shipAddress, RIGHT_MARGIN, customerInformationTop + 30, { align: 'right', width: RIGHT_WIDTH })
|
51
|
+
.moveDown();
|
52
|
+
}
|
53
|
+
if (heightOfBillToAddress && heightOfShipToAddress) {
|
54
|
+
if (heightOfShipToAddress > heightOfBillToAddress) {
|
55
|
+
return customerInformationTop + 30 + heightOfShipToAddress;
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
return customerInformationTop + 30 + heightOfBillToAddress;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
if (heightOfBillToAddress) {
|
62
|
+
return customerInformationTop + 30 + heightOfBillToAddress;
|
63
|
+
}
|
64
|
+
if (heightOfShipToAddress) {
|
65
|
+
return customerInformationTop + 30 + heightOfShipToAddress;
|
66
|
+
}
|
67
|
+
return customerInformationTop;
|
68
|
+
}
|
69
|
+
exports.generateCustomerInformation = generateCustomerInformation;
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItaW5mby1zbWFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90ZW1wbGF0ZXMvcGFja2luZy1zbGlwcy9iYXNpYy9wYXJ0cy9jdXN0b21lci1pbmZvLXNtYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7QUFHSCw2QkFBc0M7QUFDdEMscUNBQTRCO0FBRTVCLFNBQWdCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBWTtJQUU5RCxJQUFBLG1CQUFjLEVBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUU1QixNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFdEMsSUFBSSxxQkFBeUMsQ0FBQztJQUU5QyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7UUFDekIsR0FBRzthQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ1osSUFBSSxDQUFDLEdBQUcsSUFBQSxXQUFDLEVBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7YUFDN0YsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNmLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLHNCQUFzQixHQUFHLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQzthQUNoSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxzQkFBc0IsR0FBRyxF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
|