コード例 #1
0
        public JsonResult GetGastoMensualData()
        {
            var    context = new ExpensesEF.Entities();
            string _User   = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
            string _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);

            var datos = context.Gasto.Where(x => x.idUserGasto == _User && (x.Fecha.Year == DateTime.Now.Year && x.Fecha.Month == DateTime.Now.Month)).GroupBy(y => y.idTipoGasto).Select(group => new
            {
                idTipoGasto = group.Key,
                Precio      = group.Sum(x => x.Precio)
            })
                        .ToList();



            List <object> chartData = new List <object>();

            chartData.Add(new object[]
            {
                "TipoGasto", "Gasto"
            });

            foreach (var Elem in datos)
            {
                chartData.Add(new object[]
                {
                    context.TipoGastoTextosTraduccion.Where(x => x.idTipoGasto == Elem.idTipoGasto && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).FirstOrDefault().Descripcion.ToString(), Elem.Precio
                });
            }


            return(Json(chartData));
        }
コード例 #2
0
        public ActionResult Copy(int id)
        {
            var _Gasto     = new ExpensesEF.Gasto();
            var _GastoCopy = new ExpensesEF.Gasto();

            using (var context = new ExpensesEF.Entities())
            {
                _Gasto = context.Gasto.Where(x => x.idGasto == id).FirstOrDefault();

                //_GastoCopy = _Gasto;
                _GastoCopy.Concepto        = _Gasto.Concepto;
                _GastoCopy.Fecha           = DateTime.Now;
                _GastoCopy.GastoComputable = _Gasto.GastoComputable;
                _GastoCopy.GastoRecurrente = _Gasto.GastoRecurrente;
                _GastoCopy.idGrupoGasto    = _Gasto.idGrupoGasto;
                _GastoCopy.idTipoGasto     = _Gasto.idTipoGasto;
                _GastoCopy.idTipoPago      = _Gasto.idTipoPago;
                _GastoCopy.idTipoMoneda    = _GastoCopy.idTipoMoneda;
                _GastoCopy.idUserGasto     = _Gasto.idUserGasto;
                _GastoCopy.Precio          = _Gasto.Precio;
                _GastoCopy.GastoEditable   = true;
                _GastoCopy.Resaltar        = _Gasto.Resaltar;
                _GastoCopy.idSubTipoGasto  = _Gasto.idSubTipoGasto;
                _GastoCopy.EsCompartido    = false;
                _GastoCopy.EsRegalo        = false;
                _GastoCopy.Valoracion      = _Gasto.Valoracion;

                //No copiem si és un regalo o no

                context.Entry(_GastoCopy).State = System.Data.Entity.EntityState.Added;
                context.SaveChanges();
            }

            return(RedirectToAction("IndexA", "Home"));
        }
コード例 #3
0
        public JsonResult GetGastoAcumuladoData()
        {
            var    context = new ExpensesEF.Entities();
            string _User   = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            var datos = context.SummaryGastoAcumuladoPorDia.Where(x => x.idUser == _User && (x.Fecha.Year == DateTime.Now.Year)).ToList();

            List <object> chartData = new List <object>();

            chartData.Add(new object[]
            {
                "Dia", expenses.Resources.Descripciones.RptGastoAcumuladoLabel2
            });

            foreach (var Elem in datos)
            {
                chartData.Add(new object[]
                {
                    Elem.DayInYear, Elem.GastoAcumuladoAnual
                });
            }


            return(Json(chartData));
        }
コード例 #4
0
        // Exportem gastos de l'any en curs
        public ActionResult ExportDatos()
        {
            using (var context = new ExpensesEF.Entities())
            {
                List <vst_Export_Gastos> _Gastos;
                string _User = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                //_Gastos = context.vst_Export_Gastos.Where(x=>x.idUserGasto == _User && x.Fecha.Substring(6,4)==DateTime.Now.Year.ToString()).OrderBy(x=>x.Fecha).ToList();
                _Gastos = context.vst_Export_Gastos.Where(x => x.idUserGasto == _User && x.Fecha.Year >= 2019).OrderBy(x => x.Fecha).ToList();

                var gv = new GridView();
                gv.DataSource = _Gastos;
                gv.DataBind();
                Response.ClearContent();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment; filename=Datos.xls");
                Response.ContentType = "application/ms-excel";
                Response.Charset     = "";

                StringWriter   objStringWriter   = new StringWriter();
                HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);
                gv.RenderControl(objHtmlTextWriter);
                Response.Output.Write(objStringWriter.ToString());
                Response.Flush();
                Response.End();
                return(View("Index"));
            }
        }
