private void BtnBuscar_Click(object sender, EventArgs e) { try { #region Validaciones var filtrosSeteados = false; var exceptionMessage = string.Empty; if (!ValidadorDeTipos.IsEmpty(TxtCodigo.Text)) filtrosSeteados = true; if (!ValidadorDeTipos.IsEmpty(TxtDesdeKg.Text)) filtrosSeteados = true; if (!ValidadorDeTipos.IsEmpty(TxtDesdePasaje.Text)) filtrosSeteados = true; if (!ValidadorDeTipos.IsEmpty(TxtHastaKg.Text)) filtrosSeteados = true; if (!ValidadorDeTipos.IsEmpty(TxtHastaPasaje.Text)) filtrosSeteados = true; if (CmbTipoServicio.Text != "SERVICIO") filtrosSeteados = true; if (CmbCiudadOrigen.Text != "CIUDAD ORIGEN") filtrosSeteados = true; if (CmbCiudadDestino.Text != "CIUDAD DESTINO") filtrosSeteados = true; if (!filtrosSeteados) exceptionMessage = "No se puede realizar la busqueda porque no ingreso ningun filtro"; if (!ValidadorDeTipos.IsEmpty(exceptionMessage)) throw new Exception(exceptionMessage); #endregion #region Cargo los filtros ingresados en el objeto RutaFiltros int? cod; if (!ValidadorDeTipos.IsEmpty(TxtCodigo.Text)) cod = Int32.Parse(TxtCodigo.Text); else cod =null; double? desdeKg; if (!ValidadorDeTipos.IsEmpty(TxtDesdeKg.Text)) desdeKg = double.Parse(TxtDesdeKg.Text); else desdeKg = null; double? hastaKg; if (!ValidadorDeTipos.IsEmpty(TxtHastaKg.Text)) hastaKg = double.Parse(TxtHastaKg.Text); else hastaKg = null; double? desdePje; if (!ValidadorDeTipos.IsEmpty(TxtDesdePasaje.Text)) desdePje = double.Parse(TxtDesdePasaje.Text); else desdePje = null; double? hastaPje; if (!ValidadorDeTipos.IsEmpty(TxtHastaPasaje.Text)) hastaPje = double.Parse(TxtHastaPasaje.Text); else hastaPje = null; var filtros = new RutaFiltros { Codigo = cod, TipoServicio = (CmbTipoServicio.Text != "SERVICIO") ? CmbTipoServicio.Text : null, CiudadDestino = (CmbCiudadDestino.Text != "CIUDAD DESTINO") ? CmbCiudadDestino.Text : null, CiudadOrigen = (CmbCiudadOrigen.Text != "CIUDAD ORIGEN") ? CmbCiudadOrigen.Text : null, PrecioDesdeKg = desdeKg, PrecioHastaKg = hastaKg, PrecioDesdePasaje = desdePje, PrecioHastaPasaje = hastaPje }; #endregion var rutas = RutaPersistencia.ObtenerRutasPorParametros(filtros); if (rutas == null || rutas.Count == 0) throw new Exception("No se encontraron rutas según los filtros informados."); //Recargo los valores de la grilla a partir de los resultados obtenidos en la busqueda ActualizarPantalla(rutas); } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }
public static List<Ruta> ObtenerRutasPorParametros(RutaFiltros filtros) { var param = new List<SPParameter> { new SPParameter("Codigo_Ruta", filtros.Codigo ?? (object)DBNull.Value), new SPParameter("Ciudad_Origen", filtros.CiudadOrigen ?? (object)DBNull.Value), new SPParameter("Ciudad_Destino", filtros.CiudadDestino ?? (object)DBNull.Value), new SPParameter("Desde_Kg", filtros.PrecioDesdeKg ?? (object)DBNull.Value), new SPParameter("Hasta_Kg", filtros.PrecioHastaKg ?? (object)DBNull.Value), new SPParameter("Desde_Pasaje", filtros.PrecioDesdePasaje ?? (object)DBNull.Value), new SPParameter("Hasta_Pasaje", filtros.PrecioHastaPasaje ?? (object)DBNull.Value), new SPParameter("Tipo_Servicio", filtros.TipoServicio ?? (object)DBNull.Value), }; var sp = new StoreProcedure(DBQueries.Ruta.SPFiltrarRutas, param); return sp.ExecuteReader<Ruta>(); }
private void BtnGuardar_Click(object sender, EventArgs e) { try { #region Validaciones var exceptionMessage = string.Empty; if (string.IsNullOrEmpty(TxtCodigo.Text)) exceptionMessage += "El código de la ruta no puede ser vacío."; if (string.IsNullOrEmpty(TxtBaseKg.Text)) exceptionMessage += Environment.NewLine + "Debe ingresar un precio base por Kg."; if (string.IsNullOrEmpty(TxtBasePasaje.Text)) exceptionMessage += Environment.NewLine + "Debe ingresar un precio base por pasaje"; if (!string.IsNullOrEmpty(exceptionMessage)) throw new Exception(exceptionMessage); #endregion if (!modoModificacion) { #region Valido que no exista una ruta con la descripcion informada var filtro = new RutaFiltros(); filtro.Codigo = Int32.Parse(TxtCodigo.Text); filtro.CiudadOrigen = CmbCiudadOrigen.Text; filtro.CiudadDestino = CmbCiudadDestino.Text; filtro.TipoServicio = CmbTipoServicio.Text; filtro.PrecioDesdeKg = double.Parse(TxtBaseKg.Text); filtro.PrecioHastaKg = double.Parse(TxtBaseKg.Text); filtro.PrecioDesdePasaje = double.Parse(TxtBasePasaje.Text); filtro.PrecioHastaPasaje = double.Parse(TxtBasePasaje.Text); var rutas = RutaPersistencia.ObtenerRutasPorParametros(filtro); var mensajeExcepcion = string.Empty; if (rutas.Count!=0) throw new Exception("Ya existe una ruta con los datos ingresados"); #endregion if (filtro.CiudadOrigen == filtro.CiudadDestino) mensajeExcepcion += "No puede crear una ruta con la misma ciudad de origen y destino"; if(!(ValidadorDeTipos.IsNumeric(TxtCodigo.Text))) mensajeExcepcion += Environment.NewLine + "El código de ruta debe ser un número"; if (!(ValidadorDeTipos.IsNumeric(TxtBaseKg.Text))) mensajeExcepcion += Environment.NewLine + "El precio base del KG debe ser un número"; if (!(ValidadorDeTipos.IsNumeric(TxtBasePasaje.Text))) mensajeExcepcion += Environment.NewLine + "El precio base del pasaje debe ser un número"; if (!ValidadorDeTipos.IsEmpty(mensajeExcepcion)) throw new Exception(mensajeExcepcion); //TODO Por qué no me muestra el mensaje de error que le dije?? #region Inserto una nueva ruta var ruta = new Ruta(); ruta.Codigo_Ruta = (int)(filtro.Codigo); ruta.ID_Ciudad_Origen = CiudadPersistencia.ObtenerIDPorNombreDeCiudad(filtro.CiudadOrigen); ruta.ID_Ciudad_Destino = CiudadPersistencia.ObtenerIDPorNombreDeCiudad(filtro.CiudadDestino); ruta.ID_Servicio = ServicioPersistencia.ObtenerIDPorNombreDeServicio(filtro.TipoServicio); ruta.Precio_Base_KG = (double)filtro.PrecioDesdeKg; //ES INDISTINTO PONER DESDE O HASTA PORQUE EN ESTE CASO SON IGUALES ruta.Precio_Base_Pasaje = (double)filtro.PrecioDesdePasaje; //ES INDISTINTO PONER DESDE O HASTA PORQUE EN ESTE CASO SON IGUALES ruta.Habilitado = !(ChkInhabilitado.Checked); var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar la nueva ruta?", "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { //Impacto en la base RutaPersistencia.InsertarRuta(ruta); AccionCompleta = true; Close(); } #endregion } else { #region Modifico una ruta existente var rutaAModificar = RutaActual; RutaActual.Codigo_Ruta = Int32.Parse(TxtCodigo.Text); RutaActual.ID_Ciudad_Origen = CiudadPersistencia.ObtenerIDPorNombreDeCiudad(CmbCiudadOrigen.Text); RutaActual.ID_Ciudad_Destino = CiudadPersistencia.ObtenerIDPorNombreDeCiudad(CmbCiudadDestino.Text); RutaActual.ID_Servicio = ServicioPersistencia.ObtenerIDPorNombreDeServicio(CmbTipoServicio.Text); RutaActual.Precio_Base_KG = double.Parse(TxtBaseKg.Text); //ES INDISTINTO PONER DESDE O HASTA PORQUE EN ESTE CASO SON IGUALES RutaActual.Precio_Base_Pasaje = double.Parse(TxtBasePasaje.Text); //ES INDISTINTO PONER DESDE O HASTA PORQUE EN ESTE CASO SON IGUALES RutaActual.Habilitado = !(ChkInhabilitado.Checked); var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere modificar la ruta {0} de {1} a {2}?", rutaAModificar.Codigo_Ruta, RutaPersistencia.ObtenerCiudadPorID(rutaAModificar.ID_Ciudad_Origen), RutaPersistencia.ObtenerCiudadPorID(rutaAModificar.ID_Ciudad_Destino)), "Atención", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { //Impacto en la base RutaPersistencia.ModificarRuta(RutaActual); AccionCompleta = true; Close(); } #endregion } } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }