3namespace Sale\Handlers\Delivery\Additional\RusPost\Reliability;
5use Bitrix\Sale\Delivery\Requests;
6use Sale\Handlers\Delivery\Additional;
15 private $deliveryRequestsHandler =
null;
21 public function __construct(Additional\DeliveryRequests\RusPost\Handler $deliveryRequestsHandler)
23 $this->deliveryRequestsHandler = $deliveryRequestsHandler;
30 public function request(ReliabilityCollection $collection)
32 return $this->obtainDataFromRequestResult(
33 $this->deliveryRequestsHandler->send(
34 'UNRELIABLE_RECIPIENT',
35 $this->createRequestData($collection)
41 private function obtainDataFromRequestResult(Requests\Result
$result, ReliabilityCollection $collection)
48 foreach (
$result->getData() as $resultItem)
50 $reliability = Service::UNKNOWN;
52 if (isset($resultItem[
'unreliability']))
54 if ($resultItem[
'unreliability'] ===
'RELIABLE')
56 $reliability = Service::RELIABLE;
58 elseif ($resultItem[
'unreliability'] ===
'FRAUD')
60 $reliability = Service::FRAUD;
64 $hash = Service::createHash($resultItem[
'raw-full-name'], $resultItem[
'raw-address'], $resultItem[
'raw-telephone']);
67 if($askedItem = $collection->getByPrimary(
$hash))
69 $askedItem->setReliability($reliability);
80 private function createRequestData(ReliabilityCollection $collection)
85 foreach ($collection as $item)
88 'raw-address' => $item->getAddress(),
89 'raw-full-name' => $item->getFullName(),
90 'raw-telephone' => $item->getPhone()
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)