9 static $userCache =
array();
17 $dbUser = CUser::GetByID(
$userId);
18 if ($arUser = $dbUser->Fetch())
20 $userCache[
$userId] = CUser::FormatName(
21 CSite::GetNameFormat(
false),
23 "NAME" => $arUser[
"NAME"],
24 "LAST_NAME" => $arUser[
"LAST_NAME"],
25 "SECOND_NAME" => $arUser[
"SECOND_NAME"],
26 "LOGIN" => $arUser[
"LOGIN"]
39 define(
'COLUMNS_COUNT_FOR_SIMPLE_TEMPLATE', 3);
40 define(
'PATH_TO_MOBILE_REPORTS',
'/bitrix/admin/mobile/sale_reports_view.php');
43 if (!CModule::IncludeModule(
'report'))
47 if (!CModule::IncludeModule(
'catalog'))
52 $dbRepList = Bitrix\Report\ReportTable::getList(
array(
53 'select' =>
array(
'ID',
'TITLE',
'SETTINGS'),
57 $arMenuItems =
array();
59 while ($arReport = $dbRepList->fetch())
61 $settings = unserialize($arReport[
'SETTINGS'], [
'allowed_classes' =>
false]);
66 &&
$settings[
'mobile'][
'enabled'] ==
true)
68 if(
count(
$settings[
'select']) <= COLUMNS_COUNT_FOR_SIMPLE_TEMPLATE)
73 $arMenuItems[] =
array(
75 "data-url" => PATH_TO_MOBILE_REPORTS.
'?ID='.$arReport[
'ID'].
'&rep_templ='.
$template
80 if(empty($arMenuItems))
86 "items" => $arMenuItems
97 "data-url" =>
"/bitrix/admin/mobile/sale_orders_list.php?lang=".LANGUAGE_ID,
98 "data-pageid" =>
"orders_list",
104 "data-url" =>
"/bitrix/admin/mobile/sale_orders_list.php?lang=".LANGUAGE_ID.
"&action=get_filtered&filter_name=waiting_for_pay",
105 "data-pageid" =>
"orders_waiting_for_pay",
108 "text" =>
GetMessage(
"SMOB_WAITING_FOR_DELIVERY"),
109 "data-url" =>
"/bitrix/admin/mobile/sale_orders_list.php?lang=".LANGUAGE_ID.
"&action=get_filtered&filter_name=waiting_for_delivery",
110 "data-pageid" =>
"orders_waiting_for_delivery",
114 if (\
Bitrix\Main\ModuleManager::isModuleInstalled(
"pull"))
118 "data-url" =>
"/bitrix/admin/mobile/sale_orders_push.php?lang=".LANGUAGE_ID,
119 "data-pageid" =>
"orders_push"
126 "text" =>
GetMessage(
"SMOB_ORDERS_MANAGEMENT"),
137 $startSortMenuPosition = 200;
141 $item[
"sort"] =
$key+$startSortMenuPosition;
157 array(
"TITLE" =>
GetMessage(
"SMOB_CREATED").
":",
"VALUE" => self::getDateTime($arOrder[
'DATE_INSERT'])),
158 array(
"TITLE" =>
GetMessage(
"SMOB_CHANGED").
":",
"VALUE" => self::getDateTime($arOrder[
'DATE_UPDATE'])),
159 array(
"TITLE" =>
GetMessage(
"SMOB_STATUS").
":",
"VALUE" => $arOrder[
'STATUS_NAME']),
163 $dateCChanged =
false;
165 if($arOrder[
"DATE_CANCELED"] <>
'')
168 if(intval($arOrder[
"EMP_CANCELED_ID"]) > 0)
169 $dateCChanged .=
" ".self::GetFormatedUserName($arOrder[
"EMP_CANCELED_ID"]);
171 if($arOrder[
'CANCELED'] ==
'Y')
172 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"red",
"VALUE" =>
GetMessage(
"SMOB_ORDER_CANCELED"));
174 if($arOrder[
'CANCELED'] ==
'N' && intval($arOrder[
"EMP_CANCELED_ID"]) > 0)
175 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"green",
"VALUE" =>
GetMessage(
"SMOB_ORDER_CANCEL_CANCELED"));
178 $arSection[
"BOTTOM"][
"VALUE"] .=
"<br>".$dateCChanged;
180 $mad->addSection($arSection);
185 array(
"TITLE" =>
GetMessage(
"SMOB_LOGIN").
":",
"VALUE" => $arOrder[
'USER_LOGIN']),
186 array(
"TITLE" =>
GetMessage(
"SMOB_PAYER_TYPE").
":",
"VALUE" => $arOrder[
'PERSON_TYPE_NAME']),
195 array(
"TITLE" =>
GetMessage(
"SMOB_LOCATION").
":",
"VALUE" => $arOrder[
'CUSTOMER_LOCATION'])
199 if(trim($arOrder[
'CUSTOMER_CITY']) <>
'')
204 $mad->addSection($arSection);
206 $dateDChange =
false;
208 if($arOrder[
"DATE_ALLOW_DELIVERY"] <>
'')
211 if(intval($arOrder[
"EMP_ALLOW_DELIVERY_ID"]) > 0)
212 $dateDChange .=
" ".self::GetFormatedUserName($arOrder[
"EMP_ALLOW_DELIVERY_ID"]);
217 array(
"TITLE" =>
GetMessage(
"SMOB_D_SERVICE").
":",
"VALUE" => $arOrder[
'DELIVERY_NAME'])
220 if($arOrder[
'ALLOW_DELIVERY'] ==
'Y')
221 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"green",
"VALUE" =>
GetMessage(
"SMOB_D_ALLOWED"));
223 if($arOrder[
'ALLOW_DELIVERY'] ==
'N' && !is_null($arOrder[
"DATE_ALLOW_DELIVERY"]))
224 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"red",
"VALUE" =>
GetMessage(
"SMOB_D_DISALLOWED"));
227 $arSection[
"BOTTOM"][
"VALUE"] .=
"<br>".$dateDChange;
229 $mad->addSection($arSection);
235 array(
"TITLE" =>
GetMessage(
"SMOB_P_PRICE").
":",
"VALUE" => $arOrder[
'PRICE_STR']),
238 $datePChange =
false;
240 if($arOrder[
'DATE_PAYED'] <>
'')
243 if(intval($arOrder[
"EMP_PAYED_ID"]) > 0)
244 $datePChange .=
" ".self::GetFormatedUserName($arOrder[
"EMP_PAYED_ID"]);
246 if($arOrder[
'PAYED'] ==
'Y')
247 $arSection[
"BOTTOM"] =
array(
251 if($arOrder[
'PAYED'] ==
'N' && !is_null($arOrder[
'DATE_PAYED']))
252 $arSection[
"BOTTOM"] =
array(
257 $arSection[
"BOTTOM"][
"VALUE"] .=
"<br>".$datePChange;
259 $mad->addSection($arSection);
264 array(
"TITLE" =>
GetMessage(
"SMOB_C_BUYER").
":",
"VALUE" => $arOrder[
'USER_DESCRIPTION']),
269 $arSection[
"ROWS"][] =
array(
"TITLE" =>
GetMessage(
"SMOB_C_MANAGER").
":",
"VALUE" => $arOrder[
'COMMENTS']);
271 $mad->addSection($arSection);
273 if($arOrder[
'MARKED'] ==
'Y')
280 $reason = $arOrder[
"REASON_MARKED"] <>
'' ? $arOrder[
"REASON_MARKED"] :
GetMessage(
"SMOB_MARK_NO_DESCRIPTION");
282 if($arOrder[
'DATE_MARKED'] <>
'')
283 $reason .=
'<br>'.self::getDateTime($arOrder[
'DATE_MARKED']);
285 if(intval($arOrder[
'EMP_MARKED_ID']) > 0)
286 $reason .=
" (".self::GetFormatedUserName($arOrder[
"EMP_MARKED_ID"]).
")";
288 $arSection[
"BOTTOM"] =
array(
293 $mad->addSection($arSection);
300 if($arOrder[
'DEDUCTED'] ==
'Y')
301 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"green",
"VALUE" =>
GetMessage(
"SMOB_ORDER_DEDUCTED"));
302 elseif($arOrder[
'DEDUCTED'] ==
'N' && $arOrder[
"DATE_DEDUCTED"] <>
'' )
303 $arSection[
"BOTTOM"] =
array(
"STYLE" =>
"red",
"VALUE" =>
GetMessage(
"SMOB_ORDER_DEDUCTED_UNDO"));
305 $arSection[
"ROWS"][] =
array(
"TITLE" =>
GetMessage(
"SMOB_ORDER_NOT_DEDUCTED"),
"VALUE" =>
"");
307 if($arOrder[
"REASON_UNDO_DEDUCTED"] <>
'')
308 $arSection[
"BOTTOM"][
"VALUE"] .=
'<br>'.$arOrder[
"REASON_UNDO_DEDUCTED"];
310 if($arOrder[
"DATE_DEDUCTED"] <>
'')
311 $arSection[
"BOTTOM"][
"VALUE"] .=
'<br>'.self::getDateTime($arOrder[
"DATE_DEDUCTED"]);
313 if(intval($arOrder[
'EMP_DEDUCTED_ID']) > 0)
314 $arSection[
"BOTTOM"][
"VALUE"] .=
" (".self::GetFormatedUserName($arOrder[
"EMP_DEDUCTED_ID"]).
")";
316 $mad->addSection($arSection);
319 $productListReturn =
$GLOBALS[
"APPLICATION"]->IncludeComponent(
320 'bitrix:sale.mobile.product.list',
322 array(
"ORDER_ID" => $arOrder[
'ID']),
325 $productListHtml = ob_get_contents();
328 $mad->addSection(
array(
330 "TYPE" =>
"container",
331 "HTML" => $productListHtml
334 $WEIGHT_UNIT =
htmlspecialcharsbx(COption::GetOptionString(
'sale',
'weight_unit',
"", $arOrder[
'LID']));
335 $WEIGHT_KOEF =
htmlspecialcharsbx(COption::GetOptionString(
'sale',
'weight_koef', 1, $arOrder[
'LID']));
343 "VALUE" =>
SaleFormatCurrency($productListReturn[
'PRICE_TOTAL'], $arOrder[
"CURRENCY"])),
352 if($arOrder[
'TAX_VALUE']>0)
353 $arSection[
"ROWS"][] =
array(
357 if($arOrder[
'DISCOUNT_VALUE']>0)
358 $arSection[
"ROWS"][] =
array(
362 $arSection[
"ROWS"][] =
array(
366 $arSection[
"ROWS"][] =
array(
368 "VALUE" =>
SaleFormatCurrency($arOrder[
'PRICE'], $arOrder[
"CURRENCY"]),
"HIGLIGHTED" =>
true);
370 $mad->addSection($arSection);
378 return $mad->getHtml();
386 if(!
$GLOBALS[
"USER"]->IsAuthorized())
398 $arFilter[
">=STATUS_PERMS_PERM_VIEW"] =
"Y";
404 $arOrder = $dbOrder->GetNext();
411 $arOrder[
"PRICE_IN_ALL_NUM"] = floatval(($arOrder[
"~PRICE"])+floatval($arOrder[
"~PRICE_DELIVERY"]));
412 $arOrder[
"PRICE_IN_ALL"] =
SaleFormatCurrency($arOrder[
"PRICE_IN_ALL_NUM"], $arOrder[
"CURRENCY"]);
418 $arOrder = self::getOrderProps($arOrder);
420 $arOrder[
"DELIVERY_NAME"] = $arOrder[
"DELIVERY_NAME"][$arOrder[
"DELIVERY_ID"]];
423 $arOrder[
"PAY_SYSTEM_NAME"] = $arPaySys[
"NAME"];
428 "USER_ID" => $arOrder[
"USER_ID"],
429 "CURRENCY" => $arOrder[
"CURRENCY"],
434 $arUserAccount = $dbUserAccount->GetNext();
436 $arOrder[
"CURRENT_BUDGET"] = $arUserAccount[
"CURRENT_BUDGET"] ? $arUserAccount[
"CURRENT_BUDGET"] : 0;
437 $arOrder[
"CURRENT_BUDGET_STRING"] =
SaleFormatCurrency($arOrder[
"CURRENT_BUDGET"], $arOrder[
"CURRENCY"]);
442 private static function getOrderProps($arOrder)
445 'filter' =>
array(
'ORDER_ID' => $arOrder[
"ID"]),
446 'select' =>
array(
'*',
447 'TYPE' =>
'PROPERTY.TYPE',
448 'IS_ZIP' =>
'PROPERTY.IS_ZIP',
449 'IS_PAYER' =>
'PROPERTY.IS_PAYER',
450 'IS_EMAIL' =>
'PROPERTY.IS_EMAIL',
451 'IS_PHONE' =>
'PROPERTY.IS_PHONE',
452 'IS_ADDRESS' =>
'PROPERTY.IS_ADDRESS',
453 'IS_LOCATION' =>
'PROPERTY.IS_LOCATION'
457 while($pVal =
$dbRes->fetch())
459 if($pVal[
'IS_PAYER'] ==
'Y')
460 $arOrder[
"CUSTOMER_FIO"] = $pVal[
'VALUE'];
461 elseif($pVal[
'IS_EMAIL'] ==
'Y')
462 $arOrder[
"CUSTOMER_EMAIL"] = $pVal['VALUE'];
463 elseif($pVal['IS_PHONE'] ==
'Y')
464 $arOrder[
"CUSTOMER_PHONE"] = $pVal['VALUE'];
465 elseif($pVal['IS_ADDRESS'] ==
'Y')
466 $arOrder[
"CUSTOMER_ADDRESS"] = $pVal['VALUE'];
467 elseif($pVal['IS_ZIP'] ==
'Y')
468 $arOrder[
"CUSTOMER_ZIP"] = $pVal['VALUE'];
469 elseif($pVal['CODE'] == 'CITY')
470 $arOrder[
"CUSTOMER_CITY"] = $pVal['VALUE'];
471 elseif($pVal['IS_LOCATION'] ==
'Y')
476 ((
$arVal[
"COUNTRY_NAME"] ==
'' ||
$arVal[
"CITY_NAME"] ==
'') ?
"" :
" - ").
486 if (!CModule::IncludeModule(
'catalog') || !CModule::IncludeModule(
'currency'))
489 static $arCurrCache =
false;
491 if($arCurrCache ===
false)
493 $arCurrCache =
array();
496 while($arCurr = $dbCurr->Fetch())
497 $arCurrCache[$arCurr[
"CURRENCY"]] = $arCurr[
"FULL_NAME"];
500 $arRetSite =
array();
502 if(!empty($arCurIds))
504 foreach ($arCurIds as $currId)
505 if(isset($arCurrCache[$currId]))
506 $arRetCur[$currId] = $arCurrCache[$currId];
510 $arRetCur = $arCurrCache;
518 if(!is_array($deliveryCodes))
530 foreach ($deliveryCodes as
$code)
539 if(!($deliveryService = \
Bitrix\Sale\Delivery\Services\Manager::getObjectById($id)))
552 static $arSiteCache =
false;
554 if($arSiteCache ===
false)
556 $arSiteCache =
array();
557 $dbSite = CSite::GetList();
559 while($arSite = $dbSite->Fetch())
560 $arSiteCache[$arSite[
"LID"]] = $arSite[
"NAME"];
563 $arRetSite =
array();
565 if(!empty($arSitesIds))
567 foreach ($arSitesIds as
$siteId)
568 if(isset($arSiteCache[
$siteId]))
573 $arRetSite = $arSiteCache;
581 $arPaySystemsNames =
array();
585 while($arPS = $dbPS->Fetch())
588 return $arPaySystemsNames;
593 $arPersonTypes =
array();
597 while($arPers = $dbPers->Fetch())
600 return $arPersonTypes;
605 $arStatusNames =
array();
608 if(is_array($arStatusIds))
619 while($arStat = $dbStat->Fetch())
622 return $arStatusNames;
629 CSite::GetDateFormat(
'FULL', LANGUAGE_ID)
641 CSite::GetDateFormat(
'SHORT', LANGUAGE_ID)
650 $retStr = str_replace(
'##'.
$key.
'##', $field, $retStr);
660 if(!CModule::IncludeModule(
"pull"))
663 static $inited =
false;
668 CPullWatch::Add(
$GLOBALS[
'USER']->GetID(),
'saleOrder');
680 if(!CModule::IncludeModule(
"pull"))
683 CPullWatch::AddToStack(
'saleOrder',
685 'module_id' =>
'sale',
686 'command' =>
'orderDelete',
694 if(!CModule::IncludeModule(
"pull"))
697 CPullWatch::AddToStack(
'saleOrder',
699 'module_id' =>
'sale',
700 'command' =>
'orderAdd',
708 if(!CModule::IncludeModule(
"pull"))
711 CPullWatch::AddToStack(
'saleOrder',
713 'module_id' =>
'sale',
714 'command' =>
'orderUpdate',
725 foreach (
$arFields as $fieldId => $fieldValue)
727 if($fieldId ==
"DATE_TO")
729 elseif($fieldId ==
"DATE_UPDATE_TO")
731 elseif($fieldId ==
"DATE_STATUS_TO")
733 elseif($fieldId ==
"DATE_PAYED_TO")
735 elseif($fieldId ==
"DATE_ALLOW_DELIVERY_TO")
738 unset(
$arFields[
"DATE_ALLOW_DELIVERY_TO"]);
740 elseif($fieldId ==
"DATE_ALLOW_DELIVERY_FROM")
743 unset(
$arFields[
"DATE_ALLOW_DELIVERY_FROM"]);
746 elseif($fieldId ==
"ORDER_ID")
748 $arCommaEnums = explode(
",",
$arFields[
"ORDER_ID"]);
749 $commaCount =
count($arCommaEnums);
755 $arHypEnum = explode(
"-",
$arFields[
"ORDER_ID"]);
757 if(
count($arHypEnum) == 2)
770 elseif($fieldId ==
"PRICE_FROM")
775 elseif($fieldId ==
"PRICE_TO")
785 private static function parseOrderId($strOrderId)
792 $retStrDateTime =
'';
795 return $retStrDateTime;
799 if (mb_strlen($strDate) < 11)
806 $retStrDateTime = date(
$GLOBALS[
"DB"]->DateFormatToPHP(CSite::GetDateFormat(
"FULL",
SITE_ID)), mktime($arDate[
"HH"], $arDate[
"MI"], $arDate[
"SS"], $arDate[
"MM"], $arDate[
"DD"], $arDate[
"YYYY"]));
809 return $retStrDateTime;
814 if(!is_array(
$arFields) || !is_array($customFilter))
817 foreach (
$arFields as $fieldId => $arField)
818 $arFields[$fieldId][
"VALUE"] = isset($customFilter[$fieldId]) ? $customFilter[$fieldId] :
'';
834 "DATE_FROM" =>
array(
835 "NAME" =>
GetMessage(
"SMOB_FILTER_DATE_ORDER_FROM"),
839 "NAME" =>
GetMessage(
"SMOB_FILTER_DATE_ORDER_TO"),
844 "TYPE" =>
"ONE_SELECT",
845 "ADD_ALL_SELECT" =>
"Y",
850 "TYPE" =>
"ONE_SELECT",
853 "PRICE_FROM" =>
array(
854 "NAME" =>
GetMessage(
"SMOB_FILTER_PRICE_FROM"),
861 "STATUS_ID" =>
array(
862 "NAME" =>
GetMessage(
"SMOB_FILTER_STATUS_ID"),
863 "TYPE" =>
"MULTI_SELECT",
868 "TYPE" =>
"ONE_SELECT",
869 "ADD_ALL_SELECT" =>
"Y",
875 "ALLOW_DELIVERY" =>
array(
876 "NAME" =>
GetMessage(
"SMOB_FILTER_ALLOW_DELIVERY"),
877 "TYPE" =>
"ONE_SELECT",
878 "ADD_ALL_SELECT" =>
"Y",
880 "Y" =>
GetMessage(
"SMOB_FILTER_ALLOW_DELIVERY_Y"),
881 "N" =>
GetMessage(
"SMOB_FILTER_ALLOW_DELIVERY_N")
886 "TYPE" =>
"ONE_SELECT",
887 "ADD_ALL_SELECT" =>
"Y",
895 "TYPE" =>
"ONE_SELECT",
896 "ADD_ALL_SELECT" =>
"Y",
908 private static $arEvents =
array(
909 "ORDER_STATUS_CHANGED",
910 "ORDER_DELIVERY_ALLOWED",
920 private static $arSubscriptions =
array();
924 return self::$arEvents;
927 private static function &getData()
929 if(empty(self::$arSubscriptions))
930 self::$arSubscriptions = unserialize(COption::GetOptionString(
"sale",
"pushEventsSubscriptions",
""), [
'allowed_classes' =>
false]);
932 return self::$arSubscriptions;
935 private static function saveData()
943 $arSubscriptions = self::getData();
945 if(is_array($arSubscriptions))
946 foreach ($arSubscriptions as $subsId => $arSubscription)
948 $arSubscription[
"E"] == array_search($eventId, self::$arEvents)
950 $arSubscription[
"V"] ==
"Y"
959 $arOldSubs = &self::getData();
960 $arTmpSubs =
array();
962 if(is_array($arOldSubs))
964 foreach ($arOldSubs as $subId => $subItem)
966 $arTmpSubs[$subId] = &$arOldSubs[$subId];
968 foreach ($arTmpSubs as $subId => &$subItem)
970 if(isset($arSubs[self::$arEvents[$subItem[
"E"]]]))
972 $subItem[
"V"] = $arSubs[self::$arEvents[$subItem[
"E"]]];
973 unset($arSubs[self::$arEvents[$subItem[
"E"]]]);
976 unset($arTmpSubs[$subId]);
981 foreach ($arSubs as $eventId => $value)
991 $evtKey = array_search($eventId, self::$arEvents);
993 if($evtKey !==
false)
995 $arSubscriptions = &self::getData();
996 $arSubscriptions[] =
array(
1017 $registry = \Bitrix\Sale\Registry::getInstance(\Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER);
1020 $orderClass = $registry->getOrderClassName();
1027 $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations(
$userId,
array(
'view'));
1028 return(in_array(
$order->getField(
'STATUS_ID'), $allowedStatusesView));
1036 $arSubscriptions = self::getData();
1038 if(is_array($arSubscriptions))
1039 foreach ($arSubscriptions as $arSubscription)
1040 if(intval($arSubscription[
"U"]) ==
$userId)
1041 $arResult[self::$arEvents[$arSubscription[
"E"]]] = $arSubscription[
"V"];
1046 private static function makeMessage($eventId,
$arParams)
1051 "#ACCOUNT_NUMBER#" =>
$arParams[
"ORDER"][
"ACCOUNT_NUMBER"],
1052 "#DATE_INSERT#" =>
FormatDate(
$DB->DateFormatToPHP(CSite::GetDateFormat(
"SHORT")), strtotime(
$arParams[
"ORDER"][
"DATE_INSERT"])),
1053 "#PRICE#" =>
$arParams[
"ORDER"][
"PRICE"],
1054 "#CURRENCY#" =>
$arParams[
"ORDER"][
"CURRENCY"]
1057 if($eventId ==
"ORDER_STATUS_CHANGED")
1060 "LID" => LANGUAGE_ID,
1065 array(
"SORT" =>
"ASC"),
1072 if($arStatus = $dbStatusListTmp->GetNext())
1073 $strResult = str_replace(
"#STATUS_NAME#", $arStatus[
"NAME"], $strResult);
1075 elseif($eventId ==
"ORDER_CHECK_ERROR")
1077 $strResult = str_replace(
"#CHECK_ID#",
$arParams[
"CHECK"][
"ID"], $strResult);
1083 private static function makeTitle($eventId,
$arParams)
1096 in_array($eventId, self::$arEvents)
1098 && CModule::IncludeModule(
"pull")
1109 if(!empty($arUsers))
1113 $arMessages =
array();
1120 $arMessages[] =
array(
1123 "APP_ID"=>
"BitrixAdmin",
1125 "PARAMS" =>
"sl_".
$arParams[
"ORDER"][
"ID"]
1129 $pushMe =
new CPushManager();
1130 $result = $pushMe->SendMessage($arMessages);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getList(array $parameters=array())
static GetList($by='sort', $order='asc', $lang=LANGUAGE_ID)
static SetOptionString($module_id, $name, $value="", $desc=false, $site="")
static getIdByCode($code)
static GetByID($id, $personTypeId=0)
static GetList($arOrder=array("SORT"=> "ASC", "NAME"=> "ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
static GetByID($primary, $strLang=LANGUAGE_ID)
static adaptFields($arFields)
static buildFieldsParams()
static addLastTimeToDate($strDate)
static setFieldsValues($arFields, $customFilter)
static InitEventHandlers()
static onOrderUpdate($orderId, $arFields)
static onOrderAdd($orderId, $arFields)
static onOrderDelete($orderId, $bSuccess)
static addSubscription($userId, $eventId, $value)
static getSubscribers($eventId, $arParams)
static send($eventId, $arParams)
static updateSubscriptions($userId, $arSubs)
static getSubscriptions($userId)
static getOrderInfoDetail($orderId)
static getSitesNames($arSitesIds=array())
static getStatusesNames($arStatusIds=false)
static getMobileReports()
static getPreparedTemplate($template, $arFields)
static getPersonTypesNames($arPersonTypeIds)
static GetFormatedUserName($userId)
static buildSaleAdminMobileMenu()
static getDeliveriesInfo($deliveryCodes)
static getPaySystemsNames($arPaySystemsIds)
static getDateTime($strDate)
static getCurrenciesNames($arCurIds=array())
static makeDetailClassFromOrder($arOrder)
static GetList($arOrder=array("ID"=>"DESC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arOptions=array())
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
static GetLangByID($statusId, $languageId=LANGUAGE_ID)
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
FormatDate($format="", $timestamp=false, $now=false, ?string $languageId=null)
ParseDateTime($datetime, $format=false)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
FormatDateFromDB($date, $format='FULL', $phpFormat=false)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
SaleFormatCurrency($fSum, $strCurrency, $OnlyValue=false, $withoutFormat=false)
const SALE_WEIGHT_PRECISION
$GLOBALS['_____370096793']