예제 #1
0
        public void gestiondedepositos(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE
                                       , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA
                                       , string P_ID_CIERRE, string P_ID_ARQUEO)

        {
            try
            {
                RETORNO       retorno;
                VIAS_PAGOGD   vpgestion;
                BCO_DESTINO   banco_destino;
                BCO_DEPOSITOS banco_depositos;

                //DETALLE_REND detallerend;
                vpgestiondepositos.Clear();
                Retorno.Clear();
                BancoDest.Clear();
                BancoDeposito.Clear();
                errormessage = "";
                message      = "";
                IdCaja       = "";
                Efectivo     = "0";

                IRfcTable lt_RETORNO;
                IRfcTable lt_VPGESTIONBANCOS;
                IRfcTable lt_BANCODEST;
                IRfcTable lt_BANCODEPOSITOS;

                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GESTION_DEPOSITOS");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_ARQUEO", P_ID_ARQUEO);



                    BapiGetUser.Invoke(SapRfcDestination);
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_VPGESTIONBANCOS = BapiGetUser.GetTable("VIAS_PAGO");

                    if (lt_VPGESTIONBANCOS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_VPGESTIONBANCOS.RowCount; i++)
                        {
                            try
                            {
                                lt_VPGESTIONBANCOS.CurrentIndex = i;
                                vpgestion = new VIAS_PAGOGD();

                                vpgestion.SELECCION     = lt_VPGESTIONBANCOS[i].GetString("SELECCION");
                                vpgestion.ID_CAJA       = lt_VPGESTIONBANCOS[i].GetString("ID_CAJA");
                                vpgestion.ID_APERTURA   = lt_VPGESTIONBANCOS[i].GetString("ID_APERTURA");
                                vpgestion.ID_CIERRE     = P_ID_CIERRE;
                                vpgestion.TEXT_VIA_PAGO = lt_VPGESTIONBANCOS[i].GetString("TEXT_VIA_PAGO");
                                vpgestion.FECHA_EMISION = lt_VPGESTIONBANCOS[i].GetString("FECHA_EMISION");
                                vpgestion.NUM_DOC       = lt_VPGESTIONBANCOS[i].GetString("NUM_DOC");
                                vpgestion.TEXT_BANCO    = lt_VPGESTIONBANCOS[i].GetString("TEXT_BANCO");
                                if (lt_VPGESTIONBANCOS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux    = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  monedachile = string.Format("{0:0,0}", ValorAux);
                                    vpgestion.MONTO_DOC = monedachile;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    vpgestion.MONTO_DOC = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //vpgestion.MONTO_DOC = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC");
                                vpgestion.ZUONR          = lt_VPGESTIONBANCOS[i].GetString("ZUONR");
                                vpgestion.FECHA_VENC     = lt_VPGESTIONBANCOS[i].GetString("FECHA_VENC");
                                vpgestion.MONEDA         = lt_VPGESTIONBANCOS[i].GetString("MONEDA");
                                vpgestion.ID_BANCO       = lt_VPGESTIONBANCOS[i].GetString("ID_BANCO");
                                vpgestion.VIA_PAGO       = lt_VPGESTIONBANCOS[i].GetString("VIA_PAGO");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.NUM_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("NUM_DEPOSITO");
                                vpgestion.USUARIO        = lt_VPGESTIONBANCOS[i].GetString("USUARIO");
                                vpgestion.ID_DEPOSITO    = lt_VPGESTIONBANCOS[i].GetString("ID_DEPOSITO");
                                vpgestion.FEC_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("FEC_DEPOSITO");
                                vpgestion.BANCO          = lt_VPGESTIONBANCOS[i].GetString("BANCO");
                                vpgestion.CTA_BANCO      = lt_VPGESTIONBANCOS[i].GetString("CTA_BANCO");
                                vpgestion.BELNR_DEP      = lt_VPGESTIONBANCOS[i].GetString("BELNR_DEP");
                                vpgestion.BELNR          = lt_VPGESTIONBANCOS[i].GetString("BELNR");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.HKONT          = lt_VPGESTIONBANCOS[i].GetString("HKONT");
                                vpgestion.ID_COMPROBANTE = lt_VPGESTIONBANCOS[i].GetString("ID_COMPROBANTE");
                                vpgestion.ID_DETALLE     = lt_VPGESTIONBANCOS[i].GetString("ID_DETALLE");
                                vpgestiondepositos.Add(vpgestion);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) de vias de pago");
                    }

                    lt_BANCODEST = BapiGetUser.GetTable("BCO_DESTINO");

                    if (lt_BANCODEST.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_BANCODEST.RowCount; i++)
                        {
                            try
                            {
                                lt_BANCODEST.CurrentIndex = i;
                                banco_destino             = new BCO_DESTINO();
                                banco_destino.BUKRS       = lt_BANCODEST[i].GetString("BUKRS");
                                banco_destino.HBKID       = lt_BANCODEST[i].GetString("HBKID");
                                banco_destino.HKTID       = lt_BANCODEST[i].GetString("HKTID");
                                banco_destino.BANKN       = lt_BANCODEST[i].GetString("BANKN");
                                banco_destino.BANKL       = lt_BANCODEST[i].GetString("BANKL");
                                banco_destino.BANKA       = lt_BANCODEST[i].GetString("BANKA");
                                banco_destino.WAERS       = lt_BANCODEST[i].GetString("WAERS");
                                banco_destino.TEXT1       = lt_BANCODEST[i].GetString("TEXT1");

                                BancoDest.Add(banco_destino);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) en banco destino");
                    }

                    lt_BANCODEPOSITOS = BapiGetUser.GetTable("BCO_DEPOSITOS");

                    if (lt_BANCODEPOSITOS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_BANCODEPOSITOS.RowCount; i++)
                        {
                            try
                            {
                                lt_BANCODEPOSITOS.CurrentIndex = i;
                                banco_depositos       = new BCO_DEPOSITOS();
                                banco_depositos.MANDT = lt_BANCODEPOSITOS[i].GetString("MANDT");
                                banco_depositos.BANKS = lt_BANCODEPOSITOS[i].GetString("BANKS");
                                banco_depositos.BUKRS = lt_BANCODEPOSITOS[i].GetString("BUKRS");
                                banco_depositos.WAERS = lt_BANCODEPOSITOS[i].GetString("WAERS");
                                banco_depositos.BANKL = lt_BANCODEPOSITOS[i].GetString("BANKL");
                                banco_depositos.HBKID = lt_BANCODEPOSITOS[i].GetString("HBKID");
                                banco_depositos.BANKN = lt_BANCODEPOSITOS[i].GetString("BANKN");
                                banco_depositos.BANKA = lt_BANCODEPOSITOS[i].GetString("BANKA");
                                banco_depositos.HKONT = lt_BANCODEPOSITOS[i].GetString("HKONT");

                                BancoDeposito.Add(banco_depositos);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) en depósitos de banco");
                    }



                    lt_RETORNO = BapiGetUser.GetTable("RETORNO");
                    try
                    {
                        for (int i = 0; i < lt_RETORNO.Count(); i++)
                        {
                            lt_RETORNO.CurrentIndex = i;
                            retorno = new RETORNO();
                            if (lt_RETORNO.GetString("TYPE") == "S")
                            {
                                message    = message + " - " + lt_RETORNO.GetString("MESSAGE") + "-" + lt_RETORNO.GetString("MESSAGE_V1").Trim();
                                NumComprob = lt_RETORNO.GetString("MESSAGE_V4").Trim();;
                            }
                            if (lt_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + lt_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = lt_RETORNO.GetString("TYPE");
                            retorno.ID         = lt_RETORNO.GetString("ID");
                            retorno.NUMBER     = lt_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = lt_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = lt_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = lt_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = lt_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = lt_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = lt_RETORNO.GetString("MESSAGE_V3");
                            if (lt_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = lt_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = lt_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = lt_RETORNO.GetString("ROW");
                            retorno.FIELD      = lt_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = lt_RETORNO.GetString("SYSTEM");
                            Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
예제 #2
0
        public void depositoproceso(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE
                                    , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA
                                    , string P_ID_CIERRE, string P_ID_ARQUEO, string P_FECHADEPOS, string P_NUMDEPOS, List <VIAS_PAGOGD> P_VIASPAGO, string P_DATOSBANCO, string P_HKONT)
        {
            try
            {
                CajaIndu.AppPersistencia.Class.DepositoProceso.Estructura.RETORNO retorno;
                VIAS_PAGOGD vpgestion;

                //DETALLE_REND detallerend;
                vpgestiondepositos.Clear();
                Retorno.Clear();
                errormessage = "";
                message      = "";
                IdCaja       = "";
                Efectivo     = "0";

                IRfcTable lt_RETORNO;
                IRfcTable lt_VPGESTIONBANCOS;


                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_PROC_DEPOSITOS");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_ARQUEO", P_ID_ARQUEO);

                    IRfcTable GralDat2 = BapiGetUser.GetTable("VIAS_PAGO_IN");
                    try
                    {
                        for (var i = 0; i < P_VIASPAGO.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("SELECCION", "X");
                            GralDat2.SetValue("ID_CAJA", P_VIASPAGO[i].ID_CAJA);
                            GralDat2.SetValue("ID_CIERRE", P_ID_CIERRE);
                            GralDat2.SetValue("TEXT_VIA_PAGO", P_VIASPAGO[i].TEXT_VIA_PAGO);
                            GralDat2.SetValue("FECHA_EMISION", P_VIASPAGO[i].FECHA_EMISION);
                            GralDat2.SetValue("NUM_DOC", P_VIASPAGO[i].NUM_DOC);
                            GralDat2.SetValue("TEXT_BANCO", P_VIASPAGO[i].TEXT_BANCO);
                            GralDat2.SetValue("MONTO_DOC", P_VIASPAGO[i].MONTO_DOC);
                            GralDat2.SetValue("ZUONR", P_VIASPAGO[i].ZUONR);
                            GralDat2.SetValue("FECHA_VENC", P_VIASPAGO[i].FECHA_VENC);
                            GralDat2.SetValue("MONEDA", P_VIASPAGO[i].MONEDA);
                            GralDat2.SetValue("ID_BANCO", P_VIASPAGO[i].ID_BANCO);
                            GralDat2.SetValue("VIA_PAGO", P_VIASPAGO[i].VIA_PAGO);
                            GralDat2.SetValue("NUM_DEPOSITO", P_NUMDEPOS);
                            GralDat2.SetValue("USUARIO", P_VIASPAGO[i].USUARIO);
                            GralDat2.SetValue("ID_DEPOSITO", P_VIASPAGO[i].ID_DEPOSITO);
                            GralDat2.SetValue("FEC_DEPOSITO", Convert.ToDateTime(P_FECHADEPOS));
                            //gdepot.BancoDest[i].BANKN + "-" + gdepot.BancoDest[i].BANKL + "-" + gdepot.BancoDest[i].BANKA
                            int Posicion      = 0;
                            int PosicionFinal = 0;
                            Posicion = P_DATOSBANCO.IndexOf("-");
                            string CodCuenta = P_DATOSBANCO.Substring(0, Posicion);
                            PosicionFinal = P_DATOSBANCO.LastIndexOf("-");
                            string CodBanco = P_DATOSBANCO.Substring(Posicion + 1, (PosicionFinal) - (Posicion + 1));
                            //GralDat2.SetValue("BANCO", P_VIASPAGO[i].BANCO);
                            GralDat2.SetValue("BANCO", CodBanco);

                            GralDat2.SetValue("CTA_BANCO", CodCuenta);
                            GralDat2.SetValue("BELNR_DEP", P_VIASPAGO[i].BELNR_DEP);
                            GralDat2.SetValue("BELNR", P_VIASPAGO[i].BELNR);
                            GralDat2.SetValue("SOCIEDAD", P_VIASPAGO[i].SOCIEDAD);
                            GralDat2.SetValue("HKONT", P_HKONT);
                            GralDat2.SetValue("ID_COMPROBANTE", P_VIASPAGO[i].ID_COMPROBANTE);
                            GralDat2.SetValue("ID_DETALLE", P_VIASPAGO[i].ID_DETALLE);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                        //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("VIAS_PAGO_IN", GralDat2);

                    BapiGetUser.Invoke(SapRfcDestination);

                    Deposito = BapiGetUser.GetString("ID_DEPOSITO");
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_VPGESTIONBANCOS = BapiGetUser.GetTable("VIAS_PAGO_IN");

                    if (lt_VPGESTIONBANCOS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_VPGESTIONBANCOS.RowCount; i++)
                        {
                            try
                            {
                                lt_VPGESTIONBANCOS.CurrentIndex = i;
                                vpgestion = new VIAS_PAGOGD();

                                vpgestion.SELECCION      = lt_VPGESTIONBANCOS[i].GetString("SELECCION");
                                vpgestion.ID_CAJA        = lt_VPGESTIONBANCOS[i].GetString("ID_CAJA");
                                vpgestion.ID_APERTURA    = lt_VPGESTIONBANCOS[i].GetString("ID_APERTURA");
                                vpgestion.ID_CIERRE      = lt_VPGESTIONBANCOS[i].GetString("ID_CIERRE");
                                vpgestion.TEXT_VIA_PAGO  = lt_VPGESTIONBANCOS[i].GetString("TEXT_VIA_PAGO");
                                vpgestion.FECHA_EMISION  = lt_VPGESTIONBANCOS[i].GetString("FECHA_EMISION");
                                vpgestion.NUM_DOC        = lt_VPGESTIONBANCOS[i].GetString("NUM_DOC");
                                vpgestion.TEXT_BANCO     = lt_VPGESTIONBANCOS[i].GetString("TEXT_BANCO");
                                vpgestion.MONTO_DOC      = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC");
                                vpgestion.ZUONR          = lt_VPGESTIONBANCOS[i].GetString("ZUONR");
                                vpgestion.FECHA_VENC     = lt_VPGESTIONBANCOS[i].GetString("FECHA_VENC");
                                vpgestion.MONEDA         = lt_VPGESTIONBANCOS[i].GetString("MONEDA");
                                vpgestion.ID_BANCO       = lt_VPGESTIONBANCOS[i].GetString("ID_BANCO");
                                vpgestion.VIA_PAGO       = lt_VPGESTIONBANCOS[i].GetString("VIA_PAGO");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.NUM_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("NUM_DEPOSITO");
                                vpgestion.USUARIO        = lt_VPGESTIONBANCOS[i].GetString("USUARIO");
                                vpgestion.ID_DEPOSITO    = lt_VPGESTIONBANCOS[i].GetString("ID_DEPOSITO");
                                vpgestion.FEC_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("FEC_DEPOSITO");
                                vpgestion.BANCO          = lt_VPGESTIONBANCOS[i].GetString("BANCO");
                                vpgestion.CTA_BANCO      = lt_VPGESTIONBANCOS[i].GetString("CTA_BANCO");
                                vpgestion.BELNR_DEP      = lt_VPGESTIONBANCOS[i].GetString("BELNR_DEP");
                                vpgestion.BELNR          = lt_VPGESTIONBANCOS[i].GetString("BELNR");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.ID_COMPROBANTE = lt_VPGESTIONBANCOS[i].GetString("ID_COMPROBANTE");
                                vpgestion.ID_DETALLE     = lt_VPGESTIONBANCOS[i].GetString("ID_DETALLE");
                                vpgestiondepositos.Add(vpgestion);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s)");
                    }

                    lt_RETORNO = BapiGetUser.GetTable("RETORNO");
                    try
                    {
                        for (int i = 0; i < lt_RETORNO.Count(); i++)
                        {
                            lt_RETORNO.CurrentIndex = i;
                            retorno = new CajaIndu.AppPersistencia.Class.DepositoProceso.Estructura.RETORNO();
                            if (lt_RETORNO.GetString("TYPE") == "S")
                            {
                                message    = message + " - " + lt_RETORNO.GetString("MESSAGE") + "-" + lt_RETORNO.GetString("MESSAGE_V1").Trim();
                                NumComprob = lt_RETORNO.GetString("MESSAGE_V4").Trim();;
                            }
                            if (lt_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + lt_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE = lt_RETORNO.GetString("TYPE");
                            retorno.CODE = lt_RETORNO.GetString("CODE");
                            // retorno.NUMBER = lt_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = lt_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = lt_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = lt_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = lt_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = lt_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = lt_RETORNO.GetString("MESSAGE_V3");
                            if (lt_RETORNO.GetString("MESSAGE_V1") != "")
                            {
                                comprobante = comprobante + "-" + lt_RETORNO.GetString("MESSAGE_V1");
                            }
                            retorno.MESSAGE_V4 = lt_RETORNO.GetString("MESSAGE_V4");
                            //  retorno.PARAMETER = lt_RETORNO.GetString("PARAMETER");
                            //  retorno.ROW = lt_RETORNO.GetString("ROW");
                            //  retorno.FIELD = lt_RETORNO.GetString("FIELD");
                            // retorno.SYSTEM = lt_RETORNO.GetString("SYSTEM");
                            Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }