From 2aa5ccea1de786a96eb242f0c48d43ec5a80747a Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Sun, 8 Mar 2026 01:22:03 +0100 Subject: [PATCH] feat: update Receipt data structure to remove items and include packName, discount, and amount --- .../src/components/acquisto_receipt.tsx | 53 +++++++------------ .../server/controllers/servizio.controller.ts | 12 ++--- 2 files changed, 25 insertions(+), 40 deletions(-) diff --git a/apps/infoalloggi/src/components/acquisto_receipt.tsx b/apps/infoalloggi/src/components/acquisto_receipt.tsx index bdc3ee5..34027d0 100644 --- a/apps/infoalloggi/src/components/acquisto_receipt.tsx +++ b/apps/infoalloggi/src/components/acquisto_receipt.tsx @@ -71,21 +71,18 @@ export function ReceiptGenerator({ ); } -interface Item { - description: string; - price: number; - discount: number; -} - -export interface PurchaseData { +export type PurchaseData = { ordineId: OrdiniOrdineId; date: Date; clienteNome: string; clienteIndirizzo: string; paymentMethod: string; - items: Item[]; -} + packName: string; + sconto: number; + + amount_cent: number; +}; interface ReceiptProps { data: PurchaseData; @@ -97,10 +94,6 @@ function Receipt({ data }: ReceiptProps) { const companyAddress = "Via Beata Giovanna 1\nBassano del Grappa (VI) 36061\nItalia"; - const total = data.items.reduce( - (acc, item) => acc + item.price * (1 - item.discount), - 0, - ); const note = "La presente è non costituisce ricevuta o fattura fiscale ai sensi dell'Art.21, DPR 633/72.\nSeguirà fattura elettronica direttamente al tuo indirizzo di posta."; const footer = @@ -158,28 +151,22 @@ function Receipt({ data }: ReceiptProps) { Descrizione - Prezzo - Sconto + + Sconto applicato Importo - {data.items.map((item) => ( - - {item.description} - - {formatCurrency(item.price)} - - - {item.discount > 0 - ? `-${(item.discount * 100).toFixed(0)}%` - : ""} - - - {formatCurrency(item.price * (1 - item.discount))} - - - ))} + + {data.packName} + + + {data.sconto > 0 && `${data.sconto}%`} + + + {formatCurrency(data.amount_cent / 100)} + + @@ -187,11 +174,11 @@ function Receipt({ data }: ReceiptProps) {
Totale: - {formatCurrency(total)} + {formatCurrency(data.amount_cent / 100)}
di cui IVA (22%): - {formatCurrency(total * 0.22)} + {formatCurrency((data.amount_cent / 100) * 0.22)}
diff --git a/apps/infoalloggi/src/server/controllers/servizio.controller.ts b/apps/infoalloggi/src/server/controllers/servizio.controller.ts index 4960577..9a3521a 100644 --- a/apps/infoalloggi/src/server/controllers/servizio.controller.ts +++ b/apps/infoalloggi/src/server/controllers/servizio.controller.ts @@ -1552,13 +1552,11 @@ export const getOrdineRicevutaData = async ({ clienteIndirizzo: `${anagrafica.via_residenza} ${anagrafica.civico_residenza}\n${anagrafica.comune_residenza} (${anagrafica.provincia_residenza}) ${anagrafica.cap_residenza}\n${anagrafica.nazione_residenza}`, clienteNome: anagrafica.username, date: data.created_at, - items: [ - { - description: data.nome_it, - discount: data.sconto / 100, // Convert percentage to decimal - price: data.amount_cent / 100, // Convert cents to euros - }, - ], + + packName: data.nome_it, + sconto: data.sconto, + amount_cent: data.amount_cent, + ordineId: data.ordine_id, paymentMethod: data.paymentmethod, } as PurchaseData;