fix(compliance): improve compliance

This commit is contained in:
2025-05-27 12:23:50 +00:00
parent 206bef0619
commit be123e41c9
22 changed files with 725 additions and 793 deletions

View File

@ -556,6 +556,18 @@ export class UBLEncoder extends UBLBaseEncoder {
private addBusinessReferencesToUBL(doc: Document, root: Element, businessReferences?: any): void {
if (!businessReferences) return;
// Add BuyerReference
if (businessReferences.buyerReference && !root.getElementsByTagName('cbc:BuyerReference')[0]) {
const buyerRef = doc.createElement('cbc:BuyerReference');
buyerRef.textContent = businessReferences.buyerReference;
// Insert after DocumentCurrencyCode
const currencyCode = root.getElementsByTagName('cbc:DocumentCurrencyCode')[0];
if (currencyCode && currencyCode.parentNode) {
currencyCode.parentNode.insertBefore(buyerRef, currencyCode.nextSibling);
}
}
// Add OrderReference
if (businessReferences.orderReference && !root.getElementsByTagName('cac:OrderReference')[0]) {
const orderRef = doc.createElement('cac:OrderReference');
@ -563,10 +575,12 @@ export class UBLEncoder extends UBLBaseEncoder {
orderId.textContent = businessReferences.orderReference;
orderRef.appendChild(orderId);
// Insert after DocumentCurrencyCode
// Insert after BuyerReference or DocumentCurrencyCode
const buyerRef = root.getElementsByTagName('cbc:BuyerReference')[0];
const currencyCode = root.getElementsByTagName('cbc:DocumentCurrencyCode')[0];
if (currencyCode && currencyCode.parentNode) {
currencyCode.parentNode.insertBefore(orderRef, currencyCode.nextSibling);
const insertAfter = buyerRef || currencyCode;
if (insertAfter && insertAfter.parentNode) {
insertAfter.parentNode.insertBefore(orderRef, insertAfter.nextSibling);
}
}