3namespace Sale\Handlers\Delivery;
8use Bitrix\Main\Localization\Loc;
9use Bitrix\Sale\Delivery\Services;
10use Bitrix\Sale\Delivery\Tracking\StatusResult;
12Loc::loadMessages(__FILE__);
14Loader::registerAutoLoadClasses(
17 'Sale\Handlers\Delivery\AdditionalHandler' =>
'handlers/delivery/additional/handler.php'
24class AdditionalTracking
extends \Bitrix\Sale\Delivery\Tracking\Base
27 protected $deliveryService;
29 protected $classTitle =
'';
30 protected $classDescription =
'';
32 public function __construct(
array $params, Services\Base $deliveryService)
34 $this->classTitle = $deliveryService->getTrackingClassTitle();
35 $this->classDescription = $deliveryService->getTrackingClassDescription();
37 parent::__construct(
$params, $deliveryService);
43 public function getClassTitle()
45 return !empty($this->classTitle) ? $this->classTitle : Loc::getMessage(
'SALE_DLV_SRV_ADD_T_TITLE');
51 public function getClassDescription()
53 return !empty($this->classDescription) ? $this->classDescription : Loc::getMessage(
'SALE_DLV_SRV_ADD_T_DESCR');
60 public function getStatus($trackingNumber)
62 $trackingNumber = trim($trackingNumber);
63 $results = $this->getStatuses(
array($trackingNumber));
65 if(!empty($results[$trackingNumber]))
67 $result = $results[$trackingNumber];
72 $result->addError(
new Error(Loc::getMessage(
'SALE_DLV_SRV_ADD_T_ERROR_DATA')));
82 public function getStatuses(
array $trackingNumbers)
85 $parentService = $this->deliveryService->getParentService();
90 $statuses = $parentService->getTrackingStatuses($trackingNumbers);
92 if(empty($statuses) || !is_array($statuses))
95 $resultData =
array();
99 $r =
new StatusResult();
100 $r->trackingNumber =
$status[
'TRACKING_NUMBER'];
108 $r->status =
$status[
'STATUS'];
109 $r->description =
$status[
'DESCRIPTION'];
110 $r->lastChangeTimestamp = $this->translateDate(
$status[
'DATE']);
113 $resultData[
$status[
'TRACKING_NUMBER']] = $r;
120 protected static function translateDate($externalDate)
122 $date = new \DateTime($externalDate);
123 return $date->getTimestamp();
129 public function getParamsStructure()
138 public function getTrackingUrl($trackingNumber =
'')
143 $parentService = $this->deliveryService->getParentService();
144 $trackingUrlTempl = $parentService->getTrackingUrlTempl();
146 if(!empty($trackingUrlTempl))
147 $result = str_replace(
'##TRACKING_NUMBER##', urlencode($trackingNumber), $trackingUrlTempl);
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']