Exemplo n.º 1
0
        public DevolucionResponse Add(DevolucionRequest request)
        {
            Venta venta = _unitOfWork.VentaRepository.FindBy(x => x.Comprobante.Numero == request.NumeroFactura, includeProperties: "VentaDetalles").FirstOrDefault();

            if (venta == null)
            {
                return(new DevolucionResponse($"Factura {request.NumeroFactura} no encontrada"));
            }

            DevolucionBuilder builder = new DevolucionBuilder(venta);

            foreach (var item in request.Detalles)
            {
                Producto producto = _unitOfWork.ProductoRepository.FindFirstOrDefault(x => x.Codigo == item.CodigoProducto);
                builder = builder.AgregarDetalle(producto, item.Cantidad);
            }

            if (builder.IsOk().Any())
            {
                return(new DevolucionResponse(string.Join(',', builder.IsOk())));
            }

            Devolucion entity = builder.Build();

            venta.Devolver(entity);

            _unitOfWork.VentaRepository.Edit(venta);
            if (_unitOfWork.Commit() <= 0)
            {
                return(new DevolucionResponse("No se pudo registrar la devolución"));
            }
            return(new DevolucionResponse("Devolucion registrada", entity));
        }
Exemplo n.º 2
0
        public ActionResult <DevolucionResponse> Post(DevolucionRequest request)
        {
            DevolucionResponse response = _service.Add(request);

            return(Ok(response));
        }
 public virtual JsonResult BuscarDocumento(DevolucionRequest request)
 {
     var solicitudes = solicitudVentaService.BuscarDocumentoPago(request.NumeroDocumento);
     return Json(solicitudes);
 }