public ABMRecorrido(int idRec) { InitializeComponent(); _Modificacion = true; _Recorrido = new Recorrido(idRec); CargarCombos(); codigo.Text = _Recorrido.Codigo; ciudadOrigen.SelectedValue = _Recorrido.IdCiuOri; ciudadDestino.SelectedValue = _Recorrido.IdCiuDest; tipoServicio.SelectedValue = _Recorrido.IdTipoServ; precioBase.Text = Convert.ToString(_Recorrido.PrecBase); precioKilo.Text = Convert.ToString(_Recorrido.PrecKilo); tiempoViaje.Text = _Recorrido.TiempoViaje.ToString("HH:mm"); //Si tiene viajes asociados, algunas cosas no se las dejo modificar //por ejemplo la ciudad destino, la ciudad origen y el tipo de servicio if (_Recorrido.TieneViajesAsociados()) { ciudadOrigen.Enabled = false; ciudadDestino.Enabled = false; tipoServicio.Enabled = false; } }
private void Guardar_Click(object sender, EventArgs e) { if (codigo.Text == "") { MessageBox.Show("El codigo no puede quedar vacío"); return; } if (!Validador.esAlfanumerico(codigo.Text)) { MessageBox.Show("El codigo debe ser alfanumérico"); return; } if (!Validador.esNumeroReal(precioKilo.Text)) { MessageBox.Show("El precio por kg. debe ser un valor monetario"); return; } if (!Validador.esNumeroReal(precioBase.Text)) { MessageBox.Show("El precio de base debe ser un valor monetario"); return; } if (!Validador.esHoraValida(tiempoViaje.Text)) { MessageBox.Show("El tiempo de viaje no es válido, debe ser de 00:00 a 23:59"); return; } if (_Modificacion) { if (_Recorrido.IdCiuDest != Convert.ToInt32(ciudadDestino.SelectedValue) || _Recorrido.IdTipoServ != Convert.ToInt32(tipoServicio.SelectedValue) || _Recorrido.IdCiuOri != Convert.ToInt32(ciudadOrigen.SelectedValue) || _Recorrido.Codigo != codigo.Text || _Recorrido.PrecBase != Convert.ToDouble(precioBase.Text) || _Recorrido.PrecKilo != Convert.ToDouble(precioKilo.Text) || _Recorrido.TiempoViaje != DateTime.Parse(tiempoViaje.Text)) { if (tipoServicio.Enabled && Recorrido.ExisteRecorrido( Convert.ToInt32(tipoServicio.SelectedValue), Convert.ToInt32(ciudadOrigen.SelectedValue), Convert.ToInt32(ciudadDestino.SelectedValue))) { MessageBox.Show("Ya existe un recorrido habilitado para el tipo de servicio y las ciudades de origen y destino"); return; } _Recorrido.Codigo = codigo.Text; _Recorrido.IdTipoServ = Convert.ToInt32(tipoServicio.SelectedValue); _Recorrido.IdCiuOri = Convert.ToInt32(ciudadOrigen.SelectedValue); _Recorrido.IdCiuDest = Convert.ToInt32(ciudadDestino.SelectedValue); _Recorrido.PrecBase = Convert.ToDouble(precioBase.Text); _Recorrido.PrecKilo = Convert.ToDouble(precioKilo.Text); _Recorrido.TiempoViaje = Convert.ToDateTime(tiempoViaje.Text); if (!_Recorrido.Modificar()) { MessageBox.Show("Ocurrió un error de actualización"); return; } } else { MessageBox.Show("No se produjeron modificaciones"); return; } } else { if (Recorrido.ExisteRecorrido( Convert.ToInt32(tipoServicio.SelectedValue), Convert.ToInt32(ciudadOrigen.SelectedValue), Convert.ToInt32(ciudadDestino.SelectedValue))) { MessageBox.Show("Ya existe un recorrido habilitado para el tipo de servicio y las ciudades seleccionadas"); return; } _Recorrido = new Recorrido(-1, codigo.Text, Convert.ToInt32(tipoServicio.SelectedValue), Convert.ToInt32(ciudadOrigen.SelectedValue), Convert.ToInt32(ciudadDestino.SelectedValue), Convert.ToDouble(precioBase.Text), Convert.ToDouble(precioKilo.Text), true, Convert.ToDateTime(tiempoViaje.Text)); if (!_Recorrido.Insertar()) { MessageBox.Show("Ocurrió un error al agregar el nuevo recorrido"); return; } } this.Close(); }