From c897521137ecf9ff862f3ec16290b7b319190172 Mon Sep 17 00:00:00 2001 From: harshjagad20 Date: Thu, 3 Mar 2022 12:55:57 +0530 Subject: [PATCH] Added preview to invoice, estimate & payment pdfs --- app/Http/Controllers/V1/PDF/EstimatePdfController.php | 8 +++++++- app/Http/Controllers/V1/PDF/InvoicePdfController.php | 7 ++++++- app/Http/Controllers/V1/PDF/PaymentPdfController.php | 7 ++++++- app/Models/Estimate.php | 4 ++++ app/Models/Invoice.php | 5 +++++ app/Models/Payment.php | 4 ++++ 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/V1/PDF/EstimatePdfController.php b/app/Http/Controllers/V1/PDF/EstimatePdfController.php index 80e96915..64f65cce 100644 --- a/app/Http/Controllers/V1/PDF/EstimatePdfController.php +++ b/app/Http/Controllers/V1/PDF/EstimatePdfController.php @@ -4,6 +4,7 @@ namespace Crater\Http\Controllers\V1\PDF; use Crater\Http\Controllers\Controller; use Crater\Models\Estimate; +use Illuminate\Http\Request; class EstimatePdfController extends Controller { @@ -13,8 +14,13 @@ class EstimatePdfController extends Controller * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function __invoke(Estimate $estimate) + public function __invoke(Request $request, Estimate $estimate) { + if ($request->has('preview')) { + return $estimate->getPDFData(); + } + + return $estimate->getGeneratedPDFOrStream('estimate'); } } diff --git a/app/Http/Controllers/V1/PDF/InvoicePdfController.php b/app/Http/Controllers/V1/PDF/InvoicePdfController.php index 07a78f45..6f3c47c9 100644 --- a/app/Http/Controllers/V1/PDF/InvoicePdfController.php +++ b/app/Http/Controllers/V1/PDF/InvoicePdfController.php @@ -4,6 +4,7 @@ namespace Crater\Http\Controllers\V1\PDF; use Crater\Http\Controllers\Controller; use Crater\Models\Invoice; +use Illuminate\Http\Request; class InvoicePdfController extends Controller { @@ -13,8 +14,12 @@ class InvoicePdfController extends Controller * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function __invoke(Invoice $invoice) + public function __invoke(Request $request, Invoice $invoice) { + if ($request->has('preview')) { + return $invoice->getPDFData(); + } + return $invoice->getGeneratedPDFOrStream('invoice'); } } diff --git a/app/Http/Controllers/V1/PDF/PaymentPdfController.php b/app/Http/Controllers/V1/PDF/PaymentPdfController.php index c091e724..fec5fa4b 100644 --- a/app/Http/Controllers/V1/PDF/PaymentPdfController.php +++ b/app/Http/Controllers/V1/PDF/PaymentPdfController.php @@ -4,6 +4,7 @@ namespace Crater\Http\Controllers\V1\PDF; use Crater\Http\Controllers\Controller; use Crater\Models\Payment; +use Illuminate\Http\Request; class PaymentPdfController extends Controller { @@ -13,8 +14,12 @@ class PaymentPdfController extends Controller * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function __invoke(Payment $payment) + public function __invoke(Request $request, Payment $payment) { + if ($request->has('preview')) { + return view('app.pdf.payment.payment'); + } + return $payment->getGeneratedPDFOrStream('payment'); } } diff --git a/app/Models/Estimate.php b/app/Models/Estimate.php index f9aa6eb3..5b7c3b8f 100644 --- a/app/Models/Estimate.php +++ b/app/Models/Estimate.php @@ -412,6 +412,10 @@ class Estimate extends Model implements HasMedia 'taxes' => $taxes, ]); + if (request()->has('preview')) { + return view('app.pdf.estimate.'.$estimateTemplate); + } + return PDF::loadView('app.pdf.estimate.'.$estimateTemplate); } diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 396fc116..ca6c765e 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -27,6 +27,7 @@ class Invoice extends Model implements HasMedia public const STATUS_DRAFT = 'DRAFT'; public const STATUS_SENT = 'SENT'; + public const STATUS_OVERDUE = 'OVERDUE'; public const STATUS_VIEWED = 'VIEWED'; public const STATUS_COMPLETED = 'COMPLETED'; @@ -575,6 +576,10 @@ class Invoice extends Model implements HasMedia 'taxes' => $taxes, ]); + if (request()->has('preview')) { + return view('app.pdf.invoice.'.$invoiceTemplate); + } + return PDF::loadView('app.pdf.invoice.'.$invoiceTemplate); } diff --git a/app/Models/Payment.php b/app/Models/Payment.php index f0afd2c6..83a17441 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -375,6 +375,10 @@ class Payment extends Model implements HasMedia 'logo' => $logo ?? null, ]); + if (request()->has('preview')) { + return view('app.pdf.payment.payment'); + } + return PDF::loadView('app.pdf.payment.payment'); }