Nachkommastellen des Umsatzsteuerbetrags in Buchungswährung begrenzen

Fehler BR-DEC-15 EN 16931

Die zulässige Höchstzahl an Dezimalstellen für den Code für die Rechnungswährung (BT-111) beträgt 2.

Pflichtregel: Solange sie verletzt ist, ist die Rechnung ungültig und wird von Validatoren abgewiesen.
Was nicht stimmt

Wenn TaxCurrencyCode angegeben ist und TaxTotalAmount in dieser Währung ausgewiesen wird, enthält der Betrag mehr als zwei Nachkommastellen.

Was die Regel bedeutet

Der Umsatzsteuerbetrag in Buchungswährung darf höchstens zwei Nachkommastellen haben.

Betroffene Felder BT-111
Bitte begrenzen Sie die Nachkommastellen des Umsatzsteuerbetrags in Buchungswährung

TaxTotalAmount in Buchungswährung enthält mehr als zwei Nachkommastellen. Wenn TaxCurrencyCode angegeben ist, muss die Währung des Betrags dazu passen und der Betrag darf höchstens zwei Nachkommastellen haben.

Was ist zu tun?
  1. Prüfen Sie den Wert von TaxTotalAmount in Buchungswährung und den angegebenen TaxCurrencyCode.
  2. Stimmen Sie die Währung von TaxTotalAmount mit TaxCurrencyCode ab und begrenzen Sie den Betrag auf höchstens zwei Nachkommastellen.
  3. Prüfen Sie TaxTotalAmountInAccountingCurrency sowie die Aufrufe von SetTaxTotalInAccountingCurrency(...) oder SetTaxCurrencyExchange(...).
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
So sieht es aus
✗ Führt zur Meldung
<rsm:CrossIndustryInvoice>
  <rsm:SupplyChainTradeTransaction>
    <ram:ApplicableHeaderTradeSettlement>
      <ram:TaxCurrencyCode>USD</ram:TaxCurrencyCode>
      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
        <ram:TaxTotalAmount currencyID="USD">12.345</ram:TaxTotalAmount>
      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    </ram:ApplicableHeaderTradeSettlement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
✓ In Ordnung
<rsm:CrossIndustryInvoice>
  <rsm:SupplyChainTradeTransaction>
    <ram:ApplicableHeaderTradeSettlement>
      <ram:TaxCurrencyCode>USD</ram:TaxCurrencyCode>
      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
        <ram:TaxTotalAmount currencyID="USD">12.34</ram:TaxTotalAmount>
      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    </ram:ApplicableHeaderTradeSettlement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
In FactoorSharp prüfen
  • FacturXInvoice.TaxTotalAmountInAccountingCurrency (BT-111)
  • FacturXInvoice.SetTaxTotalInAccountingCurrency(taxTotalInAccountingCurrency, accountingCurrency) (BT-111)
  • FacturXInvoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency, accountingCurrency, conversionRate, conversionRateTimestamp) (taxTotalInAccountingCurrency: BT-111)
Technische Details

Der XPath erlaubt ein fehlendes TaxTotalAmount oder ein fehlendes TaxCurrencyCode. Wenn TaxCurrencyCode vorhanden ist, muss currencyID von TaxTotalAmount übereinstimmen und der Betrag auf zwei Dezimalstellen gerundet sein.

Wo die Regel greift

Die Regel gilt für TaxTotalAmount in SpecifiedTradeSettlementHeaderMonetarySummation. Sie prüft den Betrag anhand von TaxCurrencyCode, wenn diese Buchungswährung angegeben ist.

Originalmeldung aus dem Schematron
The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.
Kontext (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Prüfausdruck (assert/@test)
not(ram:TaxTotalAmount) or ram:TaxTotalAmount[ ( @currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100 ) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:TaxCurrencyCode) ]