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));
}
}