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()); }
public async Task <OrdenVentaDTO> Handle(GetOrdenVentaByIdyListaProductosQuery request, CancellationToken cancellationToken) { Tienda_Inventario_Domain.Model.Servicio.OrdenVenta ordenVenta = await _ordenVentaRepository.GetOrdenVentaByIdyListProductos(request.Id); if (ordenVenta == null) { return(null); } List <ProductoPedidoDTO> productoPedidos = new List <ProductoPedidoDTO>(); foreach (var productoPedido in ordenVenta.ProductoPedidos) { productoPedidos.Add(new ProductoPedidoDTO() { Id = productoPedido.Id, Cantidad = productoPedido.Cantidad, Producto_Id = productoPedido.Producto_Id }); } return(new OrdenVentaDTO() { Id = ordenVenta.Id, CodigoFactura = ordenVenta.CodigoFactura, Estado = ordenVenta.Estado.ToString(), ProductoItems = productoPedidos }); }
public async Task <OrdenVentaDTO> Handle(GetOrdenVentaByIdQuery request, CancellationToken cancellationToken) { Tienda_Inventario_Domain.Model.Servicio.OrdenVenta ordenVenta = await _ordenVentaRepository.GetOrdenVentaByIdyListProductos(request.Id); if (ordenVenta == null) { return(null); } return(new OrdenVentaDTO() { Id = ordenVenta.Id, CodigoFactura = ordenVenta.CodigoFactura }); }