101 lines
2.2 KiB
PHP
101 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
|
|
use App\Models\Service;
|
|
|
|
class ServiceController extends Controller
|
|
{
|
|
/**
|
|
* Update a service
|
|
*
|
|
* @note: Route Middleware protects this path
|
|
* @param Service $o
|
|
* @return View|void
|
|
*/
|
|
public function update(Request $request,Service $o)
|
|
{
|
|
switch ($o->order_status) {
|
|
case 'CANCEL-REQUEST':
|
|
if ($request->post()) {
|
|
if (! $request->post('date_end'))
|
|
return redirect()->back()->withErrors('Cancellation Date not provided');
|
|
|
|
$o->date_end = $request->post('date_end');
|
|
|
|
foreach (['cancel_notes'] as $key) {
|
|
if ($request->post($key))
|
|
$o->setOrderInfo($key,$request->post($key));
|
|
}
|
|
|
|
$o->order_status='CANCEL-PENDING';
|
|
$o->save();
|
|
|
|
return redirect()->to(url('u/service',$o->id))->with('updated','Service cancellation submitted.');
|
|
}
|
|
|
|
return $this->update_request_cancel($o);
|
|
|
|
case 'ORDER-SENT':
|
|
if ($request->post()) {
|
|
foreach (['reference','notes'] as $key) {
|
|
$o->setOrderInfo($key,$request->post($key));
|
|
}
|
|
|
|
$o->save();
|
|
|
|
foreach ($request->post($o->stype) as $k=>$v) {
|
|
$o->type->{$k} = $v;
|
|
}
|
|
|
|
$o->type->save();
|
|
|
|
return redirect()->to(url('u/service',$o->id))->with('updated','Order sent notes updated.');
|
|
}
|
|
|
|
return $this->update_order_status($o);
|
|
|
|
case 'PROVISION-PLANNED':
|
|
if ($request->post()) {
|
|
foreach (['provision_notes'] as $key) {
|
|
$o->setOrderInfo($key,$request->post($key));
|
|
}
|
|
|
|
$o->date_start = $request->post('date_start');
|
|
|
|
$o->save();
|
|
|
|
foreach ($request->post($o->stype) as $k=>$v) {
|
|
$o->type->{$k} = $v;
|
|
}
|
|
|
|
$o->type->save();
|
|
|
|
return redirect()->to(url('u/service',$o->id))->with('updated','Order sent notes updated.');
|
|
}
|
|
|
|
return $this->update_provision_planned($o);
|
|
|
|
default:
|
|
abort(499,'Not yet implemented');
|
|
}
|
|
}
|
|
|
|
private function update_order_status(Service $o)
|
|
{
|
|
return View('r.service.order.sent',['o'=>$o]);
|
|
}
|
|
|
|
private function update_request_cancel(Service $o)
|
|
{
|
|
return View('u.service.order.cancel',['o'=>$o]);
|
|
}
|
|
|
|
private function update_provision_planned(Service $o)
|
|
{
|
|
return View('r.service.order.provision_plan',['o'=>$o]);
|
|
}
|
|
} |