- Shipped
- 11 novembre 2026 alle ore 10:41 UTC
- Author
- Kamo
- Commit
- b05a5db
RecordInvoiceController è la porta della scheda Fattura per qualsiasi record - elenco, Crea fattura, leggi, PDF, Registra pagamento, Void Fattura, consegna, invio, collegamento - con solo i diritti, l'id, la chiamata di creazione e il controllo della proprietà lasciati a ServiceJobInvoiceController (stessi percorsi, stessi diritti) diventa uno; OrderInvoiceController sotto **************** è l'altro (Visualizza / Crea e modifica ordini). Void Invoice (POST .../{invoice}/void, il diritto di gestione del record, un motivo richiesto): InvoicingService rifiuta un Fattura con i pagamenti; in caso di successo ogni collegamento cliente viene timbrato terminato qui, come già faceva il void del relè. Email Ricevuta: una volta che una fattura è Pagato, send() e-mail commerce.invoice_receipt (importo pagato, data di pagamento, mai 'importo 'dovuto') invece di rifiutare, con il PDF e un nuovo link; la riga del link registra email_kind INVOICE o RECEIVE e Sent La nota del membro è ora HTML-escaped in entrambe le e-mail (il renderer non scappa nulla). I pagamenti degli ordini al dettaglio sono quelli dell'ordine: Il pagamento della fattura di un ordine viene rifiutato (409, 'use Take Payment') e OrderInvoiceSettlement chiede a InvoicingService di saldare la fattura dopo Take Payment e di annullarla dopo Cancel (in **************** best-effort), e quando la scheda Fattura dell'ordine si apre su un ordine pagato o annullato.
