/**
  * Generates results based on input.
  */
 public function generate()
 {
     $validation = $this->validate();
     if ($validation === true) {
         $offers = Offer::whereHas('leadstat', function ($query) {
             $query->where('date', '>=', Input::get('date_start'))->where('date', '<=', Input::get('date_end'));
         });
         $country = Input::get('country');
         if (!empty($country)) {
             $offers->whereHas('countries', function ($query) use($country) {
                 $query->where('country', '=', $country);
             });
         }
         $offerIds = Input::get('offer_ids');
         // 0 denotes all offers.
         if (!in_array('0', $offerIds)) {
             $offers->whereRaw('id IN (' . implode(',', $offerIds) . ')');
         }
         $this->generated = true;
         return $this->showResults($offers->get()->sortBy('name'));
     } else {
         $this->setAlertDanger($validation);
         return $this->showResults();
     }
 }
示例#2
0
 public function getMoreOffersPage($lastid)
 {
     $last_id = 0;
     $campusid = $this->getDevice();
     $obj = new BaseController();
     $campusid = $this->getDevice();
     if ($campusid == 0) {
         $countryname = $obj->getCountryName();
         if ($countryname == 'NONE') {
             return Redirect::route('selectcampus-get');
         } else {
             //check whether the country name exists inthe db
             $locationcountry = Country::where('name', '=', $countryname);
             if ($locationcountry->count()) {
                 $locationcountrycode = $locationcountry->first()->code;
                 $locationcountrycode = strtolower($locationcountrycode);
                 return Redirect::route('selectcountryid', $locationcountrycode);
             } else {
                 return Redirect::route('selectcampus-get');
             }
         }
     }
     $more = true;
     $college = Institution::whereHas('Branch', function ($query) use($campusid) {
         $query->where('id', '=', $campusid);
     })->first();
     $collegeid = $college->id;
     $countryid = Country::where('id', '=', $college->country_id)->first()->id;
     $squeebs = Offer::whereHas('Squeeb', function ($query) use($campusid, $lastid) {
         $query->where('branch_id', '=', $campusid)->where('id', '<', $lastid)->where('active', '=', TRUE);
     })->orwhereHas('Squeeb', function ($query) use($lastid) {
         $query->where('branch_id', '=', 0)->where('world', '=', TRUE)->where('id', '<', $lastid)->where('active', '=', TRUE);
     })->orwhereHas('Squeeb', function ($query) use($lastid, $countryid) {
         $query->where('branch_id', '=', 0)->where('country', '=', $countryid)->where('id', '<', $lastid)->where('active', '=', TRUE);
     })->orwhereHas('Squeeb', function ($query) use($lastid, $collegeid) {
         $query->where('branch_id', '=', 0)->where('college', '=', $collegeid)->where('id', '<', $lastid)->where('active', '=', TRUE);
     });
     $last = $squeebs;
     $squeebs = $squeebs->orderBy('id', 'DESC')->take(self::SQUEEB_LIMIT)->get();
     if ($squeebs->count()) {
         $last_id = $last->orderBy('id', 'DESC')->take(self::SQUEEB_LIMIT)->get()->last()->Squeeb()->first()->id;
     }
     View::share('last_id', $last_id);
     View::share('squeebs', $squeebs);
     //get the top squeeb to display
     $topsqueebs = Squeeb::where('active', '=', TRUE)->where('model', '=', 'Offer')->where('branch_id', '=', $campusid)->orderBy('views', 'DESC')->take(self::TOP_SQUEEB_LIMIT)->get();
     View::share('topsqueebs', $topsqueebs);
     if ($lastid <= 0 or $squeebs->count() != self::SQUEEB_LIMIT) {
         $more = false;
     }
     $college = Institution::whereHas('Branch', function ($query) use($campusid) {
         $query->where('id', '=', $campusid);
     })->first();
     View::share('college', $college);
     View::share('more', $more);
     $mycampus = Branch::where('id', '=', $campusid)->first();
     View::share('mycampus', $mycampus);
     if (Auth::user()) {
         return View::make('member.offer');
     }
     return View::make('guest.offer');
 }