Commit 04f401da authored by Wendy Fuertes's avatar Wendy Fuertes

Adicion de tipos de codigos especiales en catalogos, verificacion de CAED en contingencia

parents ca439c4e 4e71b6b4
This diff is collapsed.
......@@ -8,6 +8,16 @@ module.exports = (app) => {
async function inicio(codigoEvento, descripcion, fecha, idPuntoVenta, usuario, t) {
const motivo = await app.dao.catalogo.getCod(idPuntoVenta, 'MOTIVO_EVENTO', codigoEvento.toString(), t);
const evento = await models.evento_significativo.findOne({
where: {
tipo: 'RANGO',
estado: 'PENDIENTE'
},
transaccion: t
});
if (evento) {
return evento.toJSON();
}
return await models.evento_significativo.create({
tipo: motivo.codigo_actividad,
codigo_evento: codigoEvento,
......
......@@ -240,11 +240,12 @@ module.exports = (app) => {
if (facturas.length > 0) {
const cufd = await app.dao.cufd.get(idPuntoVenta, 'system', t);
try {
const pack = {}, ids = {};
const pack = {}, ids = {}, codigoDocumentoFiscal = {};
for (let i = 0; i < facturas.length; i++) {
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);
......@@ -255,7 +256,7 @@ module.exports = (app) => {
const params = {
archivo: tgz,
codigoAmbiente: app.config.impuestos.codigoAmbiente,
codigoDocumentoFiscal: facturas[0].esquema.codigo_documento_fiscal,
codigoDocumentoFiscal: codigoDocumentoFiscal[keys[j]],
codigoDocumentoSector: keys[j],
codigoEmision: facturas[0].tipo_emision,
codigoModalidad: app.config.impuestos.codigoModalidad,
......@@ -281,7 +282,7 @@ module.exports = (app) => {
await app.dao.venta.setCodigoRecepcion(ids[keys[j]], recepcion.codigoRecepcion, t);
} else {
if (recepcion.codigoEstado === 902) {
const idsObs = await app.dao.venta.registrarObs(recepcion.listaErroresDetalles, 'RECHAZADO', t);
const idsObs = await app.dao.venta.registrarObs(recepcion.listaCodigosRespuestas, 'RECHAZADO', t);
const idsVal = await app.dao.venta.buscarIdsVal(ids[keys[j]], idsObs);
if (idsVal.length > 0) {
await await app.dao.venta.setCodigoRecepcion(idsVal, recepcion.codigoRecepcion, t);
......@@ -322,19 +323,23 @@ module.exports = (app) => {
switch (facturas[0].codigo_documento_sector) {
case '1': validacion = await impuestos.validacionRecepcionPaqueteFacturaElectronicaEstandar(params);
break;
case '22': validacion = await impuestos2.validacionRecepcionNotaFiscalElectronicaTasaCero(params);
case '22': validacion = await impuestos2.validacionRecepcionPaqueteNotaFiscalElectronicaTasaCero(params);
break;
}
if (validacion.codigoEstado === 908) {
await app.dao.venta.setValidadoPaquete([], validacion.codigoRecepcion, t);
} else {
if (validacion.codigoEstado === 904) {
const idsObs = await app.dao.venta.registrarObs(validacion.listaErroresDetalles, 'OBSERVADO', t);
if (idsVal.length > 0) {
await await app.dao.venta.setValidadoPaquete(idsObs, validacion.codigoRecepcion, t);
if (validacion.listaErroresDetalles) {
if (validacion.codigoEstado === 904) {
const idsObs = await app.dao.venta.registrarObs(validacion.listaErroresDetalles, 'OBSERVADO', t);
if (idsVal.length > 0) {
await await app.dao.venta.setValidadoPaquete(idsObs, validacion.codigoRecepcion, t);
}
} else {
await logs(models.logs).error(await app.dao.catalogo.getErrores(idPuntoVenta, validacion.listaErroresDetalles.map(val => val.toString())), 'INESPERADO', `factura.js 272`, 'system');
}
} else {
await logs(models.logs).error(await app.dao.catalogo.getErrores(idPuntoVenta, validacion.listaErroresDetalles.map(val => val.toString())), 'INESPERADO', `factura.js 272`, 'system');
throw Error(await app.dao.catalogo.getError(idPuntoVenta, validacion.listaCodigosRespuestas.map(c => c.toString())));
}
}
}
......@@ -458,7 +463,7 @@ module.exports = (app) => {
throw Error('La estructura XML no cumple las especificaciones XSD de Impuestos Nacionales.');
}
const idCliente = factura[tipoFac].cabecera.codigoCliente;
const venta = await app.dao.venta.post(factura[tipoFac].cabecera.numeroFactura, factura[tipoFac].cabecera.numeroDocumento, factura[tipoFac].cabecera.nombreRazonSocial, factura[tipoFac].cabecera.montoTotal, facturas[j].tipoEmision, 3, facturaFirmada, factura[tipoFac].cabecera.cuf, cufd, tipoDoc.codigo, puntoVenta.idPuntoVenta, audit_usuario.usuario, factura[tipoFac].cabecera.fechaEmision, idCliente, null, t);
const venta = await app.dao.venta.post(factura[tipoFac].cabecera.numeroFactura, factura[tipoFac].cabecera.numeroDocumento, factura[tipoFac].cabecera.nombreRazonSocial, factura[tipoFac].cabecera.montoTotal, facturas[j].tipoEmision, 3, facturaFirmada, factura[tipoFac].cabecera.cuf, cufd, tipoDoc.codigo, puntoVenta.idPuntoVenta, audit_usuario.usuario, factura[tipoFac].cabecera.fechaEmision, idCliente, null, null, t);
//crear detalle
if (venta) {
for (let i = facturas[j].detalle.length - 1; i >= 0; i--) {
......
......@@ -109,9 +109,9 @@ module.exports = (app) => {
throw Error('El codigo de unidad de medida introducido no es válido.');
}
return await models.item.create({
var itemNew = await models.item.create({
actividad_economica: item.actividadEconomica,
codigo: item.codigo,
codigo: '010009',/* item.codigo */
codigo_sin: item.codigoSin,
descripcion: item.descripcion,
precio_unitario: item.precioUnitario,
......@@ -124,6 +124,17 @@ module.exports = (app) => {
}, {
transaction: t,
});
if (itemNew) {
await models.item.update({
codigo: itemNew.id_item
}, {
where: {
id_item: itemNew.id_item
},
transaction: t
});
}
}
async function index(req,t) {
......
......@@ -91,7 +91,6 @@ module.exports = (app) => {
await t4.rollback();
throw err;
}
await app.dao.factura.enviarPaqueteOffline(puntos[i].id_punto_venta);
}
await t.commit();
} catch (error) {
......@@ -160,7 +159,7 @@ module.exports = (app) => {
transaction: t
}).then(async resp => {
if (puntoVenta.codigo != '0') {
try {
/* try {
//registrar punto de venta con Impuestos
const conn = await impuestos.verificarComunicacion();
if (conn === 66) {
......@@ -171,12 +170,14 @@ module.exports = (app) => {
}
} catch (e) {
throw e;
}
} */
}
}).catch(error => {
throw error;
});
}
async function listar(req,t) {
var nro = parseInt(req.query.buscarCodigo);
......
This diff is collapsed.
......@@ -93,6 +93,10 @@ module.exports = (sequelize, DataType) => {
as: 'codigo_especial',
foreignKey: 'fid_punto_venta'
});
punto_venta.hasMany(models.venta, {
as: 'venta',
foreignKey: 'fid_punto_venta'
});
};
return punto_venta;
......
......@@ -6,10 +6,10 @@ module.exports = {
type: 'string',
required: false
},
codigo: {
/* codigo: {
type: 'string',
required: true
},
}, */
codigoSin: {
type: 'string',
required: false
......
......@@ -82,6 +82,10 @@ module.exports = {
codigo: 'LEYENDAS',
descripcion: 'Lista de leyendas de facturas',
metodo: 'sincronizarListaLeyendasFactura'
}, {
codigo: 'CODIGOS_ESPECIALES',
descripcion: 'Lista de tipos de codigos especiales',
metodo: ''
}
], {});
},
......
......@@ -2622,7 +2622,11 @@ module.exports = {
{fid_punto_venta:1,agrupador:'ITEM',codigo:'83172',descripcion:'Servicio de obtención y administración de dominios para sitios Web', codigo_actividad: '641100'},
{fid_punto_venta:1,agrupador:'ACTIVIDAD',codigo:'476112',descripcion:'VENTA POR MENOR DE REVISTAS'},
{fid_punto_venta:1,agrupador:'ACTIVIDAD',codigo:'476111',descripcion:'VENTA POR MENOR DE LIBROS'},
{fid_punto_venta:1,agrupador:'ACTIVIDAD',codigo:'641100',descripcion:'BANCA CENTRAL'}
{fid_punto_venta:1,agrupador:'ACTIVIDAD',codigo:'641100',descripcion:'BANCA CENTRAL'},
{fid_punto_venta:1,agrupador:'CODIGOS_ESPECIALES',codigo:'1',descripcion:'CUFD EXTENDIDO'},
{fid_punto_venta:1,agrupador:'CODIGOS_ESPECIALES',codigo:'2',descripcion:'CAED'},
{fid_punto_venta:1,agrupador:'CODIGOS_ESPECIALES',codigo:'3',descripcion:'CAEDFEP'},
{fid_punto_venta:1,agrupador:'CODIGOS_ESPECIALES',codigo:'4',descripcion:'CUAPE'}
], {});
},
......
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