public List <ActividadPresupuesto> CrearInformePresupuesto(int IDPresupuestoAnio, int fecha, int intervaloDeTiempo) { List <ActividadPresupuesto> actividadesPresupuestoAnio = presupuestoRepositorio.ObtenerActividadesPorPresupuesto(IDPresupuestoAnio); foreach (ActividadPresupuesto ap in actividadesPresupuestoAnio) { if (ap.actividadesPresupuesto != null) { foreach (ActividadPresupuesto aphijas in ap.actividadesPresupuesto) { List <PresupuestoPorMes> ppms = new List <PresupuestoPorMes>(); double totalPresupuesto = 0; double totalEjecutado = 0; bool crearPresupuestoMes = false; foreach (PresupuestoPorMes ppm in aphijas.presupuestosPorMes) { if (fecha == 1) // Mesual { if (ppm.Mes == intervaloDeTiempo) { ppms.Add(ppm); } } if (fecha == 2) // trimestral { if (intervaloDeTiempo == 1) { if (ppm.Mes == 1 || ppm.Mes == 2 || ppm.Mes == 3) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 2) { if (ppm.Mes == 4 || ppm.Mes == 5 || ppm.Mes == 6) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 3) { if (ppm.Mes == 7 || ppm.Mes == 8 || ppm.Mes == 9) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 4) { if (ppm.Mes == 10 || ppm.Mes == 11 || ppm.Mes == 12) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } crearPresupuestoMes = true; } if (fecha == 3) // Semestral { if (intervaloDeTiempo == 1) { if (ppm.Mes == 1 || ppm.Mes == 2 || ppm.Mes == 3 || ppm.Mes == 4 || ppm.Mes == 5 || ppm.Mes == 6) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 2) { if (ppm.Mes == 7 || ppm.Mes == 8 || ppm.Mes == 9 || ppm.Mes == 10 || ppm.Mes == 11 || ppm.Mes == 12) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } crearPresupuestoMes = true; } if (fecha == 4) // Mesual { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; crearPresupuestoMes = true; } } if (crearPresupuestoMes) { PresupuestoPorMes ppm = new PresupuestoPorMes(); ppm.PresupuestoMes = totalPresupuesto; ppm.PresupuestoEjecutadoPorMes = totalEjecutado; ppms.Add(ppm); } aphijas.presupuestosPorMes = ppms; } } else { List <PresupuestoPorMes> ppms = new List <PresupuestoPorMes>(); double totalPresupuesto = 0; double totalEjecutado = 0; bool crearPresupuestoMes = false; foreach (PresupuestoPorMes ppm in ap.presupuestosPorMes) { if (fecha == 1) // Mesual { if (ppm.Mes == intervaloDeTiempo) { ppms.Add(ppm); } } if (fecha == 2) // trimestral { if (intervaloDeTiempo == 1) { if (ppm.Mes == 1 || ppm.Mes == 2 || ppm.Mes == 3) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 2) { if (ppm.Mes == 4 || ppm.Mes == 5 || ppm.Mes == 6) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 3) { if (ppm.Mes == 7 || ppm.Mes == 8 || ppm.Mes == 9) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 4) { if (ppm.Mes == 10 || ppm.Mes == 11 || ppm.Mes == 12) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } crearPresupuestoMes = true; } if (fecha == 3) // Semestral { if (intervaloDeTiempo == 1) { if (ppm.Mes == 1 || ppm.Mes == 2 || ppm.Mes == 3 || ppm.Mes == 4 || ppm.Mes == 5 || ppm.Mes == 6) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } if (intervaloDeTiempo == 2) { if (ppm.Mes == 7 || ppm.Mes == 8 || ppm.Mes == 9 || ppm.Mes == 10 || ppm.Mes == 11 || ppm.Mes == 12) { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; } } crearPresupuestoMes = true; } if (fecha == 4) // Mesual { totalPresupuesto = totalPresupuesto + ppm.PresupuestoMes; totalEjecutado = totalEjecutado + ppm.PresupuestoEjecutadoPorMes; crearPresupuestoMes = true; } } if (crearPresupuestoMes) { PresupuestoPorMes ppm = new PresupuestoPorMes(); ppm.PresupuestoMes = totalPresupuesto; ppm.PresupuestoEjecutadoPorMes = totalEjecutado; ppms.Add(ppm); } ap.presupuestosPorMes = ppms; } } return(actividadesPresupuestoAnio); }
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); } } }