@openade/fe
Version:
Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)
60 lines • 1.93 kB
TypeScript
import type { FatturaElettronica } from '@openade/common';
export interface InvoiceBuilderConfig {
supplierVatNumber: string;
supplierBusinessName: string;
supplierAddress: {
indirizzo: string;
cap: string;
comune: string;
provincia?: string;
nazione: string;
};
taxRegime?: string;
transmissionCountry?: string;
transmissionCode?: string;
}
export interface InvoiceLine {
description: string;
quantity?: number;
unitPrice: number;
vatRate: number;
vatNature?: 'N1' | 'N2' | 'N3' | 'N4' | 'N5' | 'N6' | 'N7';
}
export interface InvoiceData {
customer: {
vatNumber?: string;
fiscalCode?: string;
businessName?: string;
firstName?: string;
lastName?: string;
address: {
indirizzo: string;
cap: string;
comune: string;
provincia?: string;
nazione: string;
};
sdiCode?: string;
pec?: string;
};
invoiceNumber: string;
invoiceDate: string;
documentType?: 'TD01' | 'TD02' | 'TD03' | 'TD04' | 'TD05' | 'TD06' | 'TD16' | 'TD17' | 'TD18' | 'TD19' | 'TD20' | 'TD21' | 'TD22' | 'TD23' | 'TD24' | 'TD25' | 'TD26' | 'TD27' | 'TD28';
lines: InvoiceLine[];
paymentMethod?: 'MP01' | 'MP02' | 'MP03' | 'MP04' | 'MP05' | 'MP08' | 'MP12' | 'MP13' | 'MP14' | 'MP15' | 'MP16' | 'MP17' | 'MP18' | 'MP19' | 'MP20' | 'MP21' | 'MP22' | 'MP23';
paymentAmount?: number;
notes?: string[];
}
export declare class InvoiceBuilder {
private config;
private progressiveCounter;
constructor(config: InvoiceBuilderConfig);
build(data: InvoiceData): FatturaElettronica;
private buildHeader;
private buildBody;
private calculateVatSummary;
generateFilename(): string;
resetCounter(): void;
getCurrentProgressive(): number;
}
//# sourceMappingURL=invoice.builder.d.ts.map