コード例 #5
0
        //Fixem l'idioma de l'email
        private void SetCultura(int _idId)
        {
            var context = new ExpensesEF.Entities();

            Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo(context.Idiomas.Where(x => x.idIdioma == _idId).FirstOrDefault().culture);
            _idIdioma = _idId;
        }
コード例 #6
0
        public JsonResult GetTopTenData(int id)
        {
            var    context = new ExpensesEF.Entities();
            string _User   = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            //var datos = context.Gasto.Where(x => x.idUserGasto == _User && x.idSubTipoGasto==24).OrderBy(x => x.concepto).ThenByDescending(x => x.Concepto).GroupBy(y=>y.Concepto).ToList();
            var datos = context.Gasto.Where(x => x.idUserGasto == _User && x.idSubTipoGasto == id).GroupBy(y => y.Concepto).OrderByDescending(y => y.Count()).ToList().Take(10);

            List <object> chartData = new List <object>();

            chartData.Add(new object[]
            {
                "Concepto", "Veces", "Dinero gastado(€)"
            });


            foreach (var Elem in datos)
            {
                chartData.Add(new object[]
                {
                    Elem.Key, Elem.Count(), context.Gasto.Where(x => x.idUserGasto == _User && x.idSubTipoGasto == id && x.Concepto == Elem.Key).Sum(x => x.Precio)
                });
            }
            return(Json(chartData));
        }
コード例 #7
0
        public JsonResult GetAhorroGastoData()
        {
            var context = new ExpensesEF.Entities();
            IEnumerable <SummaryTotal_Mensual> lista;
            string _User = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            DateTime      dtInicio  = DateTime.Now.AddMonths(-12);
            DateTime      dtFin     = DateTime.Now;
            string        _codigo   = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);
            List <object> chartData = new List <object>();

            chartData.Add(new object[]
            {
                expenses.Resources.Descripciones.RptGastoMensualGraph1, expenses.Resources.Descripciones.RptGastoMensualGraph2, expenses.Resources.Descripciones.RptGastoMensualGraph3
            });

            lista = context.SummaryTotal_Mensual.Where(x => x.idUser == _User && ((x.Año == dtInicio.Year && x.Mes >= dtInicio.Month) || (x.Año == dtFin.Year))).OrderBy(y => y.Año);


            foreach (var Elem in lista)
            {
                chartData.Add(new object[]
                {
                    expenses.Utils.GetMesLetras(Elem.Mes) + "/" + Elem.Año.ToString().Substring(2, 2), Elem.GastoTotal, Elem.AhorroFinDeMes
                });
            }
            return(Json(chartData));
        }
コード例 #8
0
        private DateTime _getSiguienteEjecucion(int idTipoPeriodicidad)
        {
            var context = new ExpensesEF.Entities();
            int _mesesASumar;

            _mesesASumar = (context.Periocidad.Where(x => x.idPeriocidad == idTipoPeriodicidad).FirstOrDefault().MesesASumar).GetValueOrDefault();
            return(DateTime.Now.AddMonths(_mesesASumar));
        }
コード例 #9
0
        //Acumulat gasto anual per persona
        //Cada dia a 23:59
        public ActionResult AcumulatedGastos()
        {
            var context = new ExpensesEF.Entities();
            int year;

            year = DateTime.Now.Year;
            context.spGastosDiarioAcumulados(year);
            return(null);
        }
