예제 #1
0
    private void lecturaXmlAbono(string xml)
    {
        XmlDocument doc = new XmlDocument();

        doc.LoadXml(xml);

        string codigo, mensaje;//, referencia, saldoCliente;

        string[] respuesta = new string[8] {
            "", "", "", "", "", "", "", ""
        };
        string[] respuestaHijos = new string[4] {
            "", "", "", ""
        };

        foreach (XmlNode nodos in doc.DocumentElement.ChildNodes)
        {
            bool   tieneHijos = false;
            string nodosHijo  = "#";
            try
            {
                nodosHijo = nodos.ChildNodes[0].Name;
                string valor = nodosHijo.Substring(0, 1);
                if (nodosHijo.Substring(0, 1) != "#")
                {
                    tieneHijos = true;
                }
                else
                {
                    tieneHijos = false;
                }
            }
            catch (Exception) { tieneHijos = false; }
            if (tieneHijos)
            {
                foreach (XmlNode nodoHijo in nodos.ChildNodes)
                {
                    switch (nodoHijo.Name)
                    {
                    case "CODIGO":
                        respuestaHijos[0] = nodoHijo.InnerText;
                        break;

                    case "TEXTO":
                        respuestaHijos[1] = nodoHijo.InnerText;
                        break;

                    case "SALDOCLIENTE":
                        respuestaHijos[2] = nodoHijo.InnerText;
                        break;

                    case "REFERENCIA":
                        respuestaHijos[3] = nodoHijo.InnerText;
                        break;

                    default: break;
                    }
                }
            }
            else
            {
                switch (nodos.Name)
                {
                case "ID_TX":
                    respuesta[0] = nodos.InnerText;
                    break;

                case "NUM_AUTORIZACION":
                    respuesta[1] = nodos.InnerText;
                    break;

                case "SALDO":
                    respuesta[2] = nodos.InnerText;
                    break;

                case "COMISION":
                    respuesta[3] = nodos.InnerText;
                    break;

                case "SALDO_F":
                    respuesta[4] = nodos.InnerText;
                    break;

                case "COMISION_F":
                    respuesta[5] = nodos.InnerText;
                    break;

                case "FECHA":
                    respuesta[6] = nodos.InnerText;
                    break;

                case "MONTO":
                    respuesta[7] = nodos.InnerText;
                    break;

                default: break;
                }
            }
        }

        registroPagos.añop             = fechas.obtieneFechaLocal().Year;
        registroPagos.punto            = _punto;
        registroPagos.caja             = _caja;
        registroPagos.usuario          = _usuario;
        registroPagos.telefono         = telefono;
        registroPagos.referencia_in    = referencia_in;
        registroPagos.catServicio      = catServicio;
        registroPagos.tipoFont         = tipoFont;
        registroPagos.idServicio       = idServicio;
        registroPagos.idProducto       = idProducto;
        registroPagos.montoPagar       = montoPagar;
        registroPagos.operacion        = operacion;
        registroPagos.codigo           = respuestaHijos[0];
        registroPagos.texto            = respuestaHijos[1];
        registroPagos.saldo_cliente    = respuestaHijos[2];
        registroPagos.referencia       = respuestaHijos[3];
        registroPagos.id_txt           = respuesta[0];
        registroPagos.num_autorizacion = respuesta[1];
        registroPagos.saldo            = respuesta[2];
        registroPagos.comision         = respuesta[3];
        registroPagos.saldo_f          = respuesta[4];
        registroPagos.comision_f       = respuesta[5];
        registroPagos.fecha            = respuesta[6];
        registroPagos.monto            = respuesta[7];
        registroPagos.xml = "";
        registroPagos.actualizaOperacion();

        codigo  = respuestaHijos[0];
        mensaje = respuestaHijos[1];
        _codigo = codigo;
        ErroresServicios erroresServicios = new ErroresServicios();

        erroresServicios._codigo  = codigo;
        erroresServicios._mensaje = mensaje;
        erroresServicios.obtieneCodigo();
        if (Convert.ToBoolean(erroresServicios._retorno[0]))
        {
            if (erroresServicios._codigo == "01")
            {
                if (respuesta[1] != "" && Convert.ToInt32(respuesta[1]) > 0)
                {
                    _retorno[0] = true;
                    if (tipoFront == 4)
                    {
                        _retorno[1] = erroresServicios._mensaje.Trim() + ". No. de Operación: " + operacion + ". No. Autorización:" + respuesta[1] + ". Saldo:" + respuestaHijos[2];
                    }
                    else
                    {
                        _retorno[1] = erroresServicios._mensaje.Trim() + ". No. de Operación: " + operacion + ". No. Autorización:" + respuesta[1];
                    }
                }
                else
                {
                    _retorno[0] = true;
                    _retorno[1] = "Error " + erroresServicios._codigo.Trim() + ": " + erroresServicios._mensaje.Trim() + Environment.NewLine + "Detalle:" + mensaje.ToUpper().Trim() + Environment.NewLine + ". No. de Operación: " + operacion;
                }
            }
            else if (codigo == "03" || codigo == "82")
            {
                _peticion = 3;
                Thread.Sleep(2000);
                obtienePagoServicios();
            }
            else
            {
                _retorno[0] = true;
                _retorno[1] = "Error " + erroresServicios._codigo.Trim() + ": " + erroresServicios._mensaje.Trim() + Environment.NewLine + "Detalle:" + mensaje.ToUpper().Trim() + Environment.NewLine + ". No. de Operación: " + operacion;
            }
        }
    }
