/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $jobs = Job::whereNull('texted_at')->where('job_status_id', '=', JobStatus::$OPEN)->where('start_date', '>=', date("Y-m-d"))->orderBy("start_date")->get();
     $catJobs = array();
     $users = array();
     $userJobs = array();
     $userCategories = array();
     $user_ids = array();
     $jobs->load("jobCategory", "user");
     // echo '<pre>';
     //print_r($jobs);
     //echo '</pre>';
     foreach ($jobs as $job) {
         if (trim($job->latitude) != "" && trim($job->longitude) != "") {
             $userAddresses = Address::select("addresses.*", "student_profile.preferred_job_radius", Address::distanceSelectStatement($job->latitude, $job->longitude, 'distance', 'addresses'))->join("student_profile", "addresses.user_id", "=", "student_profile.user_id")->get();
             foreach ($userAddresses as $address) {
                 if ($address->distance > 0 && $address->distance <= $address->preferred_job_radius) {
                     //echo "here".$address->distance;
                     if (!isset($userCategories[$address->user_id])) {
                         $userCategories[$address->user_id] = StudentJobPreference::where('user_id', '=', $address->user_id)->lists('job_category_id');
                     }
                     if (in_array($job->job_category_id, $userCategories[$address->user_id]) == 1) {
                         if (!isset($userJobs[$address->user_id])) {
                             $user_ids[] = $address->user_id;
                             $userJobs[$address->user_id] = array();
                             $users[$address->user_id] = $address->user;
                         }
                         $userJobs[$address->user_id][] = $job;
                     }
                 }
             }
         }
         //$job->notified_at=date('Y-m-d h:i:s');
         $job->texted_at = date('Y-m-d h:i:s');
         $job->save();
     }
     $c = 0;
     if (count($user_ids) > 0) {
         $notifications = UserNotification::whereIn('user_id', $user_ids)->where("notification_types_id", '=', NotificationType::$SMS)->get();
         foreach ($notifications as $notification) {
             $user = $users[$notification->user_id];
             //$this->info($user->id);
             $c++;
             $this->info($notification->notification_value);
             $message = View::make('sms.commands.job_notifications');
             if (trim($notification->notification_value) != "" && !is_null($notification->notification_value)) {
                 try {
                     Twilio::message($notification->notification_value, substr($message, 0, 160));
                 } catch (Exception $e) {
                     \Log::info('Error: ' . $e->getMessage());
                     $this->info('Error: ' . $e->getMessage());
                 }
             }
         }
     }
     \Log::info('Cron Notification Text: ' . $c);
     $this->info($c . 'text sent');
 }
예제 #2
0
 /**
  * Show the form for editing the specified outlet.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($outlet)
 {
     $countries = Country::lists('country', 'id');
     $cities = City::where('country_id', Country::DEFAULT_COUNTRY)->lists('city', 'id');
     $retailers = Retailer::owner()->lists('name', 'id');
     $addresses = Address::select(array('addresses.id', 'addresses.address'))->lists('address', 'id');
     $images = Picture::getByRefId($outlet->id, 'outlet');
     if ($outlet->status == 'active') {
         $title = Lang::get('site/outlets/title.outlet_update');
     } else {
         $title = Lang::get('site/outlets/title.create_a_new_outlet');
     }
     return View::make('site.outlets.edit', compact('countries', 'cities', 'outlet', 'title', 'retailers', 'addresses'))->nest('imageForm', 'site.partials.image.create', ['refId' => $outlet->id, 'type' => 'outlet', 'images' => $images]);
 }
예제 #3
0
 public function index()
 {
     if (Input::get('q')) {
         $id = 1;
         $datums = Address::select('city AS value')->where('city', 'like', '%' . Input::get('q') . '%')->distinct()->take(50)->get();
         foreach ($datums as $datum) {
             //print_r($datum->toArray());
             $datum->tokens = explode(' ', $datum->value);
             $datum->id = $id;
             $id++;
         }
         return Response::json($datums);
     } else {
         return Response::json(Address::select('city AS value')->distinct()->orderBy('updated_at', 'DESC')->take(50)->get());
     }
 }
예제 #4
0
 /**
  * Show a list of all the cities formatted for Datatables.
  *
  * @return Datatables JSON
  */
 public function getAddresses($countryId = 0, $cityId = 0)
 {
     $fields = array('id', 'address', 'district', 'postal_code', 'addresses.created_at', 'addresses.updated_at');
     $query = Address::select($fields);
     if ($countryId) {
         $query = $query->byCountry($countryId);
     }
     if ($cityId) {
         $query = $query->byCity($cityId);
     }
     $addresses = array_merge(array('0' => 'All'), $query->orderBy('city_id')->lists('address', 'id'));
     return $addresses;
 }
