mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Working on refactor for displaying PDFs
This commit is contained in:
parent
5b4232f7e3
commit
d009eb48b9
@ -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());
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
<iframe src="{{ $invoice->pdf_file_path($invitation, 'url', true) }}"
|
||||
style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
|
||||
<iframe src="{{ $invoice->fullscreenPdfViewer($invitation) }}" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
|
||||
<!-- <iframe src="{{ $invoice->pdf_file_path($invitation, 'url', true) }}" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe> -->
|
||||
|
@ -0,0 +1,2 @@
|
||||
<iframe src="{{ $purchase_order->fullscreenPdfViewer($invitation) }}" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
|
||||
<!-- <iframe src="{{ $purchase_order->pdf_file_path($invitation, 'url', true) }}" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe> -->
|
Loading…
x
Reference in New Issue
Block a user