コード例 #10
0
        private ActionResult UpdateGasto(GastosViewModels model, int id)
        {
            decimal ValorOriginal = 0;
            var     _Gasto        = new Gasto();
            string  _codigo;
            var     context = new ExpensesEF.Entities();

            _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);

            if (!ModelState.IsValid)
            {
                model._TipoPagoList    = context.TipoPagoTextosTraduccion.Where(x => (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList();
                model._TipoGastosTrad  = GetListTipoGastos(context.TipoGastoTextosTraduccion.Where(x => (x.TipoGasto.Activo == true) && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList().OrderBy(x => x.Descripcion));
                model._GrupoGastosTrad = GetListItemsGrupoGastos(context.GrupoGastoTextosTraduccion.Where(x => (x.GrupoGasto.Activo == true) && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList().OrderBy(x => x.Descripcion));
                model._FormatoFecha    = GetFormatoFecha();
                return(View(model));
            }

            _Gasto             = context.Gasto.Where(x => x.idGasto == id).FirstOrDefault();
            ValorOriginal      = _Gasto.Precio;
            _Gasto.idGasto     = id;
            _Gasto.Concepto    = model.Concepto;
            _Gasto.Fecha       = model.Fecha;
            _Gasto.Precio      = model.Importe;
            _Gasto.Valoracion  = model.Valoracion;
            _Gasto.idUserGasto = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
            //_Gasto.idTipoGasto = model._idSelectedGasto;
            _Gasto.idTipoPago = model._idSelectedTipoPagoGasto;

            _Gasto.EsRegalo = model.EsRegalo;

            /*
             * if (model._idSelectedGrupoGasto > -1)
             * { _Gasto.idGrupoGasto = model._idSelectedGrupoGasto; }
             * else
             * { _Gasto.idGrupoGasto = null; }
             */

            context.Entry(_Gasto).State = System.Data.Entity.EntityState.Modified;
            context.SaveChanges();

            //Updatamos el total acumulado.
            if (ValorOriginal > model.Importe)
            {
                context.spAddSubPrecioGastosAcumulados(_Gasto.idGasto, 2, ValorOriginal - model.Importe);
            }
            else
            {
                context.spAddSubPrecioGastosAcumulados(_Gasto.idGasto, 3, model.Importe - ValorOriginal);
            }


            return(RedirectToAction("IndexA", "Home"));
        }
コード例 #11
0
        //Gastos programats
        //Execució diària
        public ActionResult SchedulesGastos()
        {
            var context = new ExpensesEF.Entities();

            List <GastoRecurrente> _GastoRecurrentes;

            _GastoRecurrentes = context.GastoRecurrente.Where(x => x.Activo != 0).ToList();
            var dbContextTransaction = context.Database.BeginTransaction();

            try
            {
                //Per a cada gasto "Recurrent"
                foreach (GastoRecurrente _GastoRecurrente in _GastoRecurrentes)
                {
                    //Comparem sempre la data de la propera execució. Si és la data actual, creem el nou gasto.
                    if (_GastoRecurrente.SiguienteEjecucion.Year == DateTime.Now.Year && _GastoRecurrente.SiguienteEjecucion.Month == DateTime.Now.Month && _GastoRecurrente.SiguienteEjecucion.Day == DateTime.Now.Day && _GastoRecurrente.Activo == 1)
                    {
                        //Creem el gasto
                        Gasto _Gasto = new Gasto();
                        _Gasto.Concepto        = _GetConcepto(_GastoRecurrente);
                        _Gasto.idUserGasto     = _GastoRecurrente.idUserGastoRecurrente;
                        _Gasto.idTipoGasto     = _GastoRecurrente.idTipoGastoRecurrente;
                        _Gasto.Fecha           = DateTime.Now;
                        _Gasto.Precio          = _GastoRecurrente.Precio;
                        _Gasto.idTipoPago      = _GastoRecurrente.idTipoPago;
                        _Gasto.GastoComputable = (_GastoRecurrente.GastoComputable ? 1 : 0);
                        _Gasto.GastoRecurrente = true;
                        _Gasto.Resaltar        = true;
                        _Gasto.GastoEditable   = true;
                        _Gasto.EsCompartido    = false;
                        _Gasto.idSubTipoGasto  = _GastoRecurrente.idSubTipoGasto;
                        _Gasto.EsRegalo        = false;


                        //Update amb la data de nova execució
                        _GastoRecurrente.SiguienteEjecucion = _GastoRecurrente.SiguienteEjecucion.AddMonths(_GastoRecurrente.Periocidad1.MesesASumar.GetValueOrDefault());

                        //Enquem els canvis
                        context.Entry(_Gasto).State           = System.Data.Entity.EntityState.Added;
                        context.Entry(_GastoRecurrente).State = System.Data.Entity.EntityState.Modified;

                        //Fem els canvis a la BBDD
                        context.SaveChanges();
                    }
                }
                dbContextTransaction.Commit();
            }
            catch (Exception _Ex)
            {
                dbContextTransaction.Rollback();
            }
            return(null);
        }
コード例 #12
0
        public ActionResult RptTopTenSubtipo()
        {
            string _codigo;
            var    model = new RptTipoModel();

            _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);
            using (var context = new ExpensesEF.Entities())
            {
                model._TipoGastosTrad = GetListTipoGastos(context.TipoGastoTextosTraduccion.Where(x => (x.TipoGasto.Activo == true) && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList().OrderBy(x => x.Descripcion));
            }
            return(View(model));
        }
コード例 #13
0
        public JsonResult GetResumenTipoGasto(int IdGrupo)
        {
            var           context   = new ExpensesEF.Entities();
            string        _User     = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
            List <object> chartData = new List <object>();

            //var datos = context.SubTipoGasto.Where(x=> x.idTipoGasto == id).ToList();


            if (IdGrupo == 0)
            {
                chartData.Add(new object[]
                {
                    "Grupo Gasto", "Dinero gastado(€)"
                });

                var datos = context.Gasto.Where(x => (x.idUserGasto == _User) && (x.GrupoGasto.VisibleReports == true) && (x.GrupoGasto.idTipoGrupoGasto == 2)).GroupBy(y => y.idGrupoGasto).Select(a => new { idGrupoGasto = a.Key, Amount = a.Sum(b => b.Precio) });


                foreach (var Elem in datos)
                {
                    if (Elem.idGrupoGasto != null)
                    {
                        chartData.Add(new object[]
                        {
                            context.GrupoGastoTextosTraduccion.Where(x => (x.idGrupoGasto == Elem.idGrupoGasto) && (x.idIdioma == 1) && (x.GrupoGasto.VisibleReports == true) && (x.GrupoGasto.idTipoGrupoGasto == 2)).FirstOrDefault().Descripcion, Elem.Amount
                        });
                    }
                }
            }
            else
            {
                chartData.Add(new object[]
                {
                    "Tipo Gasto", "Dinero gastado(€)"
                });
                var datos = context.Gasto.Where(x => x.idUserGasto == _User && x.idGrupoGasto == IdGrupo).GroupBy(y => y.idTipoGasto).Select(a => new { idTipoGasto = a.Key, Amount = a.Sum(b => b.Precio) });


                foreach (var Elem in datos)
                {
                    chartData.Add(new object[]
                    {
                        context.TipoGastoTextosTraduccion.Where(x => x.idTipoGasto == Elem.idTipoGasto && x.idIdioma == 1).FirstOrDefault().Descripcion, Elem.Amount
                    });
                }
            }



            return(Json(chartData));
        }
コード例 #14
0
        private string _GastoMaximoDia(SummaryTotal_Mensual _SummaryMensual, string _Usuari)
        {
            int    i    = 0;
            string _Res = "";
            Gasto  _Gasto;
            string idGasto;

            string[] _infoDiaConMasGasto;
            string[] _idsGastos;


            var context = new ExpensesEF.Entities();

            //Info del día on més s'ha gastat
            System.Data.Entity.Core.Objects.ObjectParameter myInfoExpensesDay = new System.Data.Entity.Core.Objects.ObjectParameter("Res", typeof(string));
            context.spGetInfoDiaMaxGastoMes(_SummaryMensual.Año, _SummaryMensual.Mes, _Usuari, myInfoExpensesDay);
            _infoDiaConMasGasto = myInfoExpensesDay.Value.ToString().Split('|');

            //Si el dia és >0 hi ha hagut un dia amb gasto màxim
            if (int.Parse(_infoDiaConMasGasto[0]) > 0)
            {
                _Res += string.Format(Resources.Descripciones.mailDiaMasGasto, _infoDiaConMasGasto[0], _infoDiaConMasGasto[1]);

                _idsGastos = _infoDiaConMasGasto[2].Split(',');
                while (i < _idsGastos.Length)
                {
                    idGasto = _idsGastos[i];
                    _Gasto  = context.Gasto.Where(x => x.idGasto.ToString() == idGasto).FirstOrDefault();
                    i       = i + 1;

                    if (i == _idsGastos.Length)
                    {
                        if (i == 1)
                        {
                            _Res += "\"" + _Gasto.Concepto + "\"";
                        }
                        else
                        {
                            _Res  = _Res.Substring(0, _Res.Length - 2);
                            _Res += Resources.Descripciones.y + "\"" + _Gasto.Concepto + "\"";
                        }
                    }
                    else
                    {
                        _Res += "\"" + _Gasto.Concepto + "\"" + ", ";
                    }
                }
                _Res += ").";
            }

            return(_Res);
        }
コード例 #15
0
        public ActionResult GastosRecurrentes()
        {
            //return PartialView("GastosRecurrentes");
            GastosRecurrenteViewModels model = new GastosRecurrenteViewModels();
            var    context = new ExpensesEF.Entities();
            string user;

            user = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            model.ImportePeriodicoMensual = context.GastoRecurrente.Where(x => x.idUserGastoRecurrente == user && x.Periocidad == 1).Sum(x => x.Precio);

            return(View("GastosRecurrentes", model));
        }
コード例 #16
0
        public ActionResult getSubTiposTipoFirst()
        {
            var    context = new ExpensesEF.Entities();
            int    id;
            string _codigo;

            _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);

            //Obtenim l'id del primer subtipus ordenat alfabèticament (és a dir, el mateix que es veurà a la CBO)
            id = context.TipoGastoTextosTraduccion.Where(x => x.TipoGasto.Activo == true && x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma).OrderBy(x => x.Descripcion).FirstOrDefault().idTipoGasto;

            return(GetSubTiposTipo(id));
        }
コード例 #17
0
        public ActionResult DelRecurrente()
        {
            int _idGastoRecurrente = int.Parse(Request.Form["hidden-idd"]);
            var _GastoRecurrente   = new GastoRecurrente();

            using (var context = new ExpensesEF.Entities())
            {
                _GastoRecurrente = context.GastoRecurrente.Find(_idGastoRecurrente);
                context.Entry(_GastoRecurrente).State = System.Data.Entity.EntityState.Deleted;
                context.SaveChanges();
            }

            return(RedirectToAction("GastosRecurrentes", "Gastos"));
        }
コード例 #18
0
        public ActionResult getTiposGasto()
        {
            var context = new ExpensesEF.Entities();
            IEnumerable <SelectListItem> lista;
            string _codigo;

            _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);

            lista = GetListTipoGastos(context.TipoGastoTextosTraduccion.Where(x => x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma).OrderBy(x => x.Descripcion));

            return(Json(lista.Select(x => new
            {
                idTipoGesto = x.Value,
                NombreTipoGasto = x.Text
            }).ToList(), JsonRequestBehavior.AllowGet));
        }
コード例 #19
0
        private System.Net.Mail.MailMessage _GenerarEmail(ValuesEnvioEmail _Email)
        {
            var context = new ExpensesEF.Entities();

            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            msg.To.Add(context.AspNetUsers.Where(x => x.Id == _Email.idUser).FirstOrDefault().Email.ToString());
            //msg.To.Add("*****@*****.**");
            msg.From            = new MailAddress("*****@*****.**", "expenses", System.Text.Encoding.UTF8);
            msg.Subject         = Resources.Descripciones.mailSubject;
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            msg.Body            = _CuerpoMensaje(_Email);
            msg.BodyEncoding    = System.Text.Encoding.UTF8;
            msg.IsBodyHtml      = true;

            return(msg);
        }
コード例 #20
0
        //lògica de l'estalvi a fi de mes
        private string _AhorroDelMes(SummaryTotal_Mensual _GastoMesAnterior, SummaryTotal_Mensual _Gasto2MesosEnrera, string _Usuari)
        {
            string  _Res = "";
            decimal _AhorroMes;
            var     context = new ExpensesEF.Entities();

            try
            {
                _AhorroMes = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).FirstOrDefault().AhorroFinDeMes.GetValueOrDefault();


                if (_AhorroMes > 0)
                {
                    _Res = string.Format(Resources.Descripciones.mailAhorroMesMayor, _AhorroMes);

                    if (_Gasto2MesosEnrera.AhorroFinDeMes > 0)
                    {
                        _Res += string.Format(Resources.Descripciones.mailAhorroMesMayorY2MesesMayor, _GetMesLetras(_Gasto2MesosEnrera.Mes), _Gasto2MesosEnrera.AhorroFinDeMes);
                    }
                    else
                    {
                        _Res += string.Format(Resources.Descripciones.mailAhorroMesMayorY2MesesMenorOIgual, _GetMesLetras(_Gasto2MesosEnrera.Mes), Math.Abs(_Gasto2MesosEnrera.AhorroFinDeMes.GetValueOrDefault()));
                    }
                }
                if (_AhorroMes == 0)
                {
                    _Res = string.Format(Resources.Descripciones.mailAhorroMesIgual);
                }
                if (_AhorroMes < 0)
                {
                    _Res = string.Format(Resources.Descripciones.mailAhorroMesMenor, Math.Abs(_AhorroMes));

                    if (_Gasto2MesosEnrera.AhorroFinDeMes > 0)
                    {
                        _Res += string.Format(Resources.Descripciones.mailAhorroMesMenorY2MesesMayor);
                    }
                    else
                    {
                        _Res += string.Format(Resources.Descripciones.mailAhorroMesMenorY2MesesMenorOIgual);
                    }
                }
            }
            catch (Exception _ex)
            {
            }
            return(_Res);
        }