예제 #5
0
 /**
  * 返回更新国家信息
  * @access public
  */
 function update()
 {
     $id = get_post_value('id');
     $field = array('region_id', 'country_id', 'region', 'status', 'orders');
     $m = new Address();
     $m->clear();
     $m->setField($field);
     $m->setTable('vcb_address_region');
     $m->setWhere('region_id', '=', $id);
     $data = $m->select();
     $this->assign('data', $data);
 }
예제 #6
0
 /**
  * 返回更新国家信息
  * @access public
  */
 function update()
 {
     $id = get_post_value('id');
     $field = array('country.country_id', 'country.country', 'region.region_id', 'region.region', 'province.province_id', 'province.province', 'city.city_id', 'city.city', 'city.status', 'city.orders');
     $m = new Address();
     $m->clear();
     $m->setField($field);
     $m->setWhere('country.status', '!=', '50000');
     $m->setWhere('region.status', '!=', '50000');
     $m->setWhere('province.status', '!=', '50000');
     $m->setWhere('city.status', '!=', '50000');
     $m->setWhere('city.city_id', '=', $id);
     $m->setTable('vcb_address_country AS country');
     $m->setJoin('vcb_address_region as region', 'country.country_id=region.country_id');
     $m->setJoin('vcb_address_province as province', 'region.region_id=province.region_id');
     $m->setJoin('vcb_address_city as city', 'province.province_id=city.province_id');
     $data = $m->select();
     $this->assign('data', $data);
     $r = $m->getRegion($data[0]['country_id']);
     $this->assign('region', $r);
     //输出数据
     $p = $m->getProvince($data[0]['region_id']);
     $this->assign('province', $p);
 }
예제 #7
0
파일: main.php 프로젝트: rhalf/app_track
    }
});
//=============================================================================
//Address
//=============================================================================
Flight::route('GET /v1/main/address', function () {
    try {
        $array = Address::selectAll();
        Flight::ok($array);
    } catch (Exception $exception) {
        Flight::error($exception);
    }
});
Flight::route('GET /v1/main/address/@id', function ($id) {
    try {
        $object = Address::select($id);
        Flight::ok($object);
    } catch (Exception $exception) {
        Flight::error($exception);
    }
});
Flight::route('POST /v1/main/address', function () {
    try {
        $object = Address::insert();
        Flight::ok($object);
    } catch (Exception $exception) {
        Flight::error($exception);
    }
});
Flight::route('PUT /v1/main/address/@id', function ($id) {
    try {
예제 #8
0
 /**
  * Show a list of all the cities formatted for Datatables.
  *
  * @return Datatables JSON
  */
 public function getAddresses($countryId = 0, $cityId = 0)
 {
     $fields = array('addresses.id', 'address', 'district', 'postal_code', 'addresses.created_at', 'addresses.updated_at');
     $query = Address::select($fields);
     if ($countryId) {
         $query = $query->byCountry($countryId);
     }
     if ($cityId) {
         $query = $query->byCity($cityId);
     }
     $addresses = $query->orderBy('city_id');
     return Datatables::of($addresses)->add_column('actions', '<a href="{{{ URL::to(\'admin/addresses/\' . $id . \'/edit\' ) }}}" class="iframe btn btn-xs btn-default">{{{ Lang::get(\'button.edit\') }}}</a>
                             <a href="{{{ URL::to(\'admin/addresses/\' . $id . \'/delete\' ) }}}" class="iframe btn btn-xs btn-danger">{{{ Lang::get(\'button.delete\') }}}</a>
         ')->remove_column('id')->make();
 }