Exemple #1
0
 public dynamic ActualizarPresupuesto(DbPresupuesto request)
 {
     return(_dataModelRepository.ActualizarPresupuesto(request));
 }
        public static long Copiar(IContextFactory factory, IOptions <ConnectionDB> connection, long IdPresupuestoAnio)
        {
            long id = 0;

            using (Aldeas_Context db = factory.Create(connection))
            {
                var data = from pro in db.TbPresupuestoAnio
                           where pro.id == IdPresupuestoAnio && pro.actual == true
                           select pro;



                if (data.Any())
                {
                    #region Copiamos 01 Presupuesto Anio
                    int numVersion = 0;
                    numVersion = data.First().numeroVersion + 1;

                    var conteo = from pro in db.TbPresupuestoAnio
                                 where pro.idPrograma == data.First().idPrograma &&
                                 pro.Anio == data.First().Anio
                                 select pro;

                    numVersion = conteo.Count() + 1;
                    var nuevo = new DbPresupuestoAnio()
                    {
                        actual              = true,
                        fecha_creacion      = DateTime.Now,
                        fecha_actualizacion = DateTime.Now,
                        per_capacitacion    = data.First().per_capacitacion,
                        per_nomina          = data.First().per_capacitacion,
                        idPrograma          = data.First().idPrograma,
                        numeroVersion       = numVersion,
                        Anio = data.First().Anio,
                    };
                    db.TbPresupuestoAnio.Add(nuevo);

                    db.SaveChanges();
                    data.First().actual = false;
                    data.First().fecha_actualizacion = DateTime.Now;

                    db.SaveChanges();

                    id = nuevo.id;

                    #endregion

                    #region  Copiamos  02 Presupuesto coberturas
                    var dataCoberturas = from pro in db.TbPresupuestos
                                         where pro.idPresupuestoAnio == IdPresupuestoAnio
                                         select pro;



                    List <DbPresupuestoPrograma> presupuestoProgramasCopia = new List <DbPresupuestoPrograma>();
                    if (dataCoberturas.Any())
                    {
                        foreach (var copia in dataCoberturas.ToList())
                        {
                            long idCoberturaCopia = 0;
                            var  coberturaCopia   = new DbPresupuesto
                            {
                                Anio = copia.Anio,
                                idPresupuestoAnio        = id,
                                idPrograma               = copia.idPrograma,
                                idFinanciador            = copia.idFinanciador,
                                IdProgramaCecos          = copia.IdProgramaCecos,
                                NombreContrato           = copia.NombreContrato,
                                CoberturaAnual           = copia.CoberturaAnual,
                                CoberturaMensual         = copia.CoberturaMensual,
                                CoberturaMensualEsperada = copia.CoberturaMensualEsperada,
                                CoberturasCasas          = copia.CoberturasCasas,
                                fecha_actualizacion      = DateTime.Now,
                                fecha_creacion           = DateTime.Now
                            };

                            db.TbPresupuestos.Add(coberturaCopia);
                            db.SaveChanges();
                            idCoberturaCopia = coberturaCopia.id;


                            var dataItemsCobertura = from pro in db.TbPresupuestosProgramas
                                                     where pro.idPresupuesto == copia.id
                                                     select pro;

                            if (dataItemsCobertura.Any())
                            {
                                foreach (var copiaItem in dataItemsCobertura.ToList())
                                {
                                    var nuevoCopiaItem = new DbPresupuestoPrograma
                                    {
                                        idPresupuesto        = idCoberturaCopia,
                                        idProgramaCecos      = copiaItem.idProgramaCecos,
                                        idRubroPucs          = copiaItem.idRubroPucs,
                                        esNomina             = copiaItem.esNomina,
                                        esPPTO               = copiaItem.esPPTO,
                                        NumeroIdentificacion = copiaItem.NumeroIdentificacion,
                                        Nombre               = copiaItem.Nombre,
                                        Cargo               = copiaItem.Cargo,
                                        Asignacion          = copiaItem.Asignacion,
                                        NoCasa              = copiaItem.NoCasa,
                                        NoKids              = copiaItem.NoKids,
                                        NotaIngles          = copiaItem.NotaIngles,
                                        DetalleGasto        = copiaItem.DetalleGasto,
                                        Enero               = copiaItem.Enero,
                                        Febrero             = copiaItem.Febrero,
                                        Marzo               = copiaItem.Marzo,
                                        Abril               = copiaItem.Abril,
                                        Mayo                = copiaItem.Mayo,
                                        Junio               = copiaItem.Junio,
                                        Julio               = copiaItem.Julio,
                                        Agosto              = copiaItem.Agosto,
                                        Septiembre          = copiaItem.Septiembre,
                                        Octubre             = copiaItem.Octubre,
                                        Noviembre           = copiaItem.Noviembre,
                                        Diciembre           = copiaItem.Diciembre,
                                        Total               = copiaItem.Total,
                                        TotalAnual          = copiaItem.TotalAnual,
                                        fecha_actualizacion = DateTime.Now,
                                        fecha_creacion      = DateTime.Now
                                    };
                                    presupuestoProgramasCopia.Add(nuevoCopiaItem);
                                }

                                if (presupuestoProgramasCopia.Count > 0)
                                {
                                    db.TbPresupuestosProgramas.AddRange(presupuestoProgramasCopia);
                                    db.SaveChanges();
                                    presupuestoProgramasCopia = new List <DbPresupuestoPrograma>();
                                }
                            }
                        }
                    }
                    #endregion
                }
                else
                {
                    return(0);
                }
            }


            return(id);
        }
