Commit 51242146 authored by Wendy Fuertes's avatar Wendy Fuertes

Casos 7 y 8 de envio Masivo

parent dc03e450

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -48,6 +48,12 @@
"test_masivo_soap": "NODE_ENV=test mocha --timeout 400000 test/**/10_01EnvioMasivo.js --exit",
"test_masivo_1": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_1EnvioMasivo.js --exit",
"test_masivo_2": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_2EnvioMasivo.js --exit",
"test_masivo_3": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_3EnvioMasivo.js --exit",
"test_masivo_4": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_4EnvioMasivo.js --exit",
"test_masivo_5": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_5EnvioMasivo.js --exit",
"test_masivo_6": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_6EnvioMasivo.js --exit",
"test_masivo_7": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_7EnvioMasivo.js --exit",
"test_masivo_8": "NODE_ENV=test mocha --timeout 600000 test/**/10_02_8EnvioMasivo.js --exit",
"test_masivo": "mocha --timeout 90000 test/**/12TestFacturasMasivas.js --exit"
},
"dependencies": {
......
......@@ -19,7 +19,7 @@ const tar = require('tar-stream');
const convert = require('xml-js');
const impuestos = require('../src/services/impuestos/facturaElectronicaEstandar')(app);
describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
const dir = path.join(__dirname, '/CasosMasivos02/02');
const dir = path.join(__dirname, '/CasosMasivos02/03');
const list = fs.readdirSync(dir);//array de nombres de archivos
let facturaFirmada, datoCufd, params, facturasP=[], fechaFactura, numeroFactura = 100;
......@@ -30,7 +30,7 @@ describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
it('Armar factura y paquetes',async function() {
for (let i = 0; i < list.length; i++) {
fechaFactura = new Date();
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/02', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/03', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const factura = xml.facturaElectronicaEstandar;
console.log(list[i])
fechaFactura.setMilliseconds(fechaFactura.getMilliseconds() + 1);
......
......@@ -19,7 +19,7 @@ const tar = require('tar-stream');
const convert = require('xml-js');
const impuestos = require('../src/services/impuestos/facturaElectronicaEstandar')(app);
describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
const dir = path.join(__dirname, '/CasosMasivos02/02');
const dir = path.join(__dirname, '/CasosMasivos02/04');
const list = fs.readdirSync(dir);//array de nombres de archivos
let facturaFirmada, datoCufd, params, facturasP=[], fechaFactura, numeroFactura = 100;
......@@ -30,7 +30,7 @@ describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
it('Armar factura y paquetes',async function() {
for (let i = 0; i < list.length; i++) {
fechaFactura = new Date();
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/02', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/04', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const factura = xml.facturaElectronicaEstandar;
console.log(list[i])
fechaFactura.setMilliseconds(fechaFactura.getMilliseconds() + 1);
......
before(done => {
console.log('\n\n-----------------------\n--\n-- START TEST\n--\n-------------------------');
done();
});
after(done => {
console.log('\n\n-----------------------\n--\n-- END TEST\n--\n-------------------------');
done();
});
let app = require('../app.js');
var assert = require('assert');
const moment = require('moment');
const xsd = require('libxml-xsd');
const fs = require('fs');
const { gzip } = require('node-gzip');
const crypto = require('crypto');
const path = require('path');
const tar = require('tar-stream');
const convert = require('xml-js');
const impuestos = require('../src/services/impuestos/facturaElectronicaEstandar')(app);
describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
const dir = path.join(__dirname, '/CasosMasivos02/01');
const list = fs.readdirSync(dir);//array de nombres de archivos
let facturaFirmada, datoCufd, params, facturasP=[], fechaFactura, numeroFactura = 100;
it('SolicitarCufdActual - Casa Matriz',async function() {
datoCufd = await app.dao.cufd.get(1, 'test');
assert.ok(typeof datoCufd == 'string');
});
it('Armar factura y paquetes',async function() {
for (let i = 0; i < list.length; i++) {
fechaFactura = new Date();
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/01', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const factura = xml.facturaElectronicaEstandar;
console.log(list[i])
fechaFactura.setMilliseconds(fechaFactura.getMilliseconds() + 1);
var puntoVenta = (factura.cabecera.codigoPuntoVenta._attributes)? "":factura.cabecera.codigoPuntoVenta._text;
factura.cabecera.numeroFactura._text = numeroFactura++;
factura.cabecera.fechaEmision._text = moment(fechaFactura).format('YYYY-MM-DDTHH:mm:ss.SSS');
factura.cabecera.cufd._text = datoCufd;
factura.cabecera.cuf._text = await app.dao.cuf(factura.cabecera.nitEmisor._text, factura.cabecera.fechaEmision._text, factura.cabecera.codigoSucursal._text, app.config.impuestos.codigoModalidad, 3, 1, factura.cabecera.codigoDocumentoSector._text, factura.cabecera.numeroFactura._text, puntoVenta);//3 = tipoEmision
facturaFirmada = await app.dao.factura.firmar({
facturaElectronicaEstandar: app.dao.factura.setNill(factura)
});
facturasP.push(facturaFirmada);
}
assert.deepEqual(facturasP.length, list.length)
});
it('5.- Recepción Rechazada',async function() {
params = {
codigoSistema: app.config.impuestos.codigoSistema,
codigoAmbiente: 2,
codigoEmision: 3,
codigoModalidad: app.config.impuestos.codigoModalidad,
nit: 120431020,
cuis: app.config.impuestos.cuis,
cufd: datoCufd ,
codigoDocumentoFiscal: 1,
codigoDocumentoSector: 1,
codigoSucursal: 0,
codigoPuntoVenta: '',
fechaEnvio: moment().format('YYYY-MM-DDTHH:mm:ss.SSS')
}
var resp,validacion;
try {
let pack = tar.pack();
for (let j = 0; j < facturasP.length; j++) {
pack.entry({ name: `factura${j}.xml` }, Buffer.from(facturasP[j], 'utf8').toString('base64'));
}
params.archivo = Buffer.from(await gzip(pack.read()), 'binary').toString('base64');
params.hashArchivo = crypto.createHash('sha256').update(params.archivo, 'utf8').digest().toString('hex');
resp = await impuestos.recepcionMasivaFacturaElectronicaEstandar(params);
} catch (error) {
resp = error.message
}
console.log(resp);
assert.deepEqual(resp.codigoEstado, 902);//recepcion
});
});
before(done => {
console.log('\n\n-----------------------\n--\n-- START TEST\n--\n-------------------------');
done();
});
after(done => {
console.log('\n\n-----------------------\n--\n-- END TEST\n--\n-------------------------');
done();
});
let app = require('../app.js');
var assert = require('assert');
const moment = require('moment');
const xsd = require('libxml-xsd');
const fs = require('fs');
const { gzip } = require('node-gzip');
const crypto = require('crypto');
const path = require('path');
const tar = require('tar-stream');
const convert = require('xml-js');
const impuestos = require('../src/services/impuestos/facturaElectronicaEstandar')(app);
describe('Casos de Prueba - Envío de paquete masivo de facturas', function() {
const dir = path.join(__dirname, '/CasosMasivos02/02');
const list = fs.readdirSync(dir);//array de nombres de archivos
let facturaFirmada, datoCufd, params, facturasP=[], fechaFactura, numeroFactura = 100;
it('SolicitarCufdActual - Casa Matriz',async function() {
datoCufd = await app.dao.cufd.get(1, 'test');
assert.ok(typeof datoCufd == 'string');
});
it('Armar factura y paquetes',async function() {
for (let i = 0; i < list.length; i++) {
fechaFactura = new Date();
const xml = convert.xml2js(fs.readFileSync(path.join(__dirname, '/CasosMasivos02/02', list[i])).toString('utf8'), { compact: true, ignoreComment: true, fullTagEmptyElement: true });
const factura = xml.facturaElectronicaEstandar;
console.log(list[i])
fechaFactura.setMilliseconds(fechaFactura.getMilliseconds() + 1);
var puntoVenta = (factura.cabecera.codigoPuntoVenta._attributes)? "":factura.cabecera.codigoPuntoVenta._text;
factura.cabecera.numeroFactura._text = numeroFactura++;
factura.cabecera.fechaEmision._text = moment(fechaFactura).format('YYYY-MM-DDTHH:mm:ss.SSS');
factura.cabecera.cufd._text = datoCufd;
factura.cabecera.cuf._text = await app.dao.cuf(factura.cabecera.nitEmisor._text, factura.cabecera.fechaEmision._text, factura.cabecera.codigoSucursal._text, app.config.impuestos.codigoModalidad, 3, 1, factura.cabecera.codigoDocumentoSector._text, factura.cabecera.numeroFactura._text, puntoVenta);//3 = tipoEmision
facturaFirmada = await app.dao.factura.firmar({
facturaElectronicaEstandar: app.dao.factura.setNill(factura)
});
facturasP.push(facturaFirmada);
}
assert.deepEqual(facturasP.length, list.length)
});
it('6.- Recepción Rechazada',async function() {
params = {
codigoSistema: app.config.impuestos.codigoSistema,
codigoAmbiente: 2,
codigoEmision: 3,
codigoModalidad: app.config.impuestos.codigoModalidad,
nit: 120431020,
cuis: app.config.impuestos.cuis,
cufd: datoCufd ,
codigoDocumentoFiscal: 1,
codigoDocumentoSector: 1,
codigoSucursal: 0,
codigoPuntoVenta: '',
fechaEnvio: moment().format('YYYY-MM-DDTHH:mm:ss.SSS')
}
var resp,validacion;
try {
let pack = tar.pack();
for (let j = 0; j < facturasP.length; j++) {
pack.entry({ name: `factura${j}.xml` }, Buffer.from(facturasP[j], 'utf8').toString('base64'));
}
params.archivo = Buffer.from(await gzip(pack.read()), 'binary').toString('base64');
params.hashArchivo = crypto.createHash('sha256').update(params.archivo, 'utf8').digest().toString('hex');
resp = await impuestos.recepcionMasivaFacturaElectronicaEstandar(params);
} catch (error) {
resp = error.message
}
console.log(resp);
assert.deepEqual(resp.codigoEstado, 902);//recepcion
});
});