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