toXml method
Converts the InvoiceLine instance into XML format using the XmlBuilder.
The method generates the XML representation of the invoice line, including the item details, price, tax, and other related information. This is typically used for generating XML-based invoices.
id is the unique identifier for this invoice line.
Implementation
void toXml(XmlBuilder builder, int id) {
builder.element('cbc:ID', nest: id);
builder.element('cbc:InvoicedQuantity',
attributes: {'unitCode': 'PCE'}, nest: quantity);
builder.element('cbc:LineExtensionAmount',
attributes: {'currencyID': 'SAR'}, nest: total);
builder.element('cac:TaxTotal', nest: () {
builder.element('cbc:TaxAmount',
attributes: {'currencyID': 'SAR'}, nest: tax.amount);
builder.element('cbc:RoundingAmount',
attributes: {'currencyID': 'SAR'},
nest: (num.parse(tax.taxableAmount) + num.parse(tax.amount))
.toStringAsFixed(2));
});
builder.element('cac:Item', nest: () {
builder.element('cbc:Name', nest: name);
builder.element('cac:ClassifiedTaxCategory', nest: () {
builder.element('cbc:ID', nest: 'S');
builder.element('cbc:Percent', nest: tax.percent);
builder.element('cac:TaxScheme', nest: () {
builder.element('cbc:ID', nest: 'VAT');
});
});
});
builder.element('cac:Price', nest: () {
builder.element('cbc:PriceAmount',
nest: price, attributes: {'currencyID': tax.currency});
});
}