![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/medad.corals.io/Corals/modules/Medad/Services/ |
<?php namespace Corals\Modules\Medad\Services; use Corals\Foundation\Services\BaseServiceClass; use Corals\Media\Traits\MediaControllerTrait; use Corals\Modules\Medad\Facades\Medad; use Corals\Modules\Medad\Models\DeliveryNote; use Corals\Modules\Medad\Models\PurchaseOrder; use Illuminate\Foundation\Validation\ValidatesRequests; class DeliveryNoteService extends BaseServiceClass { use ValidatesRequests, MediaControllerTrait; public function preStore($request, &$additionalData) { if (!$request->filled('code')) { $purchaseOrder = PurchaseOrder::find($request->get('purchase_order_id')); $poCode = $purchaseOrder->code; $deliveryNoteSeq = DeliveryNote::where('purchase_order_id', $purchaseOrder->id)->count(); $deliveryNoteSeq += 1; $code = Medad::getCode(DeliveryNote::class, $poCode, $deliveryNoteSeq); $additionalData['code'] = $code; } $company = Medad::getUserCompany(); $additionalData['owner_company_id'] = $company->id; } public function preStoreUpdate($request, &$additionalData) { $openStatus = $request->get('status-with-submit'); if ($openStatus) { if ($request->get('driver_id')) { $additionalData['status'] = 'assigned'; } else { $additionalData['status'] = 'open'; } } elseif (!$request->has('status')) { $additionalData['status'] = 'draft'; } } public function postStoreUpdate($request, &$additionalData) { $deliveryNote = $this->model; $this->handleAttachments($request, $deliveryNote); if (($deliveryNote->wasChanged(['status']) || $deliveryNote->wasRecentlyCreated) && $deliveryNote->status == 'submitted') { event('notifications.medad.delivery_note_submitted', [ 'deliveryNote' => $deliveryNote, ]); if ($deliveryNote->driver_id != null) { $deliveryNote->update(['assignment_date' => now()]); } } if (($deliveryNote->wasChanged(['status']) || $deliveryNote->wasRecentlyCreated) && $deliveryNote->status == 'started') { event('notifications.medad.delivery_note_started', [ 'deliveryNote' => $deliveryNote, ]); } if (($deliveryNote->wasChanged(['status']) || $deliveryNote->wasRecentlyCreated) && $deliveryNote->status == 'delivered') { event('notifications.medad.delivery_note_delivered', [ 'deliveryNote' => $deliveryNote, ]); } $openStatus = $request->get('status-with-submit'); if ($openStatus) { if ($request->get('driver_id')) { $additionalData['status'] = 'assigned'; } else { $additionalData['status'] = 'open'; } } } public function storeAttachments($request, $deliveryNote) { $this->handleAttachments($request, $deliveryNote); } public function updateDriver($request, $deliveryNote) { if ($request->driver_id) { if ($deliveryNote->status != 'assigned') { $deliveryNote->update(['status' => 'assigned']); } } else { $deliveryNote->update(['status' => 'open']); } $deliveryNote->update(['driver_id' => $request->driver_id, 'assignment_date' => now()]); return $deliveryNote; } public function assignToMe($deliveryNote) { $deliveryNote->update(['driver_id' => user()->id, 'assignment_date' => now(), 'status' => 'assigned']); } public function recipientDetails($request, $deliveryNote) { $deliveryNote->update([ 'recipient_name' => $request->recipient_name, 'recipient_phone' => $request->recipient_phone, 'recipient_id_number' => $request->recipient_id_number ]); $this->handleAttachments($request, $deliveryNote); } public function markAs($request, $deliveryNote, $target) { if ($target == 'started') { $deliveryNote->update(['status' => $target, 'started_at' => now()]); } elseif ($target == 'delivered') { $deliveryNote->update(['status' => $target, 'completed_at' => now()]); } elseif ($target == 'open') { $deliveryNote->update(['status' => $target, 'driver_id' => null]); } else { $deliveryNote->update(['status' => $target]); } } public function releaseDriver($deliveryNote) { $deliveryNote->update(['driver_id' => null, 'status' => 'open']); } }