Ejemplo n.º 1
0
 public function process($data)
 {
     if (!isset($data["RESULT_ID"])) {
         throw new ArgumentNullException("data[\"RESULT_ID\"]");
     }
     if (isset($data["XML"])) {
         $fields["RESULTS"] = $data["XML"];
         \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::update($data["RESULT_ID"], $fields);
     }
     $message = "";
     if (isset($data["ARRAY"]["RequestDetails"]["Errors"]["Error"])) {
         $message .= $this->getErrorsString($data["ARRAY"]["RequestDetails"]["Errors"]["Error"]);
     }
     if (isset($data["ARRAY"]["RequestDetails"]["Warnings"]["Warning"])) {
         $message .= $this->getWarningsString($data["ARRAY"]["RequestDetails"]["Warnings"]["Warning"]);
     }
     if (isset($data["ARRAY"]["ProductResult"])) {
         $message .= $this->getProductsString($data["ARRAY"]["ProductResult"]);
     }
     if (strlen($message) > 0) {
         $message = "RequestId: " . $data["ARRAY"]["RequestDetails"]["RequestID"] . "\n" . "StartTime: " . $data["ARRAY"]["RequestDetails"]["StartTime"] . "\n" . "EndTime: " . $data["ARRAY"]["RequestDetails"]["EndTime"] . "\n\n" . $message;
         Ebay::log(Logger::LOG_LEVEL_ERROR, "EBAY_FEED_RESULTS_ERROR", $data["ARRAY"]["RequestDetails"]["RequestID"], $message, $this->siteId);
     }
     return true;
 }
Ejemplo n.º 2
0
 public function rewind()
 {
     $this->feedsToCheck = array();
     $res = ResultsTable::getList(array('filter' => $this->filter));
     while ($feed = $res->fetch()) {
         $this->feedsToCheck[$feed["ID"]] = $feed;
     }
     $feedData = reset($this->feedsToCheck);
     if ($feedData !== false) {
         $this->resultFileContent = $this->getFileContent($feedData);
     }
 }
Ejemplo n.º 3
0
 public static function process($data)
 {
     if (!isset($data["RESULT_ID"])) {
         throw new ArgumentNullException("data[\"RESULT_ID\"]");
     }
     $id = $data["RESULT_ID"];
     unset($data["RESULT_ID"]);
     if (isset($data["PROCESSING_REQUEST_ID"]) || isset($data["PROCESSING_RESULT"])) {
         $fields = $data;
     } else {
         $fields = array("PROCESSING_REQUEST_ID" => "-", "PROCESSING_RESULT" => "-");
     }
     return \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::update($id, $fields);
 }
Ejemplo n.º 4
0
 protected function sendDataSftp()
 {
     $directory = new \Bitrix\Main\IO\Directory($this->path . "/zip");
     if (!$directory->isExists()) {
         throw new SystemException("Directory" . $this->path . "/zip does not exist! " . __METHOD__);
     }
     $filesToSend = $directory->getChildren();
     if (empty($filesToSend)) {
         return false;
     }
     $sftp = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getSftp($this->siteId);
     $sftp->connect();
     for ($i = 0; $i < count($filesToSend); $i++) {
         $directoryEntry = $filesToSend[$i];
         $localPath = $directoryEntry->getPath();
         if (!$directoryEntry instanceof \Bitrix\Main\IO\File || GetFileExtension($localPath) != "zip") {
             continue;
         }
         $remote = $this->remotePath . "/" . $directoryEntry->getName();
         while (!$this->checkOuterConditions($sftp)) {
             if ($this->timer !== null && !$this->timer->check(15)) {
                 return false;
             }
             sleep(10);
         }
         if ($sftp->uploadFile($localPath, $remote)) {
             $directoryEntry->delete();
             ResultsTable::add(array("FILENAME" => $directoryEntry->getName(), "FEED_TYPE" => $this->feedType, "UPLOAD_TIME" => DateTime::createFromTimestamp(time())));
             Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_PROCESSOR_SFTPQUEUE_SEND", $remote, "File sent successfully.", $this->siteId);
         }
     }
     return true;
 }
Ejemplo n.º 5
0
$ebayCategoriesVars = 0;
$res = \Bitrix\Sale\TradingPlatform\Ebay\CategoryVariationTable::getList(array("select" => array("CNT"), "runtime" => array(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)'))));
if ($var = $res->fetch()) {
    $ebayCategoriesVars = $var["CNT"];
}
$defaultFeedIntervals = \Bitrix\Sale\TradingPlatform\Helper::getDefaultFeedIntervals();
$res = \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::getList(array("select" => array("FEED_TYPE", "MAX_UPLOAD_TIME"), "group" => array("FEED_TYPE"), "runtime" => array(new \Bitrix\Main\Entity\ExpressionField('MAX_UPLOAD_TIME', 'MAX(UPLOAD_TIME)'))));
$results = array();
while ($lastUpdates = $res->fetch()) {
    $results[$lastUpdates["FEED_TYPE"]] = $lastUpdates["MAX_UPLOAD_TIME"];
}
$filter = array("LOGIC" => "OR");
foreach ($results as $feedType => $uploadTime) {
    $filter[] = array("FEED_TYPE" => $feedType, "UPLOAD_TIME" => $uploadTime);
}
$res = \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::getList(array('filter' => $filter));
$results = array();
while ($lastUpdates = $res->fetch()) {
    $results[$lastUpdates["FEED_TYPE"]] = $lastUpdates;
}
$arTabs = array(array("DIV" => "ebay_exchange", "TAB" => Loc::getMessage("SALE_EBAY_TAB_EXCHANGE"), "TITLE" => Loc::getMessage("SALE_EBAY_TAB_EXCHANGE_DESCR")), array("DIV" => "ebay_meta", "TAB" => Loc::getMessage("SALE_EBAY_TAB_META"), "TITLE" => Loc::getMessage("SALE_EBAY_TAB_META_DESCR")));
$tabControl = new CAdminTabControl("tabControl", $arTabs);
$policy = null;
$APPLICATION->SetTitle(Loc::getMessage("SALE_EBAY_TITLE"));
\Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/ebay_admin.js", true);
require_once $DOCUMENT_ROOT . BX_ROOT . "/modules/main/include/prolog_admin_after.php";
if (strlen($errorMsg) > 0) {
    CAdminMessage::ShowMessage(array("MESSAGE" => $errorMsg, "TYPE" => "ERROR"));
}
if ($bSaved) {
    CAdminMessage::ShowMessage(array("MESSAGE" => GetMessage("SALE_EBAY_SETTINGS_SAVED"), "TYPE" => "OK"));