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)); }
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)); }
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")); }
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)); }