예제 #2
0
    private void lecturaXmlsProductos(string xml)
    {
        XmlDocument doc = new XmlDocument();

        doc.LoadXml(xml);

        string codigo  = doc.DocumentElement.ChildNodes[0].ChildNodes[0].InnerText;
        string mensaje = doc.DocumentElement.ChildNodes[0].ChildNodes[1].InnerText.ToUpper();

        _codigo = codigo;
        ErroresServicios erroresServicios = new ErroresServicios();

        erroresServicios._codigo  = codigo;
        erroresServicios._mensaje = mensaje;
        erroresServicios.obtieneCodigo();
        if (Convert.ToBoolean(erroresServicios._retorno[0]))
        {
            if (erroresServicios._codigo == "01")
            {
                if (doc.DocumentElement.ChildNodes[1].ChildNodes.Count > 0)
                {
                    int i            = 0;
                    int actualizados = 0;
                    foreach (XmlNode nodo in doc.DocumentElement.ChildNodes[1].ChildNodes)
                    {
                        int     idCatTipoServicio    = Convert.ToInt32(nodo.Attributes["idCatTipoServicio"].Value);
                        int     idServicio           = Convert.ToInt32(nodo.Attributes["idServicio"].Value);
                        int     idProducto           = Convert.ToInt32(nodo.Attributes["idProducto"].Value);
                        int     tipoFront            = Convert.ToInt32(nodo.Attributes["tipoFront"].Value);
                        string  servicio             = nodo.Attributes["servicio"].Value;
                        string  productos            = nodo.Attributes["producto"].Value;
                        decimal precio               = Convert.ToDecimal(nodo.Attributes["precio"].Value);
                        bool    hasDigitoVerificador = Convert.ToBoolean(nodo.Attributes["hasDigitoVerificador"].Value);
                        bool    showAyuda            = Convert.ToBoolean(nodo.Attributes["showAyuda"].Value);

                        object[] actualizado = producto(idCatTipoServicio, idServicio, idProducto, tipoFront, servicio, productos, precio, hasDigitoVerificador, showAyuda);
                        if (Convert.ToBoolean(actualizado[0]))
                        {
                            actualizados++;
                        }
                        i++;
                    }
                    _retorno[0] = true;
                    if (actualizados == 0)
                    {
                        _retorno[1] = "No se registraron modificaciones a los productos";
                    }
                    else
                    {
                        _retorno[1] = "Se actualizaron " + actualizados + " productos de " + i;
                    }
                }
                else
                {
                    _retorno[0] = true;
                    _retorno[1] = "No se encontraron productos por parte del proveedor de servicios, Contactelo para que le brinde mas información";
                }
            }
            else
            {
                _retorno[0] = true;
                _retorno[1] = "Error " + erroresServicios._codigo.Trim() + ": " + erroresServicios._mensaje.Trim() + Environment.NewLine + "Detalle:" + mensaje.ToUpper().Trim();
            }
        }
    }
