F-INV349
Invoice line '…' with lineExtensionAmount (…) must equal Price.PriceAmount (…) * InvoicedQuantity * Invoice.PricingExchangeRate.CalculationRate (when '../cac:PricingExchangeRate' is present with MathematicOperatorCode = 'multiply') +/- 1.00.
What the rule checks
As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.
doc:Invoice/cac:InvoiceLine
$unitCodeNeither and ($notFree and not($noFactorRate) and not($noExchangeRate) and not($CRandMOC) and $Multiply) and ((xs:double(cbc:LineExtensionAmount) < (xs:double($calculatedTotalUnitCodeEqual) * xs:double(../cac:PricingExchangeRate/cbc:CalculationRate) - 01.00)) or (xs:double(cbc:LineExtensionAmount) > (xs:double($calculatedTotalUnitCodeEqual) * xs:double(../cac:PricingExchangeRate/cbc:CalculationRate) + 01.00)))
Checked with Denmark OIOUBL 2.1 Invoice