mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-01 02:44:35 -04:00
Merge support for purchase order PDF generation
This commit is contained in:
parent
e8100ac1c3
commit
55ba708fd0
@ -94,7 +94,7 @@ class InvitationController extends Controller
|
|||||||
|
|
||||||
$file_name = $invitation->purchase_order->numberFormatter().'.pdf';
|
$file_name = $invitation->purchase_order->numberFormatter().'.pdf';
|
||||||
|
|
||||||
$file = (new CreatePurchaseOrderPdf($invitation))->rawPdf();
|
$file = $invitation->purchase_order->service()->getPurchaseOrderPdf();
|
||||||
|
|
||||||
$headers = ['Content-Type' => 'application/pdf'];
|
$headers = ['Content-Type' => 'application/pdf'];
|
||||||
|
|
||||||
|
@ -11,23 +11,24 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\VendorPortal;
|
namespace App\Http\Controllers\VendorPortal;
|
||||||
|
|
||||||
use App\Events\Misc\InvitationWasViewed;
|
use App\Utils\Ninja;
|
||||||
use App\Events\PurchaseOrder\PurchaseOrderWasAccepted;
|
use Illuminate\View\View;
|
||||||
use App\Events\PurchaseOrder\PurchaseOrderWasViewed;
|
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\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\ShowPurchaseOrderRequest;
|
||||||
use App\Http\Requests\VendorPortal\PurchaseOrders\ShowPurchaseOrdersRequest;
|
use App\Http\Requests\VendorPortal\PurchaseOrders\ShowPurchaseOrdersRequest;
|
||||||
use App\Jobs\Invoice\InjectSignature;
|
use App\Http\Requests\VendorPortal\PurchaseOrders\ProcessPurchaseOrdersInBulkRequest;
|
||||||
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;
|
|
||||||
|
|
||||||
class PurchaseOrderController extends Controller
|
class PurchaseOrderController extends Controller
|
||||||
{
|
{
|
||||||
@ -116,7 +117,7 @@ class PurchaseOrderController extends Controller
|
|||||||
|
|
||||||
$invitation = PurchaseOrderInvitation::withTrashed()->find($data['invitation_id']);
|
$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'];
|
$headers = ['Content-Type' => 'application/pdf'];
|
||||||
|
|
||||||
@ -211,7 +212,8 @@ class PurchaseOrderController extends Controller
|
|||||||
if (count($purchase_order_invitations) == 1) {
|
if (count($purchase_order_invitations) == 1) {
|
||||||
|
|
||||||
$invitation = $purchase_order_invitations->first();
|
$invitation = $purchase_order_invitations->first();
|
||||||
$file = (new CreatePurchaseOrderPdf($invitation, $invitation->company->db))->rawPdf();
|
$file = (new CreateRawPdf($invitation))->handle();
|
||||||
|
|
||||||
return response()->streamDownload(function () use ($file) {
|
return response()->streamDownload(function () use ($file) {
|
||||||
echo $file;
|
echo $file;
|
||||||
}, $invitation->purchase_order->numberFormatter().".pdf", ['Content-Type' => 'application/pdf']);
|
}, $invitation->purchase_order->numberFormatter().".pdf", ['Content-Type' => 'application/pdf']);
|
||||||
@ -226,7 +228,8 @@ class PurchaseOrderController extends Controller
|
|||||||
$zipFile = new \PhpZip\ZipFile();
|
$zipFile = new \PhpZip\ZipFile();
|
||||||
try {
|
try {
|
||||||
foreach ($invitations as $invitation) {
|
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);
|
$zipFile->addFromString($invitation->purchase_order->numberFormatter().".pdf", $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,11 +95,7 @@ class PdfSlot extends Component
|
|||||||
|
|
||||||
$file_name = $this->entity->numberFormatter().'.pdf';
|
$file_name = $this->entity->numberFormatter().'.pdf';
|
||||||
|
|
||||||
if($this->entity instanceof \App\Models\PurchaseOrder) {
|
$file = (new \App\Jobs\Entity\CreateRawPdf($this->invitation))->handle();
|
||||||
$file = (new CreatePurchaseOrderPdf($this->invitation, $this->invitation->company->db))->rawPdf();
|
|
||||||
} else {
|
|
||||||
$file = (new \App\Jobs\Entity\CreateRawPdf($this->invitation))->handle();
|
|
||||||
}
|
|
||||||
|
|
||||||
$headers = ['Content-Type' => 'application/pdf'];
|
$headers = ['Content-Type' => 'application/pdf'];
|
||||||
|
|
||||||
@ -108,6 +104,7 @@ class PdfSlot extends Component
|
|||||||
}, $file_name, $headers);
|
}, $file_name, $headers);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function downloadEInvoice()
|
public function downloadEInvoice()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -11,20 +11,21 @@
|
|||||||
|
|
||||||
namespace App\Jobs\PurchaseOrder;
|
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\NinjaMailerJob;
|
||||||
use App\Jobs\Mail\NinjaMailerObject;
|
use App\Jobs\Mail\NinjaMailerObject;
|
||||||
use App\Jobs\Util\UnlinkFile;
|
|
||||||
use App\Libraries\MultiDB;
|
|
||||||
use App\Mail\DownloadPurchaseOrders;
|
use App\Mail\DownloadPurchaseOrders;
|
||||||
use App\Models\Company;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use App\Models\PurchaseOrderInvitation;
|
use App\Models\PurchaseOrderInvitation;
|
||||||
use App\Models\User;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
|
|
||||||
class ZipPurchaseOrders implements ShouldQueue
|
class ZipPurchaseOrders implements ShouldQueue
|
||||||
{
|
{
|
||||||
@ -62,7 +63,9 @@ class ZipPurchaseOrders implements ShouldQueue
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
foreach ($invitations as $invitation) {
|
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);
|
$zipFile->addFromString($invitation->purchase_order->numberFormatter().".pdf", $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,18 +11,19 @@
|
|||||||
|
|
||||||
namespace App\Mail\Engine;
|
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\Ninja;
|
||||||
use App\Utils\Number;
|
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\Traits\MakesHash;
|
||||||
use App\Utils\VendorHtmlEngine;
|
use App\Utils\VendorHtmlEngine;
|
||||||
|
use App\Jobs\Entity\CreateRawPdf;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\URL;
|
use Illuminate\Support\Facades\URL;
|
||||||
|
use App\DataMapper\EmailTemplateDefaults;
|
||||||
|
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
|
||||||
|
|
||||||
class PurchaseOrderEmailEngine extends BaseEmailEngine
|
class PurchaseOrderEmailEngine extends BaseEmailEngine
|
||||||
{
|
{
|
||||||
@ -119,7 +120,8 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
|
|||||||
->setTextBody($text_body);
|
->setTextBody($text_body);
|
||||||
|
|
||||||
if ($this->vendor->getSetting('pdf_email_attachment') !== false && $this->purchase_order->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
|
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']]);
|
$this->setAttachments([['file' => base64_encode($pdf), 'name' => $this->purchase_order->numberFormatter().'.pdf']]);
|
||||||
}
|
}
|
||||||
|
@ -302,10 +302,6 @@ class BaseModel extends Model
|
|||||||
if (! $invitation) {
|
if (! $invitation) {
|
||||||
throw new \Exception('Hard fail, could not create an 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());
|
return "data:application/pdf;base64,".base64_encode((new CreateRawPdf($invitation))->handle());
|
||||||
|
|
||||||
|
@ -299,14 +299,7 @@ class EmailDefaults
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Purchase Order / Invoice / Credit / Quote PDF */
|
/** Purchase Order / Invoice / Credit / Quote PDF */
|
||||||
if ($this->email->email_object->settings->pdf_email_attachment && $this->email->email_object->entity instanceof PurchaseOrder) {
|
if ($this->email->email_object->settings->pdf_email_attachment){
|
||||||
$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)) {
|
|
||||||
$pdf = ((new CreateRawPdf($this->email->email_object->invitation))->handle());
|
$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']]);
|
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [['file' => base64_encode($pdf), 'name' => $this->email->email_object->entity->numberFormatter().'.pdf']]);
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace App\Services\PurchaseOrder;
|
namespace App\Services\PurchaseOrder;
|
||||||
|
|
||||||
|
use App\Jobs\Entity\CreateRawPdf;
|
||||||
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
|
use App\Jobs\Vendor\CreatePurchaseOrderPdf;
|
||||||
use App\Models\PurchaseOrder;
|
use App\Models\PurchaseOrder;
|
||||||
use App\Models\VendorContact;
|
use App\Models\VendorContact;
|
||||||
@ -35,21 +36,7 @@ class GetPurchaseOrderPdf extends AbstractService
|
|||||||
$invitation = $this->purchase_order->invitations()->first();
|
$invitation = $this->purchase_order->invitations()->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
return (new CreatePurchaseOrderPdf($invitation))->handle();
|
return (new CreateRawPdf($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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -233,7 +233,6 @@ class PurchaseOrderTest extends TestCase
|
|||||||
|
|
||||||
$x = $purchase_order->service()->markSent()->getPurchaseOrderPdf();
|
$x = $purchase_order->service()->markSent()->getPurchaseOrderPdf();
|
||||||
|
|
||||||
// nlog($x);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPurchaseOrderRest()
|
public function testPurchaseOrderRest()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user