Commit f1093451 authored by Wendy Fuertes's avatar Wendy Fuertes

Merge

parents b396ad9c d6407c76
......@@ -55,6 +55,7 @@ module.exports = () => {
facturacionEventosSignificativos: 'https://presiatservicios.impuestos.gob.bo:39127/FacturacionEventosSignificativos?wsdl',
fechaHora: 'https://presiatservicios.impuestos.gob.bo:39266/FacturacionSincronizacionFechaHora?wsdl',
contingencia: 'https://presiatservicios.impuestos.gob.bo:39131/FacturaElectronicaContingencia?wsdl',
//codigoAutorizacion: '1000000',
codigoQr: 'http://impuestos.gob.bo/'
},
secret: 'ADSIB2017',
......
......@@ -166,6 +166,9 @@ module.exports = (app) => {
},
transaction: t
});
if (app.config.impuestos.codigoAutorizacion) {
params.codigoAutorizacion = app.config.impuestos.codigoAutorizacion;
}
for (let i = 0; i < agrupador.length; i++) {
console.log(agrupador[i].metodo);
const datos = await impuestos.sincronizar(agrupador[i].metodo, params);
......
......@@ -282,7 +282,7 @@ module.exports = (app) => {
cuis: facturas[0].punto_venta.cuis,
fechaEnvio: moment().format('YYYY-MM-DDTHH:mm:ss.SSS'),
hashArchivo: crypto.createHash('sha256').update(tgz, 'utf8').digest().toString('hex'),
nit: facturas[0].punto_venta.sucursal.nit,
nit: facturas[0].punto_venta.sucursal.nit
};
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
......@@ -330,7 +330,7 @@ module.exports = (app) => {
codigoSucursal: facturas[0].punto_venta.sucursal.codigo,
cufd: cufd,
cuis: facturas[0].punto_venta.cuis,
nit: facturas[0].punto_venta.sucursal.nit,
nit: facturas[0].punto_venta.sucursal.nit
};
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
......@@ -364,41 +364,56 @@ module.exports = (app) => {
if (facturas.length > 0) {
const cufd = await app.dao.cufd.get(idPuntoVenta, 'system', t);
try {
let pack = tar.pack();
const pack = {}, ids = {}, codigoDocumentoFiscal = {};
for (let i = 0; i < facturas.length; i++) {
pack.entry({ name: `factura${i}.xml` }, Buffer.from(facturas[i].factura, 'utf8').toString('base64'));
if (!pack[facturas[i].codigo_documento_sector]) {
pack[facturas[i].codigo_documento_sector] = tar.pack();
ids[facturas[i].codigo_documento_sector] = [];
codigoDocumentoFiscal[facturas[i].codigo_documento_sector] = facturas[i].esquema.codigo_documento_fiscal;
}
pack[facturas[i].codigo_documento_sector].entry({ name: `factura${i}.xml` }, Buffer.from(facturas[i].factura, 'utf8').toString('base64'));
ids[facturas[i].codigo_documento_sector].push(facturas[i].id_venta);
}
const tgz = Buffer.from(await gzip(pack.read()), 'binary').toString('base64');
const params = {
archivo: tgz,
codigoAmbiente: app.config.impuestos.codigoAmbiente,
codigoDocumentoFiscal: facturas[0].esquema.codigo_documento_fiscal,
codigoDocumentoSector: facturas[0].codigo_documento_sector,
codigoEmision: facturas[0].tipo_emision,
codigoModalidad: app.config.impuestos.codigoModalidad,
codigoPuntoVenta: facturas[0].punto_venta.codigo,
codigoSistema: app.config.impuestos.codigoSistema,
codigoSucursal: facturas[0].punto_venta.sucursal.codigo,
cufd: cufd,
cuis: facturas[0].punto_venta.cuis,
fechaEnvio: moment().format('YYYY-MM-DDTHH:mm:ss.SSS'),
hashArchivo: crypto.createHash('sha256').update(tgz, 'utf8').digest().toString('hex'),
nit: facturas[0].punto_venta.sucursal.nit,
};
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
const recepcion = await impuestos.recepcionMasivaFacturaElectronicaEstandar(params);
if (recepcion.codigoEstado === 901) {
await app.dao.venta.setCodigoRecepcion(facturas.map(f => f.id_venta), recepcion.codigoRecepcion, t);
} else {
if (recepcion.codigoEstado === 902) {
const idsObs = await app.dao.venta.registrarObs(recepcion.listaCodigosRespuestas, 'RECHAZADO', t);
const idsVal = await app.dao.venta.buscarIdsVal(facturas.map(f => f.id_venta), idsObs);
if (idsVal.length > 0) {
await await app.dao.venta.setCodigoRecepcion(idsVal, recepcion.codigoRecepcion, t);
}
const keys = Object.keys(pack);
for (let j = 0; j < keys.length; j++) {
const tgz = Buffer.from(await gzip(pack[keys[j]].read()), 'binary').toString('base64');
const params = {
archivo: tgz,
codigoAmbiente: app.config.impuestos.codigoAmbiente,
codigoDocumentoFiscal: codigoDocumentoFiscal[keys[j]],
codigoDocumentoSector: keys[j],
codigoEmision: facturas[0].tipo_emision,
codigoModalidad: app.config.impuestos.codigoModalidad,
codigoPuntoVenta: facturas[0].punto_venta.codigo,
codigoSistema: app.config.impuestos.codigoSistema,
codigoSucursal: facturas[0].punto_venta.sucursal.codigo,
cufd: cufd,
cuis: facturas[0].punto_venta.cuis,
fechaEnvio: moment().format('YYYY-MM-DDTHH:mm:ss.SSS'),
hashArchivo: crypto.createHash('sha256').update(tgz, 'utf8').digest().toString('hex'),
nit: facturas[0].punto_venta.sucursal.nit
};
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
let recepcion;
switch (keys[j]) {
case '1': recepcion = await impuestos.recepcionMasivaFacturaElectronicaEstandar(params);
break;
case '22': recepcion = await impuestos2.recepcionMasivaNotaFiscalElectronicaTasaCero(params);
break;
}
if (recepcion.codigoEstado === 901) {
await app.dao.venta.setCodigoRecepcion(facturas.map(f => f.id_venta), recepcion.codigoRecepcion, t);
} else {
await logs(models.logs).error(await app.dao.catalogo.getErrores(idPuntoVenta, recepcion.listaErroresDetalles.map(val => val.toString())), 'INESPERADO', `factura.js 272`, 'system');
if (recepcion.codigoEstado === 902) {
const idsObs = await app.dao.venta.registrarObs(recepcion.listaCodigosRespuestas, 'RECHAZADO', t);
const idsVal = await app.dao.venta.buscarIdsVal(facturas.map(f => f.id_venta), idsObs);
if (idsVal.length > 0) {
await await app.dao.venta.setCodigoRecepcion(idsVal, recepcion.codigoRecepcion, t);
}
} else {
await logs(models.logs).error(await app.dao.catalogo.getErrores(idPuntoVenta, recepcion.listaErroresDetalles.map(val => val.toString())), 'INESPERADO', `factura.js 272`, 'system');
}
}
}
}
......
This diff is collapsed.
......@@ -471,7 +471,13 @@ module.exports = (app) => {
if (conn === 66) {
console.log(params)
console.log("----------------------- VALIDACION MASIVA DE FACTURAS -----------------------")
const validacion = await impuestos.validacionRecepcionMasivaFacturaElectronicaEstandar(params);
let validacion;
switch (facturas[0].codigo_documento_sector) {
case '1': validacion = await impuestos.validacionRecepcionMasivaFacturaElectronicaEstandar(params);
break;
case '22': validacion = await impuestos2.validacionRecepcionMasivaNotaFiscalElectronicaTasaCero(params);
break;
}
console.log(validacion)
console.log("---------------------------------------------------------------------------------")
if (!validacion.transaccion) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment