Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] pobieranie danej z funkcji - obiektowo
bartekxm
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.12.2016

Ostrzeżenie: (0%)
-----


Witam!
Jestem początkujący jeśli chodzi o programowanie obiektowe. Do tej pory programowałem tylko strukturalnie. Niestety mam za zadanie wykonać połączenie swojego systemu webowego z systemem wysyłkowym firmy kurierskiej DPD. Znalazłem w sieci rozwiązanie napisane obiektowo.
Struktura działania klasy narzucona przez DPD jest następująca:
1. rejestrowanie paczki w systemie DPD - mam funkcję print_r($dpd->registerNewPackage());
2. na podstawie danych odebranych z systemu DPD po wykonaniu punktu 1 należy wygenerować etykietę logistyczną podając w argumencie funkcji nr paczki - tzw. waybill
tutaj mam funkcję - var_dump($dpd->getLabelPDF(2, "waybill"));
3. na podstawie danych odebranych z systemu DPD po wykonaniu punktu 1 należy wygenerować protokół podając w argumencie funkcji nr referencyjny - funkcja: var_dump($dpd->getProtocol(array('REFERENCE_NUMBER')));

WAYBILL oraz REFERENCE_NUMBER zwracane są w tablicy w pierwszej funkcji registerNewPackage() jednak nie wiem jak się do nich odwołać aby użyć tych zmiennych w dwóch kolejnych funkcjach.

poniżej funkcja registerNewPackage():
  1. public function registerNewPackage(){
  2. /*
  3.   * zapisuje paczke w DPD
  4.   */
  5.  
  6. if(!is_array($this->shipTo) or !is_array($this->shipFrom) or !is_array($this->packageDetails)){
  7. Throw new Exception("Parametry paczki muszą zostać uzupełnione poprawnie");
  8. }
  9.  
  10. $openUMLFV1 = $this->prepareRegisterString();
  11.  
  12. try {
  13. $params1->policyV1="STOP_ON_FIRST_ERROR";
  14. $params1->openUMLXV1= $openUMLFV1;
  15. $params1->authDataV1 = $this->authData;
  16. $result = $this->soapClient->generatePackagesNumbersXV1($params1);
  17. $xml = simplexml_load_string($result->return);
  18.  
  19. //sprawdzenie statusu
  20. switch($xml->Status) {
  21. case "DUPLICATED_PACKAGE_SEARCH_KEY":
  22.  
  23. $error = "Identyfikator ".$this->packageDetails['reference_number'].", jest juz w systemie. Paczka nie może zostać ponownie zapisana pod tym samym identyfikatorem. Błąd: ".$xml->Packages->Package->InvalidFields->InvalidField->Info;
  24. $return_array = array(
  25. "type" => "error",
  26. "message" => $error
  27. );
  28. break;
  29.  
  30. case "DISALLOWED_FID":
  31. $error = "Błąd konfiguracji, niepoprawny numer FID. Kod błędu: ".$xml->Status;
  32. $return_array = array(
  33. "type" => "error",
  34. "message" => $error
  35. );
  36. break;
  37.  
  38. case "INCORRECT_DATA":
  39.  
  40. //wyswietlenie bledu dla kazdej dostepnej parcel
  41. foreach($xml->Packages->Package->InvalidFields->InvalidField as $invalid_field) {
  42. if($invalid_field->Status == "VALUE_INCORRECT") {
  43. $error .= $invalid_field->Info.', w polu: '.$invalid_field->FieldName.'<br/>';
  44. }
  45. }
  46. $return_array = array(
  47. "type" => "error",
  48. "message" => $error
  49. );
  50. break;
  51.  
  52. case "OK":
  53. $return_array = array(
  54. "type" => "ok",
  55. "array" => array(
  56. "package_id" => $xml->Packages->Package->PackageId,
  57. "reference" => $xml->Packages->Package->Reference,
  58. "parcels" => $xml->Packages->Package->Parcels,
  59. "first_waybill" => $xml->Packages->Package->Parcels->Parcel->Waybill)
  60. );
  61. break;
  62. }
  63. } catch (Exception $e) {
  64. $error = $e->getMessage();
  65.  
  66. $return_array = array(
  67. "type" => "error",
  68. "message" => $error
  69. );
  70. };
  71. return $return_array;
  72. }


Bardzo proszę o pomoc...

Pozdrawiam,
Bartek

Ten post edytował bartekxm 19.12.2016, 14:14:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:11