/**
  * Show the form for editing the specified Tracking.
  *
  * @param  int $location_id
  * @param  int $tracking_id
  *
  * @return Response
  */
 public function insert($location_id, $tracking_id)
 {
     $subindustries = $products = [];
     $subindustry_id = $is_disabled = null;
     $location = $this->locationRepository->findWithoutFail($location_id);
     if (empty($location)) {
         Flash::error('Location not found');
         return redirect(route('inserter.locations.index'));
     }
     $tracking = $this->trackingRepository->with(['facing', 'location'])->findWhere(['id' => $tracking_id, 'location_id' => $location_id])->first();
     if (empty($tracking)) {
         Flash::error('Tracking not found');
         return redirect(route('inserter.locations.trackings.index', $location->id));
     }
     $previousId = $tracking->previousId($location_id);
     $nextId = $tracking->nextId($location_id);
     $previousTracking = $tracking->previousTracking();
     $tracking_original_state = $tracking->state;
     // Get data from previous tracking (last month)
     if ($tracking->isPending() && $previousTracking) {
         $tracking->brand_id = $previousTracking->brand_id;
         $tracking->product_id = $previousTracking->product_id;
         $tracking->state = $previousTracking->state;
     }
     if ($tracking->inserted_at && $tracking->inserted_at->diffInMinutes(Carbon::now()) > 10) {
         Flash::error('Trackings are only editable within 10 minutes after insertion.');
     }
     $brands = $this->brandRepository->lists('name', 'id');
     $brandOwners = $this->brandOwnerRepository->lists('name', 'id');
     $brand_id = Input::old('brand_id') ?: $tracking->brand_id;
     if (isset($brand_id)) {
         $brand = $this->brandRepository->findWithoutFail($brand_id);
         if (!$brand) {
             Flash::error('Brand not found');
             return redirect(route('inserter.locations.trackings.index', $location->id));
         }
         $subindustries = $brand->industry->subindustries->lists('name', 'id');
     }
     $product_id = Input::old('product_id') ?: $tracking->product_id;
     if ($product_id) {
         $product = $this->productRepository->findWithoutFail($product_id);
         $subindustry_id = $product->subindustry_id;
     }
     $industries = $this->industryRepository->lists('name', 'id');
     $subindustry_id = Input::old('subindustry_id') ?: $subindustry_id;
     if ($subindustry_id) {
         $subindustry = $this->subindustryRepository->findWithoutFail($subindustry_id);
         if (!$subindustry) {
             Flash::error('Subindustry not found');
             return redirect(route('inserter.locations.trackings.index', $location->id));
         }
         $products = $subindustry->products->lists('name', 'id');
     }
     if ($tracking->isInserted() and !$tracking->product_id and !$tracking->brand_id) {
         $tracking_state = 'empty_billboard';
     } elseif ($tracking->isSomethingWrong()) {
         $tracking_state = 'something_wrong';
     } else {
         $tracking_state = 'regular_billboard';
     }
     $tracking_state = Input::old('tracking_state') ?: $tracking_state;
     if ($tracking_state != 'regular_billboard') {
         $is_disabled = 'disabled';
     }
     $modal_subindustries = $this->subindustryRepository->lists('name', 'id');
     $index_route = route('inserter.locations.trackings.index', $location->id);
     $previous_route = route('inserter.locations.trackings.insert', [$location->id, 'tracking' => $previousId]);
     $next_route = route('inserter.locations.trackings.insert', [$location->id, 'tracking' => $nextId]);
     if (!$previousId) {
         $previous_route = $index_route;
     }
     if (!$nextId) {
         $next_route = $index_route;
     }
     return view('inserter.locations.trackings.insert')->with('brandOwners', $brandOwners)->with('brands', $brands)->with('industries', $industries)->with('is_disabled', $is_disabled)->with('location', $location)->with('modal_subindustries', $modal_subindustries)->with('next_route', $next_route)->with('previousTracking', $previousTracking)->with('previous_route', $previous_route)->with('products', $products)->with('subindustries', $subindustries)->with('subindustry_id', $subindustry_id)->with('tracking', $tracking)->with('tracking_state', $tracking_state)->with('tracking_original_state', $tracking_original_state);
 }