예제 #3
0
    private void lecturaXmlConfirmacion(string xml)
    {
        XmlDocument doc = new XmlDocument();

        doc.LoadXml(xml);

        string codigo, mensaje;

        string[] respuesta = new string[1] {
            "0"
        };
        string[] respuestaHijos = new string[2] {
            "", ""
        };

        foreach (XmlNode nodos in doc.DocumentElement.ChildNodes)
        {
            bool   tieneHijos = false;
            string nodosHijo  = "#";
            try
            {
                nodosHijo = nodos.ChildNodes[0].Name;
                if (nodosHijo.Substring(0, 1) != "#")
                {
                    tieneHijos = true;
                }
                else
                {
                    tieneHijos = false;
                }
            }
            catch (Exception) { tieneHijos = false; }
            if (tieneHijos)
            {
                foreach (XmlNode nodoHijo in nodos.ChildNodes)
                {
                    switch (nodoHijo.Name)
                    {
                    case "CODIGO":
                        respuestaHijos[0] = nodoHijo.InnerText;
                        break;

                    case "TEXTO":
                        respuestaHijos[1] = nodoHijo.InnerText;
                        break;

                    default: break;
                    }
                }
            }
            else
            {
                switch (nodos.Name)
                {
                case "NUM_AUTORIZACION":
                    respuesta[0] = nodos.InnerText;
                    break;

                default: break;
                }
            }
        }


        registroPagos.añop             = fechas.obtieneFechaLocal().Year;
        registroPagos.punto            = _punto;
        registroPagos.caja             = _caja;
        registroPagos.usuario          = _usuario;
        registroPagos.telefono         = telefono;
        registroPagos.referencia_in    = referencia_in;
        registroPagos.catServicio      = catServicio;
        registroPagos.tipoFont         = tipoFont;
        registroPagos.idServicio       = idServicio;
        registroPagos.idProducto       = idProducto;
        registroPagos.montoPagar       = montoPagar;
        registroPagos.operacion        = operacion;
        registroPagos.codigo           = respuestaHijos[0];
        registroPagos.texto            = respuestaHijos[1];
        registroPagos.num_autorizacion = respuesta[0];
        registroPagos.xml = xml;
        registroPagos.actualizaOperacion();


        codigo  = respuestaHijos[0];
        mensaje = respuestaHijos[1];
        ErroresServicios erroresServicios = new ErroresServicios();

        erroresServicios._codigo  = codigo;
        erroresServicios._mensaje = mensaje;
        erroresServicios.obtieneCodigo();
        if (Convert.ToBoolean(erroresServicios._retorno[0]))
        {
            if (erroresServicios._codigo == "06")
            {
                if (respuesta[0] != "" && Convert.ToInt32(respuesta[0]) > 0)
                {
                    _retorno[0] = true;
                    _retorno[1] = erroresServicios._mensaje.Trim() + ". No. Operación: " + operacion + ". No. Autorización:" + respuesta[0];
                }
                else
                {
                    _retorno[0] = true;
                    _retorno[1] = "Error " + erroresServicios._codigo.Trim() + ": " + erroresServicios._mensaje.Trim() + Environment.NewLine + "Detalle:" + mensaje.ToUpper().Trim() + Environment.NewLine + " No. Operación: " + operacion;
                }
            }
            else
            {
                _retorno[0] = true;
                _retorno[1] = "Error " + erroresServicios._codigo.Trim() + ": " + erroresServicios._mensaje.Trim() + Environment.NewLine + "Detalle:" + mensaje.ToUpper().Trim() + Environment.NewLine + " No. Operación: " + operacion;
            }
        }
    }