/// <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 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++; } }