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