///******************************************************************************************************* ///NOMBRE_FUNCIÓN: Frm_Ope_Accesos_Load ///DESCRIPCIÓN: Habilitara los seriales para el uso de los escaners ///PARÁMETROS: N/A ///CREO: Hugo Enrique Ramírez Aguilera ///FECHA_CREO: 24-Noviembre-2014 ///MODIFICÓ: ///FECHA_MODIFICÓ: ///CAUSA_MODIFICACIÓN: ///******************************************************************************************************* private void Frm_Ope_Accesos_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; try { String X = PortNum.ToString(); DataTable Dt_Consulta = new DataTable(); string[] Aux = SerialPort.GetPortNames(); foreach (string Nombre_Puerto in SerialPort.GetPortNames()) { Dt_Consulta = Cls_Ayudante_Lector_Codigo.Consultar_Puerto(""); // torniquete 1 if (Dt_Consulta.Rows[0][Cat_Parametros_Lector_Codigo.Campo_Puerto].ToString() == Nombre_Puerto && Dt_Consulta.Rows[0][Cat_Parametros_Lector_Codigo.Campo_Salida].ToString() == "0") { Serial1.PortName = Nombre_Puerto; Serial1.BaudRate = 9600; Serial1.DataBits = 8; Serial1.Parity = Parity.None; Serial1.StopBits = StopBits.One; Serial1.Handshake = Handshake.None; try { if (!Serial1.IsOpen) { Serial1.Open(); if (!System.IO.Directory.Exists("reportes")) { System.IO.Directory.CreateDirectory("reportes"); } System.IO.File.WriteAllText("reportes/ex-" + DateTime.Now.ToString("dd-MM-yyyy_HH_mm_ss") + ".txt", "Serial Abierto\n"); } } catch (Exception ex) { try { if (!System.IO.Directory.Exists("reportes")) { System.IO.Directory.CreateDirectory("reportes"); } System.IO.File.WriteAllText("reportes/ex-" + DateTime.Now.ToString("dd-MM-yyyy_HH_mm_ss") + ".txt", ex.Message + "\n"); } catch { } return; } } } //PortType = clsDigitalIO.PORTIN; //NumPorts = DioProps.FindPortsOfType(DaqBoard, PortType, out ProgAbility, out PortNum, out NumBits, out FirstBit); //Rele = new Relevador(); //Rele.Activar_Relevador(); //Acceso_Museo.App_Code.Negocio.Cls_Ope_Accesos_Negocio Accesos = new App_Code.Negocio.Cls_Ope_Accesos_Negocio(); //Accesos.Consultar_Accesos_Apertura(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <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) { } }
/// <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; } }