public FormRegistrarVehiculo() { InitializeComponent(); logicaVehiculo = new LogicaVehiculo(); logicaColor = new LogicaColor(); logicaMarca = new LogicaMarca(); logicaModelo = new LogicaModelo(); logicaVersion = new LogicaVersion(); VehiculoActual = new Vehiculo(); // Setea que atributo de los objetos se mostrará en el comboBox. cmb_modelo.DisplayMember = "Nombre"; cmb_marca.DisplayMember = "Nombre"; cmb_color.DisplayMember = "Nombre"; cmb_version.DisplayMember = "Nombre"; // Setea el Uso a "Usado". cmb_uso.SelectedIndex = 0; // Setea el kilometraje con valor 1 km y el minimo del nud en 1 (si es usado no puede tener 0 km). nud_kilometraje.Minimum = 1; nud_kilometraje.Value = 1; cb_estaPatentado.Checked = true; nud_añoPatentamiento.Value = 2000; // Carga los comboBox con valores CargarMarcasModelosVersiones(); CargarColores(); }
public FormBaseVehiculo() { InitializeComponent(); logicaVehiculo = new LogicaVehiculo(); logicaColor = new LogicaColor(); logicaMarca = new LogicaMarca(); logicaModelo = new LogicaModelo(); logicaVersion = new LogicaVersion(); VehiculoActual = new Vehiculo(); ListaVehiculos = new List<Vehiculo>(); // Setea que atributo de los objetos se mostrará en el comboBox. cmb_modelo.DisplayMember = "Nombre"; cmb_marca.DisplayMember = "Nombre"; cmb_color.DisplayMember = "Nombre"; cmb_version.DisplayMember = "Nombre"; cmb_color.ValueMember = "idColor"; // Carga los comboBox con valores CargarMarcasModelosVersiones(); CargarColores(); cmb_color.SelectedItem = null; // Dar formato a la grilla de vehículos FormatearDgv_vehiculos(); // Deshabilitar la escritura o selección de los controles DeshabilitarControles(); }
// CORROBORADO public Estado GetEstadoMasReciente(Vehiculo vehiculoActual) { List<Estado> listaEstados = new List<Estado>(); String query = "SELECT * FROM Estados WHERE idVehiculo = '" + vehiculoActual.IdVehiculo + "'"; SqlCommand command = connection.CreateCommand(); command.CommandText = query; Estado estadoMasReciente = new Estado(); try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Buscar todos los estados de vehiculoActual while (reader.Read()) { Estado estadoActual = new Estado(); estadoActual.IdVehiculo = vehiculoActual.IdVehiculo; estadoActual.Fecha = Convert.ToDateTime(reader["fecha"]); String tipoEstado = Convert.ToString(reader["tipoEstado"]); switch(tipoEstado) { case "Disponible": estadoActual.TipoEstado = Estado.TiposEstado.Disponible; break; case "Vendido": estadoActual.TipoEstado = Estado.TiposEstado.Vendido; break; } listaEstados.Add(estadoActual); } // Buscar el estado más reciente foreach (Estado estadoActual in listaEstados) { if (estadoActual.Fecha > estadoMasReciente.Fecha) { estadoMasReciente = estadoActual; } } } catch (Exception ex) { Exception excepcionManejada = new Exception("Ha ocurrido un error al intentar recuperar los colores. Por favor, vuelva a intentarlo.", ex); throw excepcionManejada; } finally { connection.Close(); } return estadoMasReciente; }
public void ModificarVehiculo(Vehiculo vehiculoModificado) { try { datosVehiculo.ModificarVehiculo(vehiculoModificado); } catch (Exception ex) { throw ex; } }
// CORROBORADO public void RegistrarVehiculo(Vehiculo vehiculoNuevo) { vehiculoNuevo.Estado.TipoEstado = Estado.TiposEstado.Disponible; vehiculoNuevo.Estado.Fecha = DateTime.Now; vehiculoNuevo.FechaRegistro = vehiculoNuevo.Estado.Fecha; try { datosVehiculo.RegistrarVehiculo(vehiculoNuevo); } catch (Exception ex) { throw ex; } }
//INCOMPLETO protected void BtnRegistrar_Click(object sender, EventArgs e) { vehiculoNuevo = new Vehiculo(); Marca marca = new Marca(); marca.IdMarca = Convert.ToInt32(DrDoListMarca.SelectedValue); Modelo modelo = new Modelo(); modelo.IdModelo = Convert.ToInt32(DrDoListModelo.SelectedValue); Negocio.Entidades.Version version = new Negocio.Entidades.Version(); version.Modelo = modelo; version.Modelo.Marca = marca; vehiculoNuevo.Version = version; Color color = new Color(); color.IdColor = Convert.ToInt32(DrDoListColor.SelectedValue); vehiculoNuevo.Color = color; //HASTA ACA ASIGNE AL VEHICULO NUEVO COLOR Y VERSION, CON MODELO Y MARCA /* if (this.TxtBoxRegistrarColor.Text.Trim() != "") { try { logicaColor.RegistrarColor(ColorNuevo); Page.Response.Write("La operación ha sido realizada satisfactoriamente"); } catch (Exception ex) { Page.Response.Write("Error inesperado"); } } else { Page.Response.Write("El campo Nombre es obligatorio."); } */ }
public void EliminarVehiculo(Vehiculo vehiculoAeliminar) { try { datosVehiculo.EliminarVehiculo(vehiculoAeliminar); } catch (Exception ex) { throw ex; } }
// CORROBORADO public List<Vehiculo> GetTodosVehiculos() { List<Vehiculo> listaVehiculos = new List<Vehiculo>(); String query = "SELECT * FROM Vehiculos JOIN Estados ON (Vehiculos.idVehiculo = Estados.idVehiculo) JOIN Versiones ON (Vehiculos.idVersion = Versiones.idVersion)"; query = query + "JOIN Modelos ON (Versiones.idModelo = Modelos.idModelo) JOIN Marcas ON (Modelos.idMarca = Marcas.idMarca)"; query = query + " JOIN Colores ON (Vehiculos.idColor = Colores.idColor) WHERE Vehiculos.registroEliminado = @RegistroEliminado"; SqlCommand command = connection.CreateCommand(); command.CommandText = query; command.Parameters.Add("@RegistroEliminado", SqlDbType.Bit).Value = false; try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Vehiculo vehiculoActual = new Vehiculo(); vehiculoActual = MapearDeDatos(vehiculoActual, reader); vehiculoActual.Estado = datosEstado.GetEstadoMasReciente(vehiculoActual); listaVehiculos.Add(vehiculoActual); } } catch (Exception ex) { Exception excepcionManejada = new Exception("Ha ocurrido un error al intentar recuperar la lista de vehículos. Por favor, vuelva a intentarlo.", ex); throw excepcionManejada; } finally { connection.Close(); } return listaVehiculos; }
private Vehiculo MapearDeDatos(Vehiculo vehiculoActual, SqlDataReader reader) { Negocio.Entidades.Version versionActual = new Negocio.Entidades.Version(); Modelo modeloActual = new Modelo(); Marca marcaActual = new Marca(); Color colorActual = new Color(); marcaActual.IdMarca = Convert.ToInt32(reader["idMarca"]); marcaActual.Nombre = Convert.ToString(reader["nombreMarca"]); modeloActual.IdModelo = Convert.ToInt32(reader["idModelo"]); modeloActual.Nombre = Convert.ToString(reader["nombreModelo"]); modeloActual.Marca = marcaActual; versionActual.IdVersion = Convert.ToInt32(reader["idVersion"]); versionActual.Nombre = Convert.ToString(reader["nombreVersion"]); versionActual.Modelo = modeloActual; colorActual.IdColor = Convert.ToInt32(reader["idColor"]); colorActual.Nombre = Convert.ToString(reader["nombreColor"]); vehiculoActual.IdVehiculo = Convert.ToInt32(reader["idVehiculo"]); vehiculoActual.Version = versionActual; vehiculoActual.Color = colorActual; vehiculoActual.NroChasis = Convert.ToString(reader["nroChasis"]); vehiculoActual.NroMotor = Convert.ToString(reader["nroMotor"]); vehiculoActual.Dominio = Convert.ToString(reader["dominio"]); vehiculoActual.Observaciones = Convert.ToString(reader["observaciones"]); vehiculoActual.AñoPatentamiento = Convert.ToInt32(reader["añoPatentamiento"]); vehiculoActual.Kilometraje = Convert.ToInt32(reader["kilometraje"]); vehiculoActual.ValorAdquisicion = Convert.ToDouble(reader["valorAdquisicion"]); vehiculoActual.ValorVenta = Convert.ToDouble(reader["valorVenta"]); vehiculoActual.EsUsado = Convert.ToBoolean(reader["esUsado"]); vehiculoActual.FechaRegistro = Convert.ToDateTime(reader["fechaRegistro"]); return vehiculoActual; }
public void RegistrarVehiculo(Vehiculo vehiculoNuevo) { // Insertar el nuevo vehiculo String query = "INSERT INTO Vehiculos (idVersion, idColor, nroMotor, "; query = query + "nroChasis, dominio, observaciones, añoPatentamiento, kilometraje, valorAdquisicion, "; query = query + "valorVenta, esUsado, fechaRegistro, registroEliminado) VALUES (@IdVersion, @IdColor, @NroMotor, "; query = query + "@NroChasis, @Dominio, @Observaciones, @AñoPatentamiento, @Kilometraje, @ValorAdquisicion,"; query = query + " @ValorVenta, @EsUsado, @FechaRegistro, @RegistroEliminado)"; SqlCommand command = connection.CreateCommand(); command.CommandText = query; command.Parameters.Add("@IdVersion", SqlDbType.Int).Value = vehiculoNuevo.Version.IdVersion; command.Parameters.Add("@IdColor", SqlDbType.Int).Value = vehiculoNuevo.Color.IdColor; command.Parameters.Add("@NroMotor", SqlDbType.VarChar).Value = vehiculoNuevo.NroMotor; command.Parameters.Add("@NroChasis", SqlDbType.NChar).Value = vehiculoNuevo.NroChasis; command.Parameters.Add("@Dominio", SqlDbType.NChar).Value = vehiculoNuevo.Dominio; command.Parameters.Add("@Observaciones", SqlDbType.Text).Value = vehiculoNuevo.Observaciones; command.Parameters.Add("@AñoPatentamiento", SqlDbType.Int).Value = vehiculoNuevo.AñoPatentamiento; command.Parameters.Add("@Kilometraje", SqlDbType.Int).Value = vehiculoNuevo.Kilometraje; command.Parameters.Add("@ValorAdquisicion", SqlDbType.Float).Value = vehiculoNuevo.ValorAdquisicion; command.Parameters.Add("@ValorVenta", SqlDbType.Float).Value = vehiculoNuevo.ValorVenta; command.Parameters.Add("@EsUsado", SqlDbType.Bit).Value = vehiculoNuevo.EsUsado; command.Parameters.Add("@FechaRegistro", SqlDbType.DateTime).Value = vehiculoNuevo.FechaRegistro; command.Parameters.Add("@RegistroEliminado", SqlDbType.Bit).Value = false; try { connection.Open(); // Iniciar transaccion command.Transaction = connection.BeginTransaction(); // Ejecutar primera consulta command.ExecuteNonQuery(); // Buscar el idVehiculo asignado al vehiculo recién insertado query = "SELECT @@identity"; command.CommandText = query; int idVehiculo = Convert.ToInt32(command.ExecuteScalar()); // Asignar el idVehiculo del vehiculo recién insertado al estado a guardar vehiculoNuevo.Estado.IdVehiculo = idVehiculo; // Insertar el nuevo estado con el idVehiculo buscado query = "INSERT INTO Estados (tipoEstado, fecha, idVehiculo) VALUES (@TipoEstado, @Fecha, @IdVehiculo)"; command.CommandText = query; command.Parameters.Add("@TipoEstado", SqlDbType.VarChar).Value = vehiculoNuevo.Estado.TipoEstado.ToString(); command.Parameters.Add("@Fecha", SqlDbType.DateTime).Value = vehiculoNuevo.Estado.Fecha; command.Parameters.Add("@IdVehiculo", SqlDbType.Int).Value = vehiculoNuevo.Estado.IdVehiculo; command.ExecuteNonQuery(); // Commit de transacción command.Transaction.Commit(); } catch (Exception ex) { Exception excepcionManejada = new Exception("Ha ocurrido un error al intentar registrar el vehículo. Por favor, vuelva a intentarlo.", ex); // Si ocurrio un error, realizar el rollback command.Transaction.Rollback(); throw excepcionManejada; } finally { connection.Close(); } }
public void EliminarVehiculo(Vehiculo vehiculoAEliminar) { SqlCommand command = connection.CreateCommand(); command.CommandText = "UPDATE vehiculos SET registroEliminado = @RegistroEliminado WHERE idVehiculo = @IdVehiculo"; command.Parameters.Add("@IdVehiculo", SqlDbType.Int).Value = vehiculoAEliminar.IdVehiculo; command.Parameters.Add("@RegistroEliminado", SqlDbType.Bit).Value = true; try { connection.Open(); command.ExecuteNonQuery(); } catch (Exception ex) { Exception excepcionManejada = new Exception("Ha ocurrido un error al intentar eliminar el vehículo. Por favor, vuelva a intentarlo.", ex); throw excepcionManejada; } finally { connection.Close(); } }
// CORROBORADO public void ModificarVehiculo(Vehiculo vehiculoModificado) { SqlCommand command = connection.CreateCommand(); String query = "UPDATE Vehiculos SET idVersion = @IdVersion, idColor = @IdColor, dominio = @Dominio, observaciones = @Observaciones,"; query = query + "añoPatentamiento = @AñoPatentamiento, kilometraje = @Kilometraje, valorVenta = @ValorVenta, esUsado = @EsUsado WHERE idVehiculo = @IdVehiculo"; command.CommandText = query; command.Parameters.Add("@IdVersion", SqlDbType.Int).Value = vehiculoModificado.Version.IdVersion; command.Parameters.Add("@IdColor", SqlDbType.Int).Value = vehiculoModificado.Color.IdColor; command.Parameters.Add("@Dominio", SqlDbType.NChar).Value = vehiculoModificado.Dominio; command.Parameters.Add("@Observaciones", SqlDbType.Text).Value = vehiculoModificado.Observaciones; command.Parameters.Add("@AñoPatentamiento", SqlDbType.Int).Value = vehiculoModificado.AñoPatentamiento; command.Parameters.Add("@Kilometraje", SqlDbType.Int).Value = vehiculoModificado.Kilometraje; command.Parameters.Add("@ValorVenta", SqlDbType.Float).Value = vehiculoModificado.ValorVenta; command.Parameters.Add("@EsUsado", SqlDbType.Bit).Value = vehiculoModificado.EsUsado; command.Parameters.Add("@IdVehiculo", SqlDbType.Int).Value = vehiculoModificado.IdVehiculo; try { connection.Open(); command.ExecuteNonQuery(); } catch (Exception ex) { Exception excepcionManejada = new Exception("Ha ocurrido un error al intentrar modificar los datos del vehículo. Por favor, vuelva a intentarlo.", ex); throw excepcionManejada; } finally { connection.Close(); } }