read total + payment-data
This commit is contained in:
parent
dbd4948e67
commit
2af92a9a6d
2 changed files with 50 additions and 0 deletions
39
document.py
39
document.py
|
@ -543,6 +543,45 @@ class Incoming(metaclass=PoolMeta):
|
|||
if taxes:
|
||||
self.parsed_data['payment']['taxes'] = taxes
|
||||
|
||||
xpath_payterms = xpath_payment + ['ram:SpecifiedTradePaymentTerms']
|
||||
xpath_discount = ['ram:ApplicableTradePaymentDiscountTerms']
|
||||
pay_terms = self._readxml_read_listdata(xmltree, xpath_payterms, [], [
|
||||
('ram:Description', 'description'),
|
||||
(['ram:DueDateDateTime', 'udt:DateTimeString'],
|
||||
'duedate', date),
|
||||
('ram:DirectDebitMandateID', 'mandat_id'),
|
||||
('ram:PartialPaymentAmount', 'amount', Decimal),
|
||||
(xpath_discount + ['ram:BasisDateTime', 'udt:DateTimeString'],
|
||||
'discount_date', date),
|
||||
(xpath_discount + ['ram:BasisPeriodMeasure'],
|
||||
'discount_measure', Decimal),
|
||||
(xpath_discount + ['ram:BasisAmount'],
|
||||
'discount_base', Decimal),
|
||||
(xpath_discount + ['ram:CalculationPercent'],
|
||||
'discount_perc', Decimal),
|
||||
(xpath_discount + ['ram:ActualDiscountAmount'],
|
||||
'discount_amount', Decimal)
|
||||
])
|
||||
if pay_terms:
|
||||
self.parsed_data['payment']['terms'] = pay_terms
|
||||
|
||||
# total
|
||||
xpath_total = xpath_payment + [
|
||||
'ram:SpecifiedTradeSettlementHeaderMonetarySummation']
|
||||
total = self._readxml_read_listdata(xmltree, xpath_total, [], [
|
||||
('ram:LineTotalAmount', 'amount', Decimal),
|
||||
('ram:ChargeTotalAmount', 'charge', Decimal),
|
||||
('ram:AllowanceTotalAmount', 'allowance', Decimal),
|
||||
('ram:TaxBasisTotalAmount', 'taxbase', Decimal),
|
||||
('ram:TaxTotalAmount', 'taxtotal', Decimal),
|
||||
('ram:RoundingAmount', 'rounding', Decimal),
|
||||
('ram:GrandTotalAmount', 'grand', Decimal),
|
||||
('ram:TotalPrepaidAmount', 'prepaid', Decimal),
|
||||
('ram:DuePayableAmount', 'duepayable', Decimal),
|
||||
])
|
||||
if total:
|
||||
self.parsed_data['total'] = total[0]
|
||||
|
||||
def _readxml_getinvoiceline(self, invoice, line_data):
|
||||
""" create invoice line in memory
|
||||
|
||||
|
|
|
@ -220,10 +220,21 @@
|
|||
<ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:SpecifiedTradePaymentTerms>
|
||||
<ram:Description>Payment description</ram:Description>
|
||||
<ram:DirectDebitMandateID>mandat id</ram:DirectDebitMandateID>
|
||||
<ram:DueDateDateTime>
|
||||
<udt:DateTimeString format="102">20240701</udt:DateTimeString>
|
||||
</ram:DueDateDateTime>
|
||||
<ram:PartialPaymentAmount currencyID="EUR">3355.50</ram:PartialPaymentAmount>
|
||||
<ram:ApplicableTradePaymentDiscountTerms>
|
||||
<ram:BasisDateTime>
|
||||
<udt:DateTimeString format="102">20240702</udt:DateTimeString>
|
||||
</ram:BasisDateTime>
|
||||
<ram:BasisPeriodMeasure unitCode="C62">10.0</ram:BasisPeriodMeasure>
|
||||
<ram:BasisAmount currencyID="EUR">3355.0</ram:BasisAmount>
|
||||
<ram:CalculationPercent>2.0</ram:CalculationPercent>
|
||||
<ram:ActualDiscountAmount currencyID="EUR">70.0</ram:ActualDiscountAmount>
|
||||
</ram:ApplicableTradePaymentDiscountTerms>
|
||||
</ram:SpecifiedTradePaymentTerms>
|
||||
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||
<ram:LineTotalAmount currencyID="EUR">1350.00</ram:LineTotalAmount>
|
||||
|
|
Loading…
Reference in a new issue