diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/generate.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/generate.ts b/src/lib/generate.ts index 7789f3e..e78b61e 100644 --- a/src/lib/generate.ts +++ b/src/lib/generate.ts @@ -137,6 +137,24 @@ export async function generateInvoice(invoice: Invoice): Promise<Blob> { doc.text("", MARGIN + T_PADDING, doc.y + T_ROW_HEIGHT / 2); }); + const total = invoice.line_items.reduce( + (acc, cur) => acc + (cur.quantity ?? 0) * (cur.rate ?? 0), + 0, + ); + const totalText = + "Subtotal: " + + total.toLocaleString(undefined, { + style: "currency", + currency: invoice.currency, + }); + + doc.moveDown(2); + doc.fontSize(12); + doc.text( + totalText, + doc.page.width - MARGIN - T_PADDING - doc.widthOfString(totalText), + ); + doc.end(); return new Promise((resolve, reject) => { stream.on("finish", () => { |
