833, 'usluga_paczkowa_48' => 833, 'usluga_paczkowa_e24' => 833, 'paczka_pocztowa_ekonomiczna' => 846, 'paczka_pocztowa_priorytetowa' => 846, 'pocztex_2021_kurier' => 855, 'pocztex_2021_na_dzis' => 855, 'pocztex_ekspres_24' => 834, 'pocztex_krajowy' => 834, 'przesylka_biznesowa' => 852, 'paczka_zagraniczna' => 878, 'paczka_zagraniczna_ue' => 878, 'przesylka_polecona_ekonomiczna' => 845, 'przesylka_polecona_priorytetowa' => 845, 'przesylka_firmowa_polecona_ekonomiczna' => 845, 'przesylka_firmowa_polecona_priorytetowa' => 845, 'zagraniczna_przesylka_zwykla_ekonomiczna' => 870, 'zagraniczna_przesylka_zwykla_priorytetowa' => 870, 'zagraniczna_przesylka_polecona' => 870, ]; const ALLEGRO_DELIVERY_ID_MAPPING = array( "2b6ca59d-1e4c-426c-82a9-efcbd730846b" => 'paczka_pocztowa_ekonomiczna', "45309171-0415-49cd-b2cf-89e9143d20f0" => 'paczka_pocztowa_priorytetowa', "97286096-eb28-40f9-9efc-95ecbb8624ea" => 'usluga_paczkowa_48', "773167b1-feec-4ae9-b20f-1ed8ccb7b1ed" => 'przesylka_polecona_ekonomiczna', "b90c6295-b69a-4cb4-a308-7126a02aea47" => 'usluga_paczkowa_24', "758fcd59-fbfa-4453-ae07-4800d72c2ca5" => 'przesylka_polecona_priorytetowa', "7203cb90-864c-4cda-bf08-dc883f0c78ad" => 'pocztex_krajowy', "845efe05-0c96-47c3-a8cb-aa4699c158ce" => 'pocztex_krajowy', "f7e952b5-9ae8-40a9-90dd-e71ab9da29dd" => 'przesylka_biznesowa', "8cc6e982-0af4-4e12-be96-5387db79a166" => 'przesylka_biznesowa', "4dd9c904-e892-4649-bdec-5454d6b53d28" => 'pocztex_ekspres_24', "b6bf5f9c-6cc8-4a0e-ab2f-bd49e76528f5" => 'pocztex_ekspres_24', "6eced786-aee4-47ba-9cb6-e24f8b1d3182" => 'przesylka_biznesowa', "ec0e7fff-8233-4869-99ce-fe2b67a7de84" => 'przesylka_biznesowa', "aa1d05e0-943b-47cb-a759-9d8c16707129" => 'przesylka_firmowa_polecona_ekonomiczna', "74bc07eb-552f-4581-b68c-da46716d4a9a" => 'usluga_paczkowa_24', "ffb2643b-4b90-4925-9d29-0d93ad9488a6" => 'usluga_paczkowa_48', "ecddabd8-ee16-49e3-bf55-5a959b385364" => 'pocztex_ekspres_24', "f51bae90-d541-49d6-86e6-ff7f6d54f9e2" => 'pocztex_ekspres_24', "7b45d0c7-5e22-46ac-824e-f0384e9aab52" => 'usluga_paczkowa_24', "d44995ed-edd2-4abb-999f-a56bd0f12a68" => 'usluga_paczkowa_48', "849a8308-240d-4045-ab30-f8207815bce4" => 'przesylka_biznesowa', "b9e02dd2-6e91-4d13-901c-5e56ab0d1cd7" => 'usluga_paczkowa_24', "e36c9ccf-e341-49a9-8fa0-f073dcd61210" => 'usluga_paczkowa_48', "88f677d9-c125-45e0-bdf0-f965826542a9" => 'przesylka_biznesowa', ); const SERVICES = array( 'usluga_paczkowa_24' => array('class' => 'uslugaPaczkowaType', 'defaults' => array('termin' => 'PACZKA_24'), 'label' => "Usługa paczkowa - Paczka 24"), 'usluga_paczkowa_48' => array('class' => 'uslugaPaczkowaType', 'defaults' => array('termin' => 'PACZKA_EXTRA_24'), 'label' => "Usługa paczkowa - Paczka Ekstra 24"), 'usluga_paczkowa_e24' => array('class' => 'uslugaPaczkowaType', 'defaults' => array('termin' => 'PACZKA_48'), 'label' => "Usługa paczkowa - Paczka 48"), 'pocztex_2021_kurier' => array('class' => 'pocztex2021KurierType', 'defaults' => array(), 'label' => "Pocztex 2.0 - Kurier"), 'pocztex_2021_na_dzis' => array('class' => 'pocztex2021NaDzisType', 'defaults' => array(), 'label' => "Pocztex 2.0 - Na Dziś"), 'pocztex_ekspres_24' => array('class' => 'uslugaKurierskaType', 'defaults' => array('termin' => 'EKSPRES24'), 'label' => "Pocztex - Kurier Ekspres 24"), 'pocztex_krajowy' => array('class' => 'uslugaKurierskaType', 'defaults' => array('termin' => 'KRAJOWY'), 'label' => "Pocztex - Kurier Krajowy"), 'przesylka_biznesowa' => array('class' => 'przesylkaBiznesowaType', 'label' => "Pocztex Kurier 48 (Przesyłka biznesowa)"), 'paczka_zagraniczna' => array('class' => 'paczkaZagranicznaType', 'label' => "Paczka zagraniczna pozostałe kraje"), 'paczka_zagraniczna_ue' => array('class' => 'paczkaZagranicznaType', 'label' => "Paczka zagraniczna do UE"), 'paczka_pocztowa_ekonomiczna' => array('class' => 'paczkaPocztowaType', 'defaults' => array('kategoria' => 'EKONOMICZNA'), 'label' => "Paczka Pocztowa - Ekonomiczna"), 'paczka_pocztowa_priorytetowa' => array('class' => 'paczkaPocztowaType', 'defaults' => array('kategoria' => 'PRIORYTETOWA'), 'label' => "Paczka Pocztowa - Priorytetowa"), 'przesylka_polecona_ekonomiczna' => array('class' => 'przesylkaPoleconaKrajowaType', 'defaults' => array('kategoria' => 'EKONOMICZNA'), 'label' => "Przesyłka polecona krajowa - Ekonomiczna"), 'przesylka_polecona_priorytetowa' => array('class' => 'przesylkaPoleconaKrajowaType', 'defaults' => array('kategoria' => 'PRIORYTETOWA'), 'label' => "Przesyłka polecona krajowa - Priorytetowa"), 'przesylka_firmowa_polecona_ekonomiczna' => array('class' => 'przesylkaFirmowaPoleconaType', 'defaults' => array('kategoria' => 'EKONOMICZNA'), 'label' => "Przesyłka firmowa polecona - Ekonomiczna"), 'przesylka_firmowa_polecona_priorytetowa' => array('class' => 'przesylkaFirmowaPoleconaType', 'defaults' => array('kategoria' => 'PRIORYTETOWA'), 'label' => "Przesyłka firmowa polecona - Priorytetowa"), 'zagraniczna_przesylka_zwykla_ekonomiczna' => array('class' => 'przesylkaZagranicznaType', 'defaults' => array('kategoria' => 'EKONOMICZNA'), 'label' => 'Zagraniczna przesyłka zwykła - Ekonomiczna'), 'zagraniczna_przesylka_zwykla_priorytetowa' => array('class' => 'przesylkaZagranicznaType', 'defaults' => array('kategoria' => 'PRIORYTETOWA'), 'label' => 'Zagraniczna przesyłka zwykła - Priorytetowa'), 'zagraniczna_przesylka_polecona' => array('class' => 'przesylkaPoleconaZagranicznaType', 'label' => 'Zagraniczna przesyłka polecona'), ); /** * Instacja elektronicznego nadawcy * * @var ElektronicznyNadawca */ protected $client; /** * Singleton instance * @var stPocztaPolskaClient|null */ protected static $instance = null; /** * Lista urzedów nadania * @var array|null */ protected $urzedyNadania = null; /** * Karty * @var kartaType[]|null */ protected $karty = null; /** * Aktywna karta * * @var kartaType|null */ protected $aktywnaKarta = null; public static function getCourierServiceList() { return array( "paczka_zagraniczna", "paczka_zagraniczna_ue", "pocztex_krajowy", "przesylka_polecona_ekonomiczna", "przesylka_polecona_priorytetowa", "przesylka_firmowa_polecona_ekonomiczna", "przesylka_firmowa_polecona_priorytetowa", "paczka_pocztowa_ekonomiczna", "paczka_pocztowa_priorytetowa", "zagraniczna_przesylka_zwykla_ekonomiczna", "zagraniczna_przesylka_zwykla_priorytetowa", "zagraniczna_przesylka_polecona", "pocztex_2021_na_dzis" ); } public static function getServiceByAllegroDeliveryMethodId($allegroDeliveryMethodId) { return isset(self::ALLEGRO_DELIVERY_ID_MAPPING[$allegroDeliveryMethodId]) ? self::ALLEGRO_DELIVERY_ID_MAPPING[$allegroDeliveryMethodId] : null; } public static function isEUCountry($name) { $eu = array( 'Austria', 'Belgia', 'Czechy', 'Dania', 'Estonia', 'Finlandia', 'Francja', 'Grecja', 'Hiszpania', 'Holandia', 'Islandia', 'Liechtenstein', 'Litwa', 'Luksemburg', 'Łotwa', 'Malta', 'Niemcy', 'Norwegia', 'Szwajcaria', 'Szwecja', 'Polska', 'Portugalia', 'Słowacja', 'Słowenia', 'Węgry', 'Włochy', 'Irlandia', 'Wielka Brytania', ); return in_array($name, $eu); } /** * * @return stPocztaPolskaClient */ public static function getInstance() { if (null === self::$instance) { $config = stConfig::getInstance('stPocztaPolskaBackend'); self::$instance = new stPocztaPolskaClient($config->get('login'), $config->get('password'), $config->get('test_mode')); } return self::$instance; } public function __construct($login, $password, $testMode = false) { $params = array( 'login' => $login, 'password' => $password, 'trace' => SF_ENVIRONMENT == 'dev', 'location' => $testMode ? 'https://en-testwebapi.poczta-polska.pl/websrv/labs.php' : 'https://e-nadawca.poczta-polska.pl/websrv/labs.php', 'cache_wsdl' => WSDL_CACHE_NONE, ); $this->client = new ElektronicznyNadawca($testMode ? 'https://en-testwebapi.poczta-polska.pl/websrv/labs.wsdl' : 'https://e-nadawca.poczta-polska.pl/websrv/labs.wsdl', $params); } public static function getInstrukcjaDeklaracjiCelnejUrl() { $config = stConfig::getInstance('stPocztaPolskaBackend'); if ($config->get('test_mode')) { return "https://en-testwebapi.poczta-polska.pl/download/instrukcja-wypelniania-deklaracji-celnej.doc"; } else { return "https://e-nadawca.poczta-polska.pl/download/instrukcja-wypelniania-deklaracji-celnej.doc"; } } public function getPlacowkaPocztowa($pni): placowkaPocztowaType { $request = new getPlacowkaPocztowa(); $request->pni = $pni; $response = $this->client->getPlacowkaPocztowa($request); return $response->placowka; } /** * Weryfikuje poprawność danych dostępowych do API * * @return bool */ public function hasValidAutheticationCredentials() { $hello = new hello(); $hello->in = 'hello'; try { $this->client->hello($hello); } catch (Exception $e) { return false; } return true; } /** * Zwraca listę urzędów nadania * * @param boolean $cached * @return array */ public function getUrzedyNadania($cached = true) { if (null === $this->urzedyNadania) { $fc = stFunctionCache::getInstance('stPocztaPolska'); $fc->setLifeTime(24*60*60*7); if ($cached) { $this->urzedyNadania = $fc->cacheCall(array($this, 'getUrzedyNadaniaRequest'), array(), array('id' => 'urzedyNadania')); } else { $this->urzedyNadania = $this->getUrzedyNadaniaRequest(); } $fc->setLifeTime(time()); } return $this->urzedyNadania; } public function getUbezpieczeniaInfo() { return $this->client->getUbezpieczeniaInfo(new getUbezpieczeniaInfo()); } public function getBufor($id) { $results = $this->getBuforList(); foreach ($results as $result) { if ($result->idBufor == $id) { return $result; } } return null; } public function getBuforGuids($bufor_id) { $getEnvelopeBufor = new getEnvelopeBufor(); $getEnvelopeBufor->idBufor = $bufor_id; $response = $this->getEnvelopeBufor($getEnvelopeBufor); $results = is_array($response->przesylka) ? $response->przesylka : array($response->przesylka); $guids = array(); foreach ($results as $przesylka) { $guids[] = $przesylka->guid; } return $guids; } public function getBuforList() { $getEnvelopeBuforList = new getEnvelopeBuforList(); $response = $this->getEnvelopeBuforList($getEnvelopeBuforList); return is_array($response->bufor) ? $response->bufor : array($response->bufor); } public function deleteBufor($id) { $clearEnvelope = new clearEnvelope(); $clearEnvelope->idBufor = $id; $this->clearEnvelope($clearEnvelope); $bufor = PocztaPolskaBuforPeer::retrieveByBuforId($id); $bufor->delete(); } public function getOrCreateBufor($dataNadania, $urzadNadania) { $buforDesc = self::getBuforDescription($dataNadania, $urzadNadania); $results = $this->getBuforList(); $dataNadania = (new DateTimeImmutable($dataNadania))->format('Y-m-d'); $getEnvelopeBuforListResponse = new getEnvelopeBuforListResponse(); foreach ($results as $result) { if ($result->opis == $buforDesc && $result->dataNadania == $dataNadania && $result->urzadNadania == $urzadNadania) { $bufor = PocztaPolskaBuforPeer::retrieveByBuforId($result->idBufor); if ($bufor && $bufor->getCountPaczka() < 50) { $getEnvelopeBuforListResponse->bufor = $result; break; } } } if (null === $getEnvelopeBuforListResponse->bufor) { $createEnvelopeBufor = new createEnvelopeBufor(); $createEnvelopeBufor->bufor = new buforType(); $createEnvelopeBufor->bufor->dataNadania = $dataNadania; $createEnvelopeBufor->bufor->urzadNadania = $urzadNadania; $createEnvelopeBufor->bufor->opis = $buforDesc; $response = $this->createEnvelopeBufor($createEnvelopeBufor); $getEnvelopeBuforListResponse->bufor = $response->createdBufor; $getEnvelopeBuforListResponse->error = $response->error; if (!$response->error) { $ppb = new PocztaPolskaBufor(); $ppb->setBuforId($response->createdBufor->idBufor); $ppb->setDataNadania($dataNadania); $ppb->setUrzadNadania($urzadNadania); $ppb->save(); } } return $getEnvelopeBuforListResponse; } public static function getBuforDescription($dataNadania, $urzadNadania) { $postfix = stConfig::getInstance('stRegister')->get('www'); $postfix = str_replace(array('http://', 'https://'), "", $postfix); $postfix = rtrim($postfix, '/'); return "SOTESHOP ".$postfix; } public function getClient() { return $this->client; } /** * @throws SoapFault * @return kartaType[] */ public function getKarty() { if (null === $this->karty) { $response = $this->client->getKarty(new getKarty()); $this->karty = is_array($response->karta) ? $response->karta : array($response->karta); } return $this->karty; } /** * @param setAktywnaKarta $aktywnaKarta * @return setAktywnaKartaResponse */ public function setAktywnaKarta(setAktywnaKarta $aktywnaKarta) { return $this->client->setAktywnaKarta($aktywnaKarta); } /** * Zwraca aktywną kartę * * @return null|kartaType * @throws SoapFault */ public function getAktywnaKarta() { if (null === $this->aktywnaKarta) { foreach ($this->getKarty() as $karta) { if ($karta->aktywna) { $this->aktywnaKarta = $karta; break; } } } return $this->aktywnaKarta; } public function getUrzedyNadaniaRequest() { $response = $this->client->getUrzedyNadania(new getUrzedyNadania()); $options = array(); $urzedy = array(); $results = is_array($response->urzedyNadania) ? $response->urzedyNadania : array($response->urzedyNadania); foreach ($results as $urzadNadania) { $urzedy[$urzadNadania->urzadNadania] = $urzadNadania->nazwaWydruk; } $regions = array("02","04","06","08","10","12","14","16","18","20","22","24","26","28","30","32"); foreach ($regions as $id) { $getPlacowkiPocztowe = new getPlacowkiPocztowe(); $getPlacowkiPocztowe->idWojewodztwo = $id; $results = stPocztaPolskaClient::getInstance()->getPlacowkiPocztowe($getPlacowkiPocztowe); $placowki = is_array($results->placowka) ? $results->placowka : array($results->placowka); foreach ($placowki as $placowka) { if (isset($urzedy[$placowka->id])) { $urzedy[$placowka->id] = $placowka->miejscowosc.' '.$placowka->ulica.' '.$placowka->numerDomu.($placowka->numerLokalu ? '/'.$placowka->numerLokalu : '').' ('.$placowka->nazwaWydruk.')'; } } } natsort($urzedy); return $urzedy; } public function __call($name, $arguments) { if (!is_callable(array($this->client, $name))) { throw new Exception(sprintf("Method %s does not exist", $name)); } return call_user_func_array(array($this->client, $name), $arguments); } public static function getGabarytyBiznesowa() { return array( "XS" => "XS (25x20x10)", "S" => "S (30x25x15)", "M" => "M (35x30x20)", "L" => "L (45x35x25)", "XL" => "XL (60x50x40)", "XXL" => "XXL (100x60x40)", ); } public static function getGabaryty() { return array( "GABARYT_A" => "Gabaryt A (60 x 50 x 30)", "GABARYT_B" => "Gabaryt B (Suma długości i największego obwodu mierzonego w innym kierunku niż
długość - 300 cm, przy czym największy wymiar nie może przekroczyć 150 cm)", ); } public static function getPunktyNadania() { return array( null => "Kurier", 'placowka_pocztowa' => "Placówka Pocztowa", ); } public static function getObszary() { return array( obszarType::MIASTO => "Miasto", obszarType::KRAJ => "Kraj", ); } public static function getGabarytyFirmowa() { return array( "GABARYT_A" => "Gabaryt A (Maksymalne wymiary przesyłki - suma długości, szerokości i wysokości nie może przekroczyć 700 mm, przy czym najdłuższy z tych wymiarów (długość) nie może przekroczyć 500 mm)", "GABARYT_B" => "Gabaryt B (Maksymalne wymiary przesyłki – suma długości, szerokość i wysokość 900
mm, największy z wymiarów nie może przekroczyć 600 mm)", ); } public static function getFormaty($service) { if (!in_array($service, ['pocztex_2021_kurier', 'pocztex_2021_na_dzis'])) { return array( 'S' => 'S (Maksymalne wymiary koperty [mm]: 160 x 230 x 20, maksymalna waga [g]: 500)', 'M' => 'M (Maksymalne wymiary koperty [mm]: 230 x 325 x 20, maksymalna waga [g]: 1000)', 'L' => 'L (Maksymalna suma wymiarów koperty [mm]: 900, maksymalna długość najdłuższego boku [mm]: 600, rulony, maksymalna waga [g]: 2000)', ); } return array( "S" => 'S - Maksymalne wymiary 9 cm (W) x 40 cm (S) x 65 cm (D), maksymalna masa 20 kg', "M" => 'M - Parametry przekraczające format S. Maksymalne wymiary 20 cm (W) x 40 cm (S) x 65 cm (D), maksymalna masa 20 kg', "L" => 'L - Parametry przekraczające format M. Maksymalne wymiary 42 cm (W) x 40 cm (S) x 65 cm (D), maksymalna masa 20 kg', "XL" => 'XL - Parametry przekraczające format L. Maksymalne wymiary 60 cm (W) x 60 cm (S) x 70 cm (D), maksymalna masa 20 kg', "2XL" => '2XL - Parametry przekraczające format XL. Maksymalna suma wymiarów (W+S+D)<=250 cm, max D=120 cm, maksymalna masa 50 kg (dopłata powyżej 30 kg', ); } public static function getRodzajZagraniczna() { return array( 'CN22' => 'CN22', 'CN23' => 'CN23', ); } public static function getZawartoscPrzesylkiZagranicznej() { return array( "SPRZEDAZ_TOWARU" => "Sprzedaż towaru", "ZWROT_TOWARU" => "Zwrot towaru", "PREZENT" => "Prezent", "PROBKA_HANDLOWA" => "Próbka handlowa", "DOKUMENT" => "Dokument", "INNE" => "Inne", ); } public static function getDokumentTowarzyszacyRodzaje() { return array( "LICENCJA" => "Licencja", "CERTYFIKAT" => "Certyfikat", "FAKTURA" => "Faktura", ); } public static function getFormatedErrors($errors) { if (is_array($errors)) { $results = array(); foreach ($errors as $error) { $results[] = ($error->guid ? $error->guid. ': ' : '') . $error->errorDesc; } return "
- ".implode("
- ", $results); } else { return ($errors->guid ? $errors->guid. ': ' : '') . $errors->errorDesc; } } public static function getOpakowania($serviceName) { if ($serviceName == 'usluga_paczkowa_24' || $serviceName == 'usluga_paczkowa_e24') { return array( "" => "---", "PACZKA_DO_POL_KILO" => "Paczka do 0,5kg (max. 32x22x10 cm)", "FIRMOWA_DO_1KG" => "Koperta firmowa do 1kg", ); } else { return array( "" => "---", "FIRMOWA_DO_1KG" => "Koperta firmowa do 1kg", ); } } public static function getPocztex1Zawartosc() { return [ 'Dokumenty' => 'Dokumenty', 'Kosmetyki' => 'Kosmetyki', 'Elektronika' => 'Elektronika', 'Zabawki' => 'Zabawki', 'Części samochodowe' => 'Części samochodowe', 'Chemia' => 'Chemia', 'Meble' => 'Meble', ]; } public static function getPocztex2Zawartosc() { return [ 'OWADY' => 'Owady', 'PLYNY_LUB_GAZY' => 'Płyny lub gazy', 'PRZEDMIOTY_LATWO_TLUKACE_SIE_I_SZKLO' => 'Przedmioty łatwo tłukące się i szkło', 'RZECZY_LAMLIWE_I_KRUCHE' => 'Rzeczy łamliwe i kruche', 'ZYWE_PTAKI' => 'Żywe ptaki', 'ZYWE_ROSLINY' => 'Żywe rośliny', 'NULL' => 'Inne', ]; } public static function getKategorie() { return array( 'EKONOMICZNA' => "Ekonomiczna", 'PRIORYTETOWA' => "Priorytetowa", ); } public static function getSposobZwrotu() { return array( "LADOWO_MORSKA" => "Lądowo morska (S.A.L)", "LOTNICZA" => "Lotnicza", ); } public static function createService($name) { $instance = null; if (!isset(self::SERVICES[$name])) { throw new Exception("Service $name does not exist"); } $class = self::SERVICES[$name]['class']; $instance = new $class(); if (isset(self::SERVICES[$name]['defaults'])) { foreach (self::SERVICES[$name]['defaults'] as $property => $value) { $instance->$property = $value; } } if ($instance && property_exists($instance, 'uiszczaOplate')) { $instance->uiszczaOplate = 'NADAWCA'; } return $instance; } public static function getServices() { return self::SERVICES; } public static function getPointNameFromPlacowkaPocztowa(placowkaPocztowaType $placowkaPocztowa) { $pointName = [$placowkaPocztowa->nazwa]; $pointName[] = self::getStreetFromPlacowkaPocztowa($placowkaPocztowa); $pointName[] = $placowkaPocztowa->kodPocztowy . ' ' . $placowkaPocztowa->miejscowosc; return implode(', ', $pointName); } public static function getStreetFromPlacowkaPocztowa(placowkaPocztowaType $placowkaPocztowa) { $street = $placowkaPocztowa->ulica . ' ' . $placowkaPocztowa->numerDomu; if (!empty($placowkaPocztowa->numerLokalu)) { $street .= '/' . $placowkaPocztowa->numerLokalu; } return $street; } public static function updateService($service, $data) { if (empty($data)) { return; } reset($data); do { $name = key($data); $value = current($data); $name = lcfirst(sfInflector::camelize($name)); if (!is_object($service) || !property_exists($service, $name)) { continue; } switch($name) { case 'ubezpieczenie': $service->$name = new ubezpieczenieType(); $service->$name->rodzaj = 'STANDARD'; break; case 'epo': $value = $value ? new EPOSimpleType() : null; break; case 'kwotaPobrania': case 'kwota': case 'wartosc': $value = stPrice::round($value * 100, 0); break; case 'masaNetto': case 'masa': $value = "" === $value ? null : stPrice::round($value * 1000, 0); break; case 'zawartoscSpecjalna': $values = self::getPocztex2Zawartosc(); if (!isset($values[$value])) { $data['zawartoscInna'] = $value; $value = 'NULL'; } if ('NULL' === $value) { $value = null; } break; case 'adresDlaZwrotu': $service->adresDlaZwrotu = new adresType(); break; case 'ulica': $parser = new stAddressParser($value); $address = $parser->getAddress(); $value = $address['s1']; if (!empty($address['n1'])) { $service->numerDomu = $address['n1']; } if (!empty($address['n2'])) { $service->numerLokalu = $address['n2']; } break; } if (is_array($value)) { self::updateService($service->$name, $value); } else { $service->$name = $value; } } while (false !== next($data)); } }