Exemplo n.º 1
0
 function GetByID($ID)
 {
     global $DB;
     if (intval($ID) <= 0) {
         return false;
     }
     if (isset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]) && is_array($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]) && is_set($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID], "ID")) {
         return $GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID];
     } else {
         $isOrderConverted = \Bitrix\Main\Config\Option::get("main", "~sale_converted_15", 'N') == 'Y';
         if ($isOrderConverted == "Y") {
             $db_res = \Bitrix\Sale\Compatible\OrderCompatibility::getById($ID);
         } else {
             $strSql = "SELECT O.*, " . "\t" . $DB->DateToCharFunction("O.DATE_STATUS", "FULL") . " as DATE_STATUS_FORMAT, " . "\t" . $DB->DateToCharFunction("O.DATE_INSERT", "SHORT") . " as DATE_INSERT_FORMAT, " . "\t" . $DB->DateToCharFunction("O.DATE_UPDATE", "FULL") . " as DATE_UPDATE_FORMAT, " . "\t" . $DB->DateToCharFunction("O.DATE_LOCK", "FULL") . " as DATE_LOCK_FORMAT " . "FROM b_sale_order O " . "WHERE O.ID = " . $ID . "";
             $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
         if ($res = $db_res->Fetch()) {
             if ($isOrderConverted == "Y") {
                 $dataKeys = array_keys($res);
                 foreach ($dataKeys as $key) {
                     if (!empty($res[$key]) && ($res[$key] instanceof \Bitrix\Main\Type\DateTime || $res[$key] instanceof \Bitrix\Main\Type\Date)) {
                         /** @var \Bitrix\Main\Type\Date|\Bitrix\Main\Type\DateTime $dateObject */
                         $dateObject = $res[$key];
                         if ($key == "DATE_INSERT") {
                             $res['DATE_INSERT_FORMAT'] = Sale\Compatible\OrderCompatibility::convertDateFieldToFormat($dateObject, FORMAT_DATE);
                         } elseif ($key == "DATE_STATUS") {
                             $res['DATE_STATUS_FORMAT'] = Sale\Compatible\OrderCompatibility::convertDateFieldToFormat($dateObject, FORMAT_DATETIME);
                         } elseif ($key == "DATE_UPDATE") {
                             $res['DATE_UPDATE_FORMAT'] = Sale\Compatible\OrderCompatibility::convertDateFieldToFormat($dateObject, FORMAT_DATETIME);
                         } elseif ($key == "DATE_LOCK") {
                             $res['DATE_LOCK_FORMAT'] = Sale\Compatible\OrderCompatibility::convertDateFieldToFormat($dateObject, FORMAT_DATETIME);
                         }
                         $res[$key] = $dateObject->format('Y-m-d H:i:s');
                     }
                 }
                 $res = \Bitrix\Sale\Compatible\OrderFetchAdapter::convertRowData($res);
             }
             $GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID] = $res;
             return $res;
         }
     }
     return False;
 }