Esempio n. 1
0
 public static function createFromSoapResponse($response)
 {
     $result = [];
     if (is_object($response)) {
         $response = [$response];
     }
     if (is_array($response)) {
         foreach ($response as $siteEx) {
             if (!isset($siteEx->exactMatch) || !isset($siteEx->site)) {
                 throw new SpeedyException('SiteEx structure appear to be invalid.');
             }
             $site = Site::createFromSoapResponse($siteEx->site);
             $result[] = new static($site, $siteEx->exactMatch);
         }
     }
     return new Collection($result);
 }
Esempio n. 2
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];
 }
Esempio n. 3
0
 public static function createFromSoapResponse($response)
 {
     $result = new static();
     $result->site = isset($response->resultSite) && is_object($response->resultSite) ? Site::createFromSoapResponse($response->resultSite) : null;
     $result->postCode = isset($response->postCode) ? $response->postCode : null;
     $result->streetName = isset($response->streetName) ? $response->streetName : null;
     $result->streetType = isset($response->streetType) ? $response->streetType : null;
     $result->streetId = isset($response->streetId) ? (int) $response->streetId : null;
     $result->quarterName = isset($response->quarterName) ? $response->quarterName : null;
     $result->quarterType = isset($response->quarterType) ? $response->quarterType : null;
     $result->quarterId = isset($response->quarterId) ? (int) $response->quarterId : null;
     $result->streetNo = isset($response->streetNo) ? $response->streetNo : null;
     $result->blockNo = isset($response->blockNo) ? $response->blockNo : null;
     $result->entranceNo = isset($response->entranceNo) ? $response->entranceNo : null;
     $result->floorNo = isset($response->floorNo) ? $response->floorNo : null;
     $result->apartmentNo = isset($response->apartmentNo) ? $response->apartmentNo : null;
     $result->addressNote = isset($response->addressNote) ? $response->addressNote : null;
     $result->coordX = isset($response->coordX) ? (double) $response->coordX : null;
     $result->coordY = isset($response->coordY) ? (double) $response->coordY : null;
     $result->coordTypeId = isset($response->coordTypeId) ? (int) $response->coordTypeId : null;
     $result->commonObjectId = isset($response->commonObjectId) ? (int) $response->commonObjectId : null;
     $result->commonObjectName = isset($response->commonObjectName) ? $response->commonObjectName : null;
     $result->fullAddressString = isset($response->fullAddressString) ? $response->fullAddressString : null;
     $result->siteAddressString = isset($response->siteAddressString) ? $response->siteAddressString : null;
     $result->localAddressString = isset($response->localAddressString) ? $response->localAddressString : null;
     $result->countryId = isset($response->countryId) ? (int) $response->countryId : null;
     $result->frnAddressLine1 = isset($response->frnAddressLine1) ? $response->frnAddressLine1 : null;
     $result->frnAddressLine2 = isset($response->frnAddressLine2) ? $response->frnAddressLine2 : null;
     $result->stateId = isset($response->stateId) ? $response->stateId : null;
     if (!$result->streetId) {
         $result->streetId = null;
     }
     if (!$result->quarterId) {
         $result->quarterId = null;
     }
     if (!$result->commonObjectId) {
         $result->commonObjectId = null;
     }
     if (!$result->site || !$response->countryId) {
         throw new SpeedyException('Invalid address ex detected.');
     }
     return $result;
 }
Esempio n. 4
0
 public static function createFromRequest(array $data)
 {
     $result = new static();
     if (isset($data['settlement']) && ($site = Site::detect($data['settlement']))) {
         $result->siteId = $site->id;
         $result->siteName = $site->name;
     }
     $result->postCode = isset($data['postalCode']) ? $data['postalCode'] : null;
     $result->streetId = isset($data['street']) ? (int) $data['street'] : null;
     $result->streetNo = isset($data['street_num']) ? $data['street_num'] : null;
     $result->entranceNo = isset($data['street_vh']) ? $data['street_vh'] : null;
     $result->floorNo = isset($data['street_et']) ? $data['street_et'] : null;
     $result->apartmentNo = isset($data['street_ap']) ? $data['street_ap'] : null;
     if (!$result->siteId) {
         $result->siteId = null;
     }
     if (!$result->streetId) {
         $result->streetId = null;
     }
     return $result;
 }
Esempio n. 5
0
 public static function detect($site)
 {
     return (string) (int) $site == $site ? Site::getById((int) $site) : Site::find($site);
 }
Esempio n. 6
0
 protected function mapCountries()
 {
     foreach (static::CountryMapping as $index => $expected) {
         if (!$this->{$expected}) {
             $site = Site::getById($this->{static::SiteMapping[$index]});
             if ($site instanceof Site) {
                 $this->{static::CountryMapping[$index]} = $site->countryId;
             }
         }
     }
 }