Beispiel #1
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);
        }
Beispiel #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"));
        }
Beispiel #3
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"));
        }
Beispiel #4
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"));
        }
Beispiel #5
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"));
        }
Beispiel #6
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"));
        }
Beispiel #7
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"));
        }
Beispiel #8
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));
        }