Поддержка серверов

CSaleOrder::__SaleOrderCount: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=179085

//    CSaleOrder::__SaleOrderCount()
//    /bitrix/modules/sale/general/order.php:2745

    function __SaleOrderCount($arFilter, $strCurrency = '')
    {
        $mxResult = false;
        if (is_array($arFilter) && !empty($arFilter))
        {
            $dblPrice = 0;
            $strCurrency = strval($strCurrency);
            $mxLastOrderDate = '';
            $intMaxTimestamp = 0;
            $rsSaleOrders = CSaleOrder::GetList(
                array(),
                $arFilter,
                false,
                false,
                array('ID','PRICE','CURRENCY','DATE_INSERT')
            );
            while ($arSaleOrder = $rsSaleOrders->Fetch())
            {
                $intTimeStamp = MakeTimeStamp($arSaleOrder['DATE_INSERT']);
                if ($intMaxTimestamp < $intTimeStamp)
                {
                    $intMaxTimestamp = $intTimeStamp;
                    $mxLastOrderDate = $arSaleOrder['DATE_INSERT'];
                }
                if (empty($strCurrency))
                {
                    $dblPrice += $arSaleOrder['PRICE'];
                    $strCurrency = $arSaleOrder['CURRENCY'];
                }
                else
                {
                    $dblPrice += (
                        $strCurrency != $arSaleOrder['CURRENCY']
                        ? CCurrencyRates::ConvertCurrency($arSaleOrder['PRICE'], $arSaleOrder['CURRENCY'], $strCurrency)
                        : $arSaleOrder['PRICE']
                    );
                }
                unset($intTimeStamp);
            }
            unset($arSaleOrder, $rsSaleOrders);

            $archiveData = Sale\Archive\Manager::getList(
                array(
                    'filter' => $arFilter,
                    'select' => array('DATE_INSERT', 'PRICE', 'CURRENCY')
                )
            );

            while($archiveOrder = $archiveData->fetch())
            {
                $intTimeStamp = MakeTimeStamp($archiveOrder['DATE_INSERT']);
                if ($intMaxTimestamp < $intTimeStamp)
                {
                    $intMaxTimestamp = $intTimeStamp;
                    $mxLastOrderDate = $archiveOrder['DATE_INSERT'];
                }
                if (empty($strCurrency))
                {
                    $dblPrice += $archiveOrder['PRICE'];
                    $strCurrency = $archiveOrder['CURRENCY'];
                }

                $dblPrice += (
                    $strCurrency != $archiveOrder['CURRENCY']
                        ? CCurrencyRates::ConvertCurrency($archiveOrder['PRICE'], $archiveOrder['CURRENCY'], $strCurrency)
                        : $archiveOrder['PRICE']
                );
            }

            $mxResult = array(
                'PRICE' => $dblPrice,
                'CURRENCY' => $strCurrency,
                'LAST_ORDER_DATE' => $mxLastOrderDate,
                'TIMESTAMP' => $intMaxTimestamp,
            );
        }
        return $mxResult;
    }
';

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение