diff --git a/app/Http/Controllers/AdminHomeController.php b/app/Http/Controllers/AdminHomeController.php index 5d71308..92cda31 100644 --- a/app/Http/Controllers/AdminHomeController.php +++ b/app/Http/Controllers/AdminHomeController.php @@ -19,7 +19,12 @@ class AdminHomeController extends Controller public function service_update(Request $request, Service $o) { - switch (strtolower($request->input('action'))) + if (! $o->validStatus(strtolower($request->input('action')))) + return $this->service($o); + + $action = strtolower($request->input('action')); + + switch ($action) { case 'approve': // Send an email to the supplier. @@ -31,20 +36,17 @@ class AdminHomeController extends Controller // @todo Your order has been submitted to supplier. // Update the service to "ORDER-SENT" - $o->nextStatus(); + $o->nextStatus($action); + break; case 'reject': - if (! $x=$o->validStatus(strtolower($request->input('action')))) - return $this->service($o); - $o->order_info = array_merge($o->order_info ? $o->order_info : [],['reason'=>$request->input('notes')]); - $o->order_status = $x; - $o->save(); // Send mail to user Mail::to($o->orderby->email)->queue((new OrderRequestReject($o,$request->input('notes')))->onQueue('email')); + $o->nextStatus($action); break; // No action specified. diff --git a/app/Models/Service.php b/app/Models/Service.php index 1ccaf7a..7f5717a 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -56,7 +56,7 @@ class Service extends Model ]; private $valid_status = [ - 'ORDER-SUBMIT' => ['accept'=>'ORDER-SENT','reject'=>'ORDER-REJECTED'], + 'ORDER-SUBMIT' => ['approve'=>'ORDER-SENT','reject'=>'ORDER-REJECTED'], ]; public function account() @@ -167,9 +167,13 @@ class Service extends Model /** * This function will present the Order Info Details */ - public function getOrderInfoDetailsAttribute() + public function getOrderInfoDetailsAttribute(): string { + if (! $this->order_info) + return ''; + $result = ''; + foreach ($this->order_info as $k=>$v) $result .= sprintf('%s: %s
',ucfirst($k),$v); @@ -222,17 +226,16 @@ class Service extends Model return $this->active OR ($this->order_status AND ! in_array($this->order_status,$this->inactive_status)); } - public function nextStatus() { - switch ($this->order_status) + public function nextStatus(string $status) { + if ($x=$this->validStatus($status)) { - case 'ORDER-REQUEST': - $this->order_status = 'ORDER-SENT'; - $this->save(); - return $this; + $this->order_status = $x; + $this->save(); - default: - abort(500,'Next Status not set up for:'.$this->order_status); + return $this; } + + abort(500,'Next Status not set up for:'.$this->order_status); } /** diff --git a/resources/theme/backend/adminlte/a/service.blade.php b/resources/theme/backend/adminlte/a/service.blade.php index cca84c0..ffa3eda 100644 --- a/resources/theme/backend/adminlte/a/service.blade.php +++ b/resources/theme/backend/adminlte/a/service.blade.php @@ -45,6 +45,7 @@ @switch($o->order_status) @case('ORDER-SUBMIT') + @break; @endswitch