feat(receivables): fresh payment pdf controller

This commit is contained in:
Darko Gjorgjijoski
2026-08-21 09:39:20 +02:00
parent 19c391f9fa
commit 4e69f8d3a6
@@ -0,0 +1,33 @@
<?php
namespace App\Domains\Receivables\Http\Controllers;
use App\Domains\Receivables\Contracts\PaymentPdfDataProvider;
use App\Domains\Receivables\Models\Payment;
use App\Platform\Http\Controller;
use Illuminate\Http\Request;
/**
* Serves the receipt behind a payment's public hash.
*
* Asking for a preview short-circuits to the view data the template is
* rendered from, so the layout can be looked at without a PDF engine in
* the loop; every other caller gets the file itself.
*/
class PaymentPdfController extends Controller
{
public function __construct(
private readonly PaymentPdfDataProvider $paymentPdfDataProvider,
) {}
public function __invoke(Request $request, Payment $payment): mixed
{
if ($request->has('preview')) {
return $this->paymentPdfDataProvider->getPdfData($payment);
}
$receipt = $payment->getGeneratedPDFOrStream('payment');
return $receipt;
}
}