/// <summary> /// Nombre: Txt_Codigo_Barras_KeyUp /// /// Descripción: Método que se ejecuta al presionar una tecla en la caja de código de barras. /// /// Usuario Creo: Juan Alberto Hernández Negrete. /// Fecha Creo: 15 Noviembre 2013. /// Usuario Modifico: Roberto González Oseguera /// Fecha Modifico: 21-feb-2014 /// Causa modificación: Se cambia <DateTime?> por <MySql.Data.Types.MySqlDateTime?> para recibir /// un campo fecha al utilizar una base de datos MySQL /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Txt_Codigo_Barras_KeyUp(object sender, KeyEventArgs e) { // entrar solamente con la tecla enter if (e.KeyCode == Keys.Return && Txt_Codigo_Barras.Text.Length > 0) { Cls_Ope_Estacionamiento_Negocio Obj_Estacionamiento; DataTable Dt_Datos_Acceso_Estacionamiento = null; DataTable Dt_Datos_Pago = null; string Producto_ID = string.Empty; string No_Estacionamiento = string.Empty; string Estatus = string.Empty; MySql.Data.Types.MySqlDateTime?Fecha_Hora_Ingreso = null; double Horas = 0; try { Obj_Estacionamiento = new Cls_Ope_Estacionamiento_Negocio(); Obj_Estacionamiento.P_Codigo = Txt_Codigo_Barras.Text.Trim(); Dt_Datos_Acceso_Estacionamiento = Obj_Estacionamiento.Consultar_Estacionamiento(); // validar que la consulta haya regresado resultados if (Dt_Datos_Acceso_Estacionamiento != null && Dt_Datos_Acceso_Estacionamiento.Rows.Count > 0) { Array.ForEach(Dt_Datos_Acceso_Estacionamiento.Rows.OfType <DataRow>().ToArray(), fila => { Producto_ID = fila.IsNull(Ope_Estacionamiento.Campo_Producto_ID) ? string.Empty : fila.Field <string>(Ope_Estacionamiento.Campo_Producto_ID); Fecha_Hora_Ingreso = fila.IsNull(Ope_Estacionamiento.Campo_Fecha_Hora_Ingreso) ? null : fila.Field <MySql.Data.Types.MySqlDateTime?>(Ope_Estacionamiento.Campo_Fecha_Hora_Ingreso); No_Estacionamiento = fila.IsNull(Ope_Estacionamiento.Campo_No_Estacionamiento) ? string.Empty : fila.Field <string>(Ope_Estacionamiento.Campo_No_Estacionamiento); Estatus = fila.IsNull(Ope_Estacionamiento.Campo_Estatus) ? string.Empty : fila.Field <string>(Ope_Estacionamiento.Campo_Estatus); }); // si el estatus del acceso es PENDIENTE, entrar al pago if (Estatus.Equals("PENDIENTE")) { // se ocupa .GetDateTime() cuando es un tipo MySqlDateTime Horas = Math.Ceiling(DateTime.Now.Subtract(Fecha_Hora_Ingreso.Value.GetDateTime()).Duration().TotalHours); Obj_Estacionamiento.P_Estatus = "PAGADO"; Obj_Estacionamiento.P_Fecha_Hora_Salida = DateTime.Now; Obj_Estacionamiento.P_Horas = Convert.ToInt32(Horas); Obj_Estacionamiento.P_No_Estacionamiento = No_Estacionamiento; Dt_Datos_Pago = Crear_Datos_Pago(Producto_ID, Convert.ToDecimal(Horas), ref Obj_Estacionamiento); Frm_Ope_Pago Frm_Pago = new Frm_Ope_Pago(); Frm_Pago.P_Obj_Estacionamiento = Obj_Estacionamiento; Frm_Pago.Es_Pago_Estacionamiento = true; Frm_Pago.MdiParent = this.ParentForm; Frm_Pago.Set_Dt_Detalles_Venta(Dt_Datos_Pago); Frm_Pago.Set_Frm_Estacionamiento(this); this.Hide(); Frm_Pago.Show(); } else { Txt_Codigo_Barras.Text = string.Empty; MessageBox.Show(this, "El acceso al estacionamiento tiene un estatus de " + Estatus, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { Txt_Codigo_Barras.Text = string.Empty; MessageBox.Show(this, "No se encontró el código de acceso ingresado.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception Ex) { MessageBox.Show(this, Ex.Message, "Error - Método: [Txt_Codigo_Barras_KeyPress]", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
///******************************************************************************* ///NOMBRE DE LA FUNCIÓN : Set_Frm_Pago ///DESCRIPCIÓN : Establece la referencia a la ventana Frm_Ope_Pagos ///PARAMETROS : ///CREO : Miguel Angel Bedolla Moreno ///FECHA_CREO : 13/Octubre/2013 ///MODIFICO : ///FECHA_MODIFICO : ///CAUSA_MODIFICACIÓN : ///******************************************************************************* public void Set_Frm_Pago(Frm_Ope_Pago Frm_Pagos) { Frm_Pago = Frm_Pagos; }