private void cargarGrillaPatentes(int id_familia)
        {
            dgv_patentesAsociadasAfamilia.DataSource = null;
            dgv_patentesDisponibles.DataSource       = null;

            //CARGAR: patentes asociadas
            this.familiaPatentesDB = famPat_BLL.GetPatentesFamilia(id_familia);
            foreach (BE.Patente patente in familiaPatentesDB)
            {
                dgv_patentesAsociadasAfamilia.Rows.Add(patente.id, UTILITIES.Encriptador.Desencriptar(patente.descripcion), patente.activo);
            }

            //CARGAR: patentes disponibles
            List <BE.Patente> patentesUI = new List <BE.Patente>();
            List <BE.Patente> patentesDB = pat_BLL.SelectAll();

            foreach (BE.Patente patDB in patentesDB)
            {
                //(!) Validar si la patente ya no fue agregada
                if (!patentesUI.Any(f => f.id == patDB.id))
                {
                    //(!) Validar que la patente a agregar no la tenga el usuario
                    if (!familiaPatentesDB.Any(f => f.id == patDB.id))
                    {
                        patentesUI.Add(patDB);
                    }
                }
            }

            foreach (BE.Patente patente in patentesUI)
            {
                dgv_patentesDisponibles.Rows.Add(patente.id, UTILITIES.Encriptador.Desencriptar(patente.descripcion), patente.activo);
            }
        }
Beispiel #2
0
        private void btn_baja_Click(object sender, EventArgs e)
        {
            if (dgv_familias.SelectedRows.Count == 1)
            {
                int id_familia = Convert.ToInt32(dgv_familias.CurrentRow.Cells[0].Value);
                List <BE.Patente> patentes_familia = famPat_BLL.GetPatentesFamilia(id_familia);

                if (BLL.Services.VerificarUsoPatente(0, patentes_familia, id_familia) != 0)
                {
                    BE.Familia famAinhabilitar = new BE.Familia();
                    famAinhabilitar.id = Convert.ToInt32(dgv_familias.CurrentRow.Cells[0].Value);
                    familia_BLL.Delete(famAinhabilitar);
                    this.ActualizarGrilla();
                    MessageBox.Show("Se inhabilitó el registro seleccionado");
                    bitacora_BAJA.RegistrarEnBitacora(this.usuario_logueado, DateTime.Now, "Se inhabilitó una Familia");
                }
                else
                {
                    MessageBox.Show("La operación no se puede realizar ya que viola la regla de verificación de uso de patente");
                }
            }
            else
            {
                MessageBox.Show("Se debe seleccionar un registro a inhabilitar");
            }
        }
Beispiel #3
0
        private bool validarUsoPatentesFamSeleccionadas()
        {
            /*
             * VALIDAR REGLA DE USO DE PATENTES
             * Solo para las familias que el usuario ya tenía asignadas en la DB y fueron seleccionadas
             */

            bool validacionUsoPatente = false;

            //1) Familias seleccionadas a validar
            List <BE.Familia> famSeleccionadasAValidar = new List <BE.Familia>();

            foreach (DataGridViewRow fila in dgv_familiasAsociadas.SelectedRows)
            {
                if (this.familiasUsuarioDB.Any(fu => fu.id == (int)fila.Cells[0].Value))
                {
                    BE.Familia famSeleccionada = (BE.Familia) this.familiasUsuarioDB.Where(fu => fu.id == (int)fila.Cells[0].Value).FirstOrDefault();
                    if (famSeleccionada.activo)
                    {
                        famSeleccionadasAValidar.Add(famSeleccionada);
                    }
                }
            }

            //2) Patentes de las familias a validar
            List <BE.Patente> patentesAvalidar = new List <BE.Patente>();

            foreach (BE.Familia fam in famSeleccionadasAValidar)
            {
                foreach (BE.Patente pat in famPat_BLL.GetPatentesFamilia(fam.id))
                {
                    if (!patentesAvalidar.Any(p => p.id == pat.id))
                    {
                        patentesAvalidar.Add(pat);
                    }
                }
            }

            //3) Validacion de la regla de uso de las patentes
            if (BLL.Services.VerificarUsoPatente((int)usuario_seleccionado.Cells[0].Value, patentesAvalidar, 0) != 0)
            {
                validacionUsoPatente = true;
            }

            return(validacionUsoPatente);
        }
Beispiel #4
0
        public static void FijarPermisos(List <BE.UsuarioPatente> usuPatentes, List <BE.Patente> patentes, List <BE.Familia> familias)
        {
            //LISTA DEFINITVA: patentes de familias (1) + patentes individuales (2)
            //CONDICION: activas -Patente & Familia- (a nivel general) & no negadas -Patente- (a nivel usuario)

            //PASO 1: Patente-familia
            BLL.FamiliaPatente famPat_BLL = new BLL.FamiliaPatente();
            foreach (BE.Familia familia in familias)
            {
                if (familia.activo)
                {
                    foreach (BE.Patente patente in famPat_BLL.GetPatentesFamilia(familia.id))
                    {
                        if (!BE.ConfigUsuario.permisos.Any(p => p.id == patente.id))
                        {
                            if (patente.activo)
                            {
                                BE.ConfigUsuario.permisos.Add(patente);
                            }
                        }
                    }
                }
            }

            //PASO 2: Patente-individual
            BE.ConfigUsuario.usuPatentes = usuPatentes;
            BLL.UsuarioPatente usuPat_BLL = new BLL.UsuarioPatente();
            foreach (BE.Patente patente in patentes)
            {
                //QUITAR: Si la patente ya se agregó por la familia pero esta negada individualmente
                if (BE.ConfigUsuario.permisos.Any(p => p.id == patente.id))
                {
                    if (BLL.ConfigUsuario.estaNegada(patente.id))
                    {
                        BE.ConfigUsuario.permisos.RemoveAll(p => p.id == patente.id);
                    }
                }
                //AGREGAR: Si la patente individual no se agregó por la familia, no está negada y está activa
                else
                {
                    if (patente.activo)
                    {
                        if (!BLL.ConfigUsuario.estaNegada(patente.id))
                        {
                            BE.ConfigUsuario.permisos.Add(patente);
                        }
                    }
                }
            }
        }