$o]); } public function service_update(Request $request, Service $o) { 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. // @todo Change to address to suppliers email address. Mail::to('help@graytech.net.au') ->queue((new OrderRequestApprove($o,$request->input('order_notes') ?: 'NONE'))->onQueue('high')); // Send an email to the client. // @todo Your order has been submitted to supplier. // Update the service to "ORDER-SENT" $o->nextStatus($action); break; case 'reject': $o->order_info = array_merge($o->order_info ? $o->order_info : [],['reason'=>$request->input('notes')]); // Send mail to user Mail::to($o->orderby->email)->queue((new OrderRequestReject($o,$request->input('notes')))->onQueue('email')); $o->nextStatus($action); break; case 'hold': case 'release': $o->nextStatus($action); break; case 'update_reference': $o->order_info = array_merge($o->order_info ? $o->order_info : [],['order_reference'=>$request->input('notes')]); $o->save(); // No action specified. default: return $this->service($o); } return redirect(url('/a/service',[$o->id])); } public function setup() { return view('a.setup'); } public function setup_update(Request $request) { $request->validate([ 'site_name' => 'required|string|max:255', 'site_email' => 'required|string|email|max:255', 'site_address1' => 'required|string|max:255', 'site_address2' => 'nullable|string|max:255', 'site_city' => 'required|string|max:64', 'site_state' => 'required|string|max:32', 'site_postcode' => 'required|string|max:8', 'site_phone' => 'nullable|regex:/[0-9 ]+/|min:6|max:12', 'site_fax' => 'nullable|regex:/[0-9 ]+/|min:6|max:12', ]); // If we are more input that sample data, reject the update. if (config('SITE_SETUP')->allowed_keys(array_keys($request->except('_token')))) return redirect()->back() ->withInput() ->withErrors('Invalid configuration - values not expected.'); foreach ($request->except('_token') as $key => $value) { if (! $value) { SiteDetails::where('site_id',config('SITE_SETUP')->id)->where('key',$key)->delete(); } else { try { if ($key == 'site_logo' AND $value instanceof UploadedFile) { $path = $value->storeAs('site/'.config('SITE_SETUP')->id,$value->getClientOriginalName(),'public'); SiteDetails::updateOrCreate([ 'site_id'=>config('SITE_SETUP')->id, 'key'=>$key, ],[ 'value'=>$path, ]); } else { // Update or create our config record. SiteDetails::updateOrCreate([ 'site_id'=>config('SITE_SETUP')->id, 'key'=>$key, ],[ 'value'=>$value, ]); } } catch (\Exception $e) { Log::debug($e->getMessage(),['k'=>$key,'v'=>$value]); } } } return redirect()->back() ->with('success','Setup Updated!');; } }