DHL-PHP-SDK  v0.4
A wrapper for the DHL-XML-API Version 2
LabelData.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Petschko\DHL;
4 
21 class LabelData extends Version implements LabelResponse {
36  private $statusCode = Response::DHL_ERROR_NOT_SET;
37 
43  private $statusText = null;
44 
50  private $statusMessage = null;
51 
57  private $sequenceNumber = null;
58 
64  private $shipmentNumber = null;
65 
71  private $label = null;
72 
78  private $returnLabel = null;
79 
85  private $exportDoc = null;
86 
92  private $codLabel = null;
93 
100  public function __construct($version, $labelData) {
101  parent::__construct($version);
102 
103  if($labelData !== null) {
104  switch($this->getMayor()) {
105  case 1:
106  trigger_error('[DHL-PHP-SDK]: Called Version 1 Method ' .__CLASS__ . '->' . __METHOD__ . ' is incomplete (does nothing)!', E_USER_WARNING);
107  break;
108  case 2:
109  default:
110  $this->loadLabelData_v2($labelData);
111  }
112  }
113  }
114 
118  public function __destruct() {
119  unset($this->statusCode);
120  unset($this->statusText);
121  unset($this->statusMessage);
122  unset($this->sequenceNumber);
123  unset($this->shipmentNumber);
124  unset($this->label);
125  unset($this->returnLabel);
126  unset($this->exportDoc);
127  unset($this->codLabel);
128  }
129 
144  public function getStatusCode() {
145  return $this->statusCode;
146  }
147 
162  private function setStatusCode($statusCode) {
163  $this->statusCode = $statusCode;
164  }
165 
171  public function getStatusText() {
172  return $this->statusText;
173  }
174 
180  private function setStatusText($statusText) {
181  $this->statusText = $statusText;
182  }
183 
189  public function getStatusMessage() {
190  return $this->statusMessage;
191  }
192 
198  private function setStatusMessage($statusMessage) {
199  $this->statusMessage = $statusMessage;
200  }
201 
207  public function getSequenceNumber() {
208  return $this->sequenceNumber;
209  }
210 
216  private function setSequenceNumber($sequenceNumber) {
217  $this->sequenceNumber = $sequenceNumber;
218  }
219 
225  public function getShipmentNumber() {
226  return $this->shipmentNumber;
227  }
228 
234  private function setShipmentNumber($shipment_number) {
235  $this->shipmentNumber = $shipment_number;
236  }
237 
243  public function getLabel() {
244  return $this->label;
245  }
246 
252  private function setLabel($label) {
253  $this->label = $label;
254  }
255 
261  public function getReturnLabel() {
262  return $this->returnLabel;
263  }
264 
270  private function setReturnLabel($returnLabel) {
271  $this->returnLabel = $returnLabel;
272  }
273 
279  public function getExportDoc() {
280  return $this->exportDoc;
281  }
282 
288  private function setExportDoc($exportDoc) {
289  $this->exportDoc = $exportDoc;
290  }
291 
297  public function getCodLabel() {
298  return $this->codLabel;
299  }
300 
306  private function setCodLabel($codLabel) {
307  $this->codLabel = $codLabel;
308  }
309 
313  private function validateStatusCode() {
314  if($this->getStatusCode() === 0 && $this->getStatusText() !== 'ok')
315  $this->setStatusCode(Response::DHL_ERROR_WEAK_WARNING);
316  }
317 
323  private function loadLabelData_v2($response) {
324  $labelResponse = $response;
325  // Check if the tree is correct (and may reconfigure it)
326  if(isset($response->LabelData))
327  $labelResponse = $response->LabelData;
328 
329  // Get Sequence-Number
330  if(isset($response->sequenceNumber))
331  $this->setSequenceNumber((string) $response->sequenceNumber);
332  else if(isset($labelResponse->sequenceNumber))
333  $this->setSequenceNumber((string) $labelResponse->sequenceNumber);
334 
335  // Get Status
336  if(isset($labelResponse->Status)) {
337  if(isset($labelResponse->Status->statusCode))
338  $this->setStatusCode((int) $labelResponse->Status->statusCode);
339  if(isset($labelResponse->Status->statusText)) {
340  if(is_array($labelResponse->Status->statusText))
341  $this->setStatusText(implode(';', $labelResponse->Status->statusText));
342  else
343  $this->setStatusText($labelResponse->Status->statusText);
344  }
345  if(isset($labelResponse->Status->statusMessage)) {
346  if(is_array($labelResponse->Status->statusMessage))
347  $this->setStatusMessage(implode(';', $labelResponse->Status->statusMessage));
348  else
349  $this->setStatusMessage($labelResponse->Status->statusMessage);
350  }
351 
352  $this->validateStatusCode();
353  }
354 
355  // Get Shipment-Number
356  if(isset($labelResponse->shipmentNumber))
357  $this->setShipmentNumber((string) $labelResponse->shipmentNumber);
358 
359  // Get Label-Data
360  if(isset($labelResponse->labelUrl))
361  $this->setLabel($labelResponse->labelUrl);
362  else if(isset($labelResponse->labelData))
363  $this->setLabel($labelResponse->labelData);
364 
365  // Get Return-Label
366  if(isset($labelResponse->returnLabelUrl))
367  $this->setReturnLabel($labelResponse->returnLabelUrl);
368  else if(isset($labelResponse->returnLabelData))
369  $this->setReturnLabel($labelResponse->returnLabelData);
370 
371  // Get Export-Doc
372  if(isset($labelResponse->exportLabelUrl))
373  $this->setExportDoc($labelResponse->exportLabelUrl);
374  else if(isset($labelResponse->exportLabelData))
375  $this->setExportDoc($labelResponse->exportLabelData);
376  else if(isset($labelResponse->exportDocURL))
377  $this->setExportDoc($labelResponse->exportDocURL);
378  else if(isset($labelResponse->exportDocData))
379  $this->setExportDoc($labelResponse->exportDocData);
380 
381  if(isset($labelResponse->codLabelUrl))
382  $this->setCodLabel($labelResponse->codLabelUrl);
383  else if(isset($labelResponse->codLabelData))
384  $this->setCodLabel($labelResponse->codLabelData);
385  }
386 }
$version
Definition: test.php:17
$response
Definition: test.php:90
const DHL_ERROR_WEAK_WARNING
Definition: Response.php:36
__construct($version, $labelData)
Definition: LabelData.php:100