%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/ebay/feed/data/sources/ |
Current File : //home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/ebay/feed/data/sources/order.php |
<?php namespace Bitrix\Sale\TradingPlatform\Ebay\Feed\Data\Sources; use Bitrix\Main\ArgumentNullException; use \Bitrix\Sale\TradingPlatform\Logger; use \Bitrix\Sale\TradingPlatform\Ebay\Ebay; class Order extends DataSource implements \Iterator { protected $remotePath; protected $siteId; protected $dataFiles = array(); protected $currentFileIdx = 0; protected $startFileIdx = 0; protected $orderLatest = ""; public function __construct($params) { if(!isset($params["FEED_TYPE"]) || strlen($params["FEED_TYPE"]) <= 0) throw new ArgumentNullException("FEED_TYPE"); $this->remotePath = "/store/".$params["FEED_TYPE"]."/output/".date('M-d-Y', time()); $this->orderLatest = "/store/".$params["FEED_TYPE"]."/output/order-latest"; if(!isset($params["SITE_ID"]) || strlen($params["SITE_ID"]) <= 0) throw new ArgumentNullException("SITE_ID"); $this->siteId = $params["SITE_ID"]; $this->dataFiles = $this->receiveFiles(); } public function setStartPosition($startPos = "") { if(strlen($startPos) > 0) $this->startFileIdx = $startPos; } public function current() { $content = file_get_contents($this->dataFiles[$this->currentFileIdx]); $skipLength = strtolower(SITE_CHARSET) != 'utf-8' ? 3 : 1; $content = substr($content, $skipLength); $content = "<?xml version='1.0' encoding='UTF-8'?>".$content; return $content; } public function key() { return $this->currentFileIdx; } public function next() { $this->currentFileIdx++; } public function rewind() { $this->currentFileIdx = $this->startFileIdx; } public function valid() { return isset($this->dataFiles[$this->currentFileIdx]) && $this->dataFiles[$this->currentFileIdx] && \Bitrix\Main\IO\File::isFileExists($this->dataFiles[$this->currentFileIdx]); } protected function receiveFiles() { $result = array(); $timeToKeepFiles = 24; $tmpDir = \CTempFile::GetDirectoryName($timeToKeepFiles); CheckDirPath($tmpDir); $sftp = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getSftp($this->siteId); if(!$sftp) return array(); $sftp->connect(); /* $orderFiles = $sftp->getFilesList($this->remotePath); foreach($orderFiles as $file) { if($sftp->downloadFile($this->remotePath."/".$file, $tmpDir.$file)) { $result[] = $tmpDir.$file; Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_SOURCE_ORDERFILE_RECEIVED", $file, "File received successfully.", $this->siteId); } } */ $file = "orderLatest"; if($sftp->downloadFile($this->orderLatest, $tmpDir.$file)) { $result[] = $tmpDir.$file; Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_SOURCE_ORDERFILE_RECEIVED", $file, "File received successfully.", $this->siteId); } return $result; } }