public dynamic ConsultarPresupuestosByProgramYCeco(CoberturaRequest request) { return(GestionPresupuestoOperations.ConsultarPresupuestosByProgramYCeco(_factory, _connectionDB, request)); }
public static dynamic ConsultarPresupuestosByProgramYCeco(IContextFactory factory, IOptions <ConnectionDB> connection, CoberturaRequest request) { PresupuestoByProgramResponse retorno = new PresupuestoByProgramResponse(); using (Aldeas_Context db = factory.Create(connection)) { var cobertura = false; var Actual = false; var tieneCobertura = from pro in db.TbProgramas join pre in db.TbPresupuestoAnio on pro.id equals pre.idPrograma join tpro in db.TbTipoPrograma on pro.id_tipo_programa equals tpro.id where pro.id == request.IdPrograma && pre.id == request.IdPresupuestoAnio select new { tpro.cobertura, pre.actual, }; if (tieneCobertura.Any()) { cobertura = tieneCobertura.First().cobertura; Actual = tieneCobertura.First().actual; } /// Si no es el actual no se deja actualizar o consultar. if (!Actual) { return(new JsonResult(new { message = "Unauthorized" }) { StatusCode = StatusCodes.Status401Unauthorized }); } if (!cobertura) { var existe = from pro in db.TbPresupuestos join panio in db.TbPresupuestoAnio on pro.idPresupuestoAnio equals panio.id where pro.idPrograma == request.IdPrograma && pro.IdProgramaCecos == request.IdCeco && panio.id == request.IdPresupuestoAnio select pro; if (!existe.Any()) { DbPresupuesto guardar = new DbPresupuesto { idPrograma = request.IdPrograma, idPresupuestoAnio = request.IdPresupuestoAnio, IdProgramaCecos = request.IdCeco }; PresupuestoOperations.GuardarPresupuesto(factory, connection, guardar); } } var data = from pre in db.TbPresupuestos join finan in db.TbFinanciadores on pre.idFinanciador equals finan.id where pre.idPrograma == request.IdPrograma && pre.idPresupuestoAnio == request.IdPresupuestoAnio && pre.IdProgramaCecos == request.IdCeco select new ResponsePresupuesto { idPrograma = pre.idPrograma, Anio = pre.Anio, CoberturaAnual = pre.CoberturaAnual, CoberturaMensual = pre.CoberturaMensual, CoberturasCasas = pre.CoberturasCasas, CoberturaMensualEsperada = pre.CoberturaMensualEsperada, id = pre.id, NombreContrato = pre.NombreContrato, Financiador = finan.nombre }; if (data.Any()) { retorno.presupuesto = data.ToList(); } } return(retorno); }
public dynamic Consultar(CoberturaRequest request) { return(_dataRepository.ConsultarPresupuestosByProgramYCeco(request)); }