Improve functionality of Purchase Order Signatures

This commit is contained in:
David Bomba 2023-05-29 13:35:52 +10:00
parent db5b9adcc5
commit 552532f1ef
2 changed files with 28 additions and 19 deletions

View File

@ -146,25 +146,32 @@ class PurchaseOrderController extends Controller
$purchase_orders = PurchaseOrder::query() $purchase_orders = PurchaseOrder::query()
->whereIn('id', $this->transformKeys($data['purchase_orders'])) ->whereIn('id', $this->transformKeys($data['purchase_orders']))
->where('company_id', auth()->guard('vendor')->user()->vendor->company_id) ->where('company_id', auth()->guard('vendor')->user()->vendor->company_id)
->whereIn('status_id', [PurchaseOrder::STATUS_DRAFT, PurchaseOrder::STATUS_SENT])
->where('is_deleted', 0) ->where('is_deleted', 0)
->withTrashed() ->withTrashed();
->cursor()->each(function ($purchase_order) {
$purchase_order->service()
->markSent()
->applyNumber()
->setStatus(PurchaseOrder::STATUS_ACCEPTED)
->save();
if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) { $purchase_count_query = clone $purchase_orders;
InjectSignature::dispatch($purchase_order, request()->signature);
}
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) { if (request()->has('signature') && ! is_null(request()->signature) && ! empty(request()->signature)) {
$purchase_order = PurchaseOrder::withTrashed()->where('is_deleted', 0)->whereIn('id', $this->transformKeys($data['purchase_orders']))->first(); (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]); return redirect()->route('vendor.purchase_order.show', ['purchase_order' => $purchase_order->hashed_id]);
} else { } else {

View File

@ -54,9 +54,11 @@ class InjectSignature implements ShouldQueue
$invitation->signature_base64 = $this->signature; $invitation->signature_base64 = $this->signature;
$invitation->save(); $invitation->save();
if($this->entity instanceof PurchaseOrder) $this->entity->refresh()->service()->touchPdf(true);
CreatePurchaseOrderPdf::dispatch($invitation);
else // if($this->entity instanceof PurchaseOrder)
CreateEntityPdf::dispatch($invitation); // (new CreatePurchaseOrderPdf($invitation))->handle();
// else
// (new CreateEntityPdf($invitation))->handle();
} }
} }