예제 #1
0
파일: DBGastos.cs 프로젝트: djosuhe/cake
        public object FindForId(int id)
        {
            var    gastos = new GastosViewModels();
            string query  = "SELECT id, fecha, cantidad, descripcion, id_lotifi, id_empleado FROM gastos WHERE id = @id";

            using (var connection = PostConnection.Connection())
            {
                using (var command = db.Command(query))
                {
                    try
                    {
                        connection.Open();
                        command.Parameters.AddWithValue("@id", id);
                        command.Connection = connection;
                        using (var reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                gastos.id              = Convert.ToInt16(reader["id"]);
                                gastos.fecha           = Convert.ToDateTime(reader["fecha"]);
                                gastos.cantidad        = Convert.ToDouble(reader["cantidad"]);
                                gastos.descripcion     = reader["descripcion"].ToString();
                                gastos.lotificadora_id = Convert.ToInt16(reader["id_lotifi"]);
                                gastos.empleado_id     = Convert.ToInt16(reader["id_empleado"]);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
            return(gastos);
        }
예제 #2
0
        public ActionResult Ver(int id)
        {
            var model = new GastosViewModels();

            model = GetDatosModel(id);

            return(View(model));
        }
예제 #3
0
        public ActionResult Edit(GastosViewModels datos)
        {
            DBGastos dbgastos = new DBGastos();
            Gastos   gasto    = new Gastos(dbgastos);

            gasto.Update(datos);
            return(RedirectToAction("Index", "Gastos"));
        }
예제 #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"));
        }
예제 #5
0
        public ActionResult Create(GastosViewModels datos)
        {
            ViewBag.Title = "Ingresar Gastos";

            DBGastos dbgastos = new DBGastos();
            Gastos   gasto    = new Gastos(dbgastos);

            gasto.Save(datos);

            return(RedirectToAction("Index", "Gastos"));
        }
예제 #6
0
        public ActionResult Edit(GastosViewModels model, int id, string submitButton)
        {
            switch (submitButton)
            {
            case "Update":
            case "Modificar":
                return(UpdateGasto(model, id));

            default:
                return(RedirectToAction("IndexA", "Home"));
            }
        }
예제 #7
0
        public ActionResult Add(GastosViewModels model, string submitButton)
        {
            switch (submitButton)
            {
            case "Añadir":
            case "Add":
                //return (AddGasto(model, (Request.Form["IdSubType"]!=""?int.Parse(Request.Form["IdSubType"]) :-1)));
                return(AddGasto(model, (Request.Form["IdSubType"] != "" && !(Request.Form["IdSubType"] is null) ? int.Parse(Request.Form["IdSubType"]) : -1)));

            default:
                return(RedirectToAction("IndexA", "Home"));
            }
            //}
        }
예제 #8
0
        public ActionResult Edit(int id)
        {
            DBGastos       dbgastos       = new DBGastos();
            Gastos         gasto          = new Gastos(dbgastos);
            DBLotificadora dblotificadora = new DBLotificadora();
            Lotificadora   lotifi         = new Lotificadora(dblotificadora);
            DBEmpleados    dbempleados    = new DBEmpleados();
            Empleados      empleado       = new Empleados(dbempleados);

            GastosViewModels gasto2 = new GastosViewModels();

            gasto2 = gasto.SelectForId(id);
            gasto2.lotificadoras = lotifi.SelectAll();
            gasto2.empleados     = empleado.SelectAll();

            return(View(gasto2));
        }
예제 #9
0
        public ActionResult Create()
        {
            ViewBag.Title = "Ingresar Gastos";

            DBLotificadora dblotificadora = new DBLotificadora();
            Lotificadora   lotifi         = new Lotificadora(dblotificadora);

            DBEmpleados dbempleados = new DBEmpleados();
            Empleados   empleado    = new Empleados(dbempleados);

            GastosViewModels gast = new GastosViewModels();

            gast.lotificadoras = lotifi.SelectAll();
            gast.empleados     = empleado.SelectAll();

            return(View(gast));
        }
예제 #10
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));
        }
