Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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");
            }
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 public void ActualizarVehiculo(BE.VehiculoStock vehiculo)
 {
     _vehiculoStockDal.ActualizarVehiculo(vehiculo);
 }
Esempio n. 10
0
 public void AltaVehiculo(BE.VehiculoStock vehiculo)
 {
     _vehiculoStockDal.AltaVehiculo(vehiculo);
 }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
            }
        }