UNPKG

@openade/common

Version:

Common types, validators, and XML builders for Italian fiscal receipts

133 lines 3.29 kB
import { ISODate, ISODateTime, PartitaIVA } from './common'; export declare enum TipoOperazione { VENDITA = "V", RESO = "R", ANNULLO = "A", RETTIFICA = "C" } export interface VoceGiornale { numeroProgressivo: number; dataOra: ISODateTime; tipo: TipoOperazione; numeroDocumento?: string; importo: number; metodoPagamento?: string; note?: string; } export interface Journal { versione: string; contribuente: { partitaIVA: PartitaIVA; }; identificativoPEM: string; dataRiferimento: ISODate; voci: VoceGiornale[]; numeroVoci: number; importoTotaleGiornata: number; dataOraGenerazione: ISODateTime; } export declare enum TipoBlocco { SEME = "SEME", ATTIVAZIONE = "ATTIVAZIONE", SEDE = "SEDE", DC = "DC", CG = "CG", CC = "CC", CORR = "CORR" } export interface IntestazioneBlocco { hashBloccoPrec: string; hashDoc?: string; } export interface SemeBlocco { tipoBlocco: TipoBlocco.SEME; intestazione: IntestazioneBlocco; corpo: { cau: string; codSoluzione: string; semeAttivazione: string; }; } export interface AttivazioneBlocco { tipoBlocco: TipoBlocco.ATTIVAZIONE; intestazione: IntestazioneBlocco; corpo: { esercente: { partitaIVA: PartitaIVA; anagrafica: { denominazione: string; nome?: never; cognome?: never; } | { denominazione?: never; nome: string; cognome: string; }; }; tipologiaPEM: 'AP' | 'SP' | 'TM' | 'PV'; }; } export interface IndirizzoPtoVendita { indirizzo: string; nCivico: string; cap: string; comune: string; provincia: string; nazione: string; tipoSede: '0' | '1'; } export interface SedeBlocco { tipoBlocco: TipoBlocco.SEDE; intestazione: IntestazioneBlocco; corpo: { partitaIVA: PartitaIVA; sedePtoVendita: IndirizzoPtoVendita; }; } export interface DcBlocco { tipoBlocco: TipoBlocco.DC; intestazione: IntestazioneBlocco; corpo: { numeroEmissione: number; dataOraEmissione: ISODateTime; }; } export interface CgBlocco { tipoBlocco: TipoBlocco.CG; intestazione: IntestazioneBlocco; corpo: { dataOraCambioGiornata: ISODateTime; }; } export interface CcBlocco { tipoBlocco: TipoBlocco.CC; intestazione: IntestazioneBlocco; corpo: { dataOraChiusura: ISODateTime; totaleDocumenti: number; importoTotale: number; }; } export interface CorrBlocco { tipoBlocco: TipoBlocco.CORR; intestazione: IntestazioneBlocco; corpo: { hashCorrispettivi: string; dataRiferimento: ISODate; }; } export type BloccoJournal = SemeBlocco | AttivazioneBlocco | SedeBlocco | DcBlocco | CgBlocco | CcBlocco | CorrBlocco; export interface JournalCompleto { versione: string; intestazione: { dataOraApertura: ISODateTime; progressivo: number; versionePEM: { versione: number; sottoVersione: number; patch: string; }; }; blocchi: BloccoJournal[]; } //# sourceMappingURL=journal.d.ts.map