Пример #1
0
        ///*******************************************************************************************************
        ///NOMBRE_FUNCIÓN: Btn_Entrar_Click
        ///DESCRIPCIÓN: Manejador del evento click sobre el botón Entrar: se valida que el texto en txt_acceso
        ///             esté registrado en Ope_Accesos
        ///PARÁMETROS: N/A
        ///CREO: Roberto González Oseguera
        ///FECHA_CREO: 14-oct-2013
        ///MODIFICÓ:
        ///FECHA_MODIFICÓ:
        ///CAUSA_MODIFICACIÓN:
        ///*******************************************************************************************************
        private void Btn_Entrar_Click(object sender, EventArgs e)
        {
            try
            {
                string Torniquete = Txt_Acceso.Text[0].ToString().ToUpper();

                if (Torniquete == "A")
                {
                    Proceso_Boleto(Txt_Acceso.Text);
                }

                if (Torniquete == "C")
                {
                    if (Lector3)
                    {
                        Proceso_Boleto(Txt_Acceso.Text);
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                // borrar el campo de texto y asignar control activo
                Txt_Acceso.Text = "";
                Txt_Acceso.Focus();
            }
        }
Пример #2
0
        /// <summary>
        /// Validia el número de Boleto leído por el escaner.
        /// </summary>
        /// <param name="Boleto">Código del Boleto</param>
        private void Proceso_Boleto(string Boleto)
        {
            Acceso_Museo.App_Code.Negocio.Cls_Ope_Accesos_Negocio Acceso_Negocio;
            Acceso_Museo.App_Code.Negocio.Cls_Cat_Cajas_Negocio   Cajas;
            DataTable Dt_Accesos;
            DateTime  Fecha_Inicial_Vigencia;
            DateTime  Fecha_Final_Vigencia;
            DataTable Dt_Consulta = new DataTable();

            string Tipo_Producto = string.Empty;
            int    Puerto        = 0;

            // validar que el control contenga caracteres
            if (Boleto.Length <= 0)
            {
                // borrar el campo de texto y asignar control activo
                Txt_Acceso.Text = "";
                Txt_Acceso.Focus();
                return;
            }

            try
            {
                Acceso = Boleto.ToUpper().Substring(0, 1);

                if (Acceso == "A")
                {
                    Puerto = 0;
                }
                if (Acceso == "B")
                {
                    Puerto = 1;
                }
                if (Acceso == "C")
                {
                    Puerto = 2;
                }

                Dt_Consulta = Cls_Ayudante_Lector_Codigo.Consultar_Puerto(Acceso);
                Terminal_Id = "00001";

                // consultar acceso válido
                Acceso_Negocio = new Acceso_Museo.App_Code.Negocio.Cls_Ope_Accesos_Negocio();
                Cajas          = new Acceso_Museo.App_Code.Negocio.Cls_Cat_Cajas_Negocio();

                //Acceso_Negocio.P_Numero_Serie = Txt_Acceso.Text.Substring(2, Txt_Acceso.Text.Length - 2);
                string Folio = string.Empty;
                string No_Acceso;

                if (Boleto != string.Empty)
                {
                    Folio = Boleto.Substring(2, 10)[0].ToString();
                }

                if (Folio == "0")
                {
                    Acceso_Negocio.P_No_Acceso = Boleto.Substring(2, 10);
                }
                else
                {
                    Cajas.P_Numero_Caja = Folio;
                    DataTable Dt_Cajas = Cajas.Consultar_Caja();

                    No_Acceso  = Dt_Cajas.Rows[0][Cat_Cajas.Campo_Serie].ToString();
                    No_Acceso += Boleto.Substring(3, 9);

                    Acceso_Negocio.P_No_Acceso = No_Acceso;
                }

                Dt_Accesos = Acceso_Negocio.Consultar_Accesos();

                // validar que la consulta haya regresado resultados
                if (Dt_Accesos != null && Dt_Accesos.Rows.Count > 0)
                {
                    // validar que el estatus del acceso sea activo
                    if (Dt_Accesos.Rows[0][Ope_Accesos.Campo_Estatus].ToString() != "ACTIVO")
                    {
                        string Producto_ID = Dt_Accesos.Rows[0][Ope_Accesos.Campo_Producto_ID].ToString();
                        string Estatus     = Dt_Accesos.Rows[0][Ope_Accesos.Campo_Estatus].ToString();
                        string msj         = "CORRECTO";

                        /*Cls_Cat_Productos_Negocio Productos = new Cls_Cat_Productos_Negocio();
                         * Productos.P_Producto_Id = Producto_ID;*/

                        Tipo_Producto = Dt_Accesos.Rows[0]["NOMBRE_PRODUCTO"].ToString();

                        if (Estatus == "UTILIZADO")
                        {
                            msj = "CÓDIGO UTILIZADO";
                        }
                        else if (Estatus == "CANCELADO")
                        {
                            msj = "CANCELADO";
                        }

                        Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, msj, Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);

                        return;
                    }

                    // validar que esté dentro de la vigencia
                    DateTime.TryParse(Dt_Accesos.Rows[0][Ope_Accesos.Campo_Vigencia_Inicio].ToString(), out Fecha_Inicial_Vigencia);
                    DateTime.TryParse(Dt_Accesos.Rows[0][Ope_Accesos.Campo_Vigencia_Fin].ToString(), out Fecha_Final_Vigencia);
                    if (DateTime.Today < Fecha_Inicial_Vigencia || DateTime.Today > Fecha_Final_Vigencia)
                    {
                        Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, "Fuera de vigencia", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);

                        return;
                    }

                    String Texto_Grupo = "";
                    // obtener datos del grupo
                    Acceso_Museo.App_Code.Negocio.Cls_Ope_Grupos_Negocio Obj_Grupos_Negocio
                        = new Acceso_Museo.App_Code.Negocio.Cls_Ope_Grupos_Negocio();

                    Obj_Grupos_Negocio.P_No_Venta = Dt_Accesos.Rows[0][Ope_Accesos.Campo_No_Venta].ToString();
                    DataTable Dt_Grupos = Obj_Grupos_Negocio.Consultar_Grupos();

                    if (Dt_Grupos != null && Dt_Grupos.Rows.Count > 0)
                    {
                        // si aplican días feriados es diferente a S, validar días feriados
                        if (Dt_Grupos.Rows[0][Ope_Ventas.Campo_Aplican_Dias_Festivos].ToString() != "S")
                        {
                            Acceso_Museo.App_Code.Negocio.Cls_Cat_Dias_Feriados_Negocio Obj_Dias_Feriados
                                = new Acceso_Museo.App_Code.Negocio.Cls_Cat_Dias_Feriados_Negocio();

                            if (Obj_Dias_Feriados.EsFeriado(DateTime.Today) == true)
                            {
                                Mostrar_Mensaje_Pantalla(Puerto, "Grupo", "Grupo: no aplica en días feriados", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);

                                return;
                            }
                        }
                        // datos del grupo para mensaje de acceso
                        Texto_Grupo  = "\nGrupo: " + Dt_Grupos.Rows[0][Ope_Ventas.Campo_Empresa].ToString() + "\n";
                        Texto_Grupo += Dt_Grupos.Rows[0][Ope_Ventas.Campo_Empresa].ToString() + "\n";
                    }

                    string mensaje = Tipo_Producto + Texto_Grupo;

                    if (string.IsNullOrEmpty(Texto_Grupo))
                    {
                        mensaje = "ÉXITO";
                    }

                    // mostrar acceso (cambiar color e imagen de semáforo)
                    Tipo_Producto = Dt_Accesos.Rows[0]["NOMBRE_PRODUCTO"].ToString();

                    Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, mensaje, Color.DarkGreen, Acceso_Museo.Properties.Resources.semaforo_verde);

                    bool Pulso_Torniquete = true;
                    if (Puerto == 0)
                    {
                        Codigo_Lector1 = Acceso_Negocio.P_No_Acceso;

                        if (Codigo_Lector2 == Codigo_Lector1 ||
                            Codigo_Lector3 == Codigo_Lector1)
                        {
                            Pulso_Torniquete = false;
                            Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, "CÓDIGO OCUPADO", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);
                        }
                        else
                        {
                            // actualizar acceso utilizado
                            Acceso_Negocio.P_Terminal_ID       = "00001";
                            Acceso_Negocio.P_Estatus           = "UTILIZADO";
                            Acceso_Negocio.P_Fecha_Hora_Acceso = DateTime.Now;
                            Acceso_Negocio.Actualizar_Estatus_Acceso();
                            Pulso(Puerto);
                        }

                        Codigo_Lector1 = string.Empty;
                    }

                    if (Puerto == 2)
                    {
                        Codigo_Lector3 = Acceso_Negocio.P_No_Acceso;

                        if (Codigo_Lector1 == Codigo_Lector3 ||
                            Codigo_Lector2 == Codigo_Lector3)
                        {
                            Pulso_Torniquete = false;
                            Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, "CÓDIGO OCUPADO", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);
                        }
                        else
                        {
                            Pulso(Puerto);
                            Thread.Sleep(100);
                            Tmr_Torniquete3.Enabled = true;

                            //Dtime_Fecha_Inicio_Timer = DateTime.Now;

                            //MessageBox.Show("timer activo "
                            //                    , "Aviso"
                            //                    , MessageBoxButtons.OK
                            //                    , MessageBoxIcon.Information);
                        }
                    }
                }
                else
                {
                    //Puerto_Torniquete = 1;
                    Mostrar_Mensaje_Pantalla(Puerto, "Boleto", "CÓDIGO NO ENCONTRADO", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }