public async Task <VoidResult> Handle(InsertOrdenVentaCommand request, CancellationToken cancellationToken)
        {
            //Tienda_Inventario_Domain.Model.Servicio.OrdenVenta ordenVenta
            //     = await _ordenVentaRepository.GetOrdenVentaByFactura(request.OrdenVentaDTO.CodigoFactura.ToString());

            //if (ordenVenta != null)
            //{

            //    return new VoidResult();
            //}
            //else{


            Dictionary <string, string> productosPedidosItems = new Dictionary <string, string>();

            foreach (var item in request.OrdenVentaDTO.ProductoItems)
            {
                productosPedidosItems.Add(item.Producto_Id, item.Cantidad);
            }


            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta obj = new
                                                                     Tienda_Inventario_Domain.Model.Servicio.OrdenVenta(
                request.OrdenVentaDTO.CodigoFactura,
                productosPedidosItems
                );
            await _ordenVentaRepository.Insert(obj);

            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 <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 <VoidResult> Handle(ListoParaDespachoCommand request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta obj = await _ordenVentaRepository.GetOrdenVentaByIdy(request.OrdenVentaDto);

            obj.ConsolidarOrdenVenta();

            await _ordenVentaRepository.UpdateOrdenVenta(obj);

            await _unitOfWork.Commit(cancellationToken);

            return(new VoidResult());
        }
        public async Task <VoidResult> Handle(UpdateOrdenVentaCommand request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta obj = new
                                                                     Tienda_Inventario_Domain.Model.Servicio.OrdenVenta(
                request.OrdenVentaDTO.Id,
                request.OrdenVentaDTO.CodigoFactura
                );
            await _ordenVentaRepository.UpdateOrdenVenta(obj);

            await _unitOfWork.Commit(cancellationToken);

            return(new VoidResult());
        }
示例#6
0
        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
            });
        }
示例#7
0
        public async Task <OrdenVentaDTO> Handle(GetOrdenVentaByIdyFacturaQuery request, CancellationToken cancellationToken)
        {
            Tienda_Inventario_Domain.Model.Servicio.OrdenVenta ordenVenta
                = await _ordenVentaRepository.GetOrdenVentaByFactura(request.Factura);

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

            return(new OrdenVentaDTO()
            {
                Id = ordenVenta.Id,
                CodigoFactura = ordenVenta.CodigoFactura,
                Estado = ordenVenta.Estado.ToString()
            });
        }