public Models.lst.producto GetProducto(int?id) { Models.lst.producto producto = (from p in db.producto join b in db.bodega on p.idproducto equals b.idproducto into pb from subpb in pb.DefaultIfEmpty() join c in db.producto_costo on p.idproducto equals c.idproducto into pc from subpc in pc.DefaultIfEmpty() join v in db.producto_precioventa on p.idproducto equals v.idproducto into pv from subpv in pv.DefaultIfEmpty() where p.estado == true && subpb.estado == true && subpc.estado == true && subpv.estado == true select new Models.lst.producto { id = p.idproducto, cod = p.codigo_barras, _producto = p.producto_nombre, cantidad = subpb.cantidad, costo = subpc.monto, venta = subpv.monto }).FirstOrDefault(); return(producto); }
public ActionResult Create([Bind(Include = "id,cod,_producto,cantidad,costo,venta")] Models.lst.producto producto) { if (ModelState.IsValid) { using (Models.evaluacionEntities _db = new evaluacionEntities()) { using (var dbContext = _db.Database.BeginTransaction()) { try { var p = _db.producto.FirstOrDefault(x => x.producto_nombre == producto._producto); if (p == null) { p = new Models.producto(); p.codigo_barras = producto.cod; p.producto_nombre = producto._producto; p.estado = true; _db.producto.Add(p); var c = _db.producto_costo.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true && x.monto == producto.costo); if (c == null) { c = _db.producto_costo.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true); if (c != null) { c.estado = false; } var costo = new Models.producto_costo(); costo.estado = true; costo.idproducto = producto.id; costo.monto = producto.costo; _db.producto_costo.Add(costo); } var v = _db.producto_precioventa.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true && x.monto == producto.venta); if (v == null) { v = _db.producto_precioventa.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true); if (v != null) { v.estado = false; } var venta = new Models.producto_precioventa(); venta.estado = true; venta.idproducto = producto.id; venta.monto = producto.venta; _db.producto_precioventa.Add(venta); } var b = _db.bodega.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true && x.cantidad == producto.cantidad); if (b == null) { b = _db.bodega.FirstOrDefault(x => x.idproducto == producto.id && x.estado == true); if (b != null) { b.estado = false; } var bodega = new Models.bodega(); bodega.idproducto = producto.id; bodega.cantidad = producto.cantidad; bodega.estado = true; _db.bodega.Add(bodega); } _db.SaveChanges(); dbContext.Commit(); } } catch { dbContext.Rollback(); } } } return(RedirectToAction("Index", "Home")); } return(View(producto)); }