示例#1
0
        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            List<PermisoXRol> permisosAGuardar= new List<PermisoXRol>();
            List<PermisoXRol> permisosABorrar= new List<PermisoXRol>();

            this.rol.Descripcion = txtRol.Text;
            new RolBL().Grabar(rol);
            foreach (DataGridViewRow fila in dgvPermisos.Rows)
            {
                Permiso permiso = (Permiso)fila.DataBoundItem;
                DataGridViewCheckBoxCell celda = (DataGridViewCheckBoxCell)fila.Cells["Tiene"];
                PermisoXRol permisoBuscado=permisosXRol.Find(delegate(PermisoXRol pxr){return pxr.Permiso.Id==permiso.Id;});
                bool seEncontroPermiso=(permisoBuscado!=null);
                bool checkeado = !(celda.Value==null) && (bool)celda.Value == true;
                if (checkeado && !seEncontroPermiso)
                {
                    PermisoXRol permisoAGuardar=new PermisoXRol();
                    permisoAGuardar.Rol = new Rol();
                    permisoAGuardar.Rol.Id=this.rol.Id;
                    permisoAGuardar.Permiso = new Permiso();
                    permisoAGuardar.Permiso.Id = permiso.Id;
                    permisosAGuardar.Add(permisoAGuardar);
                }
                if (!checkeado && seEncontroPermiso)
                {
                    permisosABorrar.Add(permisoBuscado);
                }
            }
            PermisoXRolBL permisoXRolBL = new PermisoXRolBL();
            foreach (PermisoXRol p in permisosAGuardar)
            {
                permisoXRolBL.Grabar(p);
            }
            foreach (PermisoXRol p in permisosABorrar)
            {
                permisoXRolBL.Borrar(p);
            }
            Empleado emp=((frmHomePapyrus)(this.Owner)).Empleado;
            if (rol.Id==emp.Usuario.Rol.Id)
            {
                Empleado em = new UsuarioBL().Validar(emp.Usuario.NombreUsuario, emp.Usuario.Contrasenha);
                Permisos.Cargar(em.Usuario);
                ((frmHomePapyrus)(this.Owner)).habilitarTodo();
                ((frmHomePapyrus)(this.Owner)).RevisarFuncionalidades();
            }
            Utils.Utils.OK(IND_MENSAJE);
        }
 private void Marcar()
 {
     Empleado empleado = new UsuarioBL().Validar(txtUsuario.Text, txtClave.Text);
     txtClave.Text = "";
     txtUsuario.Text = "";
     if (empleado != null)
     {
         AsistenciaBL oAsistenciaBL =  new AsistenciaBL();
         Asistencia ultimaAsistencia = oAsistenciaBL.GetUltima(empleado);
         if (ultimaAsistencia == null)
         {
             if (oAsistenciaBL.MarcarEntrada(empleado))
             {
                 Utils.Utils.Mensaje("ENTRADA Registrada", MessageBoxButtons.OK, MessageBoxIcon.None);
             }
             else
             {
                 Utils.Utils.Error(null, "Error, intente nuevamente");
             }
             return;
         }
         if (ultimaAsistencia.Tipo == "S")
         {
             if (oAsistenciaBL.MarcarEntrada(empleado))
             {
                 Utils.Utils.Mensaje("ENTRADA Registrada", MessageBoxButtons.OK, MessageBoxIcon.None);
             }
             else
             {
                 Utils.Utils.Error(null, "Error, intente nuevamente");
             }
         }
         else
         {
             if (ultimaAsistencia.Fecha.ToShortDateString() == DateTime.Now.ToShortDateString())
             {
                 if (oAsistenciaBL.MarcarSalida(empleado))
                 {
                     Utils.Utils.Mensaje("SALIDA Registrada", MessageBoxButtons.OK, MessageBoxIcon.None);
                 }
                 else
                 {
                     Utils.Utils.Error(null, "Error, intente nuevamente");
                 }
             }
             else
             {
                 Utils.Utils.Mensaje("Usted no registró su salida la última vez. Se le descontarán las horas.",
                     MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 if (oAsistenciaBL.MarcarNoSalida(empleado, ultimaAsistencia) && oAsistenciaBL.MarcarEntrada(empleado))
                 {
                     Utils.Utils.Mensaje("Entrada Registrada", MessageBoxButtons.OK, MessageBoxIcon.None);
                 }
                 else
                 {
                     Utils.Utils.Error(null, "Error, intente nuevamente");
                 }
             }
         }
     }
     else
     {
         Utils.Utils.Error(null, "El usuario y/o contraseña no son válidas");
     }
 }