/// <summary> /// Crea el xml de una factura PM a partir de una fila de datos en una hoja excel. Si no existe el proveedor, lo crea. /// </summary> /// <param name="hojaXl">Hoja excel</param> /// <param name="filaXl">Fila de la hoja excel a procesar</param> public void integraFacturaPMyProveedor(ExcelWorksheet hojaXl, int filaXl, string sTimeStamp) { this.iError = 0; eConnectType docEConnectPM = new eConnectType(); eConnectType docEConnectProv = new eConnectType(); FacturaDeCompraPM factura = new FacturaDeCompraPM(_DatosConexionDB); Proveedor proveedor = new Proveedor(_DatosConexionDB); try { //Preparar nuevo proveedor en caso que sea factura y no exista en gp proveedor.preparaProveedorEconn(hojaXl, filaXl, _Param); if (proveedor.iError != 0) { this.sMensaje = proveedor.sMensaje; this.iError++; } //Prepara factura factura.preparaFacturaPM(hojaXl, filaXl, sTimeStamp, _Param); this._filaNuevaFactura = factura.iniciaNuevaFacturaEn; this.sMensajeDocu = "Fila: " + filaXl.ToString() + " Número Doc: " + factura.facturaPm.DOCNUMBR + " Proveedor: " + factura.facturaPm.VENDORID + " Monto: " + factura.facturaPm.PRCHAMNT.ToString(); if (this.iError == 0 && factura.iError != 0) { this.sMensaje = factura.sMensaje; this.iError++; } //Ingresa nuevo proveedor if (this.iError == 0 && proveedor.arrVendorType != null && proveedor.arrVendorType.Count() > 0) { docEConnectProv.PMVendorMasterType = proveedor.arrVendorType; this.serializa(docEConnectProv); if (this.iError == 0) { this.integraEntityXml(); } } //Ingresa la factura a GP if (this.iError == 0) { docEConnectPM.PMTransactionType = factura.arrFacturaPmType; this.serializa(docEConnectPM); //debug!!!! //this.iError++; //sMensaje = _sDocXml; if (this.iError == 0) { this.integraTransactionXml(); } } //Si es factura agrega datos para el servicio de impuestos if (this.iError == 0 && factura.facturaPm.DOCTYPE == 1) { FacturaDeCompraAdicionales adicionalesFactura = new FacturaDeCompraAdicionales(_DatosConexionDB, factura); adicionalesFactura.spIfc_AgregaTII_4001(); if (adicionalesFactura.iError != 0) { this.sMensaje = adicionalesFactura.sMensaje; this.iError++; } } } catch (eConnectException eConnErr) { sMensaje = "Excepción al preparar factura. " + eConnErr.Message + "[integraFacturaPMyProveedor.integraFacturaPM]"; iError++; } catch (ApplicationException ex) { sMensaje = "Excepción de aplicación. " + ex.Message + "[integraFacturaPMyProveedor.integraFacturaPM]"; iError++; } catch (Exception errorGral) { sMensaje = "Excepción desconocida. " + errorGral.Message + " [integraFacturaPMyProveedor.integraFacturaPM]"; iError++; } }
/// <summary> /// Crea el xml de una factura PM a partir de una fila de datos en una hoja excel. /// </summary> /// <param name="hojaXl">Hoja excel</param> /// <param name="filaXl">Fila de la hoja excel a procesar</param> public void integraFacturaPM(ExcelWorksheet hojaXl, int filaXl, string sTimeStamp) { this.iError = 0; eConnectType docEConnectPM = new eConnectType(); eConnectType docEConnectProv = new eConnectType(); FacturaDeCompraPM factura = new FacturaDeCompraPM(_DatosConexionDB); Proveedor proveedor = new Proveedor(_DatosConexionDB); try { //Prepara factura factura.preparaFacturaPM(hojaXl, filaXl, sTimeStamp, _Param); this._filaNuevaFactura = factura.iniciaNuevaFacturaEn; this.sMensajeDocu = "Fila: " + filaXl.ToString() + " Número Doc: " + factura.facturaPm.DOCNUMBR + " Proveedor: " + factura.facturaPm.VENDORID + " Monto: " + factura.facturaPm.PRCHAMNT.ToString(); if (this.iError == 0 && factura.iError != 0) { this.sMensaje = factura.sMensaje; this.iError++; } //Ingresa la factura a GP if (this.iError == 0) { docEConnectPM.PMTransactionType = factura.arrFacturaPmType; this.serializa(docEConnectPM); //debug!!!! //this.iError++; //sMensaje = _sDocXml; if (this.iError == 0) { this.integraTransactionXml(); } } if (_Param.FacturaPmLOCALIZACION.Equals("ARG")) { //Si es factura agrega datos para el servicio de impuestos FacturaDeCompraAdicionales adicionalesFactura = new FacturaDeCompraAdicionales(_DatosConexionDB, factura); if (this.iError == 0 && factura.facturaPm.DOCTYPE == 1) { adicionalesFactura.spIfc_Nfret_gl10030(); adicionalesFactura.spIfc_awli_pm00400(); } } } catch (eConnectException eConnErr) { sMensaje = "Excepción al preparar factura. " + eConnErr.Message + "[IntegraComprasGP.integraFacturaPM]"; iError++; } catch (ApplicationException ex) { sMensaje = "Excepción de aplicación. " + ex.Message + "[IntegraComprasGP.integraFacturaPM]"; iError++; } catch (Exception errorGral) { sMensaje = "Excepción. " + errorGral.Message + " [IntegraComprasGP.integraFacturaPM]"; iError++; } }
/// <summary> /// Crea el xml de una factura pop a partir de una fila de datos en una hoja excel. /// </summary> /// <param name="hojaXl">Hoja excel</param> /// <param name="filaXl">Fila de la hoja excel a procesar</param> public void integraFacturaPOP(ExcelWorksheet hojaXl, int filaXl, string sTimeStamp) { this.iError = 0; eConnectType docEConnectIV = new eConnectType(); eConnectType docEConnectPOP = new eConnectType(); FacturaDeCompraPOP facturaPop = new FacturaDeCompraPOP(_DatosConexionDB, 1); try { facturaPop.preparaFacturaPOP(hojaXl, filaXl, sTimeStamp, _Param); _filaNuevaFactura = facturaPop.iniciaNuevaFacturaEn; this.sMensajeDocu = "Fila: " + filaXl.ToString() + " Número Doc: " + facturaPop.facturaPopCa.VNDDOCNM + " Proveedor: " + facturaPop.facturaPopCa.VENDORID; //Ingresa el artículo - proveedor a GP if (facturaPop.iError == 0) { docEConnectIV.IVVendorItemType = facturaPop.myVendorItemType; this.serializa(docEConnectIV); if (this.iError == 0) { this.integraEntityXml(); } } else { this.sMensaje = facturaPop.sMensaje; this.iError++; } //Ingresa la factura a GP if (this.iError == 0 && facturaPop.iError == 0) { docEConnectPOP.POPReceivingsType = facturaPop.myFacturaPopType; this.serializa(docEConnectPOP); if (this.iError == 0) { this.integraTransactionXml(); } } //Si no hubo error y no es factura cogs, agrega datos para el servicio de impuestos FacturaDeCompraAdicionales adicionalesFactura = new FacturaDeCompraAdicionales(_DatosConexionDB, facturaPop); if (this.iError == 0 && facturaPop.iError == 0 && facturaPop.facturaPopCa.REFRENCE.Length > 1 && facturaPop.facturaPopCa.REFRENCE.Substring(0, 2) != "CO") { adicionalesFactura.spEconn_nsacoa_gl00021(hojaXl, filaXl, _Param); if (adicionalesFactura.iError != 0) { this.iError++; this.sMensaje = adicionalesFactura.sMensaje; } } //Si no hubo errores, agregar trip codes a los asientos contables if (this.iError == 0 && facturaPop.iError == 0) { adicionalesFactura.spIfcAgregaDistribucionContable(facturaPop.facturaPopCa.POPRCTNM); if (adicionalesFactura.iError != 0) { this.iError++; this.sMensaje = adicionalesFactura.sMensaje; } } } catch (eConnectException eConnErr) { sMensaje = "Excepción al preparar factura. " + eConnErr.Message + "[integraFacturaPOP]"; iError++; } catch (ApplicationException ex) { sMensaje = "Excepción de aplicación. " + ex.Message + "[integraFacturaPOP]"; iError++; } catch (Exception errorGral) { sMensaje = "Excepción desconocida. " + errorGral.Message + " [integraFacturaPOP]"; iError++; } }