Merge support for purchase order PDF generation

This commit is contained in:
David Bomba 2023-10-26 17:50:07 +11:00
parent e8100ac1c3
commit 55ba708fd0
9 changed files with 48 additions and 68 deletions

View File

@ -94,7 +94,7 @@ class InvitationController extends Controller
$file_name = $invitation->purchase_order->numberFormatter().'.pdf';
$file = (new CreatePurchaseOrderPdf($invitation))->rawPdf();
$file = $invitation->purchase_order->service()->getPurchaseOrderPdf();
$headers = ['Content-Type' => 'application/pdf'];

View File

@ -11,23 +11,24 @@
namespace App\Http\Controllers\VendorPortal;
use App\Events\Misc\InvitationWasViewed;
use App\Events\PurchaseOrder\PurchaseOrderWasAccepted;
use App\Events\PurchaseOrder\PurchaseOrderWasViewed;
use App\Utils\Ninja;
use Illuminate\View\View;
use App\Models\PurchaseOrder;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\MakesDates;
use App\Jobs\Entity\CreateRawPdf;
use App\Http\Controllers\Controller;
use App\Http\Requests\VendorPortal\PurchaseOrders\ProcessPurchaseOrdersInBulkRequest;
use App\Jobs\Invoice\InjectSignature;
use Illuminate\Support\Facades\Cache;
use Illuminate\Contracts\View\Factory;
use App\Models\PurchaseOrderInvitation;
use App\Events\Misc\InvitationWasViewed;
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
use App\Events\PurchaseOrder\PurchaseOrderWasViewed;
use App\Events\PurchaseOrder\PurchaseOrderWasAccepted;
use App\Http\Requests\VendorPortal\PurchaseOrders\ShowPurchaseOrderRequest;
use App\Http\Requests\VendorPortal\PurchaseOrders\ShowPurchaseOrdersRequest;
use App\Jobs\Invoice\InjectSignature;
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
use App\Models\PurchaseOrder;
use App\Models\PurchaseOrderInvitation;
use App\Utils\Ninja;
use App\Utils\Traits\MakesDates;
use App\Utils\Traits\MakesHash;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Cache;
use Illuminate\View\View;
use App\Http\Requests\VendorPortal\PurchaseOrders\ProcessPurchaseOrdersInBulkRequest;
class PurchaseOrderController extends Controller
{
@ -116,7 +117,7 @@ class PurchaseOrderController extends Controller
$invitation = PurchaseOrderInvitation::withTrashed()->find($data['invitation_id']);
$file = (new CreatePurchaseOrderPdf($invitation, $invitation->company->db))->rawPdf();
$file = $invitation->purchase_order->service()->getPurchaseOrderPdf();
$headers = ['Content-Type' => 'application/pdf'];
@ -211,7 +212,8 @@ class PurchaseOrderController extends Controller
if (count($purchase_order_invitations) == 1) {
$invitation = $purchase_order_invitations->first();
$file = (new CreatePurchaseOrderPdf($invitation, $invitation->company->db))->rawPdf();
$file = (new CreateRawPdf($invitation))->handle();
return response()->streamDownload(function () use ($file) {
echo $file;
}, $invitation->purchase_order->numberFormatter().".pdf", ['Content-Type' => 'application/pdf']);
@ -226,7 +228,8 @@ class PurchaseOrderController extends Controller
$zipFile = new \PhpZip\ZipFile();
try {
foreach ($invitations as $invitation) {
$file = (new CreatePurchaseOrderPdf($invitation, $invitation->company->db))->rawPdf();
$file = (new CreateRawPdf($invitation))->handle();
$zipFile->addFromString($invitation->purchase_order->numberFormatter().".pdf", $file);
}

View File

@ -95,11 +95,7 @@ class PdfSlot extends Component
$file_name = $this->entity->numberFormatter().'.pdf';
if($this->entity instanceof \App\Models\PurchaseOrder) {
$file = (new CreatePurchaseOrderPdf($this->invitation, $this->invitation->company->db))->rawPdf();
} else {
$file = (new \App\Jobs\Entity\CreateRawPdf($this->invitation))->handle();
}
$file = (new \App\Jobs\Entity\CreateRawPdf($this->invitation))->handle();
$headers = ['Content-Type' => 'application/pdf'];
@ -108,6 +104,7 @@ class PdfSlot extends Component
}, $file_name, $headers);
}
public function downloadEInvoice()
{

View File

@ -11,20 +11,21 @@
namespace App\Jobs\PurchaseOrder;
use App\Models\User;
use App\Models\Company;
use App\Libraries\MultiDB;
use App\Jobs\Util\UnlinkFile;
use Illuminate\Bus\Queueable;
use App\Jobs\Entity\CreateRawPdf;
use App\Jobs\Mail\NinjaMailerJob;
use App\Jobs\Mail\NinjaMailerObject;
use App\Jobs\Util\UnlinkFile;
use App\Libraries\MultiDB;
use App\Mail\DownloadPurchaseOrders;
use App\Models\Company;
use Illuminate\Queue\SerializesModels;
use App\Models\PurchaseOrderInvitation;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Storage;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Storage;
class ZipPurchaseOrders implements ShouldQueue
{
@ -62,7 +63,9 @@ class ZipPurchaseOrders implements ShouldQueue
try {
foreach ($invitations as $invitation) {
$file = (new \App\Jobs\Vendor\CreatePurchaseOrderPdf($invitation))->rawPdf();
$file = (new CreateRawPdf($invitation))->handle();
$zipFile->addFromString($invitation->purchase_order->numberFormatter().".pdf", $file);
}

View File

@ -11,18 +11,19 @@
namespace App\Mail\Engine;
use App\DataMapper\EmailTemplateDefaults;
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
use App\Models\Account;
use App\Models\PurchaseOrder;
use App\Models\Vendor;
use App\Utils\HtmlEngine;
use App\Utils\Ninja;
use App\Utils\Number;
use App\Models\Vendor;
use App\Models\Account;
use App\Utils\HtmlEngine;
use App\Models\PurchaseOrder;
use App\Utils\Traits\MakesHash;
use App\Utils\VendorHtmlEngine;
use App\Jobs\Entity\CreateRawPdf;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\URL;
use App\DataMapper\EmailTemplateDefaults;
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
class PurchaseOrderEmailEngine extends BaseEmailEngine
{
@ -119,7 +120,8 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
->setTextBody($text_body);
if ($this->vendor->getSetting('pdf_email_attachment') !== false && $this->purchase_order->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
$pdf = (new CreatePurchaseOrderPdf($this->invitation))->rawPdf();
$pdf = (new CreateRawPdf($this->invitation))->handle();
$this->setAttachments([['file' => base64_encode($pdf), 'name' => $this->purchase_order->numberFormatter().'.pdf']]);
}

View File

@ -302,10 +302,6 @@ class BaseModel extends Model
if (! $invitation) {
throw new \Exception('Hard fail, could not create an invitation.');
}
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))->handle());

View File

@ -299,14 +299,7 @@ class EmailDefaults
}
/** Purchase Order / Invoice / Credit / Quote PDF */
if ($this->email->email_object->settings->pdf_email_attachment && $this->email->email_object->entity instanceof PurchaseOrder) {
$pdf = (new CreatePurchaseOrderPdf($this->email->email_object->invitation))->rawPdf();
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]);
} elseif ($this->email->email_object->settings->pdf_email_attachment &&
($this->email->email_object->entity instanceof Invoice ||
$this->email->email_object->entity instanceof Quote ||
$this->email->email_object->entity instanceof Credit)) {
if ($this->email->email_object->settings->pdf_email_attachment){
$pdf = ((new CreateRawPdf($this->email->email_object->invitation))->handle());
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]);
}

View File

@ -11,6 +11,7 @@
namespace App\Services\PurchaseOrder;
use App\Jobs\Entity\CreateRawPdf;
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
use App\Models\PurchaseOrder;
use App\Models\VendorContact;
@ -35,21 +36,7 @@ class GetPurchaseOrderPdf extends AbstractService
$invitation = $this->purchase_order->invitations()->first();
}
return (new CreatePurchaseOrderPdf($invitation))->handle();
// $path = $this->purchase_order->vendor->purchase_order_filepath($invitation);
// $file_path = $path.$this->purchase_order->numberFormatter().'.pdf';
// // $disk = 'public';
// $disk = config('filesystems.default');
// $file = Storage::disk($disk)->exists($file_path);
// if (! $file) {
// $file_path = (new CreatePurchaseOrderPdf($invitation))->handle();
// }
// return $file_path;
return (new CreateRawPdf($invitation))->handle();
}
}

View File

@ -233,7 +233,6 @@ class PurchaseOrderTest extends TestCase
$x = $purchase_order->service()->markSent()->getPurchaseOrderPdf();
// nlog($x);
}
public function testPurchaseOrderRest()