Exemple #3
0
 public dynamic GuardarPresupuesto(DbPresupuesto request)
 {
     return(_dataModelRepository.GuardarPresupuesto(request));
 }
 public dynamic ActualizarPresupuesto(DbPresupuesto request)
 {
     return(PresupuestoOperations.ActualizarPresupuesto(_factory, _connectionDB, request));
 }
 public dynamic GuardarPresupuesto(DbPresupuesto request)
 {
     return(PresupuestoOperations.GuardarPresupuesto(_factory, _connectionDB, request));
 }
Exemple #6
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);
        }
Exemple #7
0
        public static dynamic ActualizarPresupuesto(IContextFactory factory, IOptions <ConnectionDB> connection, DbPresupuesto datos)
        {
            using (Aldeas_Context db = factory.Create(connection))
            {
                var data = from pro in db.TbPresupuestos
                           where pro.idPrograma == datos.idPrograma && pro.Anio == datos.Anio

                           select pro;
                if (data.Any())
                {
                    data.First().CoberturaAnual           = datos.CoberturaAnual;
                    data.First().CoberturaMensualEsperada = datos.CoberturaMensualEsperada;
                    data.First().CoberturaMensual         = datos.CoberturaMensual;
                    data.First().CoberturasCasas          = datos.CoberturasCasas;
                    db.SaveChanges();
                }
            }

            return(new { id = 0, status = "OK", code = 200 });
        }
Exemple #8
0
        public static dynamic GuardarPresupuesto(IContextFactory factory, IOptions <ConnectionDB> connection, DbPresupuesto datos)
        {
            using (Aldeas_Context db = factory.Create(connection))
            {
                int conteo = 0;
                /// Se valida que la combinacion anio programa y ceco no exista dos veces.
                var data = from pro in db.TbPresupuestos
                           join panio in db.TbPresupuestoAnio on pro.idPresupuestoAnio equals panio.id
                           where pro.idPrograma == datos.idPrograma &&
                           pro.IdProgramaCecos == datos.IdProgramaCecos &&
                           panio.id == datos.idPresupuestoAnio

                           select pro;

                conteo = data.ToList().Count;

                var anio = from panio in db.TbPresupuestoAnio
                           where  panio.id == datos.idPresupuestoAnio
                           select panio;
                if (anio.Any())
                {
                    datos.Anio = anio.First().Anio;
                }

                var dataCeco = from ceco in db.TbProgramasCecos
                               where ceco.id == datos.IdProgramaCecos
                               select ceco;
                if (dataCeco.Any())
                {
                    conteo++;
                    datos.NombreContrato = "Contrato - " + dataCeco.First().CodigoCeco + "/" + dataCeco.First().SubCentro + " - " + dataCeco.First().NombreSubCentro + " # " + conteo;
                    datos.idFinanciador  = dataCeco.First().idFinanciador;
                }

                datos.fecha_actualizacion = DateTime.Now;
                datos.fecha_creacion      = DateTime.Now;

                db.TbPresupuestos.Add(datos);
                db.SaveChanges();
            }

            return(new { id = 0, status = "OK", code = 200 });
        }