public bool VerificarExistencia(BE.VehiculoStock vehiculo) { BE.Usuario usuario = Services.SessionManager.GetInstance.Usuario; var listaVehiculosMercado = _vehiculoMerBll.ListarVehiculos(); var esTop = listaVehiculosMercado.Where(r => r.TipoVehiculo == vehiculo.TipoVehiculo && r.Marca == vehiculo.Marca && r.Modelo == vehiculo.Modelo && r.Version == vehiculo.Version).FirstOrDefault(); if (esTop == null) { _bitacoraBll.RegistrarBitacora(usuario, $"El vehiculo de patente = {vehiculo.Patente} no se encuentra dentro de los mas vendidos del mercado", 1); return(true); } List <BE.VehiculoStock> listaStock = ListarVehiculosStock(); var listaFiltrada = listaStock.Where(r => r.TipoVehiculo == vehiculo.TipoVehiculo && r.Marca == vehiculo.Marca && r.Modelo == vehiculo.Modelo && r.Version == vehiculo.Version); if (listaFiltrada.Count() >= 4) { _bitacoraBll.RegistrarBitacora(usuario, $"El vehiculo de patente = {vehiculo.Patente} no puede adquirirse, ya existen 4 vehciulos similares", 1); return(true); } return(false); }
private void Form_Closed(object sender, FormClosedEventArgs e) { BuscarCliente formBuscarCliente = (BuscarCliente)sender; if (formBuscarCliente.cliente != null) { cliente = formBuscarCliente.cliente; txtNombre.Text = cliente.Nombre; txtApellido.Text = cliente.Apellido; this.Show(); try { _vehiculo = _vehiculoStockBll.BuscarVehiculoOfrecido(cliente); txtPatente.Text = BLL.Cifrado.Desencriptar(_vehiculo.Patente); txtTipoVehiculo.Text = _vehiculo.TipoVehiculo.ToString(); txtMarca.Text = _vehiculo.Marca; txtModelo.Text = _vehiculo.Modelo; txtVersion.Text = _vehiculo.Version; txtKilometraje.Text = _vehiculo.Kilometraje.ToString(); } catch (Exception exp) { MessageBox.Show(exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { return; } }
public void ActualizarVehiculo(BE.VehiculoStock vehiculo) { int adquirido = vehiculo.Adquirido ? 1 : 0; int disponible = vehiculo.Disponible ? 1 : 0; string query = $"UPDATE vehiculoStock set precio = '{vehiculo.Precio}',dvh = {vehiculo.Dvh}, adquirido = {adquirido}, disponible = {disponible}"; _acceso.ExecuteNonQuery(query); }
public void AltaVehiculo(BE.VehiculoStock vehiculo) { string query = $"INSERT INTO vehiculoStock (patente,tipo_vehiculo,marca,modelo,anio,version,kilometraje,color,id_estado," + $"precio,id_cliente,dvh) VALUES ('{vehiculo.Patente}','{vehiculo.TipoVehiculo}','{vehiculo.Marca}'," + $"'{vehiculo.Modelo}',{vehiculo.Anio},'{vehiculo.Version}',{vehiculo.Kilometraje},'{vehiculo.Color}',{vehiculo.Estado.Id}," + $"'{vehiculo.Precio}',{vehiculo.Cliente.Id},{vehiculo.Dvh})"; _acceso.ExecuteNonQuery(query); }
public BE.VehiculoStock BuscarVehiculoOfrecido(BE.Cliente cliente) { string query = $@"SELECT * FROM vehiculoStock WHERE id_cliente = {cliente.Id} AND (adquirido is null OR adquirido = 0);"; BE.VehiculoStock vehiculo = new BE.VehiculoStock(); DataTable tabla = _acceso.ExecuteReader(query); if (tabla.Rows.Count == 1) { foreach (DataRow fila in tabla.Rows) { vehiculo.Id = int.Parse(fila["id"].ToString()); vehiculo.Patente = fila["patente"].ToString(); vehiculo.TipoVehiculo = int.Parse(fila["tipo_vehiculo"].ToString()); vehiculo.Marca = fila["marca"].ToString(); vehiculo.Modelo = fila["modelo"].ToString(); vehiculo.Anio = int.Parse(fila["anio"].ToString()); vehiculo.Version = fila["version"].ToString(); vehiculo.Kilometraje = int.Parse(fila["kilometraje"].ToString()); vehiculo.Color = fila["color"].ToString(); Estado _estadoDal = new Estado(); vehiculo.Estado = _estadoDal.BuscarEstadoId(int.Parse(fila["id_estado"].ToString())); vehiculo.Precio = fila["precio"].ToString(); if (!String.IsNullOrEmpty(fila["adquirido"].ToString())) { vehiculo.Adquirido = Convert.ToBoolean(fila["adquirido"].ToString()); } if (!String.IsNullOrEmpty(fila["disponible"].ToString())) { vehiculo.Disponible = Convert.ToBoolean(fila["disponible"].ToString()); } Cliente _clienteDal = new Cliente(); vehiculo.Cliente = _clienteDal.BuscarClienteId(int.Parse(fila["id_cliente"].ToString())); vehiculo.Dvh = long.Parse(fila["dvh"].ToString()); } return(vehiculo); } else { throw new Exception("Existe mas de un vehiculo ofrecido y sin adquirir"); } }
public BE.VehiculoStock BuscarVehiculoPatente(string patente) { string query = $@"SELECT * FROM vehiculoStock WHERE patente = '{patente}';"; BE.VehiculoStock vehiculo = new BE.VehiculoStock(); DataTable tabla = _acceso.ExecuteReader(query); if (tabla.Rows.Count == 1) { foreach (DataRow fila in tabla.Rows) { vehiculo.Id = int.Parse(fila["id"].ToString()); vehiculo.Patente = fila["patente"].ToString(); vehiculo.TipoVehiculo = int.Parse(fila["tipo_vehiculo"].ToString()); vehiculo.Marca = fila["marca"].ToString(); vehiculo.Modelo = fila["modelo"].ToString(); vehiculo.Anio = int.Parse(fila["anio"].ToString()); vehiculo.Version = fila["version"].ToString(); vehiculo.Kilometraje = int.Parse(fila["kilometraje"].ToString()); vehiculo.Color = fila["color"].ToString(); Estado _estadoDal = new Estado(); vehiculo.Estado = _estadoDal.BuscarEstadoId(int.Parse(fila["id_estado"].ToString())); vehiculo.Precio = fila["precio"].ToString(); vehiculo.Adquirido = Convert.ToBoolean(fila["adquirido"].ToString()); vehiculo.Disponible = Convert.ToBoolean(fila["disponible"].ToString()); Cliente _clienteDal = new Cliente(); vehiculo.Cliente = _clienteDal.BuscarClienteId(int.Parse(fila["id_cliente"].ToString())); vehiculo.Dvh = long.Parse(fila["dvh"].ToString()); } return(vehiculo); } else { return(null); } }
private void btnBuscar_Click(object sender, EventArgs e) { string patenteCifrado = BLL.Cifrado.Encriptar(txtPatente.Text.ToUpper(), true); try { _vehiculo = _vehiculoStockBll.BuscarVehiculoOfrecidoPatente(patenteCifrado); txtTipoVehiculo.Text = _vehiculo.TipoVehiculo.ToString(); txtMarca.Text = _vehiculo.Marca; txtModelo.Text = _vehiculo.Modelo; txtVersion.Text = _vehiculo.Version; txtKilometraje.Text = _vehiculo.Kilometraje.ToString(); } catch (Exception exp) { MessageBox.Show(exp.Message + txtPatente.Text.ToUpper(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); var usuario = Services.SessionManager.GetInstance.Usuario; _bitacoraBll.RegistrarBitacora(usuario, $"No se encuentra el vehiculo de patente = {txtPatente.Text.ToUpper()}", 2); } }
public List <BE.VehiculoStock> ListarVehiculosStock() { string query = $@"SELECT * FROM vehiculoStock;"; List <BE.VehiculoStock> listaVehiculos = new List <BE.VehiculoStock>(); DataTable tabla = _acceso.ExecuteReader(query); foreach (DataRow fila in tabla.Rows) { BE.VehiculoStock vehiculo = new BE.VehiculoStock(); vehiculo.Id = int.Parse(fila["id"].ToString()); vehiculo.Patente = fila["patente"].ToString(); vehiculo.TipoVehiculo = int.Parse(fila["tipo_vehiculo"].ToString()); vehiculo.Marca = fila["marca"].ToString(); vehiculo.Modelo = fila["modelo"].ToString(); vehiculo.Anio = int.Parse(fila["anio"].ToString()); vehiculo.Version = fila["version"].ToString(); vehiculo.Kilometraje = int.Parse(fila["kilometraje"].ToString()); vehiculo.Color = fila["color"].ToString(); Estado _estadoDal = new Estado(); vehiculo.Estado = _estadoDal.BuscarEstadoId(int.Parse(fila["id_estado"].ToString())); vehiculo.Precio = fila["precio"].ToString(); vehiculo.Adquirido = Convert.ToBoolean(fila["adquirido"].ToString()); vehiculo.Disponible = Convert.ToBoolean(fila["disponible"].ToString()); Cliente _clienteDal = new Cliente(); vehiculo.Cliente = _clienteDal.BuscarClienteId(int.Parse(fila["id_cliente"].ToString())); vehiculo.Dvh = long.Parse(fila["dvh"].ToString()); listaVehiculos.Add(vehiculo); } return(listaVehiculos); }
public void ActualizarVehiculo(BE.VehiculoStock vehiculo) { _vehiculoStockDal.ActualizarVehiculo(vehiculo); }
public void AltaVehiculo(BE.VehiculoStock vehiculo) { _vehiculoStockDal.AltaVehiculo(vehiculo); }
public int CalcularPrecio(BE.VehiculoStock vehiculo, int formaAdq, int _precioVenta = 0) { var listaVehiculosMercado = _vehiculoMerBll.ListarVehiculos(); var vehiculoMercado = listaVehiculosMercado.Where(r => r.TipoVehiculo == vehiculo.TipoVehiculo && r.Marca == vehiculo.Marca && r.Modelo == vehiculo.Modelo && r.Version == vehiculo.Version).FirstOrDefault(); int precioMercado = vehiculoMercado.PrecioMercado; int porcentajeGanancia = 0; if (formaAdq == 0) { porcentajeGanancia = 15; } else { if (vehiculo.Estado.Resultado >= 90 && (vehiculo.Kilometraje >= 1000 && vehiculo.Kilometraje <= 15000)) { porcentajeGanancia = 15; } else { porcentajeGanancia = 20; } } double precioCompra = precioMercado - (precioMercado * porcentajeGanancia) / 100; double precioGanancia = precioCompra; precioCompra = (precioCompra * vehiculo.Estado.Resultado) / 100; int porcentajeKilometraje = 0; if (vehiculo.Kilometraje > 0 && vehiculo.Kilometraje < 1000) { porcentajeKilometraje += 1; } else if (vehiculo.Kilometraje >= 1000 && vehiculo.Kilometraje < 10000) { porcentajeKilometraje += 2; } else if (vehiculo.Kilometraje >= 10000 && vehiculo.Kilometraje < 50000) { porcentajeKilometraje += 5; } else if (vehiculo.Kilometraje >= 50000 && vehiculo.Kilometraje < 80000) { porcentajeKilometraje += 7; } else { porcentajeKilometraje += 12; } precioCompra -= (precioCompra * porcentajeKilometraje) / 100; int precioCompraSugerido = (int)Math.Floor(precioCompra); double precioVenta = precioVenta = precioCompra + (precioCompra * porcentajeGanancia) / 100; int precioVentaSugerido = (int)Math.Floor(precioVenta); if (formaAdq != 0) { if (_precioVenta != 0) { if (_precioVenta > precioVentaSugerido) { throw new Exception("El precio de venta solicitado por el cliente es muy alto"); } else if (_precioVenta < precioCompraSugerido) { throw new Exception("El precio de venta solicitado por el cliente es muy bajo"); } else { precioVentaSugerido = _precioVenta; } } } vehiculo.Precio = precioVentaSugerido.ToString(); var usuario = Services.SessionManager.GetInstance.Usuario; _bitacoraBll.RegistrarBitacora(usuario, $"Precio calculado para el vehiculo de patente = {Cifrado.Desencriptar(vehiculo.Patente)}. " + $"Precio compra sugerido = {precioCompraSugerido}, precio de venta = {precioVentaSugerido}", 3); return(precioCompraSugerido); }
private void btnComprobarVehiculo_Click(object sender, EventArgs e) { var usuario = Services.SessionManager.GetInstance.Usuario; if (cliente == null) { MessageBox.Show("Por favor busque el cliente relacionado al vehiculo"); return; } if (txtPatente.Text == "" || txtPatente.Text == null || txtMarca.Text == "" || txtMarca.Text == null || txtModelo.Text == "" || txtModelo.Text == null || txtVersion.Text == "" || txtVersion.Text == null || txtAnio.Text == "" || txtAnio.Text == null || txtColor.Text == "" || txtColor.Text == null || txtKilometraje.Text == "" || txtKilometraje.Text == null) { MessageBox.Show("Por favor complete los campos obligatorios"); return; } vehiculo = new BE.VehiculoStock(); vehiculo.Patente = txtPatente.Text.ToUpper(); vehiculo.TipoVehiculo = cmbTipoVehiculo.SelectedIndex; vehiculo.Marca = txtMarca.Text.ToUpper(); vehiculo.Modelo = txtModelo.Text.ToUpper(); vehiculo.Version = txtVersion.Text.ToUpper(); vehiculo.Anio = int.Parse(txtAnio.Text); vehiculo.Color = txtColor.Text; vehiculo.Kilometraje = int.Parse(txtKilometraje.Text); vehiculo.Cliente = cliente; string patenteCifrada = BLL.Cifrado.Encriptar(vehiculo.Patente, true); try { var vehiculoExiste = _vehiculoStockBll.BuscarVehiculoPatente(patenteCifrada); if (vehiculoExiste != null) { _bitacoraBll.RegistrarBitacora(usuario, $"El vehiculo de patente = {vehiculo.Patente} ya existe", 1); MessageBox.Show("EL vehiculo ya existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } bool existencia = _vehiculoStockBll.VerificarExistencia(vehiculo); if (existencia) { MessageBox.Show("Ya existen demasiados vehiculos similares o no se encuentra en los mas vendibles", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Hide(); CalcularEstado frmCalcularEstado = new CalcularEstado(); frmCalcularEstado.MdiParent = this.ParentForm; frmCalcularEstado.Show(); frmCalcularEstado.FormClosed += new FormClosedEventHandler(Form_Closed2); } catch (Exception exp) { MessageBox.Show(exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }