From 585772b1bb4246884ab20e48780ac5fd71db599c Mon Sep 17 00:00:00 2001 From: Eric Fernandez Date: Fri, 24 May 2019 17:38:03 -0300 Subject: [PATCH] avances --- debo/cabeceraDebo.js | 42 +++++++++++++++++++++--------------------- index.js | 2 ++ planex/index.js | 14 +++++++++----- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/debo/cabeceraDebo.js b/debo/cabeceraDebo.js index 6288936..e79d7f3 100644 --- a/debo/cabeceraDebo.js +++ b/debo/cabeceraDebo.js @@ -14,22 +14,22 @@ module.exports = function(comprobante, afipTablas, entities) { TCA: 1, // [money] NOT NULL, FIJO 1 DTO: comprobante.descuentosGlobalesFactura.importe, // [money] NOT NULL, DESCUENTO TOTAL SUMATORIA DE LOS DTO POR ITEM PDT: 0, // [money] NOT NULL, FIJO 0 - NET: null, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA <> 0 - NEE: null, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA = 0 + NET: comprobante.importesTotales.netoGravado, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA <> 0 + NEE: comprobante.importesTotales.importeOperacionesExentas, // [money] NOT NULL, SUMATORIA DE LOS NETOS POR ITEM QUE TIENEN IVA = 0 IRI: comprobante.detallesImportesIVA.importeLiquidado, // [money] NOT NULL, SUMATORIA DE LOS IVA POR ITEM IRS: 0, // [money] NOT NULL, FIJO 0 IMI: comprobante.importesTotales.importeImpuestosInternos, // [money] NOT NULL, SUMATORIA DE LOS IMPUESTOS INTERNOS POR ITEM - RGA: null, // [money] NOT NULL, IMPORTE RETENCION DE GANANCIAS - RIB: null, // [money] NOT NULL, IMPORTE RETENCION DE INGRESOS BRUTOS - PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA + RGA: 0, // [money] NOT NULL, IMPORTE RETENCION DE GANANCIAS + RIB: 0, // [money] NOT NULL, IMPORTE RETENCION DE INGRESOS BRUTOS + PIV: null, // [money] NOT NULL, IMPORTE PERCEPCION DE IVA, SECTOR 90 C05 CNG: comprobante.importesTotales.totalConceptosNoNetoGravado, // [money] NULL, IMPORTE DE CONCEPTOS NO GRAVADOS - TOT: null, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA + TOT: comprobante.importesTotales.totalOperacion, // [money] NOT NULL, IMPORTE TOTAL DE LA FACTURA ZON: entities.empresa.ZON, // [int] NOT NULL, NUMERO DE LA EMPRESA SELECT ZON FROM APAREMP - FEV: comprobante.identificaxComprobante.fechaComprobante, // [datetime] NULL, FECHA DE VENCIMIENTO - OCP: null, // [char](10) NOT NULL, SI VIENE LA ORDEN DE COMPRA FORMATO "0000000000" (DOS PRIMERO PARA PVE Y 8 ULTIMOS EL NUMERO DE LA OC) + FEV: comprobante.identificaxComprobante.fechaVencimiento, // [datetime] NULL, FECHA DE VENCIMIENTO + OCP: comprobante.comprobantesReferencia[0].numeroDocumentoReferencia, // [char](10) NOT NULL, SI VIENE LA ORDEN DE COMPRA FORMATO "0000000000" (DOS PRIMERO PARA PVE Y 8 ULTIMOS EL NUMERO DE LA OC) OPE: 0, // [int] NOT NULL, FIJO 0 REC: 0, // [bigint] NOT NULL, FIJO 0 - FEP: null, // [datetime] NULL, ITEM FECHA FACTURA + FEP: comprobante.identificaxComprobante.fechaComprobante, // [datetime] NULL, ITEM FECHA FACTURA NPE: 0, // [bigint] NOT NULL, NOTA DE PEDIDO FIJO 0 CPA: 0, // [int] NOT NULL, FIJO 0 ENV: 0, // [int] NOT NULL, FIJO 0 @@ -52,21 +52,21 @@ module.exports = function(comprobante, afipTablas, entities) { CCA8: 0, // [int] NOT NULL, FIJO 0 CCA0: 0, // [int] NOT NULL, FIJO 0 OBS: comprobante.importesTotales.observaciones, // [varchar](60) NOT NULL, SI VIENEN OBSERVACIONES PONER AQUI SINO VACIO NO NULO - RIV: null, // [money] NOT NULL, IMPORTE RETENCION DE IVA + RIV: 0, // [money] NOT NULL, IMPORTE RETENCION DE IVA FECCAI: comprobante.identificaxComprobante.fechaVencimientoCai, // [smalldatetime] NOT NULL, FECHA DEL CAI CAI: comprobante.identificaxComprobante.cai, // [char](16) NOT NULL, NUMERO DE CAI CHO: 0, // [int] NOT NULL, FIJO 0 CTR: '', // [char](1) NOT NULL, VACIO NO NULO - PER: null, // [money] NOT NULL, IMPORTE DE PERCEPCIONES + PER: comprobante.importesTotales.importeIB, // [money] NOT NULL, IMPORTE DE PERCEPCIONES CCA9: 0, // [int] NOT NULL, FIJO 0 FECVEN: comprobante.identificaxComprobante.fechaVencimiento, // [smalldatetime] NOT NULL, FECHA DE VENCIMIENTO DE LA FACTURA - CNG2: null, // [money] NOT NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 2 + CNG2: 0, // [money] NOT NULL, IMPORTE DE CONCEPTOS NO GRAVADOS 2 E_HD: '', // [varchar](8) NOT NULL, VACIO NO NULO C_HD: '', // [varchar](1) NOT NULL, VACIO NO NULO - RSS: null, // [money] NOT NULL, IMPORTE RETENCIONS SUSS + RSS: 0, // [money] NOT NULL, IMPORTE RETENCIONS SUSS E_HD2: '', // [varchar](12) NOT NULL, VACIO NO NULO C_HD2: '', // [varchar](1) NOT NULL, VACIO NO NULO - DTO2: null, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS + DTO2: 0, // [money] NOT NULL, IMPORTE DE OTROS DESCUENTOS ENLP: 0, // [bit] NOT NULL, FIJO 0 COD_TRANS: comprobante.identificaxComprobante.numeroRegistrado, // [bigint] NOT NULL, VER DE PONER EL NUMERO DE REFERENCIA QUE PUEDA UNIRNOS A LO QUE VIENE DESDE PLANEX RETMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE DE RETENCIONES MUNICIPALES @@ -76,15 +76,15 @@ module.exports = function(comprobante, afipTablas, entities) { AUX2: 0, // [money] NOT NULL, FIJO 0 AUX3: 0, // [money] NOT NULL, FIJO 0 AUX4: 0, // [money] NOT NULL, FIJO 0 - ARBA: null, // [money] NOT NULL, IMPORTE RETENCION ARBA - DGR: null, // [money] NOT NULL, IMPORTE RETENCION DGR - DTO_PIE: null, // [money] NOT NULL, IMPORTE DE DESCUENTO AL PIE, NO POR ITEM + ARBA: 0, // [money] NOT NULL, IMPORTE RETENCION ARBA + DGR: 0, // [money] NOT NULL, IMPORTE RETENCION DGR + DTO_PIE: 0, // [money] NOT NULL, IMPORTE DE DESCUENTO AL PIE, NO POR ITEM OPERACIONES_3711: 1, // [int] NOT NULL, FIJO 1 (PORQUE SON BIENES) - ORC: null, // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA + ORC: 'TODO: comprobantesReferencia CUANDO ES PC', // [bigint] NOT NULL, NUMERO DE ORDEN DE COMPRA NC_ES_NP: 0, // [bit] NOT NULL, FIJO 0 - CABA: null, // [money] NOT NULL, IMPORTE RETENCION CABA - ARBA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION ARBA - CABA_PER: null, // [money] NOT NULL, IMPORTE PERCEPCION CABA + CABA: 0, // [money] NOT NULL, IMPORTE RETENCION CABA + ARBA_PER: 0, // [money] NOT NULL, IMPORTE PERCEPCION ARBA + CABA_PER: 0, // [money] NOT NULL, IMPORTE PERCEPCION CABA PERMUN: comprobante.importesTotales.importeImpuestosMunicipales, // [money] NOT NULL, IMPORTE PERCEPCIONES MUNICIPALES IMI2: 0, // [money] NOT NULL, FIJO 0 }; diff --git a/index.js b/index.js index f59ad74..68a3fc6 100644 --- a/index.js +++ b/index.js @@ -10,6 +10,8 @@ function onGetFile(event, fileString) { var planex = require('./planex/index')(fileString); + console.log(planex); + var entities = {}; var tipoCuit = planex.identificaxEmisor.cuit.slice(0, 2); diff --git a/planex/index.js b/planex/index.js index e95ebf7..36e15c8 100644 --- a/planex/index.js +++ b/planex/index.js @@ -17,8 +17,8 @@ module.exports = function(comprobante) { descuentosGlobalesFactura: {}, detalleOtrosImpuestosComprobante: {}, itemsFactura: [], - detalleDescuentosItemFactura: {}, - detalleImpuestosItemFactura: {} + detalleDescuentosItemFactura: [], + detalleImpuestosItemFactura: [] }; function returnFloatByDecimals(parameter, cantDecimal) { @@ -63,13 +63,17 @@ module.exports = function(comprobante) { } else if (sector.slice(0, 3) == '110') { objReturn.detalleDescuentosItemFactura = require('./detalleDescuentosItemFactura')(sector, returnFloatByDecimals); // 110 } else if (sector.slice(0, 3) == '120') { - objReturn.detalleImpuestosItemFactura = require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals); // 120 + objReturn.detalleImpuestosItemFactura.push(require('./detalleImpuestosItemFactura')(sector, returnFloatByDecimals)); // 120 } }); - objReturn.itemsFactura.array.forEach(item => { + if (!objReturn.detalleImpuestosItemFactura.length) { + return objReturn; + } + + objReturn.itemsFactura.forEach(item => { - var detalleDescuentos = planex.detalleImpuestosItemFactura.filter(function(descuento) { + var detalleDescuentos = objReturn.detalleImpuestosItemFactura.filter(function(descuento) { return descuento.numeroLinea == item.numeroLinea; })[0]; -- 1.9.1