Exemple #1
0
 public static function checkQuantity($ID, $productFields)
 {
     $checkNeed = isset($productFields['QUANTITY']) || isset($productFields['QUANTITY_TRACE']) || isset($productFields['CAN_BUY_ZERO']);
     if (!$checkNeed) {
         return;
     }
     $productIterator = ProductTable::getList(array('filter' => array('=ID' => $ID), 'select' => array('QUANTITY', 'QUANTITY_TRACE', 'CAN_BUY_ZERO')));
     $product = $productIterator->fetch();
     if ($product) {
         if ($product["QUANTITY_TRACE"] == "Y" && $product['CAN_BUY_ZERO'] == 'N') {
             $linkIterator = LinkTable::getList(array("filter" => array("=LINK_TYPE" => LinkTable::TYPE_IBLOCK_ELEMENT, "=LINK_ID" => $ID, array(array("=BANNER.AUTO_QUANTITY_OFF" => YandexBannerTable::ACTIVE), array("=BANNER.AUTO_QUANTITY_ON" => YandexBannerTable::ACTIVE), 'LOGIC' => "OR")), "select" => array("BANNER_ID", "AUTO_QUANTITY_ON" => "BANNER.AUTO_QUANTITY_ON", "AUTO_QUANTITY_OFF" => "BANNER.AUTO_QUANTITY_OFF")));
             $zeroQuantity = $product['QUANTITY'] <= 0;
             $linkIdMark = array();
             $linkIdUnMark = array();
             while ($link = $linkIterator->fetch()) {
                 $linkIdMark[] = $link["BANNER_ID"];
                 if ($zeroQuantity && $link["AUTO_QUANTITY_ON"] == YandexBannerTable::MARKED || !$zeroQuantity && $link["AUTO_QUANTITY_OFF"] == YandexBannerTable::MARKED) {
                     $linkIdUnMark[] = $link["BANNER_ID"];
                 }
             }
             if (count($linkIdMark) > 0) {
                 if ($zeroQuantity) {
                     YandexBannerTable::markStopped($linkIdMark);
                 } else {
                     YandexBannerTable::markResumed($linkIdMark);
                 }
                 if (count($linkIdUnMark) > 0) {
                     if ($zeroQuantity) {
                         YandexBannerTable::unMarkResumed($linkIdUnMark);
                     } else {
                         YandexBannerTable::unMarkStopped($linkIdUnMark);
                     }
                 }
             }
         }
     }
 }