private void ValidarTransferencia(TransferirStockModel model) { if (model.Stock.MaxiKioscoId == model.DestinoId) { ModelState.AddModelError("DestinoId", "El kiosco de destino no puede ser igual al de origen"); } }
public ActionResult Transferir(int productoId, int maxiKioscoId) { Stock stock = Uow.Stocks.Obtener(s => s.ProductoId == productoId && s.MaxiKioscoId == maxiKioscoId, s => s.MaxiKiosco, s => s.Producto, s => s.StockTransacciones); if (stock == null) { stock = new Stock(); var maxiKiosco = Uow.MaxiKioscos.Obtener(maxiKioscoId); var producto = Uow.Productos.Obtener(productoId); stock.MaxiKioscoId = maxiKioscoId; stock.ProductoId = productoId; stock.MaxiKiosco = maxiKiosco; stock.Producto = producto; stock.FechaCreacion = DateTime.Now; stock.OperacionCreacion = "Transferencia manual en web"; stock.Identifier = Guid.NewGuid(); } stock.StockActual = stock.StockTransacciones .Select(st => st.Cantidad) .DefaultIfEmpty(0).Sum(); var model = new TransferirStockModel { Stock = stock, Unidades = 1 }; return(PartialView(model)); }
public ActionResult Transferir(TransferirStockModel model) { ValidarTransferencia(model); if (!ModelState.IsValid) { model.Stock.Producto = Uow.Productos.Obtener(model.Stock.ProductoId); return(PartialView(model)); } StockNegocio.TransferirStock(model.Stock, model.Unidades, model.DestinoId); var maxikioscoOrigen = Uow.MaxiKioscos.Obtener(m => m.MaxiKioscoId == model.Stock.MaxiKioscoId); var maxikioscoDestino = Uow.MaxiKioscos.Obtener(m => m.MaxiKioscoId == model.DestinoId); var ultimaOperacionMensaje = string.Format("Último Stock Trasferido. Producto:{0}, Maxikiosco Origen:{1}, Maxikiosco Destino:{2}, Unidades:{3}", model.Stock.Producto.Descripcion, maxikioscoOrigen.Nombre, maxikioscoDestino.Nombre, model.Unidades); return(Json(new { exito = true }).WithSuccess(ultimaOperacionMensaje)); }