Include GST totals in the header

This commit is contained in:
Enrique Barcelli 2026-01-27 02:49:25 +08:00
parent 06ab27a128
commit f88357a7a0
Signed by: kikobar
GPG key ID: 006C13A68E25D3B7
2 changed files with 49 additions and 2 deletions

View file

@ -29,3 +29,4 @@ CustomizationID = '<cbc:CustomizationID>urn:peppol:pint:billing-1@sg-1</cbc:Cust
ProfileID = '<cbc:ProfileID>urn:peppol:pint:billing-1@sg-1</cbc:ProfileID>'
InvoiceTypeCode = '<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>'
PeppolID = 'SGUEN200212345Z'
CountryID = 'SG'

View file

@ -32,6 +32,8 @@ def extract_invoice(document):
businessPartner=invoice['response']['data'][0]['businessPartner']
summedLineAmount=invoice['response']['data'][0]['summedLineAmount']
totalTaxAmount=invoice['response']['data'][0]['grandTotalAmount']-summedLineAmount
url = ob_api_url+"InvoiceLine?_where=invoice='"+invoice['response']['data'][0]['id']+"'&_noActiveFilter=false&_sortBy=lineNo"
@ -72,10 +74,54 @@ def extract_invoice(document):
ubloutput = ubloutput+indentation+'<cac:AccountingSupplierParty>'+'\n'
ubloutput = ubloutput+indentation+indentation+'<cac:Party>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cbc:EndpointID schemeID="0195">'+PeppolID+'</cbc:EndpointID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PartyIdentification>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:ID schemeID="0035">5790000436071</cbc:ID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PartyIdentification>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PostalAddress>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cac:Country>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+indentation+'<cbc:IdentificationCode>'+CountryID+'</cbc:IdentificationCode>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'</cac:Country>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PostalAddress>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PartyLegalEntity>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:RegistrationName>'+invoice['response']['data'][0]['client$_identifier']+'</cbc:RegistrationName>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PartyLegalEntity>'+'\n'
ubloutput = ubloutput+indentation+indentation+'</cac:Party>'+'\n'
ubloutput = ubloutput+indentation+'</cac:AccountingSupplierParty>'+'\n'
ubloutput = ubloutput+indentation+'<cac:AccountingCustomerParty>'+'\n'
ubloutput = ubloutput+indentation+indentation+'<cac:Party>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cbc:EndpointID schemeID="0195">'+'XXXXXXXXXXXXXXXXX'+'</cbc:EndpointID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PartyIdentification>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:ID schemeID="0035">5790000436071</cbc:ID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PartyIdentification>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PostalAddress>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cac:Country>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+indentation+'<cbc:IdentificationCode>'+CountryID+'</cbc:IdentificationCode>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'</cac:Country>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PostalAddress>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:PartyLegalEntity>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:RegistrationName>'+invoice['response']['data'][0]['businessPartner$_identifier']+'</cbc:RegistrationName>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:PartyLegalEntity>'+'\n'
ubloutput = ubloutput+indentation+indentation+'</cac:Party>'+'\n'
ubloutput = ubloutput+indentation+'</cac:AccountingCustomerParty>'+'\n'
ubloutput = ubloutput+indentation+'<cac:TaxTotal>'+'\n'
ubloutput = ubloutput+indentation+indentation+'<cbc:TaxAmount currencyID="SGD">'+f"{totalTaxAmount:.2f}"+'</cbc:TaxAmount>'+'\n'
ubloutput = ubloutput+indentation+indentation+'<cac:TaxSubtotal>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cbc:TaxableAmount currencyID="SGD">'+f"{summedLineAmount:.2f}"+'</cbc:TaxableAmount>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cbc:TaxAmount currencyID="SGD">'+f"{totalTaxAmount:.2f}"+'</cbc:TaxAmount>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'<cac:TaxCategory>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:ID>SR</cbc:ID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cbc:Percent>'+gst_rate+'</cbc:Percent>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'<cac:TaxScheme>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+indentation+'<cbc:ID>GST</cbc:ID>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+indentation+'</cac:TaxScheme>'+'\n'
ubloutput = ubloutput+indentation+indentation+indentation+'</cac:TaxCategory>'+'\n'
ubloutput = ubloutput+indentation+indentation+'</cac:TaxSubtotal>'+'\n'
ubloutput = ubloutput+indentation+'</cac:TaxTotal>'+'\n'
print(ubloutput)