@fin.cx/einvoice
Version:
A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.
48 lines • 2.57 kB
JavaScript
import { BaseEncoder } from '../base/base.encoder.js';
import { CII_NAMESPACES, CIIProfile } from './cii.types.js';
/**
* Base encoder for CII-based invoice formats
*/
export class CIIBaseEncoder extends BaseEncoder {
constructor() {
super(...arguments);
this.profile = CIIProfile.EN16931;
}
/**
* Sets the CII profile to use for encoding
* @param profile CII profile
*/
setProfile(profile) {
this.profile = profile;
}
/**
* Encodes a TInvoice object into CII XML
* @param invoice TInvoice object to encode
* @returns CII XML string
*/
async encode(invoice) {
// TInvoice is always an invoice, treat it as debit note for encoding
return this.encodeDebitNote(invoice);
}
/**
* Creates the XML declaration and root element
* @returns XML string with declaration and root element
*/
createXmlRoot() {
return `<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:rsm="${CII_NAMESPACES.RSM}"
xmlns:ram="${CII_NAMESPACES.RAM}"
xmlns:udt="${CII_NAMESPACES.UDT}">
</rsm:CrossIndustryInvoice>`;
}
/**
* Formats a date as an ISO string (YYYY-MM-DD)
* @param timestamp Timestamp to format
* @returns Formatted date string
*/
formatDate(timestamp) {
const date = new Date(timestamp);
return date.toISOString().split('T')[0];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lpLmVuY29kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9mb3JtYXRzL2NpaS9jaWkuZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsY0FBZSxTQUFRLFdBQVc7SUFBeEQ7O1FBQ1ksWUFBTyxHQUFlLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUF1RHJELENBQUM7SUFyREM7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQW1CO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQjtRQUNuQyxxRUFBcUU7UUFDckUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQWdDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBZ0JEOzs7T0FHRztJQUNPLGFBQWE7UUFDckIsT0FBTzt1Q0FDNEIsY0FBYyxDQUFDLEdBQUc7ZUFDMUMsY0FBYyxDQUFDLEdBQUc7ZUFDbEIsY0FBYyxDQUFDLEdBQUc7NEJBQ0wsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFVBQVUsQ0FBQyxTQUFpQjtRQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=