using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using LLNet.GUI;
using System.Text.RegularExpressions;
using LLNet.Utils;

namespace LLNet.Tienda.MainForms.Forms.MisPuntos
{
    /*************************DLQG***********************************/
    public partial class frmAfiliacion : LLNet.GUI.FormBases.frmBase
    {

        private string varUrlPts, varCodemprPts, varCodsucPts, id;

        private void Consultar_Puntos()
        {
            BitacoraTiempo(txttarjeta.Text, "consultar_puntos.php");
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&numero_tarjeta=" + txttarjeta.Text;
            string info = RequestPOST(varUrlPts + "consultar_puntos.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();

            string[] datos = info.Split(' ');

            if (datos.Length > 4)
            {
                if (datos[3].ToString() == "10")
                {
                    txtPtsAcumul.Text = datos[0].ToString();
                    txtPtsRedim.Text = datos[1].ToString();
                    txtPtsDisp.Text = datos[2].ToString();
                }
                else
                {
                    CApp.ShowMessage(info, "Afiliación - ConsultarPuntos", true);
                    BitacoraErrorWS("WS=" + varUrlPts + "consultar_puntos.php " + info, PData);
                }
            }
            else
            {
                txtPtsAcumul.Text = "0";
                txtPtsRedim.Text = "0";
                txtPtsDisp.Text = "0";
                CApp.ShowMessage(info, "Afiliación - ConsultarPuntos", true);
                BitacoraErrorWS("WS=" + varUrlPts + "consultar_puntos.php " + info, PData);
            }
        }

        private void ConsDatos()
        {
            BitacoraTiempo(txtMTarjet.Text, "consultar_informacion.php");
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=0&numero_tarjeta=" + txtMTarjet.Text;
            string info = RequestPOST(varUrlPts + "consultar_informacion.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();
            if (info.StartsWith("<br>"))
            {
                info = info.Replace("<br>", "*");
                info = info.Replace("**", "*");
                string[] datos = info.Split('*');
                LimpiarM(false);
                if (datos.Length > 1)
                {
                    txtmnombre.Text = datos[1].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido1.Text = datos[2].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido2.Text = datos[3].ToString().Split('=').GetValue(1).ToString();
                    dTPMFecha.Text = datos[4].ToString().Split('=').GetValue(1).ToString();
                    txtMCorreo.Text = datos[5].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef1.Text = datos[8].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef2.Text = datos[7].ToString().Split('=').GetValue(1).ToString();
                    cBxMProvincia.Text = datos[10].ToString().Split('=').GetValue(1).ToString();
                    cBoxMCanton.Text = datos[11].ToString().Split('=').GetValue(1).ToString();
                    cBoxMDistrito.Text = datos[9].ToString().Split('=').GetValue(1).ToString();
                    cbxMGenero.Text = datos[12].ToString().Split('=').GetValue(1).ToString();
                    txtMCed.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtMTarjet.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                    txttarjCrediE.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                }
            }
            else
            {
                CApp.ShowMessage(info, "Afiliación - Consulta Datos", true);
                BitacoraErrorWS("WS=" + varUrlPts + "consultar_informacion.php " + info, PData);
                LimpiarM(false);
            }
        }
        private void ConsDatos_CBB()
        {
            BitacoraTiempo(txtMTarjet_CBB.Text, "consultar_informacion.php");
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=0&numero_tarjeta=" + txtMTarjet_CBB.Text;
            string info = RequestPOST(varUrlPts + "consultar_informacion.php", PData);
            if (info.StartsWith("20"))
            {
                String tarjetaTemp = frmGestionCbb.ObtenerTarjetaValida(txtMTarjet_CBB.Text);
                if (tarjetaTemp != "")
                {
                    PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=0&numero_tarjeta=" + tarjetaTemp;
                    info = RequestPOST(varUrlPts + "consultar_informacion.php", PData);
                }

            }
            BitacoraTiempoF(id);
            info = info.Trim();
            if (info.StartsWith("<br>"))
            {
                info = info.Replace("<br>", "*");
                info = info.Replace("**", "*");
                string[] datos = info.Split('*');
                //LimpiarM_CBB(true);
                if (datos.Length > 1)
                {
                    txtmnombre_CBB.Text = datos[1].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido1_CBB.Text = datos[2].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido2_CBB.Text = datos[3].ToString().Split('=').GetValue(1).ToString();
                    dTPMFecha_CBB.Text = datos[4].ToString().Split('=').GetValue(1).ToString();
                    txtMCorreo_CBB.Text = datos[5].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef1_CBB.Text = datos[8].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef2_CBB.Text = datos[7].ToString().Split('=').GetValue(1).ToString();
                    cBxMProvincia_CBB.Text = datos[10].ToString().Split('=').GetValue(1).ToString();
                    cBoxMCanton_CBB.Text = datos[11].ToString().Split('=').GetValue(1).ToString();
                    cBoxMDistrito_CBB.Text = datos[9].ToString().Split('=').GetValue(1).ToString();
                    cbxMGenero_CBB.Text = datos[12].ToString().Split('=').GetValue(1).ToString();
                    txtMCed_CBB.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtMTarjet_CBB.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                    txtMCed_A_CBB.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtTarje_A_CBB.Enabled = true;
                    if (datos[14].ToString().Split('=').GetValue(1).ToString() != "")
                    {
                        String cedula = datos[14].ToString().Split('=').GetValue(1).ToString();
                        int count = 0;
                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                        qp = new QueryParams();
                        qp.AddReplaceParam("p_C_CEDULA", cedula);
                        count = Convert.ToInt32(GUI.CApp.bll.GetSingleValue("cbb_CLIENTE_EXISTE", qp, "PDV"));
                        if (count > 0)
                        {
                            txt_cedula_Micbb.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                            txtTarje_A_CBB.Enabled = false;
                            btn_AsoC_CBB.Enabled = false;
                            btn_VerConf_cbb.Enabled = true;
                            CApp.ShowMessage("Esta persona ya pertenece al Club del Bebé", "Afiliación - Consulta Datos Cédula Club del Bebé", true);
                        }
                        else
                        {
                            txtTarje_A_CBB.Enabled = true;
                            btn_AsoC_CBB.Enabled = true;
                            btn_VerConf_cbb.Enabled = false;
                        }

                        //QueryParams qpOF1117 = new QueryParams();
                        //qpOF1117.AddReplaceParam("Param1", h_ent);
                        //CApp.bll.ExecuteSql("VALIDATE_MODIFY_M", qpOF1117, "PDV");
                        //v_modify_m = Convert.ToInt32(CApp.bll.GetSingleValue("VALIDATE_MODIFY_M", qpOF1117, "PDV"));
                    }



                }
            }
            else
            {
                btn_AsoC_CBB.Enabled = false;
                CApp.ShowMessage(info, "Afiliación - Consulta Datos Cédula Club del Bebé", true);
                BitacoraErrorWS("WS=" + varUrlPts + "consultar_informacion.php " + info, PData);
                LimpiarM_CBB(true);
            }
            //if (info.StartsWith("<br>"))
            //{
            //    info = info.Replace("<br>", "*");
            //    info = info.Replace("**", "*");
            //    string[] datos = info.Split('*');
            //    LimpiarM_CBB(false);
            //    if (datos.Length > 1)
            //    {
            //        txtmnombre_CBB.Text = datos[1].ToString().Split('=').GetValue(1).ToString();
            //        txtMApellido1_CBB.Text = datos[2].ToString().Split('=').GetValue(1).ToString();
            //        txtMApellido2_CBB.Text = datos[3].ToString().Split('=').GetValue(1).ToString();
            //        dTPMFecha_CBB.Text = datos[4].ToString().Split('=').GetValue(1).ToString();
            //        txtMCorreo_CBB.Text = datos[5].ToString().Split('=').GetValue(1).ToString();
            //        mTxtMTelef1_CBB.Text = datos[8].ToString().Split('=').GetValue(1).ToString();
            //        mTxtMTelef2_CBB.Text = datos[7].ToString().Split('=').GetValue(1).ToString();
            //        cBxMProvincia_CBB.Text = datos[10].ToString().Split('=').GetValue(1).ToString();
            //        cBoxMCanton_CBB.Text = datos[11].ToString().Split('=').GetValue(1).ToString();
            //        cBoxMDistrito_CBB.Text = datos[9].ToString().Split('=').GetValue(1).ToString();
            //        cbxMGenero_CBB.Text = datos[12].ToString().Split('=').GetValue(1).ToString();
            //        txtMCed_CBB.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
            //        txtMTarjet_CBB.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
            //        //txttarjCrediE.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
            //        txtTarje_A_CBB.Enabled = true;
            //    }
            //}
            //else
            //{
            //    CApp.ShowMessage(info, "Afiliación - Consulta Datos Club del Bebé", true);
            //    BitacoraErrorWS("WS=" + varUrlPts + "consultar_informacion.php " + info, PData);
            //    LimpiarM_CBB(false);
            //}
        }
        private void ConsDatosCed_CBB()
        {
            BitacoraTiempo(txtMCed_CBB.Text, "consultar_informacion.php");
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=1&numero_tarjeta=" + txtMCed_CBB.Text;
            //string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=1&numero_tarjeta=" + "true";
            string info = RequestPOST(varUrlPts + "consultar_informacion.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();

            if (info.StartsWith("<br>"))
            {
                info = info.Replace("<br>", "*");
                info = info.Replace("**", "*");
                string[] datos = info.Split('*');
                //LimpiarM_CBB(true);
                if (datos.Length > 1)
                {
                    txtmnombre_CBB.Text = datos[1].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido1_CBB.Text = datos[2].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido2_CBB.Text = datos[3].ToString().Split('=').GetValue(1).ToString();
                    dTPMFecha_CBB.Text = datos[4].ToString().Split('=').GetValue(1).ToString();
                    txtMCorreo_CBB.Text = datos[5].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef1_CBB.Text = datos[8].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef2_CBB.Text = datos[7].ToString().Split('=').GetValue(1).ToString();
                    cBxMProvincia_CBB.Text = datos[10].ToString().Split('=').GetValue(1).ToString();
                    cBoxMCanton_CBB.Text = datos[11].ToString().Split('=').GetValue(1).ToString();
                    cBoxMDistrito_CBB.Text = datos[9].ToString().Split('=').GetValue(1).ToString();
                    cbxMGenero_CBB.Text = datos[12].ToString().Split('=').GetValue(1).ToString();
                    txtMCed_CBB.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtMTarjet_CBB.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                    txtMCed_A_CBB.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtTarje_A_CBB.Enabled = true;
                    if (datos[14].ToString().Split('=').GetValue(1).ToString() != "")
                    {
                        String cedula = datos[14].ToString().Split('=').GetValue(1).ToString();
                        Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
                        //qp2.AddReplaceParam("pCed", TxtCedASO.Text);
                        qp2.AddReplaceParam("pCed", cedula);
                        DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "ClixCedPts", qp2);
                        if (dsB.Tables[0].Rows.Count <= 0)
                        {
                            Utils.QueryParams qp3 = new LLNet.Utils.QueryParams();

                            qp3.AddReplaceParam("pTARJETA", datos[16].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pCEDULA", datos[14].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pNOMBRE", datos[1].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pAPELLIDO1", datos[2].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pAPELLIDO2", datos[3].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pTELEFONO1", (String.IsNullOrEmpty(datos[8].ToString().Split('=').GetValue(1).ToString()) ? "-" : datos[8].ToString().Split('=').GetValue(1).ToString()));
                            qp3.AddReplaceParam("pTELEFONO2", datos[7].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pEMAIL", datos[5].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pFECHA_NAC", dTPMFecha_CBB.Value.ToShortDateString());
                            qp3.AddReplaceParam("pGENERO", datos[12].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pPROVINCIA", datos[10].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pCANTON", datos[11].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pDISTRITO", datos[9].ToString().Split('=').GetValue(1).ToString());
                            qp3.AddReplaceParam("pPERTENECE_A", "MisPts");
                            qp3.AddReplaceParam("pCAJERO", GUI.CApp.usuario);

                            GUI.CApp.bll.ExecuteSql("WMS_IClienteMisPts", qp3, "PDV");
                        }
                        int count = 0;
                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                        qp = new QueryParams();
                        qp.AddReplaceParam("p_C_CEDULA", cedula);
                        count = Convert.ToInt32(GUI.CApp.bll.GetSingleValue("cbb_CLIENTE_EXISTE", qp, "PDV"));
                        if (count > 0)
                        {
                            txt_cedula_Micbb.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                            txtTarje_A_CBB.Enabled = false;
                            btn_AsoC_CBB.Enabled = false;
                            btn_VerConf_cbb.Enabled = true;
                            CApp.ShowMessage("Esta persona ya pertenece al Club del Bebé", "Afiliación - Consulta Datos Cédula Club del Bebé", true);
                            if (!frmGestionCbb.TarjetaCBBActiva(datos[14].ToString().Split('=').GetValue(1).ToString()))
                            {
                                btn_VerConf_cbb.Enabled = false;
                                CApp.ShowMessage("Tarjeta Club Bebé se encuentra inactiva, por favor crear una nueva lista de regalo para activar la tarjeta", "Club del Bebé", true);
                            }

                        }
                        else
                        {
                            txtTarje_A_CBB.Enabled = true;
                            btn_AsoC_CBB.Enabled = true;
                            btn_VerConf_cbb.Enabled = false;
                        }

                        //QueryParams qpOF1117 = new QueryParams();
                        //qpOF1117.AddReplaceParam("Param1", h_ent);
                        //CApp.bll.ExecuteSql("VALIDATE_MODIFY_M", qpOF1117, "PDV");
                        //v_modify_m = Convert.ToInt32(CApp.bll.GetSingleValue("VALIDATE_MODIFY_M", qpOF1117, "PDV"));
                    }



                }
            }
            else
            {
                btn_AsoC_CBB.Enabled = false;
                CApp.ShowMessage(info, "Afiliación - Consulta Datos Cédula Club del Bebé", true);
                BitacoraErrorWS("WS=" + varUrlPts + "consultar_informacion.php " + info, PData);
                LimpiarM_CBB(true);
            }
        }
        private void ConsDatosCed()
        {
            BitacoraTiempo(txtMCed.Text, "consultar_informacion.php");
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta_informacion.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&consulta_cedula=1&numero_tarjeta=" + txtMCed.Text;
            string info = RequestPOST(varUrlPts + "consultar_informacion.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();

            if (info.StartsWith("<br>"))
            {
                info = info.Replace("<br>", "*");
                info = info.Replace("**", "*");
                string[] datos = info.Split('*');
                LimpiarM(true);
                if (datos.Length > 1)
                {
                    txtmnombre.Text = datos[1].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido1.Text = datos[2].ToString().Split('=').GetValue(1).ToString();
                    txtMApellido2.Text = datos[3].ToString().Split('=').GetValue(1).ToString();
                    dTPMFecha.Text = datos[4].ToString().Split('=').GetValue(1).ToString();
                    txtMCorreo.Text = datos[5].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef1.Text = datos[8].ToString().Split('=').GetValue(1).ToString();
                    mTxtMTelef2.Text = datos[7].ToString().Split('=').GetValue(1).ToString();
                    cBxMProvincia.Text = datos[10].ToString().Split('=').GetValue(1).ToString();
                    cBoxMCanton.Text = datos[11].ToString().Split('=').GetValue(1).ToString();
                    cBoxMDistrito.Text = datos[9].ToString().Split('=').GetValue(1).ToString();
                    cbxMGenero.Text = datos[12].ToString().Split('=').GetValue(1).ToString();
                    txtMCed.Text = datos[14].ToString().Split('=').GetValue(1).ToString();
                    txtMTarjet.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                    txttarjCrediE.Text = datos[16].ToString().Split('=').GetValue(1).ToString();
                }
            }
            else
            {
                CApp.ShowMessage(info, "Afiliación - Consulta Datos Cédula", true);
                BitacoraErrorWS("WS=" + varUrlPts + "consultar_informacion.php " + info, PData);
                LimpiarM(true);
            }
        }

        private void Afilicion()
        {
            string PData = "";
            try
            {
                txtemail.Text = txtemail.Text.Trim();
                txtNTarjet.Text = txtNTarjet.Text.Trim();
                BitacoraTiempo(txtNTarjet.Text, "afiliacion.php");
                //Envia los datos al proveedor
                PData = "url_respuesta=" + varUrlPts + "prueba_respuesta.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&numero_tarjeta=" + txtNTarjet.Text;
                PData += "&nombre=" + txtNombre.Text + "&apellido1=" + txtApellido1.Text + "&apellido2=" + txtApellido2.Text + "&cedula=" + txtCedula.Text + "&fecha=" + dtpfechaNac.Text + "&correo=" + txtemail.Text;
                PData += "&genero=" + cbxGenero.Text + "&tipo_ubicacion=1&id_ubicacion=30105&localidad=" + cbxProvincia.Text + "&ciudad=" + cBxCanton.Text + "&distrito=" + cBxDistrito.Text + "&comentario=";
                PData += "&tel_oficina_th=&tel_casa_th=" + mtxtTelefono2.Text + "&tel_movil_th=" + mtxtTelefono1.Text + "&nombre_cajero=" + GUI.CApp.usuario;

                string info = RequestPOST(varUrlPts + "afiliacion.php", PData);
                BitacoraTiempoF(id);
                info = info.Trim();
                string[] datos = info.Split(' ');

                if (datos.Length > 2)
                {
                    if (datos[0].ToString() == "10")
                    {
                        //Almacena los datos en nuestra Base d Datos
                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                        //pTARJETA,pCEDULA,pNOMBRE,pAPELLIDO1,pAPELLIDO2,pTELEFONO1,pTELEFONO2,pEMAIL,pFECHA_NAC,pGENERO,pPROVINCIA,pCANTON,pDISTRITO,pPERTENECE_A
                        qp.AddReplaceParam("pTARJETA", txtNTarjet.Text);
                        qp.AddReplaceParam("pCEDULA", txtCedula.Text);
                        qp.AddReplaceParam("pNOMBRE", txtNombre.Text);
                        qp.AddReplaceParam("pAPELLIDO1", txtApellido1.Text);
                        qp.AddReplaceParam("pAPELLIDO2", txtApellido2.Text);
                        qp.AddReplaceParam("pTELEFONO1", mtxtTelefono1.Text);
                        qp.AddReplaceParam("pTELEFONO2", mtxtTelefono2.Text);
                        qp.AddReplaceParam("pEMAIL", txtemail.Text);
                        qp.AddReplaceParam("pFECHA_NAC", dtpfechaNac.Value.ToShortDateString());
                        qp.AddReplaceParam("pGENERO", cbxGenero.Text);
                        qp.AddReplaceParam("pPROVINCIA", cbxProvincia.Text);
                        qp.AddReplaceParam("pCANTON", cBxCanton.Text);
                        qp.AddReplaceParam("pDISTRITO", cBxDistrito.Text);
                        qp.AddReplaceParam("pPERTENECE_A", "MisPts");
                        qp.AddReplaceParam("pCAJERO", GUI.CApp.usuario);
                        // Llama el procedimiento que almacena el error de la recarga en la BD
                        GUI.CApp.bll.ExecuteSql("WMS_IClienteMisPts", qp, "PDV");
                        CApp.ShowMessage("Cliente creado exitosamente", "Afiliación - Afiliación", true);
                        LimpiarA();
                    }
                    else
                    {
                        CApp.ShowMessage(info, "Afiliación - Afiliación", true);
                        BitacoraErrorWS("WS=" + varUrlPts + "afiliacion.php " + info, PData);
                    }
                }
                else
                {
                    CApp.ShowMessage(info, "Afiliación - Afiliación", true);
                    BitacoraErrorWS("WS=" + varUrlPts + "afiliacion.php " + info, PData);
                }
            }
            catch (Exception er)
            {
                CApp.ShowMessage(er.Message, "Afiliación - Afiliación", true);
                BitacoraErrorWS("WS=" + varUrlPts + "afiliacion.php " + er.Message, PData);
            }
        }

        private void ModifDatos()
        {
            BitacoraTiempo(txtMTarjet.Text, "modificacion_tarjetahabiente.php");
            //Envia los datos al proveedor
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&numero_tarjeta=" + txtMTarjet.Text;
            PData += "&nombre_th=" + txtmnombre.Text + "&apellido1_th=" + txtMApellido1.Text + "&apellido2_th=" + txtMApellido2.Text + "&cedula_th=" + txtMCed.Text + "&fecha_th=" + dTPMFecha.Text + "&email_th=" + txtMCorreo.Text;
            PData += "&genero_th=" + cbxMGenero.Text + "&tipo_ubicacion=1&id_ubicacion=30105&localidad=" + cBxMProvincia.Text + "&ciudad=" + cBoxMCanton.Text + "&distrito=" + cBoxMDistrito.Text + "&comentario_th=";
            PData += "&tel_oficina_th=&tel_casa_th=" + mTxtMTelef2.Text + "&tel_movil_th=" + mTxtMTelef1.Text;

            string info = RequestPOST(varUrlPts + "modificacion_tarjetahabiente.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();
            string[] datos = info.Split(' ');

            if (datos.Length > 2)
            {
                if (datos[0].ToString() == "10")
                {
                    //ACTUALIZA los datos en nuestra Base d Datos
                    Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                    //pTARJETA,pCEDULA,pNOMBRE,pAPELLIDO1,pAPELLIDO2,pTELEFONO1,pTELEFONO2,pEMAIL,pFECHA_NAC,pGENERO,pPROVINCIA,pCANTON,pDISTRITO,pPERTENECE_A
                    qp.AddReplaceParam("pTARJETA", txtMTarjet.Text);
                    qp.AddReplaceParam("pCEDULA", txtMCed.Text);
                    qp.AddReplaceParam("pNOMBRE", txtmnombre.Text);
                    qp.AddReplaceParam("pAPELLIDO1", txtMApellido1.Text);
                    qp.AddReplaceParam("pAPELLIDO2", txtMApellido2.Text);
                    qp.AddReplaceParam("pTELEFONO1", mTxtMTelef1.Text);
                    qp.AddReplaceParam("pTELEFONO2", mTxtMTelef2.Text);
                    qp.AddReplaceParam("pEMAIL", txtMCorreo.Text);
                    qp.AddReplaceParam("pFECHA_NAC", dTPMFecha.Value.ToShortDateString());
                    qp.AddReplaceParam("pGENERO", cbxMGenero.Text);
                    qp.AddReplaceParam("pPROVINCIA", cBxMProvincia.Text);
                    qp.AddReplaceParam("pCANTON", cBoxMCanton.Text);
                    qp.AddReplaceParam("pDISTRITO", cBoxMDistrito.Text);
                    qp.AddReplaceParam("pPERTENECE_A", "MisPts");
                    qp.AddReplaceParam("pCAJERO", GUI.CApp.usuario);
                    // Llama el procedimiento que actualiza los datos del cliente
                    GUI.CApp.bll.ExecuteSql("WMS_AClienteMisPts", qp, "PDV");
                    CApp.ShowMessage("Datos actualizados con éxito", "Afiliación - Actualizar Datos", true);
                }
                else
                {
                    CApp.ShowMessage(info, "Afiliación - Actualizar Datos ", true);
                    BitacoraErrorWS("WS=" + varUrlPts + "modificacion_tarjetahabiente.php " + info, PData);
                }
            }
            else
            {
                CApp.ShowMessage(info, "Afiliación - Actualizar Datos", true);
                BitacoraErrorWS("WS=" + varUrlPts + "modificacion_tarjetahabiente.php " + info, PData);
            }
        }

        private void ReemplazaPlastico()
        {
            BitacoraTiempo(txtRTarjet.Text, "reemplazo_tarjeta.php");
            //Envia los datos al proveedor
            string PData = "url_respuesta=" + varUrlPts + "prueba_respuesta.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&numero_tarjeta=" + txtRTarjet.Text + "&numero_nueva_tarjeta=" + txtRNewTarj.Text;
            string info = RequestPOST(varUrlPts + "reemplazo_tarjeta.php", PData);
            BitacoraTiempoF(id);
            info = info.Trim();
            string[] datos = info.Split(' ');

            if (datos.Length > 2)
            {
                if (datos[0].ToString() == "10")
                {

                    //Almacena los datos en nuestra Base d Datos
                    Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                    qp.AddReplaceParam("pTARJETA", txtRTarjet.Text);
                    qp.AddReplaceParam("pNEWTARJETA", txtRNewTarj.Text);
                    // Llama el procedimiento que almacena el error de la recarga en la BD
                    GUI.CApp.bll.ExecuteSql("wms_RPlasticoMisPts", qp, "PDV");

                    //Actualiza el tipo de cliente
                    //Selecciona el tipo de cliente actual de la BD
                    string vtipo = "";
                    Utils.QueryParams qpt = new LLNet.Utils.QueryParams();
                    qpt.AddReplaceParam("pTARJETA", txtRNewTarj.Text);
                    vtipo = Convert.ToString(GUI.CApp.bll.GetSingleValue("PTS_F_TIPOXTARJ", qpt, "PDV"));

                    #region //Envia la actualización al proveedor

                    //Realiza la actualización con el Web Service
                    //www.mispuntoscr.com/desarrollo/cambio_tipo_tarjeta.php?cod_empresa=R5UN957N&numero_tarjeta=10000000000000000001&id_tipo_tarjeta=58
                    //Envia los datos al proveedor
                    PData = "url_respuesta=" + varUrlPts + "cambio_tipo_tarjeta.php?tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&numero_tarjeta=" + txtRNewTarj.Text.Trim() + "&id_tipo_tarjeta=" + vtipo + "&nombre_cajero=" + GUI.CApp.usuario;
                    info = RequestPOST(varUrlPts + "cambio_tipo_tarjeta.php", PData);
                    info = info.Trim();
                    string[] datos2 = info.Split(' ');

                    /*
                    string PData = "url_respuesta=" + varUrlPts + "cambio_tipo_tarjeta.php?tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&numero_tarjeta=" + txttarjsubnvl.Text.Trim() + "&id_tipo_tarjeta=" + cambio + "&nombre_cajero=" + GUI.CApp.usuario;
                    string info = RequestPOST(varUrlPts + "cambio_tipo_tarjeta.php", PData);
                    info = info.Trim();
                    string[] datos2 = info.Split(' ');
                    */


                    if (datos2.Length > 2)
                    {
                        if (datos2[0].ToString() != "10")
                        { //almacena el error                            
                            CApp.ShowMessage(info, "Afiliación - cambio_tipo_tarjeta ", true);
                            BitacoraErrorWS("WS=" + varUrlPts + "cambio_tipo_tarjeta.php " + info, PData);
                        }
                    }
                    else
                    { //almacena el error
                        CApp.ShowMessage(info, "Afiliación - cambio_tipo_tarjeta", true);
                        BitacoraErrorWS("WS=" + varUrlPts + "cambio_tipo_tarjeta.php " + info, PData);
                    }

                    #endregion
                }
                else
                { //almacena el error
                    CApp.ShowMessage(info, "Afiliación - Reemplazar Tarjeta ", true);
                    BitacoraErrorWS("WS=" + varUrlPts + "reemplazo_tarjeta.php " + info, PData);
                }
            }
            else
            { //almacena el error
                CApp.ShowMessage(info, "Afiliación - Reemplazar Tarjeta", true);
                BitacoraErrorWS("WS=" + varUrlPts + "reemplazo_tarjeta.php " + info, PData);
            }
        }

        /// <summary>Ejecuta por medio de post un llamado al Web Service utilizando HTTP POST</summary>
        /// <param name="URL"></param>
        /// <param name="PostData"></param>
        /// <returns></returns>
        private string RequestPOST(string URL, string PostData)
        {
            // Create a request using a URL that can receive a post. 
            WebRequest request = WebRequest.Create(URL);
            // Set the Method property of the request to POST.
            request.Method = "POST";
            // Create POST data and convert it to a byte array.
            //string postData = "";
            byte[] byteArray = Encoding.UTF8.GetBytes(PostData);
            // Set the ContentType property of the WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";
            // Set the ContentLength property of the WebRequest.
            request.ContentLength = byteArray.Length;
            // Get the request stream.
            Stream dataStream = request.GetRequestStream();
            // Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Close the Stream object.
            dataStream.Close();
            // Get the response.
            WebResponse response = request.GetResponse();
            // Display the status.
            // MessageBox.Show(((HttpWebResponse)response).StatusDescription, "DESCRIPCION");
            // Get the stream containing content returned by the server.
            dataStream = response.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // Display the content.            
            // Clean up the streams.
            reader.Close();
            dataStream.Close();
            response.Close();
            return responseFromServer;
        }

        public frmAfiliacion()
        {
            InitializeComponent();
        }

        private void btnAfiliacion_Click(object sender, EventArgs e)
        {
            Regex regx = new Regex(@"^\d-\d{4,4}-\d{4,4}$");//Expresión regular para el número de cédula
            Regex regxc = new Regex(@"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$");//Expresión regular para el número de correo
            //
            if (this.rbtnCedula.Checked)
            {
                if (!regx.IsMatch(this.txtCedula.Text))
                {
                    this.txtCedula.Focus();
                    CApp.ShowMessage("¡Digite/complete la cédula del cliente con el formato 0-0000-0000!", "Afiliación", true);
                }
                else
                {
                    if (this.txtNombre.Text == "")
                    {
                        this.txtNombre.Focus();
                        CApp.ShowMessage("¡Digite el nombre del cliente!", "Afiliación", true);
                    }
                    else
                    {

                        /* if (txtNTarjet.Text.Trim().Length != 16 && txtNTarjet.Text.Trim().Length != 20)
                         {
                         //if (txtNTarjet.Text.Length < 20 || txtNTarjet.Text.Length > 20)
                        // {
                             this.txtNTarjet.Focus();
                             CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
                         }
                         else
                         { */
                        if (this.txtApellido1.Text == "" || this.txtApellido2.Text == "")
                        {
                            this.txtApellido1.Focus();
                            CApp.ShowMessage("¡Digite los apellidos del cliente!", "Afiliación", true);
                        }
                        else
                        {
                            if (mtxtTelefono1.Text.Trim() == "-" || mtxtTelefono1.Text.Length < 9)
                            {
                                DialogResult result = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin número de telefono?", "Afiliación", true, true);
                                if (result == DialogResult.OK)
                                {
                                    if (GUI.CApp.ValidateAccess("AFI_TEL", "AFILIACION SIN TELEFONO"))
                                    {//ACEPTAR -> afiliación
                                        //Afilicion();
                                        if (txtemail.Text.Trim() == "")
                                        {
                                            DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                            if (result2 == DialogResult.OK)
                                            {
                                                if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                                {//ACEPTAR -> afiliación
                                                    Afilicion();
                                                }
                                                else
                                                {
                                                    CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                                }
                                            }
                                        }
                                        else
                                        {  //validar con expresion regular
                                            if (!regxc.IsMatch(this.txtemail.Text))
                                            {
                                                this.txtemail.Focus();
                                                CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                            }
                                            else
                                            {
                                                Afilicion();
                                            }
                                        }
                                    }
                                    else
                                    {
                                        CApp.ShowMessage("¡No tiene permiso para afiliar sin teléfono!", "Afiliación", true);
                                    }
                                }
                            }
                            else
                            {
                                if (txtemail.Text.Trim() == "")
                                {
                                    DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                    if (result2 == DialogResult.OK)
                                    {
                                        if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                        {//ACEPTAR -> afiliación
                                            Afilicion();
                                        }
                                        else
                                        {
                                            CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                        }
                                    }
                                }
                                else
                                {  //validar con expresion regular
                                    if (!regxc.IsMatch(this.txtemail.Text))
                                    {
                                        this.txtemail.Focus();
                                        CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                    }
                                    else
                                    {
                                        Afilicion();
                                    }
                                }
                            }
                        }
                        // }
                    }
                }
            }
            else
            {
                if (this.rbtnPasaporte.Checked)
                {
                    if (this.txtCedula.Text == "")
                    {
                        this.txtCedula.Focus();
                        CApp.ShowMessage("¡Digite el número de pasaporte del cliente!", "Afiliación", true);
                    }
                    else
                    {
                        if (this.txtNombre.Text == "")
                        {
                            this.txtNombre.Focus();
                            CApp.ShowMessage("¡Digite el nombre del cliente!", "Afiliación", true);
                        }
                        else
                        {

                            if (this.txtApellido1.Text == "" || this.txtApellido2.Text == "")
                            {
                                this.txtApellido1.Focus();
                                CApp.ShowMessage("¡Digite los apellidos del cliente!", "Afiliación", true);
                            }
                            else
                            {
                                if (mtxtTelefono1.Text.Trim() == "-" || mtxtTelefono1.Text.Length < 9)
                                {
                                    DialogResult result = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin número de telefono?", "Afiliación", true, true);
                                    if (result == DialogResult.OK)
                                    {
                                        if (GUI.CApp.ValidateAccess("AFI_TEL", "AFILIACION SIN TELEFONO"))
                                        {//ACEPTAR -> afiliación
                                            //Afilicion();
                                            if (txtemail.Text.Trim() == "")
                                            {
                                                DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                                if (result2 == DialogResult.OK)
                                                {
                                                    if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                                    {//ACEPTAR -> afiliación
                                                        Afilicion();
                                                    }
                                                    else
                                                    {
                                                        CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                                    }
                                                }
                                            }
                                            else
                                            {  //validar con expresion regular
                                                if (!regxc.IsMatch(this.txtemail.Text))
                                                {
                                                    this.txtemail.Focus();
                                                    CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                                }
                                                else
                                                {
                                                    Afilicion();
                                                }
                                            }
                                        }
                                        else
                                        {
                                            CApp.ShowMessage("¡No tiene permiso para afiliar sin teléfono!", "Afiliación", true);
                                        }
                                    }
                                }
                                else
                                {
                                    if (txtemail.Text.Trim() == "")
                                    {
                                        DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                        if (result2 == DialogResult.OK)
                                        {
                                            if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                            {//ACEPTAR -> afiliación
                                                Afilicion();
                                            }
                                            else
                                            {
                                                CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                            }
                                        }
                                    }
                                    else
                                    {  //validar con expresion regular
                                        if (!regxc.IsMatch(this.txtemail.Text))
                                        {
                                            this.txtemail.Focus();
                                            CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                        }
                                        else
                                        {
                                            Afilicion();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            //LimpiarA();
        }

        #region mBuscarQueHaceFormAfiliacion
        private string mBuscarQueHaceFormAfiliacion()
        {
            string vM = "";
            string[] VSplCed = txtMCed.Text.Split('-');


            if (!txtMTarjet.Text.Equals(string.Empty))
            {
                vM = txtMTarjet.Text;
                return vM;
            }

            else if (!VSplCed[0].Equals(" "))
            {
                vM = txtMCed.Text;
                return vM;

            }

            if (!txttarjeta.Text.Equals(string.Empty))
            {
                vM = txttarjeta.Text;
                return vM;
            }

            if (!txtRTarjet.Text.Equals(string.Empty))
            {
                vM = txtRTarjet.Text;
                return vM;
            }


            if (!txttarjCrediE.Text.Equals(string.Empty))
            {
                vM = txttarjCrediE.Text;
                return vM;
            }

            return vM;
        }
        #endregion

        #region mVerificaSalir
        private bool mVerificaSalir()
        {
            bool sale = true;
            string vCedula = txtMCed.Text;
            string vTarjeta = txtMTarjet.Text;
            string vTarjeta1 = txttarjeta.Text;
            string vTarjeta2 = txtRTarjet.Text;
            string vTarjeta3 = txttarjCrediE.Text;
            Regex regxc = new Regex(@"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$");//Expresión regular para el número de correo

            var pParametroConsulta = mBuscarQueHaceFormAfiliacion();
            Utils.QueryParams pPametro = new LLNet.Utils.QueryParams();

            //FrmCambCatTarj frmTJ = new FrmCambCatTarj(txttarjsubnvl.Text);
            string ValFactPts = (GUI.CApp.bll.GetSingleValue("GET_ACTUALIZA_VALUE", "PDV").ToString());
            if (ValFactPts.Equals("S"))
            {

                if (pnlSubirNivel.Visible == true && pnlAfiliacion.Visible == false)
                {
                    var tj = txttarjsubnvl.Text;
                    if (tj.Equals(""))
                    {

                        if (GUI.CApp.ValidateAccess("ACT_CORREOS", "VALIDACION CORREO"))
                        {
                            this.Close();
                            sale = true;
                        }
                        else
                        {
                            // frm.ShowDialog();
                            this.pnlAfiliacion.Visible = false;
                            this.pnlModAfiliac.Visible = false;
                            this.pnlAsociac.Visible = false;
                            this.pnlSubirNivel.Visible = true;
                            if (DialogResult == DialogResult.Cancel)
                            {
                                mVerificaSalir();
                            }
                            sale = false;
                        }
                    }
                    else
                    {

                        Utils.QueryParams pTarjeta = new LLNet.Utils.QueryParams();
                        pTarjeta.AddReplaceParam("TarjetaActual", txttarjsubnvl.Text);
                        string vExistencia = CApp.bll.GetSingleValue("EXISTENCIATAJ", pTarjeta, "PDV").ToString();


                        if (vExistencia.Equals("0"))
                        {

                        }
                        else
                        {

                            Utils.QueryParams pTarjeta2 = new LLNet.Utils.QueryParams();
                            pTarjeta2.AddReplaceParam("TARJETA", txttarjsubnvl.Text.Trim());
                            string vTarjetaSiguiente = CApp.bll.GetSingleValue("TipoSiguienteTarjeta", pTarjeta2, "PDV").ToString();

                            var vTarjeActual = CApp.bll.GetSingleValue("TarjetaActual2", pTarjeta, "PDV").ToString();

                            if (vTarjetaSiguiente == vTarjeActual)
                            {
                                this.Close();
                                sale = true;
                            }
                            else
                            {
                                GUI.CApp.ShowMessage("Debe cambiarle la tarjeta al cliente", "Mis Puntos", false);


                                frmAfiliacion frm = new frmAfiliacion();

                                this.pnlAfiliacion.Visible = false;
                                this.pnlModAfiliac.Visible = false;
                                this.pnlAsociac.Visible = false;
                                this.pnlSubirNivel.Visible = true;
                                this.txttarjsubnvl.Text = tj;
                                frm.sBtnSNivel_Click(null, null);
                                frm.txttarjsubnvl.Text = this.txttarjsubnvl.Text;
                                frm.ShowDialog();

                            }
                        }

                    }

                }
                else
                {


                    if (!pParametroConsulta.Equals(string.Empty) || !pParametroConsulta.Equals(""))  // viene lleno, no esta vacio
                    {
                        if (pParametroConsulta != txtMCed.Text)
                        {

                            //consulta el email por medio de la tarjeta

                            // valida existencia 

                            Utils.QueryParams pTarjeta = new LLNet.Utils.QueryParams();
                            pTarjeta.AddReplaceParam("TarjetaActual", pParametroConsulta);

                            var vExistencia = CApp.bll.GetSingleValue("EXISTENCIATAJ", pTarjeta, "PDV").ToString();

                            if (vExistencia.Equals("0"))
                            {
                                //No existe la tarjeta
                            }
                            else
                            {

                                pPametro.AddReplaceParam("TARJETA", pParametroConsulta);
                                string vTarje = CApp.bll.GetSingleValue("ConsultaEmailxTarjeta", pPametro, "PDV").ToString();
                                //activa o inactiva el parametro
                                string vFactPts = (GUI.CApp.bll.GetSingleValue("GET_ACTUALIZA_VALUE", "PDV").ToString());
                                if (vFactPts.Equals("S"))
                                {
                                    if (vTarje == "" || !regxc.IsMatch(vTarje))
                                    {
                                        GUI.CApp.ShowMessage("Tiene el email nulo o incorrecto, verifique por favor", "Mis Puntos", false);

                                        if (GUI.CApp.ValidateAccess("ACT_CORREOS", "VALIDACION CORREO"))
                                        {
                                            this.Close();
                                            sale = true;
                                        }
                                        else
                                        {
                                            frmAfiliacion frm = new frmAfiliacion();
                                            if (pParametroConsulta == txtMTarjet.Text)
                                            {
                                                frm.txtMTarjet.Text = txtMTarjet.Text;
                                                this.txtMTarjet.Text = txtMTarjet.Text;
                                                btnConsDatos_Click(null, null);
                                            }
                                            else if (pParametroConsulta == txttarjeta.Text)
                                            {
                                                frm.txtMTarjet.Text = txttarjeta.Text;
                                                this.txtMTarjet.Text = txttarjeta.Text;
                                                btnConsDatos_Click(null, null);
                                            }
                                            else if (pParametroConsulta == txtRTarjet.Text)
                                            {
                                                frm.txtMTarjet.Text = txtRTarjet.Text;
                                                this.txtMTarjet.Text = txtRTarjet.Text;
                                                btnConsDatos_Click(null, null);
                                            }
                                            else if (pParametroConsulta == txttarjCrediE.Text)
                                            {
                                                frm.txtMTarjet.Text = txttarjCrediE.Text;
                                                this.txtMTarjet.Text = txttarjCrediE.Text;
                                                btnConsDatos_Click(null, null);
                                            }
                                            frm.ShowDialog();

                                        }
                                    }
                                }
                            }
                        }

                    }
                }
            }
            return sale;
        }

        #endregion

        private void btnSalir_Click(object sender, EventArgs e)
        {
            try
            {
                bool vResultado = mVerificaSalir();

                if (!vResultado == true)
                {

                    mVerificaSalir();
                }
                else
                {
                    this.Close();
                }
            }
            catch (Exception vError)
            {
                CApp.ShowMessage(vError.Message, "Afiliación - Afiliación", true);
            }
        }

        private void btnMAfiliac_Click(object sender, EventArgs e)
        {
            pnlAfiliacion.Visible = true;
            pnlModAfiliac.Visible = false;
            pnlAsociac.Visible = false;
            pnlSubirNivel.Visible = false;
            pnlAsociacCBB.Visible = false;

        }

        private void btnMDatos_Click(object sender, EventArgs e)
        {
            pnlModAfiliac.Visible = true;
            pnlAfiliacion.Visible = false;
            pnlAsociac.Visible = false;
            pnlSubirNivel.Visible = false;
            pnlAsociacCBB.Visible = false;
        }

        private void btnConsDatos_Click(object sender, EventArgs e)
        {

            /* if (txtMTarjet.Text.Trim().Length != 16 && txtMTarjet.Text.Trim().Length != 20)
             {
                 this.txtMTarjet.Focus();
                 CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
             }
             else { */
            ConsDatos();
            NitCliCrediE();
            //}

        }

        private void btnActDatos_Click(object sender, EventArgs e)
        {
            if (GUI.CApp.ValidateAccess("ModDatsAfi", "Modificar Datos Afiliacion"))
            {
                Regex regx = new Regex(@"^\d-\d{4,4}-\d{4,4}$");//Expresión regular para el número de cédula
                Regex regxc = new Regex(@"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$");//Expresión regular para el número de correo
                //
                if (this.rbtnmcedula.Checked)
                {
                    if (!regx.IsMatch(this.txtMCed.Text))
                    {
                        this.txtMCed.Focus();
                        CApp.ShowMessage("¡Digite/complete la cédula del cliente con el formato 0-0000-0000!", "Afiliación", true);
                    }
                    else
                    {
                        if (this.txtmnombre.Text == "")
                        {
                            this.txtmnombre.Focus();
                            CApp.ShowMessage("¡Digite el nombre del cliente!", "Afiliación", true);
                        }
                        else
                        {

                            /* if (txtMTarjet.Text.Trim().Length != 16 && txtMTarjet.Text.Trim().Length != 20)
                             {
                            // if (txtMTarjet.Text.Length < 20 || txtMTarjet.Text.Length > 20)
                            // {
                                 this.txtMTarjet.Focus();
                                 CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
                             }
                             else
                             {*/
                            if (this.txtMApellido1.Text == "" || this.txtMApellido2.Text == "")
                            {
                                this.txtMApellido1.Focus();
                                CApp.ShowMessage("¡Digite los apellidos del cliente!", "Afiliación", true);
                            }
                            else
                            {
                                if (mTxtMTelef1.Text.Trim() == "-" || mTxtMTelef1.Text.Length < 9)
                                {
                                    DialogResult result = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin número de telefono?", "Afiliación", true, true);
                                    if (result == DialogResult.OK)
                                    {
                                        if (GUI.CApp.ValidateAccess("AFI_TEL", "AFILIACION SIN TELEFONO"))
                                        {//ACEPTAR -> afiliación
                                            //Afilicion();
                                            if (txtMCorreo.Text.Trim() == "")
                                            {
                                                DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                                if (result2 == DialogResult.OK)
                                                {
                                                    if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                                    {//ACEPTAR -> afiliación
                                                        ModifDatos();
                                                    }
                                                    else
                                                    {
                                                        CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                                    }
                                                }
                                            }
                                            else
                                            {  //validar con expresion regular
                                                if (!regxc.IsMatch(this.txtMCorreo.Text))
                                                {
                                                    this.txtMCorreo.Focus();
                                                    CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                                }
                                                else
                                                {
                                                    ModifDatos();
                                                }
                                            }
                                        }
                                        else
                                        {
                                            CApp.ShowMessage("¡No tiene permiso para afiliar sin teléfono!", "Afiliación", true);
                                        }
                                    }
                                }
                                else
                                {
                                    if (txtMCorreo.Text.Trim() == "")
                                    {
                                        DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                        if (result2 == DialogResult.OK)
                                        {
                                            if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                            {//ACEPTAR -> afiliación
                                                ModifDatos();
                                            }
                                            else
                                            {
                                                CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                            }
                                        }
                                    }
                                    else
                                    {  //validar con expresion regular
                                        if (!regxc.IsMatch(this.txtMCorreo.Text))
                                        {
                                            this.txtMCorreo.Focus();
                                            CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                        }
                                        else
                                        {
                                            ModifDatos();
                                        }
                                    }
                                }
                            }
                            // }
                        }
                    }
                }
                else
                {
                    if (this.rbtnmpasaport.Checked)
                    {
                        if (this.txtMCed.Text == "")
                        {
                            this.txtMCed.Focus();
                            CApp.ShowMessage("¡Digite el número de pasaporte del cliente!", "Afiliación", true);
                        }
                        else
                        {
                            if (this.txtmnombre.Text == "")
                            {
                                this.txtmnombre.Focus();
                                CApp.ShowMessage("¡Digite el nombre del cliente!", "Afiliación", true);
                            }
                            else
                            {
                                if (mTxtMTelef1.Text.Trim() == "-" || mTxtMTelef1.Text.Length < 9)
                                {
                                    DialogResult result = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin número de telefono?", "Afiliación", true, true);
                                    if (result == DialogResult.OK)
                                    {
                                        if (GUI.CApp.ValidateAccess("AFI_TEL", "AFILIACION SIN TELEFONO"))
                                        {//ACEPTAR -> afiliación
                                            //Afilicion();
                                            if (txtMCorreo.Text.Trim() == "")
                                            {
                                                DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                                if (result2 == DialogResult.OK)
                                                {
                                                    if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                                    {//ACEPTAR -> afiliación
                                                        ModifDatos();
                                                    }
                                                    else
                                                    {
                                                        CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                                    }
                                                }
                                            }
                                            else
                                            {  //validar con expresion regular
                                                if (!regxc.IsMatch(this.txtMCorreo.Text))
                                                {
                                                    this.txtMCorreo.Focus();
                                                    CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                                }
                                                else
                                                {
                                                    ModifDatos();
                                                }
                                            }
                                        }
                                        else
                                        {
                                            CApp.ShowMessage("¡No tiene permiso para afiliar sin teléfono!", "Afiliación", true);
                                        }
                                    }
                                }
                                else
                                {
                                    if (txtMCorreo.Text.Trim() == "")
                                    {
                                        DialogResult result2 = GUI.CApp.ShowMessage("¿Desea almacenar el cliente sin correo?", "Afiliación", true, true);
                                        if (result2 == DialogResult.OK)
                                        {
                                            if (GUI.CApp.ValidateAccess("AFI_CORREO", "AFILIACION SIN CORREO"))
                                            {//ACEPTAR -> afiliación
                                                ModifDatos();
                                            }
                                            else
                                            {
                                                CApp.ShowMessage("¡No tiene permiso para afiliar sin correo!", "Afiliación", true);
                                            }
                                        }
                                    }
                                    else
                                    {  //validar con expresion regular
                                        if (!regxc.IsMatch(this.txtMCorreo.Text))
                                        {
                                            this.txtMCorreo.Focus();
                                            CApp.ShowMessage("¡Digite/complete el correo con un correo válido!", "Afiliación", true);
                                        }
                                        else
                                        {
                                            ModifDatos();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        private void btnRePlastico_Click(object sender, EventArgs e)
        {
            if (GUI.CApp.ValidateAccess("RePlasAfi", "Reemplazo de Plastico"))
            {
                /*
                if (txtRTarjet.Text.Trim().Length != 16 && txtRTarjet.Text.Trim().Length != 20 || txtRNewTarj.Text.Trim().Length != 16 && txtRNewTarj.Text.Trim().Length != 20)
                {
             //   if (txtRTarjet.Text.Length < 20 || txtRTarjet.Text.Length > 20 || txtRNewTarj.Text.Length < 20 || txtRNewTarj.Text.Length > 20)
              //  {
                    this.txtMTarjet.Focus();
                    CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
                }
                else
                {*/
                ReemplazaPlastico();
                //}
            }
        }

        private void btnTeclado_Click(object sender, EventArgs e)
        {

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }

        private void frmAfiliacion_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Modifiers == Keys.Alt)
            {
                switch (e.KeyCode)
                {
                    case Keys.A:
                        btnMAfiliac.PerformClick();
                        break;
                    case Keys.M:
                        btnMDatos.PerformClick();
                        break;
                }
            }
            if (e.Modifiers == Keys.None)
            {
                switch (e.KeyCode)
                {
                    case Keys.Escape:
                        btnCancelar.PerformClick();
                        break;
                }
            }
        }

        private void txtMCed_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnConsCed_Click(null, null);
            }
        }

        private void btnConsCed_Click(object sender, EventArgs e)
        {
            ConsDatosCed();
            NitCliCrediE();
        }

        private void txttarjeta_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnConsPts_Click(null, null);
            }
        }

        private void btnConsPts_Click(object sender, EventArgs e)
        {
            /*
                        if (txttarjeta.Text.Trim().Length != 16 && txttarjeta.Text.Trim().Length != 20)
                        {
                       // if (txttarjeta.Text.Length < 20 || txttarjeta.Text.Length > 20)
                       // {
                            this.txttarjeta.Focus();
                            CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
                        }
                        else
                        { */
            Consultar_Puntos();
            //}
        }

        private void LimpiarM(bool tarj)
        {
            txtMCed.Text = "";
            if (tarj)
                txtMTarjet.Text = "";
            txtmnombre.Text = "";
            txtMApellido1.Text = "";
            txtMApellido2.Text = "";
            txtMCorreo.Text = "";
            mTxtMTelef1.Text = "";
            mTxtMTelef2.Text = "";
            txttarjCrediE.Text = "";
            txtNitCrediE.Text = "";
        }
        private void LimpiarM_CBB(bool tarj)
        {
            txtMCed_CBB.Text = "";
            if (tarj)
                txtMTarjet_CBB.Text = "";
            txtmnombre_CBB.Text = "";
            txtMApellido1_CBB.Text = "";
            txtMApellido2_CBB.Text = "";
            txtMCorreo_CBB.Text = "";
            mTxtMTelef1_CBB.Text = "";
            mTxtMTelef2_CBB.Text = "";
            txtTarje_A_CBB.Text = "";
            txtMCed_A_CBB.Text = "";
            dTPMFecha_CBB.Value = DateTime.Today;
            cbxMGenero_CBB.Items.Clear();
            cbxMGenero_CBB.ResetText();
            cBxMProvincia_CBB.ResetText();
            cBoxMCanton_CBB.Items.Clear();
            cBoxMCanton_CBB.ResetText();
            cBoxMDistrito_CBB.Items.Clear();
            cBoxMDistrito_CBB.ResetText();
        }

        private void LimpiarA()
        {
            txtCedula.Text = "";
            txtNTarjet.Text = "";
            txttarjeta.Text = "";
            txtNombre.Text = "";
            txtApellido1.Text = "";
            txtApellido2.Text = "";
            txtemail.Text = "";
            mtxtTelefono1.Text = "";
            mtxtTelefono2.Text = "";
        }

        private void frmAfiliacion_Load(object sender, EventArgs e)
        {
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "PROVINCIAS", qp2);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    cbxProvincia.DataSource = dsB.Tables[0].DefaultView;
                    cbxProvincia.DataSource = dsB.Tables[0].DefaultView;
                    cbxProvincia.DisplayMember = "PROVINCIA";
                    cBxMProvincia.DataSource = dsB.Tables[0].DefaultView;
                    cBxMProvincia_CBB.DataSource = dsB.Tables[0].DefaultView;
                    cBxMProvincia.DisplayMember = "PROVINCIA";
                    cBxMProvincia_CBB.DisplayMember = "PROVINCIA";
                    qp2.Clear();
                    DataSet dsB2 = GUI.CApp.bll.getDataSet("PDV", "PROVDEFECTO", qp2);
                    object[] datos = new object[1];
                    datos = dsB2.Tables[0].Rows[0].ItemArray;
                    cbxProvincia.SelectedIndex = int.Parse(datos[0].ToString());
                }
            }
            LlenarParametros();
            LlenarASO();

            var VSplCed = txtMCed.Text.Split('-');

            if (VSplCed[0].Equals(" ") && txtMTarjet.Text == string.Empty)
            {
            }
            else
            {

                if (VSplCed[0].Equals(" "))
                {
                    btnConsDatos_Click(sender, e);
                }
                if (txtMTarjet.Text == "")
                {
                    if (rbtnmpasaport.Checked)
                    {
                        rbtnmpasaport.Checked = true;
                        btnConsCed_Click(sender, e);
                    }
                    else
                    {
                        rbtnmcedula.Checked = true;
                        btnConsCed_Click(sender, e);
                    }
                }
            }

            var VSplCed_CBB = txtMCed_CBB.Text.Split('-');

            if (VSplCed_CBB[0].Equals(" ") && txtMTarjet_CBB.Text == string.Empty)
            {
            }
            else
            {
                //debug
                if (VSplCed_CBB[0].Equals(" "))
                {
                    btnConsDatos_CBB_Click(sender, e);
                }
                if (txtMTarjet_CBB.Text == "")
                {
                    if (rbtnmpasaport_CBB.Checked)
                    {
                        rbtnmpasaport_CBB.Checked = true;
                        btnConsDatos_CBB_Click(sender, e);
                    }
                    else
                    {
                        rbtnmcedula_CBB.Checked = true;
                        btnConsDatos_CBB_Click(sender, e);
                    }
                }
            }
        }

        private void cbxProvincia_SelectedIndexChanged(object sender, EventArgs e)
        {
            cBxCanton.Items.Clear();
            cBoxMCanton.Items.Clear();
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pPROVINCIA", cBxMProvincia.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "CANTONES", qp2);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    cBxCanton.DataSource = dsB.Tables[0].DefaultView;
                    cBxCanton.DisplayMember = "CANTON";
                    cBoxMCanton.DataSource = dsB.Tables[0].DefaultView;
                    cBoxMCanton.DisplayMember = "CANTON";
                }
            }
        }

        private void cbxProvincia_SelectedValueChanged(object sender, EventArgs e)
        {
            cBxCanton.DataSource = null;
            cBxCanton.Items.Clear();
            cBoxMCanton.DataSource = null;
            cBoxMCanton.Items.Clear();
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pPROVINCIA", cbxProvincia.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "CANTONES", qp2);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    cBxCanton.DataSource = dsB.Tables[0].DefaultView;
                    cBxCanton.DisplayMember = "CANTON";
                    cBoxMCanton.DataSource = dsB.Tables[0].DefaultView;
                    cBoxMCanton.DisplayMember = "CANTON";
                }
            }
        }

        private void cBxCanton_SelectedValueChanged(object sender, EventArgs e)
        {
            cBxDistrito.DataSource = null;
            cBxDistrito.Items.Clear();
            cBoxMDistrito.DataSource = null;
            cBoxMDistrito.Items.Clear();
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pPROVINCIA", cbxProvincia.Text);
            qp2.AddReplaceParam("pCANTON", cBxCanton.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "DISTRITOS", qp2);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    cBxDistrito.DataSource = dsB.Tables[0].DefaultView;
                    cBxDistrito.DisplayMember = "DISTRITO";
                    cBoxMDistrito.DataSource = dsB.Tables[0].DefaultView;
                    cBoxMDistrito.DisplayMember = "DISTRITO";
                }
            }
        }

        //almacena el error en el WS
        private void BitacoraErrorWS(string pError, string pWServ)
        {
            if (pWServ.Length > 300)
                pWServ = pWServ.Substring(0, 300);
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("pError", pError);
            qp.AddReplaceParam("pWServ", pWServ);
            // Llama el procedimiento que almacena el error del WS en la BD
            GUI.CApp.bll.ExecuteSql("WMS_P_BITAC_E_AFIL", qp, "PDV");
        }

        /// <summary>Obtiene los parámetros necesarios de cada tienda </summary>
        private void LlenarParametros()
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            //CONSULTA LOS PARÁMETROS DE LA BD
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "C_PPTS", qp);

            object[] datos = new object[3];
            datos = dsB.Tables[0].Rows[0].ItemArray;

            varUrlPts = datos[0].ToString();
            varCodemprPts = datos[1].ToString();
            varCodsucPts = datos[2].ToString();
        }

        private void rbtnPasaporte_CheckedChanged(object sender, EventArgs e)
        {
            if (rbtnPasaporte.Checked)
            {
                txtCedula.Mask = "";
            }
            else
            {
                txtCedula.Mask = "0-0000-0000";
            }
        }

        private void rbtnmpasaport_CheckedChanged(object sender, EventArgs e)
        {
            if (rbtnmpasaport.Checked)
            {
                txtMCed.Mask = "";
            }
            else
            {
                txtMCed.Mask = "0-0000-0000";
            }
        }

        private void txtMTarjet_TextChanged(object sender, EventArgs e)
        {
            txttarjeta.Text = txtMTarjet.Text;
        }

        private void txttarjeta_TextChanged(object sender, EventArgs e)
        {
            txtPtsAcumul.Text = "0";
            txtPtsRedim.Text = "0";
            txtPtsDisp.Text = "0";
        }

        //Almacena cada tiempo inicial de consulta de MisPuntos
        private void BitacoraTiempo(string documento, string ws)
        {
            id = "";
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            id = Convert.ToString(GUI.CApp.bll.GetSingleValue("C_SEC_LOG_BIT_TIEMPO", qp, "PDV"));

            qp.AddReplaceParam("pDocumento", documento);
            qp.AddReplaceParam("pWs", ws);
            qp.AddReplaceParam("pID_INT", id);
            // Llama el procedimiento que almacena los datos del intento de recarga en la BD
            GUI.CApp.bll.ExecuteSql("WMS_P_BITAC_TIEMP", qp, "PDV");
        }

        //Actualiza el tiempo final de la consulta de MisPuntos
        private void BitacoraTiempoF(string ID)
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("pID_INT", ID);
            // Llama el procedimiento que almacena el estado de correcto de la recarga en la BD
            GUI.CApp.bll.ExecuteSql("WMS_P_BITAC_TIEMP_C", qp, "PDV");
        }

        private void LimpiarASO(bool tarj)
        {
            if (tarj)
            {
                txttarjASO.Text = "";
            }
            else
            {
                TxtCedASO.Text = "";
            }
            txtnombrASO.Text = "";
            txtApel1ASO.Text = "";
            txtApel2ASO.Text = "";
        }

        private void rBtnPasapASO_CheckedChanged(object sender, EventArgs e)
        {
            if (rBtnPasapASO.Checked)
            {
                TxtCedASO.Mask = "";
            }
            else
            {
                TxtCedASO.Mask = "0-0000-0000";
            }
        }

        private void sBtnCCedASO_Click(object sender, EventArgs e)
        {
            txtEASO.Text = "";
            txtboxDASO.Text = "";
            ConsDatosCedASO();
            Asociaciones(true);
        }

        private void sBtnCTarjASO_Click(object sender, EventArgs e)
        {
            txtEASO.Text = "";
            txtboxDASO.Text = "";
            ConsDatosASO();
            Asociaciones(false);
        }

        private void AsoGridSelec()
        {
            foreach (int handle in gridView3.GetSelectedRows())
            {
                if (gridView3.RowCount > 0 && gridView3.Columns.Count > 0 && handle == 0)
                {
                    txtEASO.Text = Convert.ToString(gridView3.GetRowCellValue(handle, gridView3.Columns[1]));

                }
            }
        }

        private void LlenarASO()
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            //CONSULTA Los operadores DE LA BD
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "ASOC", qp);
            cBoxASO.DataSource = dsB.Tables[0].DefaultView;
            cBoxASO.DisplayMember = "RV_MEANING";
            cBoxASO.ValueMember = "RV_MPCC01";
        }

        private void ConsDatosASO()
        {
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pTarj", txttarjASO.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "ClixTarjPts", qp2);
            LimpiarASO(false);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    object[] datos = new object[1];
                    datos = dsB.Tables[0].Rows[0].ItemArray;
                    TxtCedASO.Text = datos[0].ToString();
                    txttarjASO.Text = datos[1].ToString();
                    txtnombrASO.Text = datos[2].ToString();
                    txtApel1ASO.Text = datos[3].ToString();
                    txtApel2ASO.Text = datos[4].ToString();
                }
            }
        }

        private void ConsDatosCedASO()
        {
            LimpiarASO(true);
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pCed", TxtCedASO.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "ClixCedPts", qp2);
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    object[] datos = new object[1];
                    datos = dsB.Tables[0].Rows[0].ItemArray;
                    TxtCedASO.Text = datos[0].ToString();
                    txttarjASO.Text = datos[1].ToString();
                    txtnombrASO.Text = datos[2].ToString();
                    txtApel1ASO.Text = datos[3].ToString();
                    txtApel2ASO.Text = datos[4].ToString();
                }
            }

        }

