示例#1
0
        public bool  Ejecutar(GastoModel param)
        {
            using (AplicacionesEntities db = new AplicacionesEntities())
            {
                var e = CrearEtiquetas(param.Etiquetas, db);


                if (param.Fecha == null)
                {
                    param.Fecha = DateTime.UtcNow;
                }


                var aux = new Data.Gastos
                {
                    Descorta   = param.Descorta,
                    Fecha      = param.Fecha.Value,
                    Importe    = float.Parse(param.Importe.Replace('.', ',')),
                    IdEtiqueta = e.IdEtiqueta
                };

                db.Gastos.Add(aux);
                db.SaveChanges();
                return(true);
            }
        }
        /*
        public static List<Resumen> getResumen(edificio edificio, DateTime periodo)
        {
            try
            {
                admEntities db = Datos.getDB();
                return db.Database.SqlQuery<Resumen>
                   (
                        @"select  gg.nombre 'Grupo', tg.descripcion 'Descripcion', sum(importe) 'Importe'  from factura f
                    join tipo_gasto tg
                    on f.id_tipogasto = tg.idtipo_gasto
                    join grupo_gastos gg
                    on tg.grupo_gastos = gg.idgrupo_gastos
                    where year(f.fecha) = " + periodo.Year + @" and f.dir_edificio = '" + edificio.direccion + @"'
                    group by gg.nombre, f.id_tipogasto"
                    )
                    .ToList();
            }
            catch (Exception e)
            {
                Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
                throw e;
            }
        }
        */
        public static List<Grupo> getResumen(edificio edificio, DateTime fechaDesde, DateTime fechaHasta)
        {
            try
            {
                admEntities db = Datos.getDB();
                string query = @"select  gg.nombre Grupo, tg.descripcion Descripcion, sum(f.importe) Importe from factura f
                        join tipo_gasto tg
                        on f.id_tipogasto = tg.idtipo_gasto
                        join grupo_gastos gg
                        on tg.grupo_gastos = gg.idgrupo_gastos
                        where
                        f.fecha BETWEEN '" + getFechaForGetResumen(fechaDesde, false) + @"' AND '" + getFechaForGetResumen(fechaHasta, true) + @"'
                        and f.dir_edificio = '" + edificio.direccion + @"'
                        group by tg.idtipo_gasto";

                var resumen = db.Database.SqlQuery<Resumen>(query).OrderBy(x => x.Grupo).ToList();
                List<Grupo> grupos = new List<Grupo>();
                Grupo grupo = new Grupo();
                foreach (var r in resumen)
                {
                    Gastos gasto = new Gastos();
                    gasto.Descripcion = r.Descripcion;
                    gasto.Importe = r.Importe;

                    var g = grupos.Where(x => x.Nombre == r.Grupo).SingleOrDefault();
                    if (g == null)
                    {
                        grupo = new Grupo();
                        grupo.Nombre = r.Grupo;
                        grupo.Gastos = new List<Gastos>();
                        grupo.Gastos.Add(gasto);
                        grupos.Add(grupo);
                    }
                    else
                        grupos.Where(x => x.Nombre == r.Grupo).SingleOrDefault().Gastos.Add(gasto);
                }

                return grupos;
            }
            catch (Exception e)
            {
                Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
                throw e;
            }
        }