コード例 #21
0
        public ActionResult RptGastoMensual()
        {
            var context = new ExpensesEF.Entities();

            experses.Models.ChartGastoMensual model = new experses.Models.ChartGastoMensual();

            DateTime dtAnterior = new DateTime();

            dtAnterior = DateTime.Now.AddMonths(-1);

            string _User = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            model.GastoMesActual   = context.Gasto.Where(x => x.idUserGasto == _User && x.Fecha.Year == DateTime.Now.Year && x.Fecha.Month == DateTime.Now.Month).Sum(x => x.Precio);
            model.GastoMesAnterior = context.Gasto.Where(x => x.idUserGasto == _User && x.Fecha.Year == dtAnterior.Year && x.Fecha.Month == dtAnterior.Month).Sum(x => x.Precio);

            return(View(model));
        }
コード例 #22
0
        public JsonResult GetGastoMensualDataComparado()
        {
            var    context = new ExpensesEF.Entities();
            string _User   = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            List <object> chartActual = new List <object>();
            List <object> chartPrev   = new List <object>();

            DateTime dt = new DateTime();

            dt = DateTime.Now.AddMonths(-1);

            chartActual = GeneraDatesDataComparadoReport(_User, DateTime.Now.Year, DateTime.Now.Month);
            chartPrev   = GeneraDatesDataComparadoReport(_User, dt.Year, dt.Month);

            return(Json(new { DatosActual = chartActual, DatosMesAnterior = chartPrev }));
        }
