public async Task <VoidResult> Handle(DespachadoCommand request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta obj = await _ordenVentaRepository.GetOrdenVentaByIdyListProductos(request.OrdenVentaDto);

            List <Tienda_Inventario_Domain.Model.Servicio.ProductoPedido> productosPedidos = new List <Tienda_Inventario_Domain.Model.Servicio.ProductoPedido>(obj.ProductoPedidos);

            foreach (var item in productosPedidos)
            {
                Guid guid = new Guid(item.Producto_Id.ToString());
                Tienda_Inventario_Domain.Model.Servicio.Producto objProducto = await _productoRepository.GetProductoBiId(guid);

                var    cantidad            = int.Parse(objProducto.Cantidad.Value.ToString());
                var    cantidadPedida      = int.Parse(item.Cantidad);
                var    cantActualizada     = cantidad - cantidadPedida;
                string cantidadActualizada = cantActualizada.ToString();

                objProducto.ActualizarCantidad(cantidadActualizada);

                await _ordenVentaRepository.UpdateProducto(objProducto);
            }

            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta objOrden = await _ordenVentaRepository.GetOrdenVentaByIdy(obj.Id);

            objOrden.Despachado();

            await _ordenVentaRepository.UpdateOrdenVenta(objOrden);

            await _unitOfWork.Commit(cancellationToken);

            return(new VoidResult());
        }
예제 #2
0
        public async Task <VoidResult> Handle(UpdateProductoCommand request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.Producto obj = new
                                                                   Tienda_Inventario_Domain.Model.Servicio.Producto(
                request.Producto.Id,
                request.Producto.Nombre,
                request.Producto.Precio,
                request.Producto.Cantidad
                );
            await _productoRepository.UpdateProducto(obj);

            await _unitOfWork.Commit(cancellationToken);

            return(new VoidResult());
        }
예제 #3
0
        public async Task <ProductoDTO> Handle(GetProductoByIdQuery request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.Producto producto
                = await _prodcutoRepository.GetProductoBiId(request.Id);

            if (producto == null)
            {
                return(null);
            }

            return(new ProductoDTO()
            {
                Id = producto.Id,
                Nombre = producto.Nombre,
                Precio = producto.Precio,
                Cantidad = producto.Cantidad
            });
        }