        private void Asociaciones(bool ced)
        {
            //LIMPIA LAS ASOCIACIONES
            gridCtrlAso.DataSource = null;
            gridCtrlAso.Refresh();
            DataSet dsB;
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            if (ced)
            {
                qp2.AddReplaceParam("pCed", TxtCedASO.Text);
                dsB = GUI.CApp.bll.getDataSet("PDV", "ASOxCedPts", qp2);
            }
            else
            {
                qp2.AddReplaceParam("pTarj", txttarjASO.Text);
                dsB = GUI.CApp.bll.getDataSet("PDV", "ASOxTarjPts", qp2);
            }
            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    gridCtrlAso.DataSource = dsB.Tables[0];
                    gridCtrlAso.Refresh();
                }
            }
            foreach (int handle in gridView3.GetSelectedRows())
            {
                if (gridView3.RowCount > 0 && gridView3.Columns.Count > 0 && handle == 0)
                {
                    txtEASO.Text = Convert.ToString(gridView3.GetRowCellValue(handle, gridView3.Columns[1]));
                    txtboxDASO.Text = Convert.ToString(gridView3.GetRowCellValue(handle, gridView3.Columns[2]));
                }
            }
        }

        private void btnAsociaciones_Click(object sender, EventArgs e)
        {
            pnlAsociac.Visible = true;
            pnlModAfiliac.Visible = false;
            pnlAfiliacion.Visible = false;
            pnlSubirNivel.Visible = false;
            //pnlAsociacCBB.Visible = false;
        }

        private void sBtnIAso_Click(object sender, EventArgs e)
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("pCEDULA", TxtCedASO.Text);
            qp.AddReplaceParam("pSOCIO", cBoxASO.SelectedValue.ToString());
            // Llama el procedimiento que almacena el estado de correcto de la recarga en la BD
            GUI.CApp.bll.ExecuteSql("WMS_IASOCli", qp, "PDV");
            Asociaciones(true);
        }

        private void sBtnEAso_Click(object sender, EventArgs e)
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            foreach (int celda in gridView3.GetSelectedRows())
            {
                qp.AddReplaceParam("pSOCIO", Convert.ToString(gridView3.GetRowCellValue(celda, gridView3.Columns[1])));
            }
            qp.AddReplaceParam("pCEDULA", TxtCedASO.Text);

            // Llama el procedimiento que almacena el estado de correcto de la recarga en la BD
            GUI.CApp.bll.ExecuteSql("WMS_EASOCli", qp, "PDV");
            Asociaciones(true);
        }

        private void gridView3_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            txtEASO.Text = "";
            txtboxDASO.Text = "";
            if (gridView3.RowCount > 0 && gridView3.Columns.Count > 0)
            {
                txtEASO.Text = Convert.ToString(gridView3.GetRowCellValue(e.FocusedRowHandle, gridView3.Columns[1]));
                txtboxDASO.Text = Convert.ToString(gridView3.GetRowCellValue(e.FocusedRowHandle, gridView3.Columns[2]));
            }
        }

        private void NitCliCrediE()
        {
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("pTARJETA", txttarjCrediE.Text);
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "WMS_CLITARJPTSCREDIE", qp);

            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    int cantfila = dsB.Tables[0].Rows.Count;
                    if (cantfila < 1)
                    {//mas de 1 cédula
                        txtNitCrediE.Text = "";
                        CApp.ShowMessage("Error: La tarjeta esta asociada a más de 1 cliente, favor reportarlo al departamento de soporte", "Tarjeta Puntos / Credi-E Ekono", false);
                    }
                    else
                    {//1 cédula
                        object[] datos = new object[1];
                        datos = dsB.Tables[0].Rows[0].ItemArray;
                        txtNitCrediE.Text = datos[0].ToString();
                    }
                }
            }
            else
            {
                txtNitCrediE.Text = "";
            }
        }

        private void btnAsociarCrediEPts_Click(object sender, EventArgs e)
        {
            if (txtNitCrediE.Text == string.Empty)
            {
                CApp.ShowMessage("Digite el Nit Credi-E que desea asociar", "Tarjeta Puntos / Credi-E Ekono", false);
            }
            else
            {
                if (GUI.CApp.ValidateAccess("TARJPTSCREDIE", "Asociar Tarjeta Pts CrediE"))
                {
                    try
                    {
                        string supervisor = "";
                        if (GUI.CApp.Sup != null && GUI.CApp.Sup != "")
                        {
                            supervisor = GUI.CApp.Sup;
                        }
                        else
                        {
                            supervisor = GUI.CApp.usuario;
                        }
                        //Almacena los datos en nuestra Base d Datos
                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                        qp.AddReplaceParam("pTARJETA", txttarjCrediE.Text);
                        qp.AddReplaceParam("pNIT_CREDIE", txtNitCrediE.Text);
                        qp.AddReplaceParam("pUSR_ASO", supervisor);
                        // Llama el procedimiento que almacena el error de la recarga en la BD
                        GUI.CApp.bll.ExecuteSql("WMS_P_ACrediEPts", qp, "PDV");
                        CApp.ShowMessage("Cliente asociado con éxito", "Tarjeta Puntos / Credi-E Ekono", false);
                    }
                    catch (Exception ex)
                    {
                        CApp.ShowMessage(ex.Message, "Tarjeta Puntos / Credi-E Ekono", false);
                    }
                }
            }
        }

        private void btnEAsoCrediEPts_Click(object sender, EventArgs e)
        {
            if (GUI.CApp.ValidateAccess("TARJPTSCREDIE", "Asociar Tarjeta Pts CrediE"))
            {
                try
                {
                    string supervisor = "";
                    if (GUI.CApp.Sup != null && GUI.CApp.Sup != "")
                    {
                        supervisor = GUI.CApp.Sup;
                    }
                    else
                    {
                        supervisor = GUI.CApp.usuario;
                    }
                    //Almacena los datos en nuestra Base d Datos
                    Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                    qp.AddReplaceParam("pTARJETA", txttarjCrediE.Text);
                    qp.AddReplaceParam("pNIT_CREDIE", "");
                    qp.AddReplaceParam("pUSR_ASO", supervisor);
                    // Llama el procedimiento que almacena el error de la recarga en la BD
                    GUI.CApp.bll.ExecuteSql("WMS_P_ACrediEPts", qp, "PDV");
                    txtNitCrediE.Text = "";
                    CApp.ShowMessage("Asociación de cliente eliminada con éxito", "Tarjeta Puntos / Credi-E Ekono", false);
                }
                catch (Exception ex)
                {
                    CApp.ShowMessage(ex.Message, "Tarjeta Puntos / Credi-E Ekono", false);
                }
            }
        }

        private void sBtnSNivel_Click(object sender, EventArgs e)
        {
            pnlAfiliacion.Visible = false;
            pnlModAfiliac.Visible = false;
            pnlAsociac.Visible = false;
            pnlSubirNivel.Visible = true;
            pnlAsociacCBB.Visible = false;
        }


        private void sBtnSubirNivel_Click(object sender, EventArgs e)
        {
            ////Selecciona el monto si realizó una compra el día de hoy  MONTODIAPTS
            //decimal montodia = 0;
            //Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            //qp2.AddReplaceParam("pCed", txttarjsubnvl.Text);
            //DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "MONTODIAPTS", qp2);
            //if (dsB.Tables.Count > 0)
            //{
            //    if (dsB.Tables[0].Rows.Count > 0)
            //    {
            //        object[] datos = new object[1];
            //        datos = dsB.Tables[0].Rows[0].ItemArray;
            //        montodia = decimal.Parse(datos[0].ToString());
            //    }
            //}

            string cambio = string.Empty;

            //Consulta la central a ver si puede subir
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp.AddReplaceParam("pTARJETA", txttarjsubnvl.Text.Trim());
            // Llama el procedimiento que INDICA SI DEBE SUBIR DE NIVEL
            //GUI.CApp.bll.ExecuteSql("PTS_P_SUBIR_CLI_CAT", qp, "PDV");
            //MUESTRA NIVEL AL QUE DEBE CAMBIAR
            DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "PTS_F_ACTTIPO", qp);

            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    object[] datos = new object[1];
                    datos = dsB.Tables[0].Rows[0].ItemArray;
                    cambio = datos[0].ToString();
                    if (cambio != "-1")
                    {
                        //Realiza la actualización con el Web Service
                        //www.mispuntoscr.com/desarrollo/cambio_tipo_tarjeta.php?cod_empresa=R5UN957N&numero_tarjeta=10000000000000000001&id_tipo_tarjeta=58
                        //Envia los datos al proveedor
                        string PData = "url_respuesta=" + varUrlPts + "cambio_tipo_tarjeta.php?tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&numero_tarjeta=" + txttarjsubnvl.Text.Trim() + "&id_tipo_tarjeta=" + cambio + "&nombre_cajero=" + GUI.CApp.usuario;
                        string info = RequestPOST(varUrlPts + "cambio_tipo_tarjeta.php", PData);
                        info = info.Trim();
                        string[] datos2 = info.Split(' ');

                        if (datos2.Length > 2)
                        {
                            if (datos2[0].ToString() == "10")
                            {
                                //Se realiza la actualizacion
                                AlmCliAct(cambio, txttarjsubnvl.Text.Trim());
                            }
                            else
                            {
                                CApp.ShowMessage(info, "Afiliación - cambio_tipo_tarjeta ", true);
                                BitacoraErrorWS("WS=" + varUrlPts + "cambio_tipo_tarjeta.php " + info, PData);
                            }
                        }
                        else
                        {
                            CApp.ShowMessage(info, "Afiliación - cambio_tipo_tarjeta", true);
                            BitacoraErrorWS("WS=" + varUrlPts + "cambio_tipo_tarjeta.php " + info, PData);
                        }
                    }
                }
            }

            //Realiza la actualización con el Web Service
            //www.mispuntoscr.com/desarrollo/cambio_tipo_tarjeta.php?cod_empresa=R5UN957N&numero_tarjeta=10000000000000000001&id_tipo_tarjeta=58

            //Llama al procedimiento en la Central para actualizar los datos
        }

        public void AlmCliAct(string TIPO, string TARJETA)
        {
            try
            {
                //AQUI VALIDO SI YA HA ESTADO EN ESE NIVEL DE CAMBIO
                Utils.QueryParams pTarjeta = new LLNet.Utils.QueryParams();
                pTarjeta.AddReplaceParam("TARJETA", txttarjsubnvl.Text.Trim());
                pTarjeta.AddReplaceParam("NIVEL", TIPO);

                string vExistencia = CApp.bll.GetSingleValue("WMS_F_NIVELES_TARJ", pTarjeta, "PDV").ToString();
                if (vExistencia == "N")
                {
                    // MessageBox.Show("El nivel que esta porYA HAS ESTADO");
                    //GUI.CApp.ShowMessage("Ya a estado en el nivel que esta por pasar", "Mis Puntos", false);
                    //using (Forms.MisPuntos.frmAfiliacion vform = new Forms.MisPuntos.frmAfiliacion())
                    //{
                    //    vform.ShowDialog();
                    //}

                    //CAMBIAR TAB
                    btnMDatos_Click(null, null);
                }

                Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                qp.AddReplaceParam("pTARJETA", TARJETA);
                qp.AddReplaceParam("pTIPO", TIPO);
                // Llama el procedimiento que almacena el error de la recarga en la BD
                GUI.CApp.bll.ExecuteSql("PTS_P_ACT_HISTIPCLI", qp, "PDV");
                CApp.ShowMessage("Cambio de categoría realizado con éxito", "Afiliación - Cambio de Categoría", true);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void btnHistorial_Click(object sender, EventArgs e)
        {
            //Historial de Categorias 
            string ced = string.Empty;

            DataSet dsB1;
            Utils.QueryParams qp1 = new LLNet.Utils.QueryParams();

            qp1.AddReplaceParam("pTARJETA", txttarjsubnvl.Text.Trim());
            dsB1 = GUI.CApp.bll.getDataSet("PDV", "CedcliPts", qp1);

            if (dsB1.Tables.Count > 0)
            {
                if (dsB1.Tables[0].Rows.Count > 0)
                {
                    object[] datos = new object[3];
                    datos = dsB1.Tables[0].Rows[0].ItemArray;
                    ced = datos[0].ToString();
                }
            }

            grcCatTarj.DataSource = null;
            grcCatTarj.Refresh();
            DataSet dsB;
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();

            qp2.AddReplaceParam("pCEDULA", ced);
            dsB = GUI.CApp.bll.getDataSet("PDV", "CatTarjPts", qp2);

            if (dsB.Tables.Count > 0)
            {
                if (dsB.Tables[0].Rows.Count > 0)
                {
                    grcCatTarj.DataSource = dsB.Tables[0];
                    grcCatTarj.Refresh();
                }
            }
        }

        private void sbtnNewTarj_Click(object sender, EventArgs e)
        {
            //if (GUI.CApp.ValidateAccess("CTarjtsFideliz", "Consecutivo de Tarjetas Fidelizacion"))
            if (Helpers.Nvl(CApp.GetParam("TPTS"), "N").ToString() != "S")
            {
                //Utilizar el consecutivo de tarjetas virtuales para fidelización.
                string vTarjVirt = CApp.bll.GetSingleValue("PTS_S_TARJ_VIRTUALS", "PDV").ToString();
                txtNTarjet.Text = vTarjVirt;
            }
            else
            {
                GUI.CApp.ShowMessage("La opción de Tarjetas Virtuales se encuentra deshabilitada", "Sistema de Puntos", false);
            }
        }

        private void btnMAfiliacCBB_Click(object sender, EventArgs e)
        {

            pnlAfiliacion.Visible = false;
            pnlModAfiliac.Visible = false;
            pnlAsociac.Visible = false;
            pnlSubirNivel.Visible = false;
            pnlAsociacCBB.Visible = true;
        }

        private void btn_AsoC_CBB_Click(object sender, EventArgs e)
        {

            String Tarje_A_CBB = String.Empty;
            String Ced_A_CBB = String.Empty;
            try
            {
                if (GUI.CApp.ValidateAccess("CBB_Club_Bebe", "Club del Bebe"))
                {
                    Tarje_A_CBB = txtTarje_A_CBB.Text.Trim();
                    Ced_A_CBB = txtMCed_A_CBB.Text.Trim();

                    //BitacoraTiempoF(id);

                    int count = 0;
                    Utils.QueryParams qp = new LLNet.Utils.QueryParams();
                    qp = new QueryParams();
                    qp.AddReplaceParam("p_C_CEDULA", Ced_A_CBB);
                    count = Convert.ToInt32(GUI.CApp.bll.GetSingleValue("cbb_CLIENTE_EXISTE", qp, "PDV"));
                    if (count > 0)
                    {
                        CApp.ShowMessage("Esta persona ya pertenece al Club del Bebé", "Afiliación - Acumulación Club del Bebé", true);
                    }
                    else
                    {
                        if (Tarje_A_CBB != "" && Ced_A_CBB != "" && Tarje_A_CBB != null && Ced_A_CBB != null
                            && Tarje_A_CBB != String.Empty && Ced_A_CBB != String.Empty)
                        {

                            //Almacena los datos de Asociar un cliente al Club del Bebé
                            
                            //Utils.QueryParams qp = new LLNet.Utils.QueryParams();

                            qp.AddReplaceParam("P_C_CEDULA", Ced_A_CBB);
                            qp.AddReplaceParam("P_C_TARJETA", Tarje_A_CBB);
                            qp.AddReplaceParam("P_C_REGISTRADO_POR", GUI.CApp.usuario);

                            GUI.CApp.bll.ExecuteSql("cbb_FIDELIZA_CLIENTE", qp, "PDV");

                            if (PuntosBienvenidaCBB() == 10)
                            {
                                CApp.ShowMessage("Cliente asociado exitosamente", "Afiliación - Club del Bebé", true);
                            }
                            LimpiarM_CBB(true);
                            //txtTarje_A_CBB.Enabled = false;

                        }
                        else
                        {
                            if (Tarje_A_CBB == "" || Tarje_A_CBB == null || Tarje_A_CBB == String.Empty)
                            {
                                CApp.ShowMessage("El campo tarjeta no puede estar en blanco", "Afiliación - Club del Bebé", true);
                            }
                            if (Ced_A_CBB == "" || Ced_A_CBB == null || Ced_A_CBB == String.Empty)
                            {
                                CApp.ShowMessage("El campo cédula no puede estar en blanco", "Afiliación - Club del Bebé", true);
                            }
                        }
                    }
                }
                else
                {
                    //txtTarje_A_CBB.Enabled = false;
                    CApp.ShowMessage("¡No tiene permiso para afiliar al Club del Bebé !", "Afiliación", true);
                }

            }
            catch (Exception er)
            {
                //txtTarje_A_CBB.Enabled = false;
                CApp.ShowMessage(er.Message, "Afiliación - Club Bebé", true);
                BitacoraErrorWS("CBB=btn_AsoC_CBB_Click" + er.Message, Tarje_A_CBB + "," + Ced_A_CBB);
            }
        }

        private int PuntosBienvenidaCBB()
        {
            int respuesta = -1;
            try
            {
                if (txtMTarjet_CBB.Text != "")
                {
                    string PData = "url_respuesta=" + varUrlPts + "carga_transaccion.inc.php&tipo_respuesta=1&cod_empresa=" + varCodemprPts + "&cod_sucursal=" + varCodsucPts + "&numero_tarjeta=" + txtMTarjet_CBB.Text + "&numero_factura=" + frmGestionCbb.NumeroFacturaCBB() + "&monto=" + "3000";
                    PData += "&nombre_cajero=" + CApp.usuario;
                    string info = RequestPOST(varUrlPts + "carga_transaccion.inc.php", PData);
                    //BitacoraTiempoF(id);
                    info = info.Trim();
                    string[] datos = info.Split('=');
                    if (datos.Length == 1)
                    {
                        if (datos[0].ToString().StartsWith("10"))
                        {
                            respuesta = int.Parse(datos[0].ToString().Substring(0, 2));

                        }
                        else
                        {
                            CApp.ShowMessage(info, "Acumular Puntos", true);
                            //BitacoraErrorWS("WS=" + varUrlPts + "ws_carga_transaccion_detalle.php " + info, PData);
                        }
                    }
                    else
                    {
                        CApp.ShowMessage(info, "Acumular Puntos", true);
                        //BitacoraErrorWS("WS=" + varUrlPts + "ws_carga_transaccion_detalle.php " + info, PData);
                    }
                }


            }
            catch (Exception ex)
            {
                CApp.ShowMessage(ex.Message, "Puntos de Bienvenida Club del Bebé", true);
            }

            return respuesta;
        }
        private void btnConsC_CBB_Click(object sender, EventArgs e)
        {
            ConsDatosCed_CBB();
            //NitCliCrediE();
        }

        private void btnConsDatos_CBB_Click(object sender, EventArgs e)
        {
            /*
            if (txtMTarjet_CBB.Text.Trim().Length != 16 && txtMTarjet_CBB.Text.Trim().Length != 20)
            {
                this.txtMTarjet_CBB.Focus();
                CApp.ShowMessage("¡El número de tarjeta debe ser de 16 o 20 caracteres!", "Afiliación", true);
            }
            else
            { */
            ConsDatos_CBB();
            //NitCliCrediE();
            //}
        }

        private void txtMTarjet_CBB_TextChanged(object sender, EventArgs e)
        {

        }

        private void btn_ElimC_CBB_Click(object sender, EventArgs e)
        {
            String Tarje_A_CBB = String.Empty;
            String Ced_A_CBB = String.Empty;
            try
            {
                if (GUI.CApp.ValidateAccess("CBB_Club_Bebe", "Club del Bebe"))
                {
                    Tarje_A_CBB = txtTarje_A_CBB.Text.Trim();
                    Ced_A_CBB = txtMCed_A_CBB.Text.Trim();

                    //BitacoraTiempoF(id);


                    if (Tarje_A_CBB != "" && Ced_A_CBB != "" && Tarje_A_CBB != null && Ced_A_CBB != null
                        && Tarje_A_CBB != String.Empty && Ced_A_CBB != String.Empty)
                    {

                        //Almacena los datos de Asociar un cliente al Club del Bebé
                        Utils.QueryParams qp = new LLNet.Utils.QueryParams();

                        qp.AddReplaceParam("P_C_CEDULA", Ced_A_CBB);
                        qp.AddReplaceParam("P_C_TARJETA", Tarje_A_CBB);
                        qp.AddReplaceParam("P_C_MODIFICADO_POR", GUI.CApp.usuario);

                        GUI.CApp.bll.ExecuteSql("cbb_ELIM_CLIENTE", qp, "PDV");
                        CApp.ShowMessage("Cliente eliminado exitosamente", "Afiliación - Club del Bebé", true);
                        LimpiarM_CBB(true);
                        //txtTarje_A_CBB.Enabled = false;

                    }
                    else
                    {
                        if (Tarje_A_CBB == "" || Tarje_A_CBB == null || Tarje_A_CBB == String.Empty)
                        {
                            CApp.ShowMessage("El campo tarjeta no puede estar en blanco", "Afiliación - Club del Bebé", true);
                        }
                        if (Ced_A_CBB == "" || Ced_A_CBB == null || Ced_A_CBB == String.Empty)
                        {
                            CApp.ShowMessage("El campo cédula no puede estar en blanco", "Afiliación - Club del Bebé", true);
                        }
                    }
                }
                else
                {
                    //txtTarje_A_CBB.Enabled = false;
                    CApp.ShowMessage("¡No tiene permiso para eliminar al Club del Bebé !", "Afiliación", true);
                }

            }
            catch (Exception er)
            {
                //txtTarje_A_CBB.Enabled = false;
                CApp.ShowMessage(er.Message, "Afiliación - Club Bebé", true);
                BitacoraErrorWS("CBB=btn_ElimC_CBB_Click" + er.Message, Tarje_A_CBB + "," + Ced_A_CBB);
            }
        }

        private void btn_VerConf_cbb_Click(object sender, EventArgs e)
        {
            int Codrespuesta = 0;
            Utils.QueryParams qp = new LLNet.Utils.QueryParams();
            qp = new QueryParams();
            qp.AddReplaceParam("P_C_USUARIO", GUI.CApp.usuario);
            qp.AddReplaceParam("P_C_PASSWORD", GUI.CApp.password);
            qp.AddReplaceParam("P_C_MODULE", "TDA_CBB_Club_Bebe_especial");
            Codrespuesta = Convert.ToInt32(GUI.CApp.bll.GetSingleValue("cbb_VALIDA_PERMISO_ESPECIAL", qp, "PDV"));
            frmGestionCbb._reportesUsuarioFinal = String.Empty;
            frmGestionCbb._reportesUsuarioFinal = "2";
            if (Codrespuesta > 0)
            {

                frmGestionCbb frmGcbb = new frmGestionCbb(txt_cedula_Micbb.Text, "", "", "", "", "", "", "", 0);
                frmGcbb.Show();
            }
            else
            {
                frmPassCBB frmPassCbb = new frmPassCBB(Codrespuesta, txt_cedula_Micbb.Text);
                frmPassCbb.Show();

            }

        }
        //ConsultClient
        private void sBtnBuscar_Click(object sender, EventArgs e)
        {
            Utils.QueryParams qp2 = new LLNet.Utils.QueryParams();
            Utils.QueryParams qp3 = new LLNet.Utils.QueryParams();
            qp2.AddReplaceParam("pCed", txtCedula.Text);
            qp3.AddReplaceParam("Cedula", txtCedula.Text);
           

            DataSet dsB1 = GUI.CApp.bll.getDataSet("PDV", "ConsultClient", qp3);
            if (dsB1.Tables[0].Rows.Count <= 0)
            {
                DataSet dsB = GUI.CApp.bll.getDataSet("PDV", "CliLink", qp2);
                if (dsB.Tables.Count > 0)
                {
                    if (dsB.Tables[0].Rows.Count > 0)
                    {
                        object[] datos = new object[13];
                        datos = dsB.Tables[0].Rows[0].ItemArray;
                        txtNombre.Text = datos[1].ToString();
                        txtApellido1.Text = datos[2].ToString();
                        txtApellido2.Text = datos[3].ToString();
                        mtxtTelefono1.Text = datos[4].ToString();
                        mtxtTelefono2.Text = datos[5].ToString();
                        txtemail.Text = datos[6].ToString();
                        dtpfechaNac.Text = datos[7].ToString();
                        cbxGenero.Text = datos[8].ToString();
                        cbxProvincia.Text = datos[9].ToString();
                        cBxCanton.Text = datos[10].ToString();
                        cBxDistrito.Text = datos[11].ToString();

                    }
                    else
                    {

                        if (this.rbtnCedula.Checked)
                        {
                            CApp.ShowMessage("¡Numero de Cedula incorrecto ó no hay cliente a buscar con ese número de Cedula !", "Buscar Cliente", true);
                        }
                        else
                        {
                            CApp.ShowMessage("¡Numero de Pasaporte incorrecto ó no hay cliente a buscar con ese número de Pasaporte !", "Buscar Cliente", true);
                        }

                    }
                }

            }
            else
            {
                CApp.ShowMessage("¡Cliente ya esta Registrado con ese numero de cedula  !", "Buscar Cliente", true);

            }
        }

            private void groupBox11_Enter(object sender, EventArgs e)
        {

        }

        private void sBtnPlus_Click(object sender, EventArgs e)
        {
            FrmEkonoPlus frmPlus = new FrmEkonoPlus();
            frmPlus.ShowDialog();
        }

        private void rbtnmpasaport_CBB_CheckedChanged(object sender, EventArgs e)
        {
            if (rbtnmpasaport_CBB.Checked)
            {
                txtMCed_CBB.Mask = "";
            }
            else
            {
                txtMCed_CBB.Mask = "0-0000-0000";
            }
        }
    }
}