/// <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++; } }
public FacturaDeCompraAdicionales(ConexionDB DatosConexionDB, FacturaDeCompraPOP facturaPop) { _DatosConexionDB = DatosConexionDB; _facturaPop = facturaPop; }