コード例 #23
0
        public ActionResult GetDefaultValueSubTipo(int id)
        {
            string _res;
            string _User;
            string _codigo;
            var    context = new ExpensesEF.Entities();

            try
            {
                _User   = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);
                _res    = context.ValuesDefaultConcepto.Where(x => x.idUser == _User && x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma&& x.idSubTipoGasto == id).FirstOrDefault().DefaultConcepto.ToString();
            }
            catch (Exception _ex)
            { _res = ""; }

            return(Json(_res));
        }
コード例 #24
0
        public ActionResult Add()
        {
            var    model = new GastosViewModels();
            string _codigo;
            string userId;

            _codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);

            using (var context = new ExpensesEF.Entities())
            {
                model._TipoGastosTrad     = GetListTipoGastos(context.TipoGastoTextosTraduccion.Where(x => (x.TipoGasto.Activo == true) && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList().OrderBy(x => x.Descripcion));
                model._GrupoGastosTrad    = GetListItemsGrupoGastos(context.GrupoGastoTextosTraduccion.Where(x => (x.GrupoGasto.Activo == true) && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList().OrderBy(x => x.Descripcion));
                model._PersonasACompartir = GetListItemsPersonas(context.AspNetUsers.Where(y => y.Email != System.Web.HttpContext.Current.User.Identity.Name).OrderBy(y => y.Email));

                userId = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                model._idSelectedGrupoGasto   = context.AspNetUsers.Where(u => u.Id == userId).FirstOrDefault().idGrupoGastoPorDefecto.GetValueOrDefault();
                model._idDefaultTipoPagoGasto = context.AspNetUsers.Where(u => u.Id == userId).FirstOrDefault().idTipoPagoPorDefecto.GetValueOrDefault();



                if (model._idSelectedGrupoGasto == 0)
                {
                    model._idSelectedGrupoGasto = -1;
                }

                //Si no té tipus de pagament per defecte, li posem un "1" (efectiu)
                if (model._idDefaultTipoPagoGasto == 0)
                {
                    model._idSelectedTipoPagoGasto = 1;
                }
                else
                {
                    model._idSelectedTipoPagoGasto = model._idDefaultTipoPagoGasto;
                }


                model._TipoPagoList = context.TipoPagoTextosTraduccion.Where(x => (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).OrderBy(x => x.Descripcion).ToList();

                model.Fecha         = DateTime.Now;
                model._FormatoFecha = GetFormatoFecha();
            }

            return(View(model));
        }
コード例 #25
0
        public ActionResult UpdateSueldo()
        {
            //var model = new expenses.Models.SueldosViewModel();
            var context = new ExpensesEF.Entities();

            string _IdUser;

            _IdUser = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();

            Sueldo sueldo = context.Sueldo.Where(x => x.idUserGasto == _IdUser).FirstOrDefault();

            if (sueldo is null)
            {
                //Insert
                sueldo                      = new Sueldo();
                sueldo.idUserGasto          = _IdUser;
                context.Entry(sueldo).State = System.Data.Entity.EntityState.Added;
            }
            else
            {
                //update
                context.Entry(sueldo).State = System.Data.Entity.EntityState.Modified;
            }

            sueldo.SueldoBrutoAnual     = Utils.parseDecimal(Request.Form["txtBruto"].ToString());
            sueldo.SueldoNetoEnero      = Utils.parseDecimal(Request.Form["txtEnero"].ToString());
            sueldo.SueldoNetoFebrero    = Utils.parseDecimal(Request.Form["txtFebrero"].ToString());
            sueldo.SueldoNetoMarzo      = Utils.parseDecimal(Request.Form["txtMarzo"].ToString());
            sueldo.SueldoNetoAbril      = Utils.parseDecimal(Request.Form["txtAbril"].ToString());
            sueldo.SueldoNetoMayo       = Utils.parseDecimal(Request.Form["txtMayo"].ToString());
            sueldo.SueldoNetoJunio      = Utils.parseDecimal(Request.Form["txtJunio"].ToString());
            sueldo.SueldoNetoJulio      = Utils.parseDecimal(Request.Form["txtJulio"].ToString());
            sueldo.SueldoNetoAgosto     = Utils.parseDecimal(Request.Form["txtAgosto"].ToString());
            sueldo.SueldoNetoSeptiembre = Utils.parseDecimal(Request.Form["txtSeptiembre"].ToString());
            sueldo.SueldoNetoOctubre    = Utils.parseDecimal(Request.Form["txtOctubre"].ToString());
            sueldo.SueldoNetoNoviembre  = Utils.parseDecimal(Request.Form["txtNoviembre"].ToString());
            sueldo.SueldoNetoDiciembre  = Utils.parseDecimal(Request.Form["txtDiciembre"].ToString());


            context.SaveChanges();

            return(RedirectToAction("Index", "Manage"));
        }
コード例 #26
0
        private ActionResult UpdateUser(IndexViewModel model)
        {
            var    _User = new ExpensesEF.AspNetUsers();
            string _codigo;
            var    context = new ExpensesEF.Entities();

            _codigo = User.Identity.GetUserId().ToString();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Llegim i modifiquem amb el valor del model
            _User = context.AspNetUsers.Where(u => u.Id == _codigo).FirstOrDefault();
            _User.VerTpcGastovsMesAnterior    = model.VerTpcGastovsMesAnterior;
            _User.VerGastosSinOConRecurrentes = model.VerGastosTodosOSinRecurrentes;

            if (model._idSelectedGrupoGasto == -1)
            {
                _User.idGrupoGastoPorDefecto = null;
            }
            else
            {
                _User.idGrupoGastoPorDefecto = model._idSelectedGrupoGasto;
            }

            if (model._idSelectedTipoPago == -1)
            {
                _User.idTipoPagoPorDefecto = null;
            }
            else
            {
                _User.idTipoPagoPorDefecto = model._idSelectedTipoPago;
            }


            context.Entry(_User).State = System.Data.Entity.EntityState.Modified;
            context.SaveChanges();

            return(RedirectToAction("IndexA", "Home"));
        }
コード例 #27
0
        private List <object> GeneraDatesDataComparadoReport(string _User, int _Year, int _Month)
        {
            var           context   = new ExpensesEF.Entities();
            List <object> chartData = new List <object>();

            string           _codigo    = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);
            List <TipoGasto> TiposGasto = context.TipoGasto.Where(x => x.Activo == true).ToList();

            var datos = context.Gasto.Where(x => x.idUserGasto == _User && (x.Fecha.Year == _Year && x.Fecha.Month == _Month)).GroupBy(y => y.idTipoGasto).Select(group => new
            {
                idTipoGasto = group.Key,
                Precio      = group.Sum(x => x.Precio)
            })
                        .ToList();

            chartData.Add(new object[]
            {
                "TipoGasto", expenses.Resources.Descripciones.RptGastoMensualGraph2
            });

            //Contruïm les dades del gràfic actual
            foreach (var Elem in TiposGasto)
            {
                var find = datos.FirstOrDefault(x => x.idTipoGasto == Elem.idTipoGasto);
                if (find != null)
                {
                    chartData.Add(new object[]
                    {
                        context.TipoGastoTextosTraduccion.Where(x => x.idTipoGasto == Elem.idTipoGasto && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).FirstOrDefault().Descripcion.ToString(), find.Precio
                    });
                }
                else
                {
                    chartData.Add(new object[]
                    {
                        context.TipoGastoTextosTraduccion.Where(x => x.idTipoGasto == Elem.idTipoGasto && (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).FirstOrDefault().Descripcion.ToString(), 0
                    });
                }
            }
            return(chartData);
        }
コード例 #28
0
        //Total gasto Anual
        private string _TotalGastosAnual(SummaryTotal_Mensual _GastoMesAnterior, string _Usuari)
        {
            string  _Res = "";
            var     context = new ExpensesEF.Entities();
            decimal _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia;

            try
            {
                _TotalAnualAcumulado = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año).Sum(x => x.GastoTotal);
                if (_GastoMesAnterior.Mes == 12)
                {
                    //El darrer mes de l'any, només treiem el total.
                    _Res += string.Format(Resources.Descripciones.mailTotalGastadoAnual, _TotalAnualAcumulado);
                }
                else
                {
                    _Res += string.Format(Resources.Descripciones.mailTotalGastado, _TotalAnualAcumulado);

                    _TotalAnualAcumuladoAnyoAnterior = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año - 1 && x.Mes <= _GastoMesAnterior.Mes).Sum(x => x.GastoTotal);
                    diferencia = Math.Abs(_TotalAnualAcumulado - _TotalAnualAcumuladoAnyoAnterior);

                    if (_TotalAnualAcumuladoAnyoAnterior < _TotalAnualAcumulado)
                    {
                        _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorMenos, _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia);
                    }

                    if (_TotalAnualAcumuladoAnyoAnterior == _TotalAnualAcumulado)
                    {
                        _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorIgual, _TotalAnualAcumulado);
                    }

                    if (_TotalAnualAcumuladoAnyoAnterior > _TotalAnualAcumulado)
                    {
                        _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorMas, _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia);
                    }
                }
            }
            catch (Exception _ex)
            {}
            return(_Res);
        }
