Added TotalAmounts

This commit is contained in:
dankito 2024-11-25 17:28:29 +01:00
parent f1a364866c
commit 23ad5c6945
2 changed files with 58 additions and 1 deletions

View File

@ -18,6 +18,14 @@ class Invoice(
val buyerReference: String? = null,
val amountAdjustments: AmountAdjustments? = null,
/**
* The total amounts of the invoice.
*
* For outgoing invoices: You don't have to calculate them, we do this for you. This ensures that all total amounts
* are in accordance to other data of the invoice like the invoice item amounts and amount adjustments.
*/
var totalAmounts: TotalAmounts? = null
) {
override fun toString() = "$invoicingDate $invoiceNumber to $recipient"
override fun toString() = "$invoicingDate $invoiceNumber to $recipient ${totalAmounts?.duePayableAmount?.let { " (${it.toPlainString()})" } ?: ""}"
}

View File

@ -0,0 +1,49 @@
package net.codinux.invoicing.model
import java.math.BigDecimal
class TotalAmounts(
/**
* Gesamtbetrag einer einzelnen Rechnungsposition.
*/
val lineTotalAmount: BigDecimal,
val chargeTotalAmount: BigDecimal = BigDecimal.ZERO,
/**
* Gesamtbetrag aller gewährten Rabatte, Abzüge oder Nachlässe.
*/
val allowanceTotalAmount: BigDecimal = BigDecimal.ZERO,
/**
* Der Gesamtbetrag, der als Grundlage für die Steuerberechnung dient, nach Abzug von Rabatten (Allowance) und vor
* Hinzufügen der Steuerbeträge.
*/
val taxBasisTotalAmount: BigDecimal,
/**
* Die Gesamtsumme der auf der Rechnung anfallenden Steuern. Dies umfasst in der Regel alle Steuerarten, die auf den
* Tax Basis Total Amount angewendet werden (z. B. Mehrwertsteuer oder Umsatzsteuer).
*/
val taxTotalAmount: BigDecimal,
/**
* Der Gesamtbetrag der Rechnung nach Berücksichtigung aller Kosten, Abzüge und Steuern. Dies ist der Betrag, der
* vor eventuellen Vorauszahlungen oder Gutschriften fällig wäre.
*/
val grandTotalAmount: BigDecimal,
/**
* Der Betrag, der bereits im Voraus bezahlt wurde. Dieser Betrag wird vom Grand Total Amount abgezogen, um den
* verbleibenden Zahlungsbetrag zu ermitteln.
*/
val totalPrepaidAmount: BigDecimal,
/**
* Der noch zu zahlende Betrag, den der Kunde begleichen muss. Er ergibt sich aus dem Grand Total Amount abzüglich
* des Total Prepaid Amount und eventueller weiterer Gutschriften oder Anpassungen.
*/
val duePayableAmount: BigDecimal
) {
override fun toString() = "${duePayableAmount.toPlainString()} (net: ${taxBasisTotalAmount.toPlainString()}, tax: ${taxTotalAmount.toPlainString()})"
}