1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
tracking.php
См. документацию.
1<?
2
3namespace Sale\Handlers\Delivery;
4
5use Bitrix\Main\Error;
6use Bitrix\Main\Loader;
7use Bitrix\Sale\Result;
8use Bitrix\Main\Localization\Loc;
9use Bitrix\Sale\Delivery\Services;
10use Bitrix\Sale\Delivery\Tracking\StatusResult;
11
12Loc::loadMessages(__FILE__);
13
14Loader::registerAutoLoadClasses(
15 'sale',
16 array(
17 'Sale\Handlers\Delivery\AdditionalHandler' => 'handlers/delivery/additional/handler.php'
18 )
19);
24class AdditionalTracking extends \Bitrix\Sale\Delivery\Tracking\Base
25{
27 protected $deliveryService;
28
29 protected $classTitle = '';
30 protected $classDescription = '';
31
32 public function __construct(array $params, Services\Base $deliveryService)
33 {
34 $this->classTitle = $deliveryService->getTrackingClassTitle();
35 $this->classDescription = $deliveryService->getTrackingClassDescription();
36
37 parent::__construct($params, $deliveryService);
38 }
39
43 public function getClassTitle()
44 {
45 return !empty($this->classTitle) ? $this->classTitle : Loc::getMessage('SALE_DLV_SRV_ADD_T_TITLE');
46 }
47
51 public function getClassDescription()
52 {
53 return !empty($this->classDescription) ? $this->classDescription : Loc::getMessage('SALE_DLV_SRV_ADD_T_DESCR');
54 }
55
60 public function getStatus($trackingNumber)
61 {
62 $trackingNumber = trim($trackingNumber);
63 $results = $this->getStatuses(array($trackingNumber));
64
65 if(!empty($results[$trackingNumber]))
66 {
67 $result = $results[$trackingNumber];
68 }
69 else
70 {
71 $result = new StatusResult();
72 $result->addError(new Error(Loc::getMessage('SALE_DLV_SRV_ADD_T_ERROR_DATA')));
73 }
74
75 return $result;
76 }
77
82 public function getStatuses(array $trackingNumbers)
83 {
85 $parentService = $this->deliveryService->getParentService();
86
87 if(!$parentService)
88 return array();
89
90 $statuses = $parentService->getTrackingStatuses($trackingNumbers);
91
92 if(empty($statuses) || !is_array($statuses))
93 return array();
94
95 $resultData = array();
96
97 foreach($statuses as $status)
98 {
99 $r = new StatusResult();
100 $r->trackingNumber = $status['TRACKING_NUMBER'];
101
102 if(isset($status['ERROR']))
103 {
104 $r->addError(new Error($status['ERROR']));
105 }
106 else
107 {
108 $r->status = $status['STATUS'];
109 $r->description = $status['DESCRIPTION'];
110 $r->lastChangeTimestamp = $this->translateDate($status['DATE']);
111 }
112
113 $resultData[$status['TRACKING_NUMBER']] = $r;
114 }
115
116 return $resultData;
117 }
118
119
120 protected static function translateDate($externalDate)
121 {
122 $date = new \DateTime($externalDate);
123 return $date->getTimestamp();
124 }
125
129 public function getParamsStructure()
130 {
131 return array();
132 }
133
138 public function getTrackingUrl($trackingNumber = '')
139 {
140 $result = '';
141
143 $parentService = $this->deliveryService->getParentService();
144 $trackingUrlTempl = $parentService->getTrackingUrlTempl();
145
146 if(!empty($trackingUrlTempl))
147 $result = str_replace('##TRACKING_NUMBER##', urlencode($trackingNumber), $trackingUrlTempl);
148
149 return $result;
150 }
151}
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$status
Определения session.php:10
trait Error
Определения error.php:11
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799