feat(orders-pdf): without 'Uplatnit DPH' hide VAT columns, total reads 'Celkem bez DPH'
Applies to both the issued-order (PO) PDF and the order-confirmation PDF: when apply_vat is off the %DPH and DPH columns are dropped entirely (widths redistributed) instead of printing 0% / 0,00, the redundant Mezisoucet row is omitted, and the grand total is labeled 'Celkem bez DPH' / 'Total excl. VAT'. The per-line DPH cell already contained only the line VAT (never netto+VAT) - now pinned by a regression test (2x100 @ 21%: DPH cell 42,00, Celkem cell 242,00). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -507,6 +507,35 @@ describe("renderIssuedOrderHtml", () => {
|
||||
expect(html).not.toContain("alert(1)");
|
||||
});
|
||||
|
||||
it("with VAT: keeps the VAT columns and the DPH cell holds ONLY the line VAT", () => {
|
||||
const html = renderIssuedOrderHtml(order, items, null, null, "cs", issuer);
|
||||
expect(html).toContain("%DPH");
|
||||
expect(html).toContain(">DPH<");
|
||||
// 2 × 100 @ 21 %: DPH cell = 42,00 (VAT only), Celkem cell = 242,00.
|
||||
expect(html).toContain('<td class="right">42,00</td>');
|
||||
expect(html).toContain('<td class="right total-cell">242,00</td>');
|
||||
expect(html).not.toContain("Celkem bez DPH");
|
||||
});
|
||||
|
||||
it("without VAT: hides the VAT columns and labels the total 'Celkem bez DPH'", () => {
|
||||
const html = renderIssuedOrderHtml(
|
||||
{ ...order, apply_vat: false },
|
||||
items,
|
||||
null,
|
||||
null,
|
||||
"cs",
|
||||
issuer,
|
||||
);
|
||||
expect(html).not.toContain("%DPH");
|
||||
expect(html).not.toContain(">DPH<");
|
||||
// No per-line VAT cell, line total = netto.
|
||||
expect(html).not.toContain('<td class="right">42,00</td>');
|
||||
expect(html).toContain('<td class="right total-cell">200,00</td>');
|
||||
expect(html).toContain("Celkem bez DPH");
|
||||
// The subtotal detail row is dropped (it would duplicate the grand total).
|
||||
expect(html).not.toContain("Mezisoučet");
|
||||
});
|
||||
|
||||
it("footer shows the logged-in user's name, no e-mail, no Schválil column", () => {
|
||||
const html = renderIssuedOrderHtml(order, items, null, null, "cs", issuer);
|
||||
// Footer: Vystavil <name> from authData. No e-mail line.
|
||||
|
||||
Reference in New Issue
Block a user