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)); }
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); }