11import { XMLDocument } from "../parser" ;
22import { generateSignedXMLString } from "./signing" ;
3- import defaultSimplifiedTaxInvoice , { ZATCASimplifiedInvoiceLineItem , ZATCASimplifiedInvoiceProps } from "./templates/simplified_tax_invoice_template" ;
4-
5- export { ZATCASimplifiedInvoiceLineItem , ZATCASimplifiedInvoiceProps } ;
3+ import defaultSimplifiedTaxInvoice , {
4+ ZATCASimplifiedInvoiceLineItem ,
5+ ZATCASimplifiedInvoiceProps ,
6+ ZATCAInvoiceTypes ,
7+ ZATCAPaymentMethods
8+ } from "./templates/simplified_tax_invoice_template" ;
9+
10+ export { ZATCASimplifiedInvoiceLineItem , ZATCASimplifiedInvoiceProps , ZATCAInvoiceTypes , ZATCAPaymentMethods } ;
611export class ZATCASimplifiedTaxInvoice {
712
813 private invoice_xml : XMLDocument ;
@@ -29,8 +34,6 @@ export class ZATCASimplifiedTaxInvoice {
2934 }
3035
3136 private constructLineItemTotals = ( line_item : ZATCASimplifiedInvoiceLineItem ) => {
32-
33- // TODO: decimal fixing according to ZATCA
3437
3538 let line_item_total_discounts = 0 ;
3639 let line_item_total_taxes = 0 ;
@@ -121,32 +124,25 @@ export class ZATCASimplifiedTaxInvoice {
121124
122125 return {
123126 line_item_xml : {
124- // .. TODO
125127 "cbc:ID" : line_item . id ,
126- // .. TODO
127128 "cbc:InvoicedQuantity" : {
128129 "@_unitCode" : "PCE" ,
129130 "#text" : line_item . quantity
130131 } ,
131- // .. TODO
132132 "cbc:LineExtensionAmount" : {
133133 "@_currencyID" : "SAR" ,
134134 "#text" : line_item_total_tax_exclusive
135135 } ,
136- // .. TODO
137136 "cac:TaxTotal" : cacTaxTotal ,
138- // .. TODO
139137 "cac:Item" : {
140138 "cbc:Name" : line_item . name ,
141139 "cac:ClassifiedTaxCategory" : cacClassifiedTaxCategories
142140 } ,
143- // .. TODO
144141 "cac:Price" : {
145142 "cbc:PriceAmount" : {
146143 "@_currencyID" : "SAR" ,
147144 "#text" : line_item . tax_exclusive_price
148145 } ,
149- // .. TODO
150146 "cac:AllowanceCharge" : cacAllowanceCharges
151147 }
152148 } ,
@@ -161,7 +157,6 @@ export class ZATCASimplifiedTaxInvoice {
161157
162158 private constructLegalMonetaryTotal = ( tax_exclusive_subtotal : number , taxes_total : number ) => {
163159
164- // TODO: amount decimals according to ZATCA
165160 return {
166161 "cbc:LineExtensionAmount" : {
167162 "@_currencyID" : "SAR" ,
@@ -276,7 +271,7 @@ export class ZATCASimplifiedTaxInvoice {
276271
277272
278273 if ( props . cancelation ) {
279- // Invoice canceled. Make it a credit/debit note
274+ // Invoice canceled. Tunred into credit/debit note. Must have PaymentMeans
280275 // BR-KSA-17
281276 this . invoice_xml . set ( "Invoice/cac:PaymentMeans" , false , {
282277 "cbc:PaymentMeansCode" : props . cancelation . payment_method ,
0 commit comments