F-INV350
Invoice line '…' with lineExtensionAmount (…) must equal Price.PriceAmount (…) * InvoicedQuantity (…) div Invoice.PricingExchangeRate.CalculationRate (when '../cac:PricingExchangeRate' is present with MathematicOperatorCode = 'divide') +/- 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 $Divide) and (((xs:double(cbc:LineExtensionAmount) < (xs:double($calculatedTotalUnitCodeEqual) div xs:double(../cac:PricingExchangeRate/cbc:CalculationRate)) - 01.00)) or (xs:double(cbc:LineExtensionAmount) > ((xs:double($calculatedTotalUnitCodeEqual) div xs:double(../cac:PricingExchangeRate/cbc:CalculationRate)) + 01.00)))
Checked with Denmark OIOUBL 2.1 Invoice