예제 #11
0
        private GastosViewModels GetDatosModel(int id)
        {
            var model  = new GastosViewModels();
            var _Gasto = new ExpensesEF.Gasto();

            string _codigo;

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


            using (var context = new ExpensesEF.Entities())
            {
                model._TipoPagoList = context.TipoPagoTextosTraduccion.Where(x => (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).OrderBy(x => x.Descripcion).ToList();

                _Gasto                         = context.Gasto.Where(x => x.idGasto == id).FirstOrDefault();
                model.Concepto                 = _Gasto.Concepto;
                model._FormatoFecha            = GetFormatoFecha();
                model.Fecha                    = _Gasto.Fecha;
                model.Importe                  = _Gasto.Precio;
                model.EsRegalo                 = _Gasto.EsRegalo.GetValueOrDefault();
                model._idSelectedTipoPagoGasto = _Gasto.idTipoPago.GetValueOrDefault();
                model.idUserGasto              = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                model.EsCompartido             = _Gasto.EsCompartido.GetValueOrDefault();
                model.Valoracion               = _Gasto.Valoracion.GetValueOrDefault();

                if (_Gasto.idGrupoGasto != null)
                {
                    model._DescripcionGrupoGasto = context.GrupoGastoTextosTraduccion.Where(x => x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma&& x.idGrupoGasto == _Gasto.idGrupoGasto).FirstOrDefault().Descripcion.ToString();
                }

                model._DescripcionTipoGasto = context.TipoGastoTextosTraduccion.Where(x => x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma&& x.idTipoGasto == _Gasto.idTipoGasto).FirstOrDefault().Descripcion.ToString();

                if (_Gasto.idSubTipoGasto != null)
                {
                    model._DescripcionSubTipoGasto = context.SubTipoGastoTextosTraduccion.Where(x => x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma&&  x.idSubTipoGasto == _Gasto.idSubTipoGasto).FirstOrDefault().Descripcion.ToString();
                }
            }

            return(model);
        }
예제 #12
0
        private ActionResult AddGasto(GastosViewModels model, int idSubType)
        {
            var    context = new ExpensesEF.Entities();
            string _codigo;

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


            if (!ModelState.IsValid)
            {
                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._TipoPagoList       = context.TipoPagoTextosTraduccion.Where(x => (x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma)).ToList();
                model._PersonasACompartir = GetListItemsPersonas(context.AspNetUsers.Where(y => y.Email != System.Web.HttpContext.Current.User.Identity.Name).OrderBy(y => y.Email));
                model._FormatoFecha       = GetFormatoFecha();
                return(View(model));
            }

            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                Gasto _Gasto        = new Gasto();
                Gasto _GastoCopiado = new Gasto();
                _Gasto.Concepto        = model.Concepto;
                _Gasto.Fecha           = model.Fecha;
                _Gasto.idTipoGasto     = model._idSelectedGasto;
                _Gasto.GastoRecurrente = false;
                _Gasto.Resaltar        = false;
                _Gasto.EsRegalo        = model.EsRegalo;
                _Gasto.GastoComputable = 1;
                _Gasto.GastoEditable   = true;
                _Gasto.Valoracion      = model.Valoracion;
                if (idSubType > 0)
                {
                    _Gasto.idSubTipoGasto = idSubType;
                }

                if (model._idSelectedGrupoGasto > -1)
                {
                    _Gasto.idGrupoGasto = model._idSelectedGrupoGasto;
                }

                _Gasto.idUserGasto = context.AspNetUsers.Where(x => x.Email == User.Identity.Name).FirstOrDefault().Id.ToString();
                _Gasto.idTipoPago  = model._idSelectedTipoPagoGasto;

                //Si el gasto es compartido...
                if (model.EsCompartido)
                {
                    _Gasto.GastoEditable = false;
                    _Gasto.Precio        = model.Importe / 2;
                    _Gasto.EsCompartido  = true;
                    _GastoCopiado        = CopiarGasto(_Gasto, model._idSelectedPersonaConQuienComparte);

                    context.Gasto.Add(_GastoCopiado);
                    context.SaveChanges();

                    context.Gasto.Add(_Gasto);
                    context.SaveChanges();

                    GastoCompartido _GastoCompartido = new GastoCompartido();
                    _GastoCompartido.idGasto1 = _Gasto.idGasto;
                    _GastoCompartido.idGasto2 = _GastoCopiado.idGasto;
                    _GastoCompartido.fecha    = model.Fecha;
                    _GastoCompartido.precio   = model.Importe;
                    context.GastoCompartido.Add(_GastoCompartido);
                    context.SaveChanges();

                    context.spAddSubPrecioGastosAcumulados(_GastoCopiado.idGasto, 1, 0);
                    context.spAddSubPrecioGastosAcumulados(_Gasto.idGasto, 1, 0);
                }
                else
                {
                    _Gasto.EsCompartido = false;
                    _Gasto.Precio       = model.Importe;

                    context.Gasto.Add(_Gasto);
                    context.SaveChanges();

                    //Actualitzem gastos acumulats
                    context.spAddSubPrecioGastosAcumulados(_Gasto.idGasto, 1, 0);
                }
                dbContextTransaction.Commit();
            }

            //model._TipoGastosTrad = GetListTipoGastos(context.TipoGastoTextosTraduccion.Where(x => x.idIdioma == context.Idiomas.Where(y => y.codigo == _codigo).FirstOrDefault().idIdioma).ToList());
            return(RedirectToAction("IndexA", "Home"));
        }
예제 #13
0
 public int Update(GastosViewModels datos)
 {
     return(persistence.Update(datos));
 }
예제 #14
0
 public int Save(GastosViewModels datos)
 {
     return(persistence.Save(datos));
 }