![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/Helper/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Helper; use Exception; use Magento\Framework\App\Helper\AbstractHelper; use Magento\Framework\App\Helper\Context; use Magento\Framework\Message\ManagerInterface; class Pickup extends AbstractHelper { /** * @var DataPrepareFactory */ protected $dataPrepareFactory; /** * @var ManagerInterface */ protected $messageManager; /** * Extmag Model Saver * * @var DataSave */ protected $modelSaver; /** * Extmag Ship * * @var RequestFactory */ protected $requestToAPI; /** * @param Context $context * @param DataPrepareFactory $dataPrepareFactory * @param ManagerInterface $messageManager * @param DataSave $defSave * @param RequestFactory $requestToAPI */ public function __construct( Context $context, DataPrepareFactory $dataPrepareFactory, ManagerInterface $messageManager, DataSave $defSave, RequestFactory $requestToAPI ) { parent::__construct($context); $this->dataPrepareFactory = $dataPrepareFactory; $this->messageManager = $messageManager; $this->modelSaver = $defSave; $this->requestToAPI = $requestToAPI; } /** * @param $carrierCode * @param array $labels * @param int $cronHour * @return array * @throws Exception */ public function makeDataAndSavePickup($carrierCode, array $labels, $cronHour = -1) { $connector = $this->requestToAPI->create($carrierCode, 'pickupcreation'); $labelsByAddresses = []; /** * @var \Extmag\Shiplab\Model\Label $label */ foreach ($labels as $label) { $requestData = json_decode($label->getRequest(), true); $labelsByAddresses[$requestData['ship_from_address_id']][] = $label; } if (!empty($labelsByAddresses)) { foreach ($labelsByAddresses as $labelsByAddress) { $dataPrepare = $this->dataPrepareFactory->create($carrierCode); $data = $dataPrepare->getPickupData($labelsByAddress, $cronHour); if (!empty($data)) { $connector->setData($data); $connector->addRequest(); } } if ($connector->checkRequestData()) { $response = $connector->send(); return $this->modelSaver->save($carrierCode, 'pickupcreation', $response); } } return []; } /** * @param $carrierCode * @param array $pickups * @return array * @throws Exception */ public function makeDataAndCancelPickup($carrierCode, array $pickups) { $connector = $this->requestToAPI->create($carrierCode, 'pickupcancel'); foreach ($pickups as $pickup) { $dataPrepare = $this->dataPrepareFactory->create($carrierCode); $data = $dataPrepare->getPickupCancelData($pickup); if (!empty($data)) { $connector->setData($data); $connector->addRequest(); } } if ($connector->checkRequestData()) { $response = $connector->send(); return $this->modelSaver->save($carrierCode, 'pickupcancel', $response); } return []; } }