{"version":3,"sources":["../../src/utils/helper.ts","../../src/utils/config.ts","../../src/class/invoice.ts"],"names":["require_helper","__commonJSMin","exports","module","helper","item","subtotal","discountAmount","taxAmount","discountedSubtotal","items","total","i","price","quantity","discount","tax","fees","subTotal","parsedFee","f","amount","args","require_config","defaultConfig","path","pdfmake","PDFInvoice","payload","config","docDefinition","font","additionalFonts","defaults","style","sections","sectionCompany","refLabel","dateLabel","dueDateLabel","statusLabel","sectionCustomer","sectionItems","currOptions","sectionQR","sectionNote"],"mappings":"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","file":"invoice.mjs","sourcesContent":["import type { ItemInfo, Fee } from \"../../global\";\n\ninterface Helpers {\n\tcalcItemTotal(item: ItemInfo): number | string;\n\tcalcItemTotalDiscount(item: ItemInfo[]): number | string;\n\tcalcTax(items: ItemInfo[]): number | string;\n\tcalcSubTotal(items: ItemInfo[]): number | string;\n\tcalcFinalTotal(\n\t\titems: ItemInfo[],\n\t\tdiscount?: number,\n\t\tfees?: Fee[],\n\t): number | string;\n\tformatCurrency(\n\t\tamount: number | string,\n\t\targs?: Record<string, string>,\n\t): string;\n}\n\nconst helper: Helpers = {\n\t/**\n\t * Item total price calculation.\n\t *\n\t * Displayed in the items table (not the invoice sub/grand total).\n\t *\n\t * @param {ItemInfo} item.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcItemTotal: function (item: ItemInfo): number | string {\n\t\tconst subtotal = item.quantity * item.price;\n\t\tlet discountAmount = 0;\n\t\tlet taxAmount = 0;\n\n\t\tif (item.discount) {\n\t\t\tdiscountAmount = subtotal * (item.discount / 100);\n\t\t}\n\t\tconst discountedSubtotal = subtotal - discountAmount;\n\n\t\tif (item.tax) {\n\t\t\ttaxAmount = discountedSubtotal * (item.tax / 100);\n\t\t}\n\n\t\treturn discountedSubtotal + taxAmount;\n\t},\n\n\t/**\n\t * Calculate subtotal.\n\t *\n\t * @param {ItemInfo[]} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcSubTotal: function (items: ItemInfo[]): number | string {\n\t\tif (!items || !items.length) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet total = 0;\n\n\t\titems.forEach((item) => {\n\t\t\ttotal += Number(this.calcItemTotal(item));\n\t\t});\n\n\t\treturn total.toFixed(2);\n\t},\n\n\t/**\n\t * Item total discount calculation.\n\t *\n\t * Note: This method is not used currently in the invoice.\n\t *\n\t * @param {ItemInfo} item.\n\t * @returns {number} total.\n\t * @since 1.0.11\n\t */\n\tcalcItemTotalDiscount: function (item: ItemInfo[]): string {\n\t\tif (!item || !item.length) {\n\t\t\treturn \"0.00\";\n\t\t}\n\n\t\tlet total = 0;\n\n\t\titem.forEach((i) => {\n\t\t\tconst price = i.price || 0;\n\t\t\tconst quantity = i.quantity || 1;\n\t\t\tconst discount = i.discount || 0;\n\t\t\ttotal += (price * quantity * discount) / 100;\n\t\t});\n\n\t\treturn total.toFixed(2);\n\t},\n\n\t/**\n\t * Calculate tax.\n\t *\n\t * @param {ItemInfo[]} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcTax: function (items: ItemInfo[]): number | string {\n\t\tif (!items || !items.length) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet total = 0;\n\n\t\titems.forEach((item) => {\n\t\t\tconst price = item.price;\n\t\t\tconst quantity = item.quantity;\n\t\t\tconst tax = item.tax || 0;\n\t\t\ttotal += (price * quantity * tax) / 100;\n\t\t});\n\n\t\treturn total.toFixed(2);\n\t},\n\n\t/**\n\t * Calculate total final price.\n\t *\n\t * @param {ItemInfo[]} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcFinalTotal: function (\n\t\titems: ItemInfo[],\n\t\tdiscount?: number,\n\t\tfees?: Fee[],\n\t): number | string {\n\t\tif (!items || !items.length) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet subTotal = Number(this.calcSubTotal(items));\n\n\t\tlet parsedFee = 0;\n\n\t\tif (fees) {\n\t\t\tfees.forEach((f) => {\n\t\t\t\tif (f.operation === \"+\") {\n\t\t\t\t\tparsedFee += f.amount;\n\t\t\t\t} else {\n\t\t\t\t\tparsedFee -= f.amount;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!discount || isNaN(Number(discount))) {\n\t\t\treturn (subTotal + parsedFee).toFixed(2);\n\t\t}\n\n\t\tsubTotal = subTotal + parsedFee;\n\n\t\treturn subTotal - Number(discount) < 0\n\t\t\t? \"0.00\"\n\t\t\t: (subTotal - Number(discount)).toFixed(2);\n\t},\n\n\t/**\n\t * Format currency in international format.\n\t *\n\t * @ref https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n\t *\n\t * @param {number | string} amount.\n\t * @param {Record<string, string>} args.\n\t * @returns {string} string.\n\t * @since 1.0.10\n\t */\n\tformatCurrency: function (\n\t\tamount: number | string,\n\t\targs: Record<string, string> = { locale: \"en-US\", currency: \"USD\" },\n\t): string {\n\t\tamount = Number(amount);\n\n\t\tif (!amount || isNaN(amount)) {\n\t\t\treturn new Intl.NumberFormat(args.locale, {\n\t\t\t\tstyle: \"currency\",\n\t\t\t\tcurrency: args.currency,\n\t\t\t}).format(0);\n\t\t}\n\n\t\tamount = amount.toFixed(2);\n\n\t\treturn new Intl.NumberFormat(args.locale, {\n\t\t\tstyle: \"currency\",\n\t\t\tcurrency: args.currency,\n\t\t}).format(Number(amount));\n\t},\n};\n\nmodule.exports = helper;\n","/**\n * Holds the default configuration.\n *\n * @returns {Object} config.\n * @since 1.0.7\n */\nconst defaultConfig = {\n\tstring: {\n\t\tinvoice: \"I N V O I C E\",\n\t\trefNumber: \"Ref no\",\n\t\tdate: \"Date\",\n\t\tdueDate: \"Due Date\",\n\t\tstatus: \"Status\",\n\t\tbillTo: \"Bill To\",\n\t\titem: \"Item\",\n\t\tquantity: \"Qty\",\n\t\tprice: \"Price\",\n\t\tdiscount: \"Discount\",\n\t\ttax: \"Tax\",\n\t\ttotal: \"Total\",\n\t\tsubTotal: \"Subtotal\",\n\t\ttotalTax: \"Total Tax\",\n\t\ttotalDiscount: \"Total Discount\",\n\t\tfee: \"Total Fee\",\n\t\tgrandTotal: \"Grand Total\",\n\t},\n};\n\nmodule.exports = defaultConfig;\n","const fs = require(\"fs\");\nconst path = require(\"path\");\nconst pdfmake = require(\"pdfmake\");\nconst helper = require(\"@/utils/helper\");\nconst defaultConfig = require(\"@/utils/config\");\n\nimport type {\n\tCompanyInfo,\n\tCustomerInfo,\n\tInvoiceInfo,\n\tItemInfo,\n\tQRInfo,\n\tNotes,\n\tInvoicePayLoad,\n\tConfiguration,\n} from \"../../global\";\n\nexport class PDFInvoice {\n\tpayload: InvoicePayLoad;\n\tcompany: CompanyInfo;\n\tinvoice: InvoiceInfo;\n\tcustomer: CustomerInfo;\n\titems: ItemInfo[];\n\tlocale: string;\n\tcurrency: string;\n\tpath: string;\n\tqr: QRInfo;\n\tnote: Notes;\n\tdate: string;\n\torderDiscount?: number;\n\tconfig: Configuration;\n\tconstructor(payload: InvoicePayLoad, config: Configuration = defaultConfig) {\n\t\tthis.payload = payload;\n\n\t\t/**\n\t\t * Content section.\n\t\t */\n\t\tthis.company = payload.company;\n\t\tthis.customer = payload.customer;\n\t\tthis.invoice = payload.invoice;\n\t\tthis.items = payload.items;\n\t\tthis.qr = payload.qr;\n\t\tthis.note = payload.note;\n\n\t\t/**\n\t\t * Currency.\n\t\t */\n\t\tthis.locale = this.invoice?.locale || \"en-US\";\n\t\tthis.currency = this.invoice?.currency?.toUpperCase() || \"USD\";\n\n\t\t/**\n\t\t * Invoice path.\n\t\t */\n\t\tthis.path = path.resolve(this.invoice.path) || \"./invoice.pdf\";\n\n\t\t/**\n\t\t * Invoice date.\n\t\t */\n\t\tthis.date = new Date().toLocaleDateString(\"en-US\", {\n\t\t\tyear: \"numeric\",\n\t\t\tmonth: \"numeric\",\n\t\t\tday: \"numeric\",\n\t\t});\n\n\t\t/**\n\t\t * Configuration.\n\t\t */\n\t\tthis.config = config;\n\t\tthis.orderDiscount = payload.invoice.orderDiscount;\n\t}\n\n\t/**\n\t * Create a PDF invoice.\n\t *\n\t * @returns {void}\n\t * @since 1.0.0\n\t */\n\tasync create(): Promise<string> {\n\t\tpdfmake.addFonts(this.fonts());\n\n\t\tconst docDefinition = {\n\t\t\tpageSize: \"A4\",\n\t\t\torientation: \"portrait\",\n\t\t\tpageMargins: [40, 40, 40, 40],\n\t\t\tinfo: this.docMeta(),\n\t\t\tcontent: this.content(),\n\t\t\tdefaultStyle: this.docStyle(),\n\t\t\tstyles: this.docTypo(),\n\t\t};\n\n\t\tconst pdf = pdfmake.createPdf(docDefinition);\n\n\t\treturn pdf.write(this.path).then(() => {\n\t\t\treturn this.path;\n\t\t});\n\t}\n\n\t/**\n\t * Collection of available fonts.\n\t *\n\t * @returns {Record<string, Record<string, string>>} font.\n\t * @since 1.0.0\n\t */\n\tfonts(): Record<string, Record<string, string>> {\n\t\tconst font = {\n\t\t\tHelvetica: {\n\t\t\t\tnormal: \"Helvetica\",\n\t\t\t\tbold: \"Helvetica-Bold\",\n\t\t\t\titalics: \"Helvetica-Oblique\",\n\t\t\t\tbolditalics: \"Helvetica-BoldOblique\",\n\t\t\t},\n\t\t\tTimes: {\n\t\t\t\tnormal: \"Times-Roman\",\n\t\t\t\tbold: \"Times-Bold\",\n\t\t\t\titalics: \"Times-Italic\",\n\t\t\t\tbolditalics: \"Times-BoldItalic\",\n\t\t\t},\n\t\t\tCourier: {\n\t\t\t\tnormal: \"Courier\",\n\t\t\t\tbold: \"Courier-Bold\",\n\t\t\t\titalics: \"Courier-Oblique\",\n\t\t\t\tbolditalics: \"Courier-BoldOblique\",\n\t\t\t},\n\t\t};\n\n\t\tconst additionalFonts = this.config?.font || null;\n\n\t\tif (additionalFonts && Object.keys(additionalFonts).length > 0) {\n\t\t\tObject.assign(font, additionalFonts);\n\t\t}\n\n\t\treturn font;\n\t}\n\n\t/**\n\t * Doc meta.\n\t *\n\t * @returns {Record<string, string | undefined>}\n\t * @since 1.0.0\n\t */\n\tdocMeta(): Record<string, string | undefined> {\n\t\tconst meta = {\n\t\t\ttitle: \"Invoice - #\" + this.invoice.number,\n\t\t\tauthor: this.company.name,\n\t\t\tsubject: \"Invoice - \" + this.customer.name,\n\t\t\tkeywords: \"invoice\",\n\t\t};\n\n\t\treturn meta;\n\t}\n\n\t/**\n\t * Default invoice styles.\n\t *\n\t * @returns {Record<string, any>}\n\t * @since 1.0.0\n\t */\n\tdocStyle(): Record<string, any> {\n\t\tlet defaults = {\n\t\t\tfont: \"Helvetica\",\n\t\t\tfontSize: this.config?.style?.fontSize || 10,\n\t\t\tlineHeight: 1.8,\n\t\t\tbold: false,\n\t\t\tcolor: \"#000000\",\n\t\t\tcolumnGap: 30,\n\t\t};\n\n\t\tconst style = this.config.style || null;\n\n\t\tif (style && Object.keys(style).length > 0) {\n\t\t\tdefaults = { ...defaults, ...style };\n\t\t}\n\n\t\treturn defaults;\n\t}\n\n\t/**\n\t * Invoice typography styles.\n\t *\n\t * @returns {Object} defaults.\n\t * @since 1.0.0\n\t */\n\tdocTypo(): Record<string, Record<string, unknown>> {\n\t\treturn {\n\t\t\th1: {\n\t\t\t\tfontSize: 18,\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t\th2: {\n\t\t\t\tfontSize: 16,\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t\th3: {\n\t\t\t\tfontSize: 14,\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t\ttext: {\n\t\t\t\tfontSize: this.config?.style?.fontSize || 10,\n\t\t\t\tbold: false,\n\t\t\t},\n\t\t\ttextBold: {\n\t\t\t\tfontSize: this.config?.style?.fontSize || 10,\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Return the invoice layout.\n\t *\n\t * @returns {Object} layout.\n\t * @since 1.0.0\n\t */\n\tcontent(): any {\n\t\tconst sections = [];\n\n\t\t/**\n\t\t * Left: Company section.\n\t\t * Right: Invoice section.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\tconst sectionCompany = {\n\t\t\tcolumns: [\n\t\t\t\t{\n\t\t\t\t\twidth: \"70%\",\n\t\t\t\t\tstack: [] as any,\n\t\t\t\t\tstyle: \"text\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\twidth: \"30%\",\n\t\t\t\t\tstack: [] as any,\n\t\t\t\t\tstyle: \"text\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tif (this.company.logo) {\n\t\t\tif (!this.company.logo.startsWith(\"<svg\")) {\n\t\t\t\tthrow new Error(\"Only SVG logo are supported.\");\n\t\t\t}\n\n\t\t\tsectionCompany.columns[0].stack.unshift({\n\t\t\t\tsvg: this.company.logo,\n\t\t\t\tmargin: [0, 0, 0, 20],\n\t\t\t});\n\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.name,\n\t\t\t\tstyle: \"h3\",\n\t\t\t});\n\t\t} else {\n\t\t\tsectionCompany.columns[0].stack.unshift({\n\t\t\t\ttext: this.company.name,\n\t\t\t\tstyle: \"h1\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.address) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.address,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.phone) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.phone,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.email) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.email,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.website) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.website,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.taxId) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.taxId,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.company.bank) {\n\t\t\tsectionCompany.columns[0].stack.push({\n\t\t\t\ttext: this.company.bank,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\t// Invoice information.\n\t\tif (this.invoice.label) {\n\t\t\tsectionCompany.columns[1].stack.unshift({\n\t\t\t\ttext: this.invoice.label,\n\t\t\t\tstyle: \"h1\",\n\t\t\t});\n\t\t} else {\n\t\t\tsectionCompany.columns[1].stack.unshift({\n\t\t\t\ttext: this.config.string.invoice || \"I N V O I C E\",\n\t\t\t\tstyle: \"h1\",\n\t\t\t});\n\t\t}\n\n\t\tconst refLabel = this.config.string.refNumber || \"Ref no:\";\n\n\t\tsectionCompany.columns[1].stack.push({\n\t\t\ttext: refLabel + \": #\" + (this.invoice.number || 1),\n\t\t\tstyle: \"textBold\",\n\t\t});\n\n\t\tconst dateLabel = this.config.string.date;\n\n\t\tsectionCompany.columns[1].stack.push({\n\t\t\ttext: dateLabel + \": \" + (this.invoice.date || this.date),\n\t\t\tstyle: \"text\",\n\t\t});\n\n\t\tconst dueDateLabel = this.config.string.dueDate;\n\n\t\tsectionCompany.columns[1].stack.push({\n\t\t\ttext: dueDateLabel + \": \" + (this.invoice.dueDate || this.date),\n\t\t\tstyle: \"text\",\n\t\t});\n\n\t\tconst statusLabel = this.config.string.status;\n\n\t\tsectionCompany.columns[1].stack.push({\n\t\t\ttext: statusLabel + \": \" + (this.invoice.status || \"Pending!\"),\n\t\t\tstyle: \"textBold\",\n\t\t});\n\n\t\tsections.push(sectionCompany);\n\n\t\t/**\n\t\t * Left: Bill to section.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\tconst sectionCustomer = {\n\t\t\tcolumns: [\n\t\t\t\t{\n\t\t\t\t\twidth: 300,\n\t\t\t\t\tmargin: [0, 30, 0, 0],\n\t\t\t\t\tstack: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: this.config.string.billTo,\n\t\t\t\t\t\t\tstyle: \"h2\",\n\t\t\t\t\t\t},\n\t\t\t\t\t] as any,\n\t\t\t\t\tstyle: \"text\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tif (this.customer.name) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.name,\n\t\t\t\tstyle: \"textBold\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.customer.company) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.company,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.customer.address) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.address,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.customer.phone) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.phone,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.customer.email) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.email,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tif (this.customer.taxId) {\n\t\t\tsectionCustomer.columns[0].stack.push({\n\t\t\t\ttext: this.customer.taxId,\n\t\t\t\tstyle: \"text\",\n\t\t\t});\n\t\t}\n\n\t\tsections.push(sectionCustomer);\n\n\t\t/**\n\t\t * Full: Items section.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\tconst sectionItems = {\n\t\t\tmargin: [0, 30, 0, 0],\n\t\t\tlineHeight: 1.5,\n\t\t\ttable: {\n\t\t\t\twidths: [200, 30, \"*\", 50, 50, \"*\"],\n\t\t\t\theaderRows: 1,\n\t\t\t\tlineHeight: 1.5,\n\t\t\t\tbody: [\n\t\t\t\t\t[\n\t\t\t\t\t\t`\\n ${this.config.string.item}`,\n\t\t\t\t\t\t`\\n ${this.config.string.quantity}`,\n\t\t\t\t\t\t`\\n ${this.config.string.price}`,\n\t\t\t\t\t\t`\\n ${this.config.string.tax}`,\n\t\t\t\t\t\t`\\n ${this.config.string.discount}`,\n\t\t\t\t\t\t`\\n ${this.config.string.total}`,\n\t\t\t\t\t],\n\t\t\t\t] as any,\n\t\t\t},\n\t\t};\n\n\t\tconst currOptions = {\n\t\t\tlocale: this.locale,\n\t\t\tcurrency: this.currency,\n\t\t};\n\n\t\tif (this.items.length > 0) {\n\t\t\tthis.items.forEach((item) => {\n\t\t\t\tsectionItems.table.body.push([\n\t\t\t\t\t`\\n ${item.name}`,\n\t\t\t\t\t`\\n ${item.quantity}`,\n\t\t\t\t\t`\\n ${helper.formatCurrency(item.price, currOptions)}`,\n\t\t\t\t\t`\\n ${item.tax && item.tax > 0 ? item.tax + \"%\" : \"-\"}`,\n\t\t\t\t\t`\\n ${\n\t\t\t\t\t\titem.discount && item.discount > 0 ? item.discount + \"%\" : \"-\"\n\t\t\t\t\t}`,\n\t\t\t\t\t`\\n ${helper.formatCurrency(\n\t\t\t\t\t\thelper.calcItemTotal(item),\n\t\t\t\t\t\tcurrOptions,\n\t\t\t\t\t)}`,\n\t\t\t\t]);\n\t\t\t});\n\t\t}\n\n\t\t// Subtotal\n\t\tsectionItems.table.body.push([\n\t\t\t{ text: \"\", colSpan: 3, border: [false, false, false, false] },\n\t\t\t{},\n\t\t\t{},\n\t\t\t{\n\t\t\t\ttext: `\\n ${this.config.string.subTotal}`,\n\t\t\t\tcolSpan: 2,\n\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t},\n\t\t\t{},\n\t\t\t{\n\t\t\t\ttext:\n\t\t\t\t\t`\\n ${helper.formatCurrency(\n\t\t\t\t\t\thelper.calcSubTotal(this.items),\n\t\t\t\t\t\tcurrOptions,\n\t\t\t\t\t)}` +\n\t\t\t\t\t(helper.calcTax(this.items) > 0\n\t\t\t\t\t\t? ` (inc. ${helper.formatCurrency(\n\t\t\t\t\t\t\t\thelper.calcTax(this.items),\n\t\t\t\t\t\t\t\tcurrOptions,\n\t\t\t\t\t\t\t)} tax)`\n\t\t\t\t\t\t: \"\"),\n\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t},\n\t\t]);\n\n\t\t// Fees\n\t\tif (this.invoice.fees && this.invoice.fees.length > 0) {\n\t\t\tthis.invoice.fees.forEach((item) => {\n\t\t\t\tsectionItems.table.body.push([\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\tcolSpan: 3,\n\t\t\t\t\t\tborder: [false, false, false, false],\n\t\t\t\t\t} as any,\n\t\t\t\t\t{},\n\t\t\t\t\t{},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: `\\n ${item.label}`,\n\t\t\t\t\t\tcolSpan: 2,\n\t\t\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\t\t},\n\t\t\t\t\t{},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: `\\n ${item.operation} ${helper.formatCurrency(\n\t\t\t\t\t\t\titem.amount,\n\t\t\t\t\t\t\tcurrOptions,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t});\n\t\t}\n\n\t\t// Additional order discount\n\t\tif (this.orderDiscount && this.orderDiscount > 0) {\n\t\t\tsectionItems.table.body.push([\n\t\t\t\t{ text: \"\", colSpan: 3, border: [false, false, false, false] },\n\t\t\t\t{},\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\ttext: `\\n ${this.config.string.totalDiscount}`,\n\t\t\t\t\tcolSpan: 2,\n\t\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\ttext: `\\n - ${helper.formatCurrency(\n\t\t\t\t\t\tthis.orderDiscount,\n\t\t\t\t\t\tcurrOptions,\n\t\t\t\t\t)}`,\n\t\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\n\t\t// Grand Total\n\t\tsectionItems.table.body.push([\n\t\t\t{ text: \"\", colSpan: 3, border: [false, false, false, false] },\n\t\t\t{},\n\t\t\t{},\n\t\t\t{\n\t\t\t\ttext: `\\n ${this.config.string.grandTotal || this.config.string.total}`,\n\t\t\t\tcolSpan: 2,\n\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\tcolor: \"#000000\",\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t\t{},\n\t\t\t{\n\t\t\t\ttext: `\\n ${helper.formatCurrency(\n\t\t\t\t\thelper.calcFinalTotal(\n\t\t\t\t\t\tthis.items,\n\t\t\t\t\t\tthis.orderDiscount,\n\t\t\t\t\t\tthis.invoice.fees,\n\t\t\t\t\t),\n\t\t\t\t\tcurrOptions,\n\t\t\t\t)}`,\n\t\t\t\tfillColor: \"#F1F1F1\",\n\t\t\t\tcolor: \"#000000\",\n\t\t\t\tbold: true,\n\t\t\t},\n\t\t]);\n\n\t\tsections.push(sectionItems);\n\n\t\t/**\n\t\t * Left: QR section.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\tif (this.payload.qr) {\n\t\t\tconst sectionQR = {\n\t\t\t\tmargin: [0, 50, 0, 0],\n\t\t\t\tqr: this.payload.qr.data,\n\t\t\t\tfit: this.payload.qr.width || \"50\",\n\t\t\t};\n\n\t\t\tsections.push(sectionQR);\n\t\t}\n\n\t\t/**\n\t\t * Left: Notes section.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\tif (this.payload.note) {\n\t\t\tconst sectionNote = {\n\t\t\t\tmargin: [0, this.payload.qr ? 20 : 50, 0, 0],\n\t\t\t\ttext: this.payload.note,\n\t\t\t\titalics: true,\n\t\t\t};\n\n\t\t\tsections.push(sectionNote);\n\t\t}\n\n\t\t/**\n\t\t * Return the invoice sections.\n\t\t *\n\t\t * @since 1.0.0\n\t\t */\n\t\treturn sections;\n\t}\n}\n"]}