public ActionResult Edit(GastoFinanzas gastofinanzas)
        {
            var subconcep = db.SubconceptoGasto.Find(gastofinanzas.SubconceptoGastoid);

            if (gastofinanzas.ConceptoGastoid != subconcep.ConceptoGastoid)
            {
                ModelState.AddModelError("", "El subconcepto seleccionado no se corresponde con el concepto seleccionado");
            }
            if (ModelState.IsValid)
            {
                var user = Session["usuarioActual"] as Usuario;
                gastofinanzas.Usuarioid = user.id;

                var cuentaAnterior = db.Cuentas.Find(gastoAnterior.Cuentasid);
                cuentaAnterior.importe += gastoAnterior.importe;

                var cuenta = db.Cuentas.Find(gastofinanzas.Cuentasid);
                cuenta.importe -= gastofinanzas.importe;

                db.Entry(gastofinanzas).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.ConceptoGastoid    = new SelectList(db.ConceptoGasto.Where(c => c.id != 1), "id", "concepto", gastofinanzas.ConceptoGastoid);
            ViewBag.Cuentasid          = new SelectList(db.Cuentas, "id", "nombre", gastofinanzas.Cuentasid);
            ViewBag.SubconceptoGastoid = new SelectList(db.SubconceptoGasto, "id", "subconcepto", gastofinanzas.SubconceptoGastoid);
            return(View(gastofinanzas));
        }
Ejemplo n.º 2
0
        public ActionResult Create(CompraProducto compraproducto)
        {
            if (ModelState.IsValid)
            {
                var user = Session["usuarioActual"] as Usuario;
                compraproducto.Usuarioid = user.id;
                var compraHecha = db.CompraProducto.Add(compraproducto);
                var cuenta      = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid);

                var precioProducto = compraproducto.importe / compraproducto.cantidad;
                var almacen        =
                    db.Almacen.FirstOrDefault(
                        p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid);
                if (almacen == null)
                {
                    var newAlmacen = new Almacen()
                    {
                        cantidad     = compraproducto.cantidad,
                        precio       = precioProducto,
                        Productoid   = compraproducto.Productoid,
                        TipoMonedaid = cuenta.TipoMonedaid
                    };
                    db.Almacen.Add(newAlmacen);
                }
                else
                {
                    almacen.cantidad       += compraproducto.cantidad;
                    db.Entry(almacen).State = EntityState.Modified;
                }

                cuenta.importe        -= compraproducto.importe;
                db.Entry(cuenta).State = EntityState.Modified;
                db.SaveChanges();
                var gasto = new GastoFinanzas()
                {
                    fecha           = compraproducto.fecha,
                    Cuentasid       = compraproducto.Cuentasid,
                    ConceptoGastoid = 1,
                    Usuarioid       = compraproducto.Usuarioid,
                    importe         = compraproducto.importe,
                    descripcion     = "Id de compra: [" + compraHecha.id + "] Compra de Productos del proyecto un grano de arena"
                };
                db.GastoFinanzas.Add(gasto);
                db.SaveChanges();
                return(RedirectToAction("Create"));
            }

            ViewBag.Productoid = new SelectList(db.Producto, "id", "nombre", compraproducto.Productoid);
            var cta = db.Cuentas.Where(c => c.activo);

            ViewBag.Cuentasid = new SelectList(cta, "id", "nombre", compraproducto.Cuentasid);
            return(View(compraproducto));
        }
 public ActionResult DeleteConfirmed(int id)
 {
     try
     {
         GastoFinanzas gastofinanzas = db.GastoFinanzas.Find(id);
         db.GastoFinanzas.Remove(gastofinanzas);
         db.SaveChanges();
     }
     catch (Exception)
     {
         throw new Exception("Este registro se utiliza en una relacion y no lo puede borrar");
     }
     return(RedirectToAction("Index"));
 }
        //
        // GET: /GastoFinanza/Delete/5

        public ActionResult Delete(int id = 0)
        {
            GastoFinanzas gastofinanzas = db.GastoFinanzas.Find(id);

            if (gastofinanzas.ConceptoGastoid == 1)
            {
                throw new Exception("No puede editar un gasto de Grano de Arena");
            }
            if (gastofinanzas == null)
            {
                return(HttpNotFound());
            }
            return(View(gastofinanzas));
        }
        //
        // GET: /GastoFinanza/Edit/5

        public ActionResult Edit(int id = 0)
        {
            GastoFinanzas gastofinanzas = db.GastoFinanzas.Find(id);

            if (gastofinanzas.ConceptoGastoid == 1)
            {
                throw new Exception("No puede editar un gasto de Grano de Arena");
            }
            if (gastofinanzas == null)
            {
                return(HttpNotFound());
            }
            gastoAnterior              = gastofinanzas;
            ViewBag.ConceptoGastoid    = new SelectList(db.ConceptoGasto.Where(c => c.id != 1), "id", "concepto", gastofinanzas.ConceptoGastoid);
            ViewBag.Cuentasid          = new SelectList(db.Cuentas, "id", "nombre", gastofinanzas.Cuentasid);
            ViewBag.SubconceptoGastoid = new SelectList(db.SubconceptoGasto, "id", "subconcepto", gastofinanzas.SubconceptoGastoid);
            return(View(gastofinanzas));
        }
