/// <summary> /// Si se oprimió "Enter" en la caja de texto "Unidad" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UnidadTextBox_KeyUp(object sender, KeyEventArgs e) { try { // Si se tecleo enter if (e.KeyData == Keys.Enter) { // Si hay daots en la caja de texto if (!string.IsNullOrEmpty(UnidadTextBox.Text)) { // Si NO son numéricos if (!AppHelper.IsNumeric(UnidadTextBox.Text)) { // Lanzamos error throw new Exception("La unidad debe contener solo datos numéricos"); } // Actualizamos el modelo // Numero economico Model.NumeroEconomico = Convert.ToInt32(UnidadTextBox.Text); // Fecha de pago Model.FechaPago = FechaPagoDateTimePicker.Value; // Obtenemos el número de unidad int numerounidades = Model.NumeroUnidades(); // Si es cero if (numerounidades == 0) { // No hay unidades con ese número economico // Lanzamos excepción throw new Exception(string.Format("Unidad {0} no esta asignada", Model.NumeroEconomico)); } // Si es uno, obtenemos los datos de la unidad if (numerounidades == 1) { Model.ObtenerDatosDeUnidad(); } // Si es mayor que uno if (numerounidades > 1) { // Seleccionar una unidad SeleccionarUnidadesForm.GetUnidades(Model.NumeroEconomico); if (SeleccionarUnidadesForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // Obtenemos los datos // Actualizamos el modelo Model.DatosConductor = SeleccionarUnidadesForm.DatosConductor; Model.NombreConductor = Model.DatosConductor.Conductor; } } // Obtenemos los servicios pendientes Model.ObtenerServiciosPendientes(); // Calculamos los totales Model.CalcularTotales(); // Actualizamos la información en los controles serviciosPendientesConductorBindingSource.DataSource = Model.ServiciosPendientes; this.NombreConductorTextBox.Text = Model.NombreConductor; this.TotalServiciosTextBox.Text = string.Format("{0:C}", this.Model.TotalServicios); // Si no tiene servicios pendientes de pago if (Model.ServiciosPendientes.Count == 0) { // Informamos al usuario AppHelper.Info(string.Format("El conductor no tiene servicios pendientes para fecha {0:d}.", Model.FechaPago)); } } } } catch (Exception ex) { AppHelper.Error(ex.Message); } }
} // end void /// <summary> /// Consulta la información en la base de datos y la despliga en la forma /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BuscarButton_Click(object sender, EventArgs e) { AppHelper.DoMethod( delegate { // Get unidad int unidades = this.Model.NumeroUnidades(); switch (unidades) { case 0: // No hay unidades, // Consultamos directo this.Model.Unidad_ID = null; break; case 1: // Hay una unidad, // la consultamos primero antes de consultar // las incidencias this.Model.ConsultarUnidad(); break; default: // Hay más de una unidad // primero obtenemos que unidad es // luego consultamos incidencias SeleccionarUnidadConductor seleccionarUnidadForm = new SeleccionarUnidadConductor(); seleccionarUnidadForm.GetUnidades(this.Model.NumeroEconomico.Value); if (seleccionarUnidadForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { this.Model.Unidad_ID = seleccionarUnidadForm.DatosConductor.Unidad_ID; } else { this.Model.Unidad_ID = null; } break; } // Consultamos la información this.Model.Consultar(); // Dependiendo de la pestaña actual, actualizamos la gridview switch (this.Model.TipoAtencionClientes) { case AltaAtencionClientes_Model.TiposAtencionClientes.Incidencias: this.IncidenciasBindingSource.DataSource = this.Model.Incidencias; break; case AltaAtencionClientes_Model.TiposAtencionClientes.Cortesias: this.CortesiasbindingSource.DataSource = this.Model.Cortesias; break; case AltaAtencionClientes_Model.TiposAtencionClientes.ObjetosExtraviados: this.ObjetosExtraviadosBindingSource.DataSource = this.Model.ObjetosExtraviados; break; case AltaAtencionClientes_Model.TiposAtencionClientes.Reembolsos: this.ReembolsosBindingSource.DataSource = this.Model.Reembolsos; break; } // end switch }, // end delegate this ); } // end void