Ejemplo n.º 1
0
        /// <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++;
            }
        }
Ejemplo n.º 2
0
        /// <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++;
            }
        }
Ejemplo n.º 3
0
        /// <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++;
            }
        }