Пример #1
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }