Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Txt_Serial_TextChanged(object sender, EventArgs e)
        {
            Acceso_Museo.App_Code.Negocio.Cls_Ope_Accesos_Negocio Acceso_Negocio;
            Acceso_Museo.App_Code.Negocio.Cls_Cat_Cajas_Negocio   Cajas;
            DataTable Dt_Consulta = new DataTable();
            DataTable Dt_Accesos  = new DataTable();
            DateTime  Fecha_Inicial_Vigencia;
            DateTime  Fecha_Final_Vigencia;
            DataTable Dt_Consulta_P = new DataTable();
            int       Puerto        = 0;
            string    Tipo_Producto = string.Empty;

            try
            {
                if (Txt_Serial.Text.Length >= 13)
                {
                    if (!string.IsNullOrEmpty(Txt_Serial.Text))
                    {
                        Acceso = Txt_Serial.Text.Substring(0, 1).ToUpper();
                    }
                    else
                    {
                        return;
                    }

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

                    Dt_Consulta_P = Cls_Ayudante_Lector_Codigo.Consultar_Puerto(Acceso);

                    //  se consulta el id de la terminar
                    if (Dt_Consulta_P != null && Dt_Consulta_P.Rows.Count > 0)
                    {
                        foreach (DataRow Registro in Dt_Consulta_P.Rows)
                        {
                            Terminal_Id = Registro[Cat_Terminales.Campo_Terminal_ID].ToString();
                        }
                    }
                    else
                    {
                        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 (!string.IsNullOrEmpty(Txt_Serial.Text))
                    {
                        Folio = Txt_Serial.Text.Substring(2, 10)[0].ToString();
                    }

                    if (Folio == "0")
                    {
                        Acceso_Negocio.P_No_Acceso = Txt_Acceso.Text.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 += Txt_Acceso.Text.Substring(3, 9);

                        if (!string.IsNullOrEmpty(Txt_Serial.Text))
                        {
                            No_Acceso += Txt_Serial.Text.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";

                            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;
                        // Se habilita el timer para detectar la lectura del Torniquete.
                        Codigo_Lector2 = Acceso_Negocio.P_No_Acceso;

                        if (Codigo_Lector1 == Codigo_Lector2 ||
                            Codigo_Lector3 == Codigo_Lector2)
                        {
                            Pulso_Torniquete = false;
                            Mostrar_Mensaje_Pantalla(Puerto, Tipo_Producto, "CÓDIGO OCUPADO", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);


                            Codigo_Lector2 = string.Empty;
                        }
                        else
                        {
                            Lector2 = false;

                            this.Invoke((MethodInvoker) delegate
                            {
                                Tmr_Torniquete2.Enabled = true;
                            });
                        }

                        if (Pulso_Torniquete)
                        {
                            Pulso(Puerto);
                        }
                    }
                    else
                    {
                        //Puerto_Torniquete = 1;
                        Mostrar_Mensaje_Pantalla(Puerto, "Boleto", "CÓDIGO NO ENCONTRADO", Color.Red, Acceso_Museo.Properties.Resources.semaforo_rojo);
                    }


                    Txt_Serial.Text = "";
                }
                else
                {
                }
            }
            catch (Exception ex)
            {
            }
        }
Example #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;
            }
        }