xinvoice/ts/formats/cii/zugferd/zugferd.validator.ts

32 lines
887 B
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;
}
}