From fc3fccc32edc47a4ae8b1d52da238883ec972831 Mon Sep 17 00:00:00 2001 From: "mihailo.vojinovic" Date: Fri, 13 Feb 2026 13:01:34 +0100 Subject: Add subtotal to generated pdf --- src/lib/generate.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/lib/generate.ts') 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 { 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", () => { -- cgit v1.3.1