fix(compliance): Improve compliance

This commit is contained in:
2025-05-26 10:17:50 +00:00
parent 113ae22c42
commit e7c3a774a3
26 changed files with 2435 additions and 2010 deletions

View File

@ -19,7 +19,7 @@ export class UBLEncoder extends UBLBaseEncoder {
const doc = new DOMParser().parseFromString(xmlString, 'application/xml');
// Add common document elements
this.addCommonElements(doc, creditNote, UBLDocumentType.CREDIT_NOTE);
this.addCommonElements(doc, creditNote as unknown as TInvoice, UBLDocumentType.CREDIT_NOTE);
// Add credit note specific data
this.addCreditNoteSpecificData(doc, creditNote);
@ -39,7 +39,7 @@ export class UBLEncoder extends UBLBaseEncoder {
const doc = new DOMParser().parseFromString(xmlString, 'application/xml');
// Add common document elements
this.addCommonElements(doc, debitNote, UBLDocumentType.INVOICE);
this.addCommonElements(doc, debitNote as unknown as TInvoice, UBLDocumentType.INVOICE);
// Add invoice specific data
this.addInvoiceSpecificData(doc, debitNote);
@ -72,9 +72,10 @@ export class UBLEncoder extends UBLBaseEncoder {
// Issue Date
this.appendElement(doc, root, 'cbc:IssueDate', this.formatDate(invoice.date));
// Due Date
const dueDate = new Date(invoice.date);
dueDate.setDate(dueDate.getDate() + invoice.dueInDays);
// Due Date - ensure invoice.date is a valid timestamp
const issueTimestamp = typeof invoice.date === 'number' ? invoice.date : Date.now();
const dueDate = new Date(issueTimestamp);
dueDate.setDate(dueDate.getDate() + (invoice.dueInDays || 30));
this.appendElement(doc, root, 'cbc:DueDate', this.formatDate(dueDate.getTime()));
// Document Type Code
@ -258,9 +259,10 @@ export class UBLEncoder extends UBLBaseEncoder {
// Payment means code - default to credit transfer
this.appendElement(doc, paymentMeansNode, 'cbc:PaymentMeansCode', '30');
// Payment due date
const dueDate = new Date(invoice.date);
dueDate.setDate(dueDate.getDate() + invoice.dueInDays);
// Payment due date - ensure invoice.date is a valid timestamp
const issueTimestamp = typeof invoice.date === 'number' ? invoice.date : Date.now();
const dueDate = new Date(issueTimestamp);
dueDate.setDate(dueDate.getDate() + (invoice.dueInDays || 30));
this.appendElement(doc, paymentMeansNode, 'cbc:PaymentDueDate', this.formatDate(dueDate.getTime()));
// Add payment channel code if available