receipt_engine library

Motore di calcolo per scontrini fiscali.

Logica pura: nessuna dipendenza da Flutter, da un database o da I/O. È questo che rende il pacchetto testabile in millisecondi e riutilizzabile da un'app mobile, da un backend o da un tool a riga di comando.

Classes

AmountDiscount
Sconto espresso come importo fisso.
Discount
Sconto applicabile a una riga o all'intero documento.
DiscountAllocator
Distribuisce lo sconto di documento fra gli importi che lo compongono.
ItalianMoneyFormatter
Formato italiano: virgola come separatore decimale, simbolo in coda.
Money
Importo monetario rappresentato in centesimi.
MoneyFormatter
Formattazione degli importi.
Payment
Un importo versato con un mezzo di pagamento.
PaymentMethod
Mezzo di pagamento.
PercentageDiscount
Sconto espresso in percentuale.
PlainMoneyFormatter
Formato neutro per log e messaggi di errore.
ProportionalDiscountAllocator
Ripartizione proporzionale al peso di ciascun importo.
Receipt
Scontrino chiuso e immutabile.
ReceiptBuilder
Costruisce uno scontrino passo dopo passo e lo chiude in un Receipt immutabile.
ReceiptJson
Traduzione fra i documenti del dominio e mappe JSON.
ReceiptLine
Riga di uno scontrino.
ReturnBuilder
Costruisce un documento di reso a partire da uno scontrino chiuso.
ReturnLine
Riga di un documento di reso: una riga dello scontrino originale, resa in tutto o in parte.
ReturnReceipt
Documento di reso collegato a uno scontrino.
VatBreakdown
Scomposizione di un importo lordo in imponibile e imposta.
VatCalculator
Calcolo dell'IVA per scorporo.
VatRate
Aliquota IVA.
VatSummaryCalculator
Costruisce il riepilogo IVA di un documento.

Typedefs

DocumentTotals = ({List<Money> netLineTotals, List<VatBreakdown> vatSummary})
Esito del calcolo di un documento.
RatedAmount = ({Money amount, VatRate rate})
Un importo con l'aliquota a cui appartiene.

Exceptions / Errors

ChangeNotAvailableError
Errore sollevato quando il resto dovrebbe uscire da un pagamento che non dà resto.
ExcessiveReturnError
Errore sollevato quando si tenta di rendere più di quanto venduto.
InsufficientPaymentError
Errore sollevato quando l'incasso non copre il totale.
ReceiptClosedError
Errore sollevato quando si opera su un documento già chiuso.