/**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $lookup = SosLookup::findOrFail($id);
     $messages = ['unique_with' => 'This combination of selection already exists.'];
     $this->validate($request, ['customer_id' => 'required|unique_with:sos_lookups, regions = region_id, distributors = distributor_id, stores = store_id, templates = template_id,' . $id, 'regions' => 'required', 'distributors' => 'required', 'stores' => 'required', 'templates' => 'required'], $messages);
     \DB::beginTransaction();
     try {
         $lookup->customer_id = $request->customer_id;
         $lookup->region_id = $request->regions;
         $lookup->distributor_id = $request->distributors;
         $lookup->store_id = $request->stores;
         $lookup->template_id = $request->templates;
         $lookup->update();
         SosLookupPercentage::where('sos_lookup_id', $lookup->id)->delete();
         foreach ($request->category as $category_id => $category) {
             $less = $category[0];
             foreach ($category as $key => $value) {
                 if ($key > 0) {
                     if (!empty($value)) {
                         $newlookup = new SosLookupPercentage();
                         $newlookup->sos_lookup_id = $lookup->id;
                         $newlookup->category_id = $category_id;
                         $newlookup->sos_id = $key;
                         $newlookup->less = $less;
                         $newlookup->value = $value;
                         $newlookup->save();
                     }
                 }
             }
         }
         \DB::commit();
         Session::flash('flash_message', 'SOS Lookup successfully updated!');
         return redirect()->route("soslookup.edit", [$id]);
     } catch (Exception $e) {
         dd($e);
         DB::rollBack();
         return redirect()->back();
     }
 }