From 552532f1efe163181fd4abee6fac941d0ad25739 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 29 May 2023 13:35:52 +1000 Subject: [PATCH] Improve functionality of Purchase Order Signatures --- .../VendorPortal/PurchaseOrderController.php | 37 +++++++++++-------- app/Jobs/Invoice/InjectSignature.php | 10 +++-- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/VendorPortal/PurchaseOrderController.php b/app/Http/Controllers/VendorPortal/PurchaseOrderController.php index 1a9d309558d1..e6d480c977e6 100644 --- a/app/Http/Controllers/VendorPortal/PurchaseOrderController.php +++ b/app/Http/Controllers/VendorPortal/PurchaseOrderController.php @@ -146,25 +146,32 @@ class PurchaseOrderController extends Controller $purchase_orders = PurchaseOrder::query() ->whereIn('id', $this->transformKeys($data['purchase_orders'])) ->where('company_id', auth()->guard('vendor')->user()->vendor->company_id) - ->whereIn('status_id', [PurchaseOrder::STATUS_DRAFT, PurchaseOrder::STATUS_SENT]) ->where('is_deleted', 0) - ->withTrashed() - ->cursor()->each(function ($purchase_order) { - $purchase_order->service() - ->markSent() - ->applyNumber() - ->setStatus(PurchaseOrder::STATUS_ACCEPTED) - ->save(); + ->withTrashed(); - if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) { - InjectSignature::dispatch($purchase_order, request()->signature); - } + $purchase_count_query = clone $purchase_orders; - event(new PurchaseOrderWasAccepted($purchase_order, auth()->guard('vendor')->user(), $purchase_order->company, Ninja::eventVars())); - }); + $purchase_orders->whereIn('status_id', [PurchaseOrder::STATUS_DRAFT, PurchaseOrder::STATUS_SENT]) + ->cursor()->each(function ($purchase_order) { + + $purchase_order->service() + ->markSent() + ->applyNumber() + ->setStatus(PurchaseOrder::STATUS_ACCEPTED) + ->save(); - if (count($data['purchase_orders']) == 1) { - $purchase_order = PurchaseOrder::withTrashed()->where('is_deleted', 0)->whereIn('id', $this->transformKeys($data['purchase_orders']))->first(); + if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) { + (new InjectSignature($purchase_order, request()->signature))->handle(); + // InjectSignature::dispatch($purchase_order, request()->signature); + } + + event(new PurchaseOrderWasAccepted($purchase_order, auth()->guard('vendor')->user(), $purchase_order->company, Ninja::eventVars())); + }); + + nlog($purchase_count_query->count()); + + if ($purchase_count_query->count() == 1) { + $purchase_order = $purchase_count_query->first(); return redirect()->route('vendor.purchase_order.show', ['purchase_order' => $purchase_order->hashed_id]); } else { diff --git a/app/Jobs/Invoice/InjectSignature.php b/app/Jobs/Invoice/InjectSignature.php index 5d65a6b37809..fd5792adf15d 100644 --- a/app/Jobs/Invoice/InjectSignature.php +++ b/app/Jobs/Invoice/InjectSignature.php @@ -54,9 +54,11 @@ class InjectSignature implements ShouldQueue $invitation->signature_base64 = $this->signature; $invitation->save(); - if($this->entity instanceof PurchaseOrder) - CreatePurchaseOrderPdf::dispatch($invitation); - else - CreateEntityPdf::dispatch($invitation); + $this->entity->refresh()->service()->touchPdf(true); + + // if($this->entity instanceof PurchaseOrder) + // (new CreatePurchaseOrderPdf($invitation))->handle(); + // else + // (new CreateEntityPdf($invitation))->handle(); } }