sunat-engine-nest 2.0.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/gre/sunat-gre.client.d.ts +1 -0
- package/dist/gre/sunat-gre.client.js +2 -1
- package/dist/gre/sunat-gre.client.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/ose/ose.client.d.ts +20 -2
- package/dist/ose/ose.client.js +307 -27
- package/dist/ose/ose.client.js.map +1 -1
- package/dist/signer/xml-signer.service.js +4 -1
- package/dist/signer/xml-signer.service.js.map +1 -1
- package/dist/soap/sunat-soap.client.d.ts +2 -0
- package/dist/soap/sunat-soap.client.js.map +1 -1
- package/dist/sunat-engine.module.d.ts +4 -0
- package/dist/sunat-engine.module.js.map +1 -1
- package/dist/sunat-engine.service.d.ts +1 -0
- package/dist/sunat-engine.service.js +37 -13
- package/dist/sunat-engine.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/sunat.types.d.ts +9 -1
- package/dist/validation/document.validator.d.ts +5 -0
- package/dist/validation/document.validator.js +262 -0
- package/dist/validation/document.validator.js.map +1 -0
- package/dist/validation/invoice.validator.d.ts +3 -0
- package/dist/validation/invoice.validator.js +247 -28
- package/dist/validation/invoice.validator.js.map +1 -1
- package/dist/xml/common.builder.js +50 -19
- package/dist/xml/common.builder.js.map +1 -1
- package/dist/xml/despatch.builder.d.ts +1 -0
- package/dist/xml/despatch.builder.js +204 -12
- package/dist/xml/despatch.builder.js.map +1 -1
- package/dist/xml/invoice.builder.js +4 -1
- package/dist/xml/invoice.builder.js.map +1 -1
- package/dist/xml/namespaces.js +2 -2
- package/dist/xml/namespaces.js.map +1 -1
- package/dist/xml/summary.builder.js +16 -23
- package/dist/xml/summary.builder.js.map +1 -1
- package/dist/xml/voided.builder.js +5 -5
- package/dist/xml/voided.builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ export interface CompanySunat {
|
|
|
11
11
|
ruc: string;
|
|
12
12
|
razonSocial: string;
|
|
13
13
|
nombreComercial?: string;
|
|
14
|
+
nroMtc?: string;
|
|
14
15
|
address?: AddressSunat;
|
|
15
16
|
}
|
|
16
17
|
export interface ClientSunat {
|
|
@@ -140,11 +141,16 @@ export interface DespatchDocReferencia {
|
|
|
140
141
|
}
|
|
141
142
|
export interface DespatchPayload {
|
|
142
143
|
version?: string;
|
|
143
|
-
tipoDoc
|
|
144
|
+
tipoDoc?: string;
|
|
144
145
|
serie: string;
|
|
145
146
|
correlativo: string;
|
|
146
147
|
fechaEmision: string;
|
|
147
148
|
company: CompanySunat;
|
|
149
|
+
remitente?: {
|
|
150
|
+
tipoDoc: string;
|
|
151
|
+
numDoc: string;
|
|
152
|
+
rznSocial: string;
|
|
153
|
+
};
|
|
148
154
|
destinatario: {
|
|
149
155
|
tipoDoc: string;
|
|
150
156
|
numDoc: string;
|
|
@@ -265,6 +271,8 @@ export interface SunatResponse {
|
|
|
265
271
|
error?: {
|
|
266
272
|
code?: string | number;
|
|
267
273
|
message?: string;
|
|
274
|
+
rawCode?: string;
|
|
275
|
+
rawMessage?: string;
|
|
268
276
|
};
|
|
269
277
|
}
|
|
270
278
|
export interface EngineResponse {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SummaryPayload, VoidedPayload, DespatchPayload } from '../types/sunat.types';
|
|
2
|
+
export declare const MAX_LINEAS_RC = 500;
|
|
3
|
+
export declare function validateSummaryPayload(data: SummaryPayload): void;
|
|
4
|
+
export declare function validateVoidedPayload(data: VoidedPayload): void;
|
|
5
|
+
export declare function validateDespatchPayload(data: DespatchPayload): void;
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_LINEAS_RC = void 0;
|
|
4
|
+
exports.validateSummaryPayload = validateSummaryPayload;
|
|
5
|
+
exports.validateVoidedPayload = validateVoidedPayload;
|
|
6
|
+
exports.validateDespatchPayload = validateDespatchPayload;
|
|
7
|
+
const invoice_validator_1 = require("./invoice.validator");
|
|
8
|
+
const despatch_builder_1 = require("../xml/despatch.builder");
|
|
9
|
+
function addError(errors, field, msg) {
|
|
10
|
+
errors.push(`${field}: ${msg}`);
|
|
11
|
+
}
|
|
12
|
+
function isValidRuc(ruc) {
|
|
13
|
+
if (!/^\d{11}$/.test(ruc))
|
|
14
|
+
return false;
|
|
15
|
+
const digits = ruc.split('').map(Number);
|
|
16
|
+
const factors = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
|
|
17
|
+
const sum = factors.reduce((acc, f, i) => acc + f * digits[i], 0);
|
|
18
|
+
const remainder = sum % 11;
|
|
19
|
+
const checkDigit = remainder < 2 ? remainder : 11 - remainder;
|
|
20
|
+
return checkDigit === digits[10];
|
|
21
|
+
}
|
|
22
|
+
function isValidDate(isoDate) {
|
|
23
|
+
if (!isoDate)
|
|
24
|
+
return false;
|
|
25
|
+
return !isNaN(new Date(isoDate).getTime());
|
|
26
|
+
}
|
|
27
|
+
function isFutureDateOnly(isoDate) {
|
|
28
|
+
const payloadDay = new Date(isoDate).toISOString().slice(0, 10);
|
|
29
|
+
const todayDay = new Date().toISOString().slice(0, 10);
|
|
30
|
+
return payloadDay > todayDay;
|
|
31
|
+
}
|
|
32
|
+
const CATALOGO_01 = ['01', '03', '07', '08', '09'];
|
|
33
|
+
const CATALOGO_06 = ['0', '1', '4', '6', '7', 'A', 'B', 'C', 'D', 'E'];
|
|
34
|
+
const CATALOGO_19 = ['1', '3'];
|
|
35
|
+
exports.MAX_LINEAS_RC = 500;
|
|
36
|
+
const RE_SERIE_NRO = /^[A-Za-z]{1,2}\d{2,4}-\d{1,8}$/;
|
|
37
|
+
const RE_SERIE = /^[A-Za-z]{1,2}\d{2,4}$/;
|
|
38
|
+
const RE_CORRELATIVO = /^\d{1,8}$/;
|
|
39
|
+
const RE_CORRELATIVO_ARCHIVO = /^\d{1,3}$/;
|
|
40
|
+
const MAX_MOTIVO = 100;
|
|
41
|
+
function validateCompany(company, errors) {
|
|
42
|
+
if (!company) {
|
|
43
|
+
addError(errors, 'company', 'Datos del emisor son obligatorios');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!company.ruc || !isValidRuc(company.ruc)) {
|
|
47
|
+
addError(errors, 'company.ruc', `RUC emisor "${company.ruc}" inválido (debe ser 11 dígitos con dígito verificador válido)`);
|
|
48
|
+
}
|
|
49
|
+
if (!company.razonSocial || company.razonSocial.trim() === '') {
|
|
50
|
+
addError(errors, 'company.razonSocial', 'Razón social del emisor es obligatoria');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function hasTwoDecimals(value) {
|
|
54
|
+
return Math.abs(value * 100 - Math.round(value * 100)) < 1e-6;
|
|
55
|
+
}
|
|
56
|
+
function isNegative(value) {
|
|
57
|
+
return value < 0;
|
|
58
|
+
}
|
|
59
|
+
function validateSummaryPayload(data) {
|
|
60
|
+
const errors = [];
|
|
61
|
+
if (!data || typeof data !== 'object') {
|
|
62
|
+
throw new invoice_validator_1.InvoiceValidationError('Payload de Resumen Diario ausente', []);
|
|
63
|
+
}
|
|
64
|
+
if (!data.correlativo || !RE_CORRELATIVO_ARCHIVO.test(String(data.correlativo))) {
|
|
65
|
+
addError(errors, 'correlativo', `correlativo "${data.correlativo}" inválido: debe ser de 1 a 3 dígitos (el XML usa RC-AAAAMMDD-NNN)`);
|
|
66
|
+
}
|
|
67
|
+
if (!data.fecGeneracion || !isValidDate(data.fecGeneracion)) {
|
|
68
|
+
addError(errors, 'fecGeneracion', 'Fecha de generación obligatoria y en formato ISO válido');
|
|
69
|
+
}
|
|
70
|
+
else if (isFutureDateOnly(data.fecGeneracion)) {
|
|
71
|
+
addError(errors, 'fecGeneracion', 'Fecha de generación no puede ser futura');
|
|
72
|
+
}
|
|
73
|
+
if (!data.fecResumen || !isValidDate(data.fecResumen)) {
|
|
74
|
+
addError(errors, 'fecResumen', 'Fecha del resumen obligatoria y en formato ISO válido');
|
|
75
|
+
}
|
|
76
|
+
else if (isFutureDateOnly(data.fecResumen)) {
|
|
77
|
+
addError(errors, 'fecResumen', 'Fecha del resumen no puede ser futura');
|
|
78
|
+
}
|
|
79
|
+
validateCompany(data.company, errors);
|
|
80
|
+
if (!data.details || data.details.length === 0) {
|
|
81
|
+
addError(errors, 'details', 'El Resumen Diario debe tener al menos 1 línea');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
if (data.details.length > exports.MAX_LINEAS_RC) {
|
|
85
|
+
addError(errors, 'details', `El Resumen Diario admite máximo ${exports.MAX_LINEAS_RC} líneas (recibidas: ${data.details.length})`);
|
|
86
|
+
}
|
|
87
|
+
data.details.forEach((d, i) => {
|
|
88
|
+
const prefix = `details[${i}]`;
|
|
89
|
+
if (!d.tipoDoc || !CATALOGO_01.includes(d.tipoDoc)) {
|
|
90
|
+
addError(errors, `${prefix}.tipoDoc`, `tipoDoc "${d.tipoDoc}" inválido: el RC solo admite ${CATALOGO_01.join(', ')} (Catálogo N.° 01)`);
|
|
91
|
+
}
|
|
92
|
+
if (!d.serieNro || !RE_SERIE_NRO.test(String(d.serieNro))) {
|
|
93
|
+
addError(errors, `${prefix}.serieNro`, `serieNro "${d.serieNro}" inválido: debe ser SERIE-CORRELATIVO (ej: B001-00000001)`);
|
|
94
|
+
}
|
|
95
|
+
if (!d.estado || !CATALOGO_19.includes(d.estado)) {
|
|
96
|
+
addError(errors, `${prefix}.estado`, `estado "${d.estado}" inválido: debe ser 1 (adicionar) o 3 (anular) (Catálogo N.° 19)`);
|
|
97
|
+
}
|
|
98
|
+
if (!d.clienteTipo || !CATALOGO_06.includes(d.clienteTipo)) {
|
|
99
|
+
addError(errors, `${prefix}.clienteTipo`, `clienteTipo "${d.clienteTipo}" inválido (Catálogo N.° 06: ${CATALOGO_06.join(', ')})`);
|
|
100
|
+
}
|
|
101
|
+
if (d.clienteTipo === undefined || d.clienteNro === undefined || d.clienteNro === null || String(d.clienteNro).trim() === '') {
|
|
102
|
+
addError(errors, `${prefix}.clienteNro`, 'Número de documento del cliente es obligatorio');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
const nro = String(d.clienteNro);
|
|
106
|
+
if (d.clienteTipo === '6' && !/^\d{11}$/.test(nro)) {
|
|
107
|
+
addError(errors, `${prefix}.clienteNro`, `RUC del cliente debe tener 11 dígitos (recibido "${nro}")`);
|
|
108
|
+
}
|
|
109
|
+
if (d.clienteTipo === '1' && !/^\d{8}$/.test(nro)) {
|
|
110
|
+
addError(errors, `${prefix}.clienteNro`, `DNI del cliente debe tener 8 dígitos (recibido "${nro}")`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const importes = [
|
|
114
|
+
'total', 'mtoOperGravadas', 'mtoOperExoneradas',
|
|
115
|
+
'mtoOperInafectas', 'mtoOperGratuitas', 'mtoIGV',
|
|
116
|
+
];
|
|
117
|
+
for (const campo of importes) {
|
|
118
|
+
const v = d[campo];
|
|
119
|
+
if (v == null)
|
|
120
|
+
continue;
|
|
121
|
+
if (typeof v !== 'number' || Number.isNaN(v)) {
|
|
122
|
+
addError(errors, `${prefix}.${campo}`, `${campo} debe ser un número`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (isNegative(v)) {
|
|
126
|
+
addError(errors, `${prefix}.${campo}`, `${campo} no puede ser negativo (recibido ${v})`);
|
|
127
|
+
}
|
|
128
|
+
else if (!hasTwoDecimals(v)) {
|
|
129
|
+
addError(errors, `${prefix}.${campo}`, `${campo} debe tener máximo 2 decimales (recibido ${v})`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (d.total == null || typeof d.total !== 'number' || Number.isNaN(d.total)) {
|
|
133
|
+
addError(errors, `${prefix}.total`, 'total es obligatorio y debe ser un número');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const gravadas = d.mtoOperGravadas ?? 0;
|
|
137
|
+
const exoneradas = d.mtoOperExoneradas ?? 0;
|
|
138
|
+
const inafectas = d.mtoOperInafectas ?? 0;
|
|
139
|
+
const igv = d.mtoIGV ?? 0;
|
|
140
|
+
const totalEsperado = round2(gravadas + exoneradas + inafectas + igv);
|
|
141
|
+
if (Math.abs(d.total - totalEsperado) > 0.02) {
|
|
142
|
+
addError(errors, `${prefix}.total`, `total ${d.total} no coincide con gravadas(${gravadas}) + exoneradas(${exoneradas}) + ` +
|
|
143
|
+
`inafectas(${inafectas}) + IGV(${igv}) = ${totalEsperado} (SUNAT observa 4027/2663)`);
|
|
144
|
+
}
|
|
145
|
+
const igvEsperado = round2(gravadas * 0.18);
|
|
146
|
+
if (Math.abs(igv - igvEsperado) > 0.02) {
|
|
147
|
+
addError(errors, `${prefix}.mtoIGV`, `mtoIGV ${igv} no coincide con gravadas(${gravadas}) × 18% = ${igvEsperado}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (d.tipoDoc === '07' || d.tipoDoc === '08') {
|
|
151
|
+
if (!d.tipDocReferencia || !d.docReferencia) {
|
|
152
|
+
addError(errors, `${prefix}.docReferencia`, `tipoDoc ${d.tipoDoc} (NC/ND) requiere tipDocReferencia y docReferencia ` +
|
|
153
|
+
`(ej: tipDocReferencia "03", docReferencia "B001-00000057")`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (d.tipDocReferencia && d.tipDocReferencia !== '' && !CATALOGO_01.includes(d.tipDocReferencia)) {
|
|
157
|
+
addError(errors, `${prefix}.tipDocReferencia`, `tipDocReferencia "${d.tipDocReferencia}" inválido (Catálogo N.° 01)`);
|
|
158
|
+
}
|
|
159
|
+
if (d.docReferencia && !d.tipDocReferencia) {
|
|
160
|
+
addError(errors, `${prefix}.tipDocReferencia`, 'Se envió docReferencia pero falta tipDocReferencia');
|
|
161
|
+
}
|
|
162
|
+
if (d.docReferencia && !RE_SERIE_NRO.test(String(d.docReferencia))) {
|
|
163
|
+
addError(errors, `${prefix}.docReferencia`, `docReferencia "${d.docReferencia}" inválido: debe ser SERIE-CORRELATIVO (ej: B001-00000057)`);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
if (errors.length > 0) {
|
|
168
|
+
throw new invoice_validator_1.InvoiceValidationError(`Prevalidación de Resumen Diario (RC) fallida — corregir antes de guardar o enviar:\n - ${errors.join('\n - ')}`, errors);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function validateVoidedPayload(data) {
|
|
172
|
+
const errors = [];
|
|
173
|
+
if (!data || typeof data !== 'object') {
|
|
174
|
+
throw new invoice_validator_1.InvoiceValidationError('Payload de Comunicación de Baja ausente', []);
|
|
175
|
+
}
|
|
176
|
+
if (!data.correlativo || !RE_CORRELATIVO_ARCHIVO.test(String(data.correlativo))) {
|
|
177
|
+
addError(errors, 'correlativo', `correlativo "${data.correlativo}" inválido: debe ser de 1 a 3 dígitos (el XML usa RA-AAAAMMDD-NNN)`);
|
|
178
|
+
}
|
|
179
|
+
if (!data.fecGeneracion || !isValidDate(data.fecGeneracion)) {
|
|
180
|
+
addError(errors, 'fecGeneracion', 'Fecha de generación obligatoria y en formato ISO válido');
|
|
181
|
+
}
|
|
182
|
+
else if (isFutureDateOnly(data.fecGeneracion)) {
|
|
183
|
+
addError(errors, 'fecGeneracion', 'Fecha de generación no puede ser futura');
|
|
184
|
+
}
|
|
185
|
+
if (data.fecComunicacion !== undefined && data.fecComunicacion !== null) {
|
|
186
|
+
if (!isValidDate(data.fecComunicacion)) {
|
|
187
|
+
addError(errors, 'fecComunicacion', 'Fecha de comunicación debe ser un formato ISO válido');
|
|
188
|
+
}
|
|
189
|
+
else if (isFutureDateOnly(data.fecComunicacion)) {
|
|
190
|
+
addError(errors, 'fecComunicacion', 'Fecha de comunicación no puede ser futura');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
validateCompany(data.company, errors);
|
|
194
|
+
if (!data.details || data.details.length === 0) {
|
|
195
|
+
addError(errors, 'details', 'La Comunicación de Baja debe tener al menos 1 comprobante');
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
data.details.forEach((d, i) => {
|
|
199
|
+
const prefix = `details[${i}]`;
|
|
200
|
+
if (!d.tipoDoc || !CATALOGO_01.includes(d.tipoDoc)) {
|
|
201
|
+
addError(errors, `${prefix}.tipoDoc`, `tipoDoc "${d.tipoDoc}" inválido: debe ser uno de ${CATALOGO_01.join(', ')} (Catálogo N.° 01)`);
|
|
202
|
+
}
|
|
203
|
+
if (!d.serie || !RE_SERIE.test(String(d.serie))) {
|
|
204
|
+
addError(errors, `${prefix}.serie`, `serie "${d.serie}" inválida: debe ser 1-2 letras + 2-4 dígitos (ej: F001, B001, BD02)`);
|
|
205
|
+
}
|
|
206
|
+
if (!d.correlativo || !RE_CORRELATIVO.test(String(d.correlativo))) {
|
|
207
|
+
addError(errors, `${prefix}.correlativo`, `correlativo "${d.correlativo}" inválido: debe ser numérico de 1 a 8 dígitos (ej: 00000001)`);
|
|
208
|
+
}
|
|
209
|
+
if (d.descripcion !== undefined && d.descripcion !== null) {
|
|
210
|
+
const motivo = String(d.descripcion);
|
|
211
|
+
if (motivo.length > MAX_MOTIVO) {
|
|
212
|
+
addError(errors, `${prefix}.descripcion`, `Motivo de baja excede ${MAX_MOTIVO} caracteres (SUNAT) — recibido ${motivo.length}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
if (errors.length > 0) {
|
|
218
|
+
throw new invoice_validator_1.InvoiceValidationError(`Prevalidación de Comunicación de Baja (RA) fallida — corregir antes de guardar o enviar:\n - ${errors.join('\n - ')}`, errors);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function validateDespatchPayload(data) {
|
|
222
|
+
const errors = [];
|
|
223
|
+
if (!data || typeof data !== 'object') {
|
|
224
|
+
throw new invoice_validator_1.InvoiceValidationError('Payload de Guía de Remisión ausente', []);
|
|
225
|
+
}
|
|
226
|
+
if (!data.tipoDoc || !['09', '31'].includes(data.tipoDoc)) {
|
|
227
|
+
addError(errors, 'tipoDoc', `tipoDoc "${data.tipoDoc}" inválido: debe ser "09" (remitente) o "31" (transportista)`);
|
|
228
|
+
}
|
|
229
|
+
if (!data.serie || !RE_SERIE.test(String(data.serie))) {
|
|
230
|
+
addError(errors, 'serie', `serie "${data.serie}" inválida: debe ser 1-2 letras + 2-4 dígitos (ej: T001, F001)`);
|
|
231
|
+
}
|
|
232
|
+
if (!data.correlativo || !RE_CORRELATIVO.test(String(data.correlativo))) {
|
|
233
|
+
addError(errors, 'correlativo', `correlativo "${data.correlativo}" inválido: debe ser numérico de 1 a 8 dígitos`);
|
|
234
|
+
}
|
|
235
|
+
if (!data.fechaEmision || !isValidDate(data.fechaEmision)) {
|
|
236
|
+
addError(errors, 'fechaEmision', 'Fecha de emisión obligatoria y en formato ISO válido');
|
|
237
|
+
}
|
|
238
|
+
else if (isFutureDateOnly(data.fechaEmision)) {
|
|
239
|
+
addError(errors, 'fechaEmision', 'Fecha de emisión no puede ser futura');
|
|
240
|
+
}
|
|
241
|
+
validateCompany(data.company, errors);
|
|
242
|
+
if (errors.length > 0) {
|
|
243
|
+
throw new invoice_validator_1.InvoiceValidationError(`Prevalidación de Guía de Remisión (GRE) fallida — corregir antes de guardar o enviar:\n - ${errors.join('\n - ')}`, errors);
|
|
244
|
+
}
|
|
245
|
+
try {
|
|
246
|
+
(0, despatch_builder_1.validarGre)(data);
|
|
247
|
+
}
|
|
248
|
+
catch (err) {
|
|
249
|
+
if (err instanceof invoice_validator_1.InvoiceValidationError)
|
|
250
|
+
throw err;
|
|
251
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
252
|
+
const fields = message
|
|
253
|
+
.split('\n')
|
|
254
|
+
.map((line) => line.replace(/^-\s*/, '').trim())
|
|
255
|
+
.filter((line) => line.length > 0 && !/^GRE inválida/.test(line));
|
|
256
|
+
throw new invoice_validator_1.InvoiceValidationError(message, fields);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function round2(n) {
|
|
260
|
+
return Math.round(n * 100) / 100;
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=document.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.validator.js","sourceRoot":"","sources":["../../src/validation/document.validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,8 @@ export declare class InvoiceValidationError extends Error {
|
|
|
3
3
|
readonly fields: string[];
|
|
4
4
|
constructor(message: string, fields?: string[]);
|
|
5
5
|
}
|
|
6
|
+
export declare const CATALOGO_02_MONEDA: readonly ["PEN", "USD", "EUR", "GBP", "JPY", "CAD", "AUD", "CHF", "CNY", "SEK", "NOK", "DKK", "CZK", "PLN", "HUF", "RON", "BGN", "RUB", "TRY", "UAH", "INR", "KRW", "SGD", "HKD", "NZD", "THB", "MYR", "PHP", "IDR", "VND", "MXN", "BRL", "ARS", "CLP", "COP", "ILS", "SAR", "AED", "ZAR", "EGP", "NGN", "KES", "MAD", "TND", "BHD", "QAR", "KWD", "OMR", "JOD", "LKR", "PKR", "BDT", "NPR", "KZT", "UZS", "GEL", "AZN", "AMD", "BYN", "HRK", "RSD", "ISK", "ALL", "MKD", "BAM", "MDA", "TJS", "TMT", "KGS"];
|
|
7
|
+
export declare const CATALOGO_06_DOC_IDENTIDAD: readonly ["0", "1", "4", "6", "7", "A", "B", "C", "D", "E"];
|
|
8
|
+
export declare const CATALOGO_51_TIPO_OPERACION: readonly ["0101", "0112", "0113", "0200", "0201", "0202", "0203", "0204", "0205", "0206", "0207", "0208", "0301", "0302", "0303", "0401", "0501", "0502", "0503", "1001", "1002", "1003", "1004", "2001", "2100", "2101", "2102", "2103", "2104"];
|
|
6
9
|
export declare function validateInvoicePayload(data: InvoicePayload): void;
|
|
7
10
|
export declare function validateNotePayload(data: NotePayload): void;
|