public static dynamic GenerarVersionamiento(IContextFactory factory, IOptions <ConnectionDB> connection, PresupuestoProgramRequest 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 pre.id == request.IdPresupuesto 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 }); } //Copiamos 01 Presupuesto Anio, Copiamos 02 Presupuesto coberturas, Copiamos 03 Presupuesto Programas var resultado = PresupuestoAnioOperations.Copiar(factory, connection, request.IdPresupuesto); if (resultado == 0) { return(new JsonResult(new { message = "Versionamiento No exitoso" }) { StatusCode = StatusCodes.Status400BadRequest }); } else { return(new JsonResult(new { message = "Versionamiento exitoso" }) { StatusCode = StatusCodes.Status200OK }); } } }
public static dynamic ConsultarPresupuestoAnio(IContextFactory factory, IOptions <ConnectionDB> connection, long id) { PresupuestoByProgramResponse retorno = new PresupuestoByProgramResponse(); using (Aldeas_Context db = factory.Create(connection)) { var data = from pre in db.TbPresupuestos join pro in db.TbProgramas on pre.idPrograma equals pro.id join finan in db.TbFinanciadores on pre.idFinanciador equals finan.id where pre.idPresupuestoAnio == id select new ResponsePresupuesto { idPrograma = pre.idPrograma, Anio = pre.Anio, CoberturaAnual = pre.CoberturaAnual, CoberturaMensual = pre.CoberturaMensual, CoberturasCasas = pre.CoberturasCasas, CoberturaMensualEsperada = pre.CoberturaMensualEsperada, id = pre.id, Financiador = finan.nombre, NombrePrograma = pro.Nombre }; if (data.Any()) { retorno.presupuesto = data.ToList(); } else { retorno.presupuesto = new List <ResponsePresupuesto>(); } var programa = from pro in db.TbProgramas join pre in db.TbPresupuestoAnio on pro.id equals pre.idPrograma join Tprograma in db.TbTipoPrograma on pro.id_tipo_programa equals Tprograma.id where pre.id == id select new Program { Cobertura = Tprograma.cobertura, Id = pro.id, Estado = pro.Estado, Nombre = pro.Nombre, TipoProgramaNombre = Tprograma.nombre, IdTipoPrograma = pro.id_tipo_programa, PerCapacitacion = pro.per_capacitacion, PerNomina = pro.per_nomina }; if (programa.Any()) { retorno.programa = programa.First(); } } return(retorno); }
public static dynamic ConsultarPresupuestosByProgram(IContextFactory factory, IOptions <ConnectionDB> connection, PresupuestoProgramRequest request) { PresupuestoByProgramResponse retorno = new PresupuestoByProgramResponse(); using (Aldeas_Context db = factory.Create(connection)) { var data = from pre in db.TbPresupuestos join ceco in db.TbProgramasCecos on pre.idPrograma equals ceco.idPrograma join panio in db.TbPresupuestoAnio on pre.idPresupuestoAnio equals panio.id join finan in db.TbFinanciadores on ceco.idFinanciador equals finan.id where pre.idPrograma == request.IdPresupuesto && panio.actual == true select new ResponsePresupuesto { idPrograma = pre.idPrograma, Anio = pre.Anio, CoberturaAnual = pre.CoberturaAnual, CoberturaMensual = pre.CoberturaMensual, CoberturasCasas = pre.CoberturasCasas, CoberturaMensualEsperada = pre.CoberturaMensualEsperada, id = pre.id, Financiador = finan.nombre }; if (data.Any()) { retorno.presupuesto = data.ToList(); } var programa = from pro in db.TbProgramas join Tprograma in db.TbTipoPrograma on pro.id_tipo_programa equals Tprograma.id where pro.id == request.IdPresupuesto select new Program { Cobertura = Tprograma.cobertura }; if (programa.Any()) { retorno.programa = programa.First(); } } return(retorno); }
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); }