예제 #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);
        }
예제 #2
0
        public void Login(BE.Usuario u)
        {
            BE.Usuario UsuarioBD;

            UsuarioBD = mp.Login(u);

            if (UsuarioBD != null)
            {
                string HashBD = SM.GenerarHash(UsuarioBD.Password);

                if (SM.Verificar(u.Password, HashBD) == true)
                {
                    SEGURIDAD.Sesion.Login(UsuarioBD);

                    BITACORA.Fecha   = DateTime.Now;
                    BITACORA.Usuario = UsuarioBD;
                    BITACORA.Evento  = "Login";
                }
            }
            else
            {
                BITACORA.Fecha   = DateTime.Now;
                BITACORA.Usuario = u;
                BITACORA.Evento  = "Inicio de sesion fallido";
            }
            gestorBitacora.RegistrarBitacora(BITACORA);
        }
예제 #3
0
        public void GuardarFamilia(BE.Familia f)
        {
            _permisosDAL.InsertarFamilia(f);
            Bitacora _bitacoraBll    = new Bitacora();
            var      usuarioRegistra = Services.SessionManager.GetInstance.Usuario;

            _bitacoraBll.RegistrarBitacora(usuarioRegistra, $@"Se creo la familia = {f.nombre}", 1);
        }
예제 #4
0
파일: Estado.cs 프로젝트: xeneise19/Logicar
        public BE.Estado ComprobarEstado(int valorMotor, int valorCarroceria, int valorFrenos,
                                         int valorAmortiguacion, int valorImpSonoro, int valorInterior)
        {
            BE.Usuario usuario = Services.SessionManager.GetInstance.Usuario;
            if (valorMotor <= 2 || valorCarroceria <= 2 || valorFrenos == 1 || valorAmortiguacion == 1)
            {
                _bitacoraBll.RegistrarBitacora(usuario, $"Estado del vehiculo no es aceptable, motor = {valorMotor}, carroceria =  {valorCarroceria}, frenos = {valorFrenos} y amortiguacion = {valorAmortiguacion}", 1);
                throw new Exception("El estado del vehiculo no es aceptable");
            }

            int   sumaValores = valorMotor + valorCarroceria + valorFrenos + valorAmortiguacion + valorImpSonoro + valorInterior;
            float prom        = (sumaValores / 25) * 100;
            int   estadoFinal = 0;

            if (prom % 1 != 0)
            {
                if (valorMotor >= 4)
                {
                    estadoFinal = Convert.ToInt32(Math.Ceiling(prom));
                }
                else
                {
                    estadoFinal = Convert.ToInt32(Math.Ceiling(prom));
                }
            }
            else
            {
                estadoFinal = Convert.ToInt32(prom);
            }

            if (estadoFinal >= 70)
            {
                BE.Estado estado = new BE.Estado();
                estado.Resultado = estadoFinal;
                _estadoDal.GuardarEstado(estado);
                _bitacoraBll.RegistrarBitacora(usuario, $"Estado del vehiculo aceptable, resultado = {estadoFinal}", 1);
                return(estado);
            }
            else
            {
                _bitacoraBll.RegistrarBitacora(usuario, $"Estado del vehiculo no es aceptable, resultado = {estadoFinal}", 1);
                throw new Exception("El estado del vehiculo no es aceptable");
            }
        }
예제 #5
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);
        }
예제 #6
0
        public static string RecalcularDV(BE.Usuario _usuario)
        {
            Bitacora _bitacoraBll = new Bitacora();

            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*/

                long dvv = 0;
                /* CALCULO Y COMPARO DVH DE CADA REGISTRO DE LA TABLA VERIFICADA */
                foreach (DataRow fila in tabla.Rows)
                {
                    string identificador = "";
                    long   dvh           = 0;

                    foreach (DataColumn col in tabla.Columns)
                    {
                        long sumador = 0;
                        if (col.ColumnName == "id" || col.ColumnName == "legajo")
                        {
                            identificador = col.ColumnName;
                        }

                        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;
                        }
                    }
                    dvv += dvh;

                    _DVDAL.ActualizarDVH(dvh, digito.nombreTabla, identificador, fila[identificador].ToString());
                }

                _DVDAL.ActualizarDVV(dvv, digito.nombreTabla);
            }

            string descripcion_bitacora = $@"Se reestablecio la integridad del sistema";

            _bitacoraBll.RegistrarBitacora(_usuario, descripcion_bitacora, 1);

            return(descripcion_bitacora);
        }
예제 #7
0
    protected void ButtonRestaurar(object sender, EventArgs e)
    {
        SEGURIDAD.Backup gestorBackup = new SEGURIDAD.Backup();
        string           mensaje      = gestorBackup.Restaurar(Server.MapPath("~/BackupDB//" + FileUpload1.FileName));

        BLL.Bitacora gestorBitacora = new BLL.Bitacora();
        BE.Bitacora  bitacora       = new BE.Bitacora();
        bitacora.Fecha   = DateTime.Now;
        bitacora.Evento  = mensaje;
        bitacora.Usuario = SEGURIDAD.Sesion._Instance.UsuarioEnSesion;
        gestorBitacora.RegistrarBitacora(bitacora);
        Response.Write(@"<script language='javascript'>alert('" + mensaje + "')</script>");
        Response.Redirect("~/Inicio");
    }
예제 #8
0
 protected void ButtonBackup(object sender, EventArgs e)
 {
     if (!string.IsNullOrWhiteSpace(txtBackupName.Text))
     {
         SEGURIDAD.Backup gestorBackup   = new SEGURIDAD.Backup();
         string           mensaje        = gestorBackup.RealizarBackup(Server.MapPath("~/BackupDB/") + txtBackupName.Text);
         BLL.Bitacora     gestorBitacora = new BLL.Bitacora();
         BE.Bitacora      bitacora       = new BE.Bitacora();
         bitacora.Fecha   = DateTime.Now;
         bitacora.Evento  = mensaje;
         bitacora.Usuario = SEGURIDAD.Sesion._Instance.UsuarioEnSesion;
         gestorBitacora.RegistrarBitacora(bitacora);
         Enlazar();
         txtBackupName.Text = "";
     }
     else
     {
         ErrorMessage.Visible = true;
     }
 }
예제 #9
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);
        }
예제 #10
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);
            }
        }