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 @@ + +