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); } } }
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); } } }