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); }
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]; }
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; }
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; }
public static function detect($site) { return (string) (int) $site == $site ? Site::getById((int) $site) : Site::find($site); }
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; } } } }