diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php
index e33453092eeb..f0b787f3372a 100644
--- a/app/Models/BaseModel.php
+++ b/app/Models/BaseModel.php
@@ -11,15 +11,17 @@
namespace App\Models;
+use Illuminate\Support\Str;
+use Illuminate\Support\Carbon;
+use App\Utils\Traits\MakesHash;
+use App\Jobs\Entity\CreateRawPdf;
use App\Jobs\Util\WebhookHandler;
use App\Models\Traits\Excludable;
-use App\Utils\Traits\MakesHash;
+use Illuminate\Database\Eloquent\Model;
+use App\Jobs\Vendor\CreatePurchaseOrderPdf;
use App\Utils\Traits\UserSessionAttributes;
use Illuminate\Database\Eloquent\Factories\HasFactory;
-use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundException;
-use Illuminate\Support\Carbon;
-use Illuminate\Support\Str;
/**
* Class BaseModel
@@ -255,4 +257,30 @@ class BaseModel extends Model
WebhookHandler::dispatch($event_id, $this, $this->company, $additional_data);
}
}
+
+ /**
+ * Returns the base64 encoded PDF string of the entity
+ */
+ public function fullscreenPdfViewer($invitation = null): string
+ {
+
+ if (! $invitation) {
+ if ($this->invitations()->exists()) {
+ $invitation = $this->invitations()->first();
+ } else {
+ $this->service()->createInvitations();
+ $invitation = $this->invitations()->first();
+ }
+ }
+
+ if (! $invitation) {
+ throw new \Exception('Hard fail, could not create an invitation - is there a valid contact?');
+ }
+
+ if($this instanceof \App\Models\PurchaseOrder)
+ return "data:application/pdf;base64,".base64_encode((new CreatePurchaseOrderPdf($invitation, $invitation->company->db))->rawPdf());
+
+ return "data:application/pdf;base64,".base64_encode((new CreateRawPdf($invitation, $invitation->company->db))->handle());
+
+ }
}
diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php
index dfdf67c2691a..e4d09b6a24b4 100644
--- a/app/Models/Invoice.php
+++ b/app/Models/Invoice.php
@@ -14,6 +14,7 @@ namespace App\Models;
use App\Utils\Ninja;
use Illuminate\Support\Carbon;
use App\Utils\Traits\MakesDates;
+use App\Jobs\Entity\CreateRawPdf;
use App\Helpers\Invoice\InvoiceSum;
use App\Jobs\Entity\CreateEntityPdf;
use App\Utils\Traits\MakesReminders;
@@ -682,7 +683,8 @@ class Invoice extends BaseModel
}
public function pdf_file_path($invitation = null, string $type = 'path', bool $portal = false)
- {
+ {return "data:application/pdf;base64,".base64_encode((new CreateRawPdf($invitation, $invitation->company->db))->handle());
+
if (! $invitation) {
if ($this->invitations()->exists()) {
$invitation = $this->invitations()->first();
diff --git a/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php b/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php
index dde550a269c7..2f7a56c9ee56 100644
--- a/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php
+++ b/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php
@@ -19,7 +19,7 @@ use Illuminate\Support\Facades\Storage;
class GetPurchaseOrderPdf extends AbstractService
{
- public function __construct(PurchaseOrder $purchase_order, VendorContact $contact = null)
+ public function __construct(public PurchaseOrder $purchase_order, public VendorContact $contact = null)
{
$this->purchase_order = $purchase_order;
diff --git a/resources/views/portal/ninja2020/invoices/show-fullscreen.blade.php b/resources/views/portal/ninja2020/invoices/show-fullscreen.blade.php
index d15cebda832d..8de82110754e 100644
--- a/resources/views/portal/ninja2020/invoices/show-fullscreen.blade.php
+++ b/resources/views/portal/ninja2020/invoices/show-fullscreen.blade.php
@@ -1,2 +1,2 @@
-
+
+
diff --git a/resources/views/portal/ninja2020/purchase_orders/show-fullscreen.blade.php b/resources/views/portal/ninja2020/purchase_orders/show-fullscreen.blade.php
index e69de29bb2d1..2aa2bf4b229b 100644
--- a/resources/views/portal/ninja2020/purchase_orders/show-fullscreen.blade.php
+++ b/resources/views/portal/ninja2020/purchase_orders/show-fullscreen.blade.php
@@ -0,0 +1,2 @@
+
+