コード例 #29
0
        public ActionResult Delete(int id)
        {
            var _Gasto = new Gasto();


            using (var context = new ExpensesEF.Entities())
            {
                _Gasto = context.Gasto.Find(id);
                //Actualitzem gastos acumulats...
                if (_Gasto != null)
                {
                    context.spAddSubPrecioGastosAcumulados(_Gasto.idGasto, 0, 0);
                }

                //Eliminem Gasto
                context.Entry(_Gasto).State = System.Data.Entity.EntityState.Deleted;
                context.SaveChanges();
            }

            return(RedirectToAction("IndexA", "Home"));
        }
コード例 #30
0
        public ActionResult EditGastoRecurrente(GastosRecurrenteViewModels model)
        {
            int _idGastoRecurrente = int.Parse(Request.Form["hidden-ide"]);

            model.Importe = expenses.Utils.parseDecimal(Request.Form["txtImporte"].ToString());
            //model.GastoComputable = Request.Form[""]
            if (ModelState.IsValid)
            {
                // Save it in database
                var context = new ExpensesEF.Entities();
                //_codigo = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2);



                GastoRecurrente _GastoRecurrente = new GastoRecurrente();
                _GastoRecurrente = context.GastoRecurrente.Where(x => x.idGastoRecurrente == _idGastoRecurrente).FirstOrDefault();
                _GastoRecurrente.idUserGastoRecurrente = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                _GastoRecurrente.Concepto   = model.Concepto;
                _GastoRecurrente.Precio     = model.Importe;
                _GastoRecurrente.idTipoPago = int.Parse(Request.Form["TiposPagoEdit"].ToString());

                //si és el mateix tipus de gasto, no recalculem la nova data.
                if (int.Parse(Request.Form["TipoPeriodicidadEdit"].ToString()) != _GastoRecurrente.Periocidad)
                {
                    _GastoRecurrente.Periocidad         = int.Parse(Request.Form["TipoPeriodicidadEdit"].ToString());
                    _GastoRecurrente.SiguienteEjecucion = _getSiguienteEjecucion(_GastoRecurrente.Periocidad);
                }

                _GastoRecurrente.GastoComputable = (model.GastoComputable == true);
                _GastoRecurrente.Activo          = (model.GastoActivo ? 1 : 0);

                context.Entry(_GastoRecurrente).State = System.Data.Entity.EntityState.Modified;
                context.SaveChanges();


                ModelState.Clear();
                return(RedirectToAction("GastosRecurrentes", "Gastos"));
            }
            return(PartialView("_GastoRecurrente", model));
        }