public bool GuardarRolYResponsabilidades(Rol DescripRol, List <Responsabilidades> responsabilidad, List <RendicionDeCuentas> rendicion,
                                                 int Pk_Id_Empresa, EDInformacionAuditoria edInfoauditoria)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    Rol rol = new Rol();
                    List <Responsabilidades>  respons = new List <Responsabilidades>();
                    List <RendicionDeCuentas> rendic  = new List <RendicionDeCuentas>();
                    ResponsabilidadesPorRol   responsabilidadesPorRol  = new ResponsabilidadesPorRol();
                    RendicionDeCuentasPorRol  rendicionDeCuentasPorRol = new RendicionDeCuentasPorRol();
                    rol.ResponsabilidadesPorRoles  = new List <ResponsabilidadesPorRol>();
                    rol.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>();
                    rol.Descripcion   = DescripRol.Descripcion.ToUpper();
                    rol.Fk_Id_Empresa = Pk_Id_Empresa;

                    foreach (var rpr in responsabilidad)
                    {
                        Responsabilidades resp = new Responsabilidades();
                        resp.ResponsabilidadesPorRoles = new List <ResponsabilidadesPorRol>();
                        ResponsabilidadesPorRol rxrol = new ResponsabilidadesPorRol();
                        rxrol.Rol = rol;
                        resp.ResponsabilidadesPorRoles.Add(rxrol);
                        resp.Descripcion = rpr.Descripcion;

                        respons.Add(resp);
                    }

                    foreach (var rendpr in rendicion)
                    {
                        RendicionDeCuentas rend = new RendicionDeCuentas();
                        rend.RendicionDeCuentasPorRoles = new List <RendicionDeCuentasPorRol>();
                        RendicionDeCuentasPorRol rendxrol = new RendicionDeCuentasPorRol();
                        rendxrol.Rol = rol;
                        rend.RendicionDeCuentasPorRoles.Add(rendxrol);
                        rend.Descripcion = rendpr.Descripcion;
                        rendic.Add(rend);
                    }

                    db.Tbl_Responsabilidades.AddRange(respons);
                    db.Tbl_RendicionDeCuentas.AddRange(rendic);
                    /*inicio auditoria*/
                    if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                    {
                        db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                          Enumeraciones.EnumAuditoriaSistema.SubModulos.Roles_y_Responsabilidades_SST,
                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Opciones.CrearRol,
                                                                                                                          rol.ToString()));
                    }
                    /*fin auditoria*/
                    //db.Tbl_Rol.Add(rol);
                    db.SaveChanges();
                    transaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    //RegistroInformacion.EnviarError<Rol>(ex.Message);
                    transaction.Rollback();
                    return(false);
                }
            }
        }
