예제 #1
0
 public function autocomplete()
 {
     $settlement = (int) Input::get('settlement');
     $name = htmlentities(Input::get('query'), ENT_QUOTES, 'UTF-8', false);
     if (0 >= $settlement || self::MIN_AUTOCOMPLETE_LENGTH > mb_strlen($name)) {
         return ['results' => [], 'more' => false];
     }
     $client = Client::createFromArray(Input::all());
     if (!$client) {
         return ['results' => [], 'more' => false];
     }
     /**
      * @var Speedy $speedy
      */
     $speedy = app('speedy');
     $speedy->user($client);
     $streets = $speedy->listStreets($settlement, Language::create(), $name);
     if (!isset($streets->return)) {
         throw new SpeedyException('Error while searching for Speedy streets.');
     }
     $result = [];
     $streets = Street::createFromSoapResponse($streets->return);
     foreach ($streets as $street) {
         if (!$street instanceof Street) {
             continue;
         }
         $entry = ['id' => $street->id, 'name' => $street->formatted];
         $entry['ref'] = $street->name;
         $result[] = (object) $entry;
     }
     return ['results' => $result, 'more' => false];
 }
예제 #2
0
 protected function loadServicesForSites(array $data, $sender_site_id, $receiver_site_id)
 {
     /**
      * @var Speedy $speedy
      */
     $speedy = app('speedy');
     $speedy->user(Client::createFromArray($data));
     $sender_site_id = (int) $sender_site_id;
     $receiver_site_id = (int) $receiver_site_id;
     $date = isset($data['date']) ? Carbon::createFromFormat('Y-m-d', $data['date']) : null;
     if (!$sender_site_id || !$receiver_site_id) {
         throw new SpeedyException('Invalid sender or receiver site ID given for service availability check.');
     }
     $services = $speedy->listServicesForSites($sender_site_id, $receiver_site_id, Language::create(), $date);
     if (!isset($services->return) || !$services->return) {
         throw new SpeedyException('Invalid Speedy services response detected.');
     }
     $services = CourierServiceExt::createFromSoapResponse($services->return);
     return $services;
 }
예제 #3
0
 public function autocomplete()
 {
     $client = Client::createFromArray(Input::all());
     if (!$client) {
         return ['results' => [], 'more' => false];
     }
     /**
      * @var Speedy $speedy
      */
     $speedy = app('speedy');
     $speedy->user($client);
     $settlement = Input::get('settlement');
     if ((string) (int) $settlement != $settlement) {
         $site = Site::find($settlement);
         if ($site instanceof Site) {
             $settlement = $site->id;
         }
     }
     $settlement = (int) $settlement;
     $name = htmlentities(Input::get('query'), ENT_QUOTES, 'UTF-8', false);
     if (0 >= $settlement) {
         return ['results' => [], 'more' => false];
     }
     $offices = $speedy->listOfficesEx($settlement, Language::create(), $name);
     if (!$offices || !isset($offices->return)) {
         return ['results' => [], 'more' => false];
     }
     $result = [];
     $offices = OfficeEx::createFromSoapResponse($offices->return);
     foreach ($offices as $office) {
         if (!$office instanceof OfficeEx) {
             continue;
         }
         $entry = ['id' => $office->id, 'name' => $office->name];
         $entry['ref'] = $office->name;
         $result[] = (object) $entry;
     }
     return ['results' => $result, 'more' => false];
 }
예제 #4
0
파일: Speedy.php 프로젝트: rolice/speedy
 public function findService($id, Carbon $date = null)
 {
     $services = $this->listServices(Language::create(), $date);
     if (!$services || !isset($services->return) || !is_array($services->return)) {
         return null;
     }
     foreach ($services->return as $service) {
         if ($id == $service->typeId) {
             return $service;
         }
     }
     return null;
 }
예제 #5
0
파일: Site.php 프로젝트: rolice/speedy
 public static function find($name)
 {
     if (!$name) {
         return null;
     }
     $filter = new FilterSite();
     $filter->searchString = $name;
     /**
      * @var Speedy $speedy
      */
     $speedy = app('speedy');
     $sites = $speedy->listSitesEx($filter, Language::create());
     if (!isset($sites->return)) {
         throw new SpeedyException('Error while searching for Speedy sites.');
     }
     $settlements = SiteEx::createFromSoapResponse($sites->return);
     $site_ex = $settlements->first();
     if (!$site_ex || !$site_ex instanceof SiteEx) {
         return null;
     }
     if (!$site_ex->site instanceof static) {
         return null;
     }
     return $site_ex->site;
 }