@fin.cx/einvoice
Version:
A TypeScript module for creating, manipulating, and embedding XML data within PDF files specifically tailored for electronic invoice (einvoice) packages.
32 lines (28 loc) • 887 B
text/typescript
import { CIIBaseValidator } from '../cii.validator.js';
/**
* Validator for ZUGFeRD invoice format
*/
export class ZUGFeRDValidator extends CIIBaseValidator {
/**
* Validates ZUGFeRD XML structure
* @returns True if structure validation passed
*/
protected validateStructure(): boolean {
// Check for required elements in ZUGFeRD structure
const invoiceId = this.getText('//rsm:ExchangedDocument/ram:ID');
if (!invoiceId) {
this.addError('ZUGFERD-STRUCT-1', 'Invoice ID is required', '//rsm:ExchangedDocument/ram:ID');
return false;
}
return true;
}
/**
* Validates ZUGFeRD XML against business rules
* @returns True if business validation passed
*/
protected validateBusinessRules(): boolean {
// Implement ZUGFeRD-specific business rules
// For now, we'll just use the base CII validation
return true;
}
}