Пример #2
0
        public bool GuardarPresupuesto(List <ActividadPresupuesto> actividadesPresupuesto, EDInformacionAuditoria edInfoauditoria)
        {
            SG_SSTContext dbaud = new SG_SSTContext();

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    foreach (ActividadPresupuesto ac in actividadesPresupuesto)
                    {
                        if (ac.PK_Actividad_Presupuesto > 0)
                        {
                            if (ac.actividadesPresupuesto != null)
                            {
                                List <ActividadPresupuesto> lisAux = ac.actividadesPresupuesto.ToList();
                                foreach (ActividadPresupuesto actividadesSecun in lisAux)
                                {
                                    if (actividadesSecun.PK_Actividad_Presupuesto > 0)
                                    {
                                        foreach (PresupuestoPorMes pxm in actividadesSecun.presupuestosPorMes)
                                        {
                                            /*inicio auditoria*/
                                            if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                            {
                                                PresupuestoPorMes pxmaudi = dbaud.Tbl_Presupuesto_Por_Mes.Find(pxm.PK_Prepuesto_Por_Mes);
                                                db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                                  pxmaudi.ToString()));
                                            }
                                            /*fin auditoria*/
                                            db.Entry(pxm).State = EntityState.Modified;
                                        }
                                        /*inicio auditoria*/
                                        if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                        {
                                            ActividadPresupuesto acps = dbaud.Tbl_Actividad_Presupuesto.Find(actividadesSecun.PK_Actividad_Presupuesto);
                                            db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                              acps.ToString()));
                                        }
                                        /*fin auditoria*/
                                        db.Entry(actividadesSecun).State = EntityState.Modified;
                                    }
                                }
                                ac.actividadesPresupuesto = lisAux;
                            }
                            else
                            {
                                foreach (PresupuestoPorMes pxm in ac.presupuestosPorMes)
                                {
                                    /*inicio auditoria*/
                                    if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                    {
                                        PresupuestoPorMes pxmaudi = dbaud.Tbl_Presupuesto_Por_Mes.Find(pxm.PK_Prepuesto_Por_Mes);
                                        db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                          Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                          Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                          pxmaudi.ToString()));
                                    }
                                    /*fin auditoria*/
                                    db.Entry(pxm).State = EntityState.Modified;
                                }
                            }
                            /*inicio auditoria*/
                            if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                            {
                                ActividadPresupuesto acp = dbaud.Tbl_Actividad_Presupuesto.Find(ac.PK_Actividad_Presupuesto);
                                db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                  acp.ToString()));
                            }
                            /*fin auditoria*/
                            db.Entry(ac).State = EntityState.Modified;
                        }
                        else
                        {
                            if (ac.actividadesPresupuesto != null)
                            {
                                List <ActividadPresupuesto> lisAux = ac.actividadesPresupuesto.ToList();
                                ac.actividadesPresupuesto = null;
                                db.Tbl_Actividad_Presupuesto.Add(ac);
                                foreach (ActividadPresupuesto actividadesSecun in lisAux)
                                {
                                    if (actividadesSecun.PK_Actividad_Presupuesto > 0)
                                    {
                                        foreach (PresupuestoPorMes pxm in actividadesSecun.presupuestosPorMes)
                                        {
                                            /*inicio auditoria*/
                                            if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                            {
                                                PresupuestoPorMes pxmaudi = dbaud.Tbl_Presupuesto_Por_Mes.Find(pxm.PK_Prepuesto_Por_Mes);
                                                db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                                  pxmaudi.ToString()));
                                            }
                                            /*fin auditoria*/
                                            db.Entry(pxm).State = EntityState.Modified;
                                        }
                                        /*inicio auditoria*/
                                        if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                        {
                                            ActividadPresupuesto acps = dbaud.Tbl_Actividad_Presupuesto.Find(actividadesSecun.PK_Actividad_Presupuesto);
                                            db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                              acps.ToString()));
                                        }
                                        /*fin auditoria*/
                                        db.Entry(actividadesSecun).State = EntityState.Modified;
                                    }
                                    else
                                    {
                                        /*inicio auditoria*/
                                        if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                        {
                                            db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                              Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                              actividadesSecun.ToString()));
                                        }
                                        /*fin auditoria*/
                                        db.Tbl_Actividad_Presupuesto.Add(actividadesSecun);
                                    }
                                }
                                ac.actividadesPresupuesto = lisAux;
                            }
                            else
                            {
                                /*inicio auditoria*/
                                if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                                {
                                    db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                      Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                                      Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                      Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                      Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                      ac.ToString()));
                                }
                                /*fin auditoria*/
                                db.Tbl_Actividad_Presupuesto.Add(ac);
                            }
                        }
                    }
                    ActividadPresupuesto acti = actividadesPresupuesto.FirstOrDefault();
                    if (acti.PK_Actividad_Presupuesto > 0)
                    {
                        if (acti.actividadesPresupuesto != null)
                        {
                            Presupuesto p = acti.actividadesPresupuesto.FirstOrDefault().presupuestosPorMes.FirstOrDefault().Presupuesto;
                            /*inicio auditoria*/
                            if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                            {
                                db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                  p.ToString()));
                            }
                            /*fin auditoria*/
                            db.Entry(p.presupuestosPorAnio.FirstOrDefault()).State = EntityState.Modified;
                            db.Entry(p).State = EntityState.Modified;
                        }
                        else
                        {
                            Presupuesto p = acti.presupuestosPorMes.FirstOrDefault().Presupuesto;
                            /*inicio auditoria*/
                            if (db.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaLiderazgoGerencial)
                            {
                                db.Tbl_AuditoriaLiderazgoGerencialSistema.Add(auditoriaSistema.ObtenerAuditoriaLiderazgoGerencial(edInfoauditoria,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Acciones.MODIFICACION,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Modulos.Liderazgo_Gerencial,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.SubModulos.Presupuesto,
                                                                                                                                  Enumeraciones.EnumAuditoriaSistema.Opciones.ConsultarPresupuesto,
                                                                                                                                  p.ToString()));
                            }
                            /*fin auditoria*/
                            db.Entry(p.presupuestosPorAnio.FirstOrDefault()).State = EntityState.Modified;
                            db.Entry(p).State = EntityState.Modified;
                        }
                    }
                    db.SaveChanges();
                    transaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    //RegistroInformacion.EnviarError<ActividadPresupuesto>(ex.Message);
                    transaction.Rollback();
                    return(false);
                }
            }
        }