Exemplo n.º 1
0
 public function getPropertyPackages($id)
 {
     $property = Property::findOrFail($id);
     $packageCategories = [];
     if ($property->for_sell) {
         $packageCategories[] = PackageCategory::where('slug', 'sell')->firstOrFail();
     }
     if ($property->for_rent) {
         $packageCategories[] = PackageCategory::where('slug', 'rent')->firstOrFail();
     }
     $selectedAddons = [];
     $globalCartOrder = ProjectHelper::getGlobalCartOrder();
     $packageOrder = $property->getCartOrder();
     $order = NULL;
     if (empty($packageOrder)) {
         if (!is_null($globalCartOrder)) {
             $order = $globalCartOrder;
             $order->property()->associate($property);
             $order->save();
             $addons = [];
             foreach ($order->getAddons() as $addon) {
                 $addons[] = $addon->id;
             }
             $property->packages()->attach([$order->package->id => ['addons' => implode('|', $addons)]]);
             ProjectHelper::forgetGlobalCartOrder();
             //Redirect to review because package is already selected from homepage
             return redirect()->route('frontend.property.review', ['id' => $property->id]);
         }
     } else {
         $order = $packageOrder;
     }
     if ($order) {
         foreach ($property->packages as $package) {
             $selectedAddons[$package->id] = explode('|', $package->pivot->addons);
         }
     }
     return view('frontend.property.property_packages', ['model' => $property, 'packageCategories' => $packageCategories, 'selectedAddons' => $selectedAddons]);
 }