Ejemplo n.º 6
0
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                CompraProducto compraproducto = db.CompraProducto.Find(id);
                db.CompraProducto.Remove(compraproducto);

                var precioProducto = compraproducto.importe / compraproducto.cantidad;
                var cuenta         = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid);
                var almacen        =
                    db.Almacen.FirstOrDefault(
                        p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid);


                almacen.cantidad -= compraproducto.cantidad;
                cuenta.importe   += compraproducto.importe;

                db.Entry(almacen).State = EntityState.Modified;
                db.Entry(cuenta).State  = EntityState.Modified;

                var gastos = db.GastoFinanzas.Where(g => g.fecha == compraproducto.fecha);
                var gasto  = new GastoFinanzas();
                foreach (var g in gastos)
                {
                    if (int.Parse(g.descripcion.Split('[')[1].Split(']')[0]) == compraproducto.id)
                    {
                        gasto = g;
                    }
                }
                db.GastoFinanzas.Remove(gasto);

                db.SaveChanges();
            }
            catch (Exception)
            {
                throw new Exception("Este registro se utiliza en una relacion y no lo puede borrar");
            }
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 7
0
        public ActionResult Edit(CompraProducto compraproducto)
        {
            if (ModelState.IsValid)
            {
                var user = Session["usuarioActual"] as Usuario;
                compraproducto.Usuarioid       = user.id;
                db.Entry(compraproducto).State = EntityState.Modified;
                //anterior
                var precioProductoAnterior = compraAnterior.importe / compraAnterior.cantidad;
                var cuentaAnterior         = db.Cuentas.FirstOrDefault(c => c.id == compraAnterior.Cuentasid);
                var almacenAnterior        =
                    db.Almacen.FirstOrDefault(
                        p => p.Productoid == compraAnterior.Productoid && p.precio == precioProductoAnterior && p.TipoMonedaid == cuentaAnterior.TipoMonedaid);


                //actual
                var precioProducto = compraproducto.importe / compraproducto.cantidad;
                var cuenta         = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid);
                var almacen        =
                    db.Almacen.FirstOrDefault(
                        p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid);


                if (almacen == null)
                {
                    var newAlmacen = new Almacen()
                    {
                        cantidad     = compraproducto.cantidad,
                        precio       = precioProducto,
                        Productoid   = compraproducto.Productoid,
                        TipoMonedaid = cuenta.TipoMonedaid
                    };
                    db.Almacen.Add(newAlmacen);
                }
                else
                {
                    almacen.cantidad       += compraproducto.cantidad;
                    db.Entry(almacen).State = EntityState.Modified;
                }
                almacenAnterior.cantidad -= compraAnterior.cantidad;
                cuentaAnterior.importe   += compraAnterior.importe;
                cuenta.importe           -= compraproducto.importe;

                var gastos = db.GastoFinanzas.Where(g => g.fecha == compraAnterior.fecha);
                var gasto  = new GastoFinanzas();
                foreach (var g in gastos)
                {
                    if (int.Parse(g.descripcion.Split('[')[1].Split(']')[0]) == compraproducto.id)
                    {
                        gasto = g;
                    }
                }
                gasto.importe = compraproducto.importe;
                gasto.fecha   = compraproducto.fecha;

                db.Entry(gasto).State           = EntityState.Modified;
                db.Entry(almacenAnterior).State = EntityState.Modified;
                db.Entry(cuenta).State          = EntityState.Modified;
                db.Entry(cuentaAnterior).State  = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.Productoid = new SelectList(db.Producto, "id", "nombre", compraproducto.Productoid);
            var cta = db.Cuentas.Where(c => c.activo);

            ViewBag.Cuentasid = new SelectList(cta, "id", "nombre", compraproducto.Cuentasid);
            return(View(compraproducto));
        }