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