我正在開發一個用於倉庫管理的MVC應用程序,當我收到產品時需要更新我的庫存表,特別是庫存字段,當我需要增加庫存字段以及發送產品時我需要打折的股票領域,我只能夠添加新行)和我要的是更新的行(僅域Stock)所附照片Table Inventario在MVC中使用Linq更新字段
我的控制器[發佈]:
//CREAMOS/DECLARAMOS LA TRANSACCION
using (var transaccion = db.Database.BeginTransaction())
{
try
{
//CARGO LOS DATOS A RECEPCION
Recepcion recepcion = new Recepcion
{
Kn_CodigoProveedor = proveeid,
Kn_CodigoBodega = bodeid,
UserId = usuaid,
f_Ingreso = fingreso,
f_Factura = ffactura,
f_Guia = fguia,
n_Guia = nguia,
n_Factura = nfactura,
n_OrdenCompra = nordencompra,
};
db.Recepcions.Add(recepcion);
db.SaveChanges();
//RECUPERO EL ULTIMO ID QUE GENERO (ULTIMA RECEPCION)
ultimarecepcionid = db.Recepcions.ToList().Select(r => r.Kn_CodigoRecepcion).Max();
//CICLO QUE GUARDA CADA ELEMENTO DEL DETALLE
foreach (ProductosRecepcion item in recepcionview.ProductosList)
{
var detalle = new RecepcionDetalle()
{
Kn_CodigoRecepcion = ultimarecepcionid,
Kn_CodigoProducto = item.Kn_CodigoProducto,
Foto = item.Foto,
d_Cantidad = item.d_Cantidad,
Precio_Unitario = item.Precio_Unitario,
};
//CARGO EL OBJETO AL DETALLE
db.RecepcionDetalles.Add(detalle);
foreach (ProductosRecepcion item1 in recepcionview.ProductosList)
{
//RECUPERO ULTIMO STOCK (TABLA INVENTARIO)
UltimoStock = db.Inventarios.Where(b => b.Kn_CodigoBodega == bodeid).Where(p => p.Kn_CodigoProducto == item.Kn_CodigoProducto).ToList().Select(p => p.Stock).Max();
}
//ARMO EL OBJETO PARA ACTULIZAR MI TABLA INVENTARIO
var stock = new Inventario()
{
Kn_CodigoProducto = item.Kn_CodigoProducto,
Kn_CodigoBodega = bodeid,
Stock = (detalle.d_Cantidad + UltimoStock),
};
//GUARDO
db.Inventarios.Add(stock);
}
db.SaveChanges();
//CONFIRMAMOS EXITO DE TRANSACCION
transaccion.Commit();
}
catch (Exception ex)
{
//CONFIRMAMOS FRACASO DE TRANSACCION
transaccion.Rollback();
ViewBag.Error = "ERROR: " + ex.Message;
return View(recepcionview);
}
}
對不起,我的英語,對我有幫助嗎?
你有什麼具體問題? – Shyju