示例#1
0
        public void CambiarContrasena(BE.Usuario user)
        {
            string pass = GenerarPassword();

            user.contrasena = Cifrado.Encriptar(pass.ToUpper(), false);
            user.dvh        = DigitoVerificador.CalcularDV(user, "usuario");
            _usuarioDal.Actualizar(user);
            EnviarPassword(Cifrado.Desencriptar(user.usuario), pass);
        }
示例#2
0
        public void CambiarContrasena(string user)
        {
            var usuario = _usuarioDal.GetUsuarioUser(Cifrado.Encriptar(user.ToUpper(), true));

            string pass = GenerarPassword();

            usuario.contrasena = Cifrado.Encriptar(pass.ToUpper(), false);
            usuario.dvh        = DigitoVerificador.CalcularDV(usuario, "usuario");
            _usuarioDal.Actualizar(usuario);
            EnviarPassword(Cifrado.Desencriptar(usuario.usuario), pass);
        }
示例#3
0
        public void DesbloquearUsuario(BE.Usuario usuario)
        {
            usuario.contador = 0;
            _usuarioDal.Actualizar(usuario);
            var usuarioRegistra = new BE.Usuario();

            if (Services.SessionManager.IsLogged())
            {
                usuarioRegistra = Services.SessionManager.GetInstance.Usuario;
            }
            else
            {
                string nombre_usuario = Cifrado.Encriptar("SYSTEM", true);
                usuarioRegistra = _usuarioDal.GetUsuarioUser(nombre_usuario);
            }
            _bitacoraBLL.RegistrarBitacora(usuarioRegistra, $@"Se desbloqueo el usuario {Cifrado.Desencriptar(usuario.usuario)}", 1);
        }
示例#4
0
        public BE.Usuario GenerarUsuario(BE.Empleado emp)
        {
            BE.Usuario usuario = new BE.Usuario();
            usuario.usuario = Cifrado.Encriptar(("u" + emp.legajo.ToString().PadLeft(6, '0')).ToUpper(), true);
            string pass = GenerarPassword();

            usuario.contrasena = Cifrado.Encriptar(pass.ToUpper(), false);
            string[] nombres = emp.nombre.Split(' ');
            string   email   = "";

            foreach (string n in nombres)
            {
                email += n.Substring(0, 1);
            }
            string[] apellidos = emp.apellido.Split(' ');
            for (int i = 0; i < apellidos.Length; i++)
            {
                if ((i + 1) != apellidos.Length)
                {
                    email += apellidos[i].Substring(0, 1);
                }
                else
                {
                    email += apellidos[i];
                }
            }
            email         += "@logicar.com.ar";
            usuario.email  = email;
            usuario.estado = 1;
            usuario.dvh    = DigitoVerificador.CalcularDV(usuario, "usuario");
            _usuarioDal    = new DAL.Usuario();
            _usuarioDal.Insertar(usuario);
            EnviarPassword(Cifrado.Desencriptar(usuario.usuario), pass);
            var usuarioRegistra = usuario;

            if (Services.SessionManager.IsLogged())
            {
                usuarioRegistra = Services.SessionManager.GetInstance.Usuario;
            }
            _bitacoraBLL.RegistrarBitacora(usuarioRegistra, $@"Se creo el usuario = {Cifrado.Desencriptar(usuario.usuario)}.", 1);
            return(usuario);
        }
示例#5
0
        public void RegistrarBitacora(BE.Usuario usuario, string descripcion, int criticidad, long digito = 1)
        {
            BE.Bitacora bitacora = new BE.Bitacora();
            descripcion = Cifrado.Encriptar(descripcion, true);
            DateTime fecha = DateTime.Now;

            bitacora.usuario     = usuario;
            bitacora.descripcion = descripcion;
            bitacora.fecha       = fecha;
            bitacora.criticidad  = criticidad;

            if (digito == 1)
            {
                long dvh = DigitoVerificador.CalcularDV(bitacora, "bitacora");
                bitacora.dvh = dvh;
            }
            else
            {
                bitacora.dvh = digito;
            }

            _bitacoraDal.RegistrarBitacora(bitacora);
        }
示例#6
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);
        }
示例#7
0
        public static int VerificarDV()
        {
            string nombre_usuario = Cifrado.Encriptar("SYSTEM", true);

            DAL.Usuario _usuarioDal  = new DAL.Usuario();
            Bitacora    _bitacoraBll = new Bitacora();

            try
            {
                BE.Usuario usr   = _usuarioDal.GetUsuarioUser(nombre_usuario);
                int        error = 0;

                DAL.DigitoVerificador _DVDAL = new DAL.DigitoVerificador();

                List <BE.DigitoVerificador> listaDvv = _DVDAL.TraerDVV();

                foreach (BE.DigitoVerificador digito in listaDvv)
                {
                    DataTable tabla = _DVDAL.TraerTabla(digito.nombreTabla);

                    /* CALCULO Y COMPARO DVV LA TABLA VERIFICADA CON EL ALMACENADO*/
                    if (tabla.Rows.Count != 0)
                    {
                        long resultado = 0;

                        foreach (DataRow r in tabla.Rows)
                        {
                            resultado += long.Parse(r["dvh"].ToString());
                        }

                        if (resultado != digito.valorDvv)
                        {
                            // registro en bitacora
                            string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Vertical de la tabla {0} 
                                                                no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, resultado, digito.valorDvv);

                            _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0);
                            error = 1;
                        }
                        /* CALCULO Y COMPARO DVH DE CADA REGISTRO DE LA TABLA VERIFICADA */
                        foreach (DataRow fila in tabla.Rows)
                        {
                            long dvh = 0;

                            foreach (DataColumn col in tabla.Columns)
                            {
                                long sumador = 0;
                                if (col.ColumnName != "id" && col.ColumnName != "legajo" && col.ColumnName != "dvh")
                                {
                                    var cadena_ascii = ASCIIEncoding.ASCII.GetBytes(fila[col].ToString());
                                    for (int i = 0; i < cadena_ascii.Length; i++)
                                    {
                                        sumador += long.Parse(cadena_ascii[i].ToString()) * (i + 1);
                                    }
                                    dvh += sumador;
                                }
                            }

                            if (dvh != long.Parse(fila["dvh"].ToString()))
                            {
                                // registro en bitacora
                                string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Horizontal de la tabla {0} 
                                                                no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, dvh, fila["dvh"].ToString());

                                _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0);
                                error = 1;
                            }
                        }
                    }
                    else
                    {
                        long resultado = 0;

                        if (resultado != digito.valorDvv)
                        {
                            // registro en bitacora
                            string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Vertical de la tabla {0} 
                                                                no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, resultado, digito.valorDvv);

                            _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0);
                            error = 1;
                        }
                    }
                }

                return(error);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#8
0
 public void DesbloquearUsuarioAdmin(BE.Usuario usuario)
 {
     usuario.contador = 0;
     _usuarioDal.Actualizar(usuario);
     _bitacoraBLL.RegistrarBitacora(usuario, $@"Se desbloqueo el usuario {Cifrado.Desencriptar(usuario.usuario)}", 1);
 }