示例#1
0
 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");
     }
 }
示例#2
0
        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));
        }
示例#3
0
        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));
        }