/**
  * 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 = OsaLookup::findOrFail($id);
     $messages = ['unique_with' => 'This combination of selection already exists.'];
     $this->validate($request, ['customer_id' => 'required|unique_with:osa_lookups, regions = region_id, distributors = distributor_id, store_id = store_id, templates = template_id,' . $id, 'regions' => 'required', 'distributors' => 'required', 'store_id' => '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();
         OsaLookupTarget::where('osa_lookup_id', $lookup->id)->delete();
         foreach ($request->target as $category_id => $value) {
             if ($category_id > 0) {
                 if (!empty($value)) {
                     $newlookup = new OsaLookupTarget();
                     $newlookup->osa_lookup_id = $lookup->id;
                     $newlookup->category_id = $category_id;
                     $newlookup->target = $value;
                     $newlookup->total = $request->total[$category_id];
                     $newlookup->save();
                 }
             }
         }
         \DB::commit();
         Session::flash('flash_message', 'OSA Lookup successfully updated!');
         return redirect()->route("osalookup.edit", [$id]);
     } catch (Exception $e) {
         dd($e);
         DB::rollBack();
         return redirect()->back();
     }
 }