use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Loader;
use Bitrix\Sale;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
Loader::includeModule('sale');
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
$selfFolderUrl = $adminPage->getSelfFolderUrl();
$publicMode = (defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1);
if ($publicMode)
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_popup_admin.php");
}
IncludeModuleLangFile(__FILE__);
ClearVars("u_");
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
if(!CBXFeatures::IsFeatureEnabled('SaleAccounts'))
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
ShowError(GetMessage("SALE_FEATURE_NOT_ALLOW"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
return;
}
$ID = intval($_GET["USER_ID"]);
$registry = \Bitrix\Sale\Registry::getInstance(\Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER);
/** @var Sale\Order $orderClass */
$orderClass = $registry->getOrderClassName();
$isWithOrdersMode = (
Loader::includeModule('crm')
&& !CCrmSaleHelper::isWithOrdersMode()
) ? false : true;
$catalogSubscribeEnabled = false;
if(Bitrix\Main\Loader::includeModule("catalog"))
$catalogSubscribeEnabled = class_exists('\Bitrix\Catalog\SubscribeTable');
//reorder
if (
$isWithOrdersMode
&& isset($_REQUEST['reorder'])
&& (int)$_REQUEST['reorder'] > 0
)
{
$ORDER_ID = intval($_REQUEST["reorder"]);
$lid = trim($_REQUEST["lid"]);
$arID = array();
$urlProduct = "";
$dbBasketList = \Bitrix\Sale\Internals\BasketTable::getList(array(
'order' => array("PRODUCT_ID" => "ASC"),
'filter' => array(
"LID" => $lid,
"ORDER_ID" => $ORDER_ID,
"SET_PARENT_ID" => false
),
'select' => array('PRODUCT_ID', 'ID', 'QUANTITY')
));
while ($arBasket = $dbBasketList->fetch())
$urlProduct .= "&product[".$arBasket["PRODUCT_ID"]."]=".$arBasket["QUANTITY"];
$addOrderUrl = $selfFolderUrl."sale_order_create.php?USER_ID=".CUtil::JSEscape($ID)."&SITE_ID=".CUtil::JSEscape($lid)."&lang=".LANGUAGE_ID.CUtil::JSEscape($urlProduct);
if ($adminSidePanelHelper->isPublicSidePanel())
{
$addOrderUrl = "/shop/orders/details/" . $ORDER_ID . "/?IFRAME=Y&IFRAME_TYPE=SIDE_SLIDER&init_mode=edit©=1";
}
LocalRedirect($addOrderUrl);
}
//USER INFO
$userFIO = "";
$dbUser = CUser::GetByID($ID);
if($arUser = $dbUser->ExtractFields("u_"))
{
if (strval(trim($u_LAST_NAME)) != '')
{
$userFIO .= (strval($userFIO) != '' ? " " : "") . $u_LAST_NAME;
}
if (strval(trim($u_NAME)) != '')
{
$userFIO .= (strval($userFIO) != '' ? " " : "") . $u_NAME;
}
if (strval(trim($u_SECOND_NAME)) != '')
{
$userFIO .= (strval($userFIO) != '' ? " " : "") . $u_SECOND_NAME;
}
}
$userAdres = "";
$strUserGroup = "";
if(!empty($arUser))
{
$userGroupList = [];
if ($adminSidePanelHelper->isPublicSidePanel())
{
if (\Bitrix\Main\Loader::includeModule('crm'))
{
$userGroupList = \Bitrix\Crm\Order\BuyerGroup::getPublicList();
}
}
else
{
$dbGroups = CGroup::GetList('c_sort', 'asc', array('ANONYMOUS' => 'N'));
while ($arGroup = $dbGroups->Fetch())
{
$userGroupList[] = $arGroup;
}
}
$userGroupListIds = array_column($userGroupList, 'ID', 'ID');
//user group
$arUserGroups = CUser::GetUserGroup($ID);
if (!empty($arUserGroups))
{
foreach ($userGroupList as $userGroup)
{
if (in_array($userGroup['ID'], $arUserGroups))
{
$strUserGroup .= htmlspecialcharsbx($userGroup['NAME']).' ';
}
}
}
if (empty($strUserGroup))
{
$strUserGroup = GetMessage('BUYER_NO_VALUES');
}
//user adres
if ($u_PERSONAL_STATE <> '')
$userAdres .= $u_PERSONAL_STATE;
if ($u_PERSONAL_CITY <> '')
{
if ($userAdres <> '')
$userAdres .= ", ";
$userAdres .= $u_PERSONAL_CITY;
}
if ($u_PERSONAL_STREET <> '')
{
if ($userAdres <> '')
$userAdres .= ", ";
$userAdres .= $u_PERSONAL_STREET;
}
//ALL SITES
$arSites = array();
$rsSites = CSite::GetList("id", "asc");
while ($arSite = $rsSites->Fetch())
$arSites[$arSite["ID"]] = $arSite;
}
$viewedMessage = '';
$basketMessage = '';
$viewedError = '';
$basketError = '';
//ACTIONS
//viewed
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'viewed_apply' && intval($_REQUEST["viewed_id"]) > 0 && $_REQUEST["viewed_lid"] <> '' && $saleModulePermissions >= "W")
{
$PRODUCT_ID = intval($_REQUEST["viewed_id"]);
$LID = trim($_REQUEST["viewed_lid"]);
if (CModule::IncludeModule("catalog"))
{
/** @var $productProvider IBXSaleProductProvider */
if ($productProvider = CSaleBasket::GetProductProvider(array("MODULE" => "catalog", "PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider")))
{
$arViews = $productProvider::GetProductData(array(
"PRODUCT_ID" => $PRODUCT_ID,
"QUANTITY" => 1,
"RENEWAL" => "N",
"SITE_ID" => $LID
));
}
else
{
$arViews = CSaleBasket::ExecuteCallbackFunction(
'CatalogBasketCallback',
'catalog',
$PRODUCT_ID,
1,
$LID
);
}
if (count($arViews) <= 0)
{
$viewedError = GetMessage('BUYER_VIEWED_ERROR_PRODUCT_FAIL');
$viewedMessage = "";
}
else
{
$dbProduct = CIBlockElement::GetList(array(), array("ID" => $PRODUCT_ID), false, false, array('ID', 'NAME', "XML_ID", "IBLOCK_EXTERNAL_ID"));
$arProduct = $dbProduct->Fetch();
$arViews['NAME'] = $arProduct["NAME"];
$arViews['PRODUCT_ID'] = $arProduct["ID"];
$arViews['MODULE'] = "catalog";
$arViews["LID"] = $LID;
}
}
else
{
$dbViewsList = CSaleViewedProduct::GetList(
array(),
array("FUSER_ID" => $arFuserItems["ID"], "PRODUCT_ID" => $PRODUCT_ID),
false,
false
);
$arViews = $dbViewsList->Fetch();
}
if ($viewedError == '')
{
$arFields = array("PROPS" => array());
$arParentSku = CCatalogSku::GetProductInfo($PRODUCT_ID);
if ($arParentSku && count($arParentSku) > 0)
{
$arPropsSku = array();
$dbProduct = CIBlockElement::GetList(array(), array("ID" => $PRODUCT_ID), false, false, array('IBLOCK_ID'));
$arProduct = $dbProduct->Fetch();
$dbOfferProperties = CIBlock::GetProperties($arProduct["IBLOCK_ID"], array(), array("!XML_ID" => "CML2_LINK"));
while($arOfferProperties = $dbOfferProperties->Fetch())
$arPropsSku[] = $arOfferProperties["CODE"];
$arFields["PROPS"] = CIBlockPriceTools::GetOfferProperties(
$PRODUCT_ID,
$arParentSku["IBLOCK_ID"],
$arPropsSku
);
}
$arFields["USER_ID"] = $ID;
$arFields["PRODUCT_ID"] = $PRODUCT_ID;
$arFields["PRICE"] = $arViews["PRICE"];
$arFields["CURRENCY"] = $arViews["CURRENCY"];
$arFields["QUANTITY"] = 1;
$arFields["LID"] = $arViews["LID"];
$arFields["DETAIL_PAGE_URL"] = $arViews["DETAIL_PAGE_URL"];
$arFields["NAME"] = $arViews["NAME"];
$arFields["CAN_BUY"] = "Y";
$arFields["TYPE"] = $arViews["TYPE"];
$arFields["MODULE"] = $arViews["MODULE"];
if ($arViews["MODULE"] == "catalog")
{
$arFields["CALLBACK_FUNC"] = "CatalogBasketCallback";
$arFields["ORDER_CALLBACK_FUNC"] = "CatalogBasketOrderCallback";
$arFields["CANCEL_CALLBACK_FUNC"] = "CatalogBasketCancelCallback";
$arFields["PAY_CALLBACK_FUNC"] = "CatalogPayOrderCallback";
$arFields["PRODUCT_PROVIDER_CLASS"] = "CCatalogProductProvider";
}
if($arProduct["IBLOCK_EXTERNAL_ID"] <> '')
{
$arFields["CATALOG_XML_ID"] = $arProduct["IBLOCK_EXTERNAL_ID"];
$arFields["PROPS"][] = Array(
"NAME" => "Catalog XML_ID",
"CODE" => "CATALOG.XML_ID",
"VALUE" => $arProduct["IBLOCK_EXTERNAL_ID"],
);
}
if(intval($arProduct["XML_ID"]) > 0)
{
$arFields["PRODUCT_XML_ID"] = $arProduct["XML_ID"];
$arFields["PROPS"][] = Array(
"NAME" => "Product XML_ID",
"CODE" => "PRODUCT.XML_ID",
"VALUE" => $arProduct["XML_ID"],
);
}
$arFuserItems = CSaleUser::GetList(array("USER_ID" => $ID));
if (count($arFuserItems) > 0)
$arFields["FUSER_ID"] = $arFuserItems["ID"];
if (!CSaleBasket::Add($arFields))
{
$viewedError = GetMessage('BUYER_VIEWED_ADD_ERROR');
$viewedMessage = "";
}
else
$viewedMessage = GetMessage('BUYER_VIEWED_MESS_BASKET');
}
}
//basket
if (isset($_REQUEST['apply']) && isset($_REQUEST['action']) && $saleModulePermissions >= "W" && check_bitrix_sessid())
{
$arID = array();
$arFields = array();
if($arFuserItems = CSaleUser::GetList(array("USER_ID" => $ID)))
{
$arFields["FUSER_ID"] = $arFuserItems["ID"];
if (!isset($_REQUEST["action_target"]) || $_REQUEST["action_target"] != "selected")
{
if(isset($_REQUEST['PRODUCT_ID']) && count($_REQUEST['PRODUCT_ID']) > 0)
{
if(!is_array($_REQUEST['PRODUCT_ID']))
$arID = array($_REQUEST['PRODUCT_ID']);
else
$arID = $_REQUEST['PRODUCT_ID'];
}
//delete default ID
foreach($arID as $lid => $arProduct)
{
foreach ($arProduct as $key => $val)
{
if (!in_array($val, $_POST["ID"]))
unset($arID[$lid][$key]);
}
}
}
else
{
$arBasketActionFilter = array("FUSER_ID" => $arFields["FUSER_ID"], "ORDER_ID" => "NULL", "CAN_BUY" => "Y");
if ($filter_basket_lid <> '')
$arBasketActionFilter["LID"] = trim($filter_basket_lid);
$dbBasketEl = \Bitrix\Sale\Internals\BasketTable::getList(array(
'filter' => $arBasketActionFilter,
'select' => array('ID', 'PRODUCT_ID', 'LID')
));
while($arBasketEl = $dbBasketEl->Fetch())
$arID[$arBasketEl["LID"]][] = $arBasketEl["PRODUCT_ID"];
}
$LID = "";
foreach($arID as $key => $val)
{
if ($LID == "")
$LID = $key;
if ($LID != $key)
{
if (isset($_REQUEST['basket_apply']))
$basketError = GetMessage('BUYER_VIEWED_BASKET_ERROR_TO_ORDER');
break;
}
}
if ($basketError == '' && $basketError == '')
{
switch ($_REQUEST['action'])
{
case "order_basket":
if (count($arID[$LID]) > 0)
{
$urlProduct = "";
$arIDProd = array();
foreach ($arID[$LID] as $PRODUCT_ID)
{
$arIDProd[] = $PRODUCT_ID;
}
$dbBasketEl = \Bitrix\Sale\Internals\BasketTable::getList(array(
'filter' => array(
"LID" => $LID,
"FUSER_ID" => $arFields["FUSER_ID"],
"PRODUCT_ID" => $arIDProd,
"ORDER_ID" => "NULL"
),
'select' => array('CAN_BUY', "SUBSCRIBE", "DELAY", "PRODUCT_ID", "QUANTITY")
));
while($arBasketEl = $dbBasketEl->fetch())
{
$urlProduct .= "&product[".$arBasketEl["PRODUCT_ID"]."]=".$arBasketEl["QUANTITY"];
if ($arBasketEl["CAN_BUY"] != "Y" || $arBasketEl["DELAY"] == "Y" || $arBasketEl["SUBSCRIBE"] == "Y")
{
$basketError = GetMessage('BUYER_BASKET_ORDER_ERROR');
break;
}
}
if ($basketError == '')
{
if ($adminSidePanelHelper->isPublicSidePanel())
{
echo "";
exit;
}
else
{
echo "";
exit;
}
}
}
else
{
if(isset($_REQUEST['basket_apply']) && isset($_REQUEST['BASKET_ID']))
$basketError = GetMessage('BUYER_BASKET_MESS_NULL');
}
break;
case "delay_y":
case "delay_n":
$arFields["DELAY"] = (($_REQUEST['action']=="delay_y") ? "Y" : "N");
if (is_array($arID[$LID]))
{
foreach ($arID[$LID] as $PRODUCT_ID)
{
$dbBasketEl = \Bitrix\Sale\Internals\BasketTable::getList(array(
'filter' => array(
"LID" => $LID,
"FUSER_ID" => $arFields["FUSER_ID"],
"PRODUCT_ID" => $PRODUCT_ID,
"ORDER_ID" => "NULL"
),
'select' => array('ID')
));
$arBasketEl = $dbBasketEl->fetch();
if (!CSaleBasket::Update($arBasketEl["ID"], $arFields))
$basketError = GetMessage('BUYER_BASKET_ADD_ERROR');
}//end foreach
}
break;
case "delete_basket":
if (is_array($arID[$LID]))
{
foreach ($arID[$LID] as $PRODUCT_ID)
{
$dbBasketEl = \Bitrix\Sale\Internals\BasketTable::getList(array(
'filter' => array(
"LID" => $LID,
"FUSER_ID" => $arFields["FUSER_ID"],
"PRODUCT_ID" => $PRODUCT_ID,
"ORDER_ID" => "NULL"
),
'select' => array('ID')
));
$arBasketEl = $dbBasketEl->fetch();
CSaleBasket::Delete($arBasketEl["ID"]);
}
}
break;
}
}
}
}
$_REQUEST['admin_history'] = 'Y';
$pageTitle = "";
if(!empty($arUser))
$pageTitle = " \"(".htmlspecialcharsBack($u_LOGIN).") ".htmlspecialcharsBack($userFIO)."\"";
$APPLICATION->SetTitle(GetMessage("BUYER_TITLE").$pageTitle);
if(!empty($arUser))
{
$orderStatusNames = \Bitrix\Sale\OrderStatus::getAllStatusesNames(LANGUAGE_ID);
//MAIN INFORMATION
$sTableID_tab1 = "tbl_sale_buyers_profile_tab1";
$oSort_tab1 = new CAdminSorting($sTableID_tab1);
$lAdmin_tab1 = new CAdminList($sTableID_tab1, $oSort_tab1);
$arFilter = array("USER_ID" => $ID);
$dbOrderList = CSaleOrder::GetList(
array('DATE_INSERT' => 'DESC'),
$arFilter,
false,
array("nTopCount" => 10),
array('ID', 'DATE_INSERT', 'PAYED', 'DATE_PAYED', 'CANCELED', 'DATE_CANCELED', 'PRICE', 'CURRENCY', "STATUS_ID", "DATE_STATUS", "LID")
);
$dbOrderList = new CAdminResult($dbOrderList, $sTableID_tab1);
$dbOrderList->NavStart();
$lAdmin_tab1->NavText($dbOrderList->GetNavPrint(GetMessage('BUYER_ORDER_LIST')));
$mainOrderHeader = array(
array("id"=>"ID", "content"=>'ID', "sort"=>"", "default"=>true),
array("id"=>"STATUS_ID","content"=>GetMessage("BUYER_LAST_H_STATUS"), "sort"=>"", "default"=>true),
array("id"=>"PAYED", "content"=>GetMessage("BUYER_LAST_H_PAYED"), "sort"=>"", "default"=>true),
array("id"=>"CANCELED", "content"=>GetMessage("BUYER_LAST_H_CANCEL"), "sort"=>"", "default"=>true),
array("id"=>"PRODUCT", "content"=>GetMessage("BUYER_LAST_H_PRODUCT"), "sort"=>"", "default"=>true),
array("id"=>"PRICE", "content"=>GetMessage("BUYER_LAST_H_PRICE"), "sort"=>"", "default"=>true),
array("id"=>"DATE_INSERT", "content"=>GetMessage("BUYER_LAST_H_DATE"), "sort"=>"", "default"=>true),
);
if (count($arSites) > 1)
$mainOrderHeader[] = array("id"=>"LID", "content"=>GetMessage("BUYER_BH_LID"), "sort"=>"LID", "default"=>true);
$lAdmin_tab1->AddHeaders($mainOrderHeader);
while ($arOrderMain = $dbOrderList->Fetch())
{
$row =& $lAdmin_tab1->AddRow($arOrderMain["ID"], $arOrderMain, '', '');
$orderLinkUrl = "sale_order_view.php?ID=".$arOrderMain["ID"]."&lang=".LANG;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$orderLinkUrl = "/shop/orders/details/".$arOrderMain["ID"]."/";
}
$orderLink = "".$arOrderMain["ID"]." ";
$row->AddField("ID", $orderLink);
$basketCount = 0;
$dbBasketCount = \Bitrix\Sale\Internals\BasketTable::getList(array(
'filter' => array(
"ORDER_ID" => $arOrderMain["ID"]
),
));
while ($arBasket = $dbBasketCount->fetch())
{
if (!CSaleBasketHelper::isSetItem($arBasket))
$basketCount++;
}
$status = "[".$arOrderMain["STATUS_ID"]."] ".htmlspecialcharsbx($orderStatusNames[$arOrderMain["STATUS_ID"]])." ".$arOrderMain["DATE_STATUS"];
$row->AddField("STATUS_ID", $status);
$payed = (($arOrderMain["PAYED"] == "Y") ? GetMessage("BUYERS_PAY_YES") : GetMessage("BUYERS_PAY_NO"));
if ($arOrderMain["DATE_PAYED"] <> '')
$payed .= " ".$arOrderMain["DATE_PAYED"];
$row->AddField("PAYED", $payed);
$cancel = (($arOrderMain["CANCELED"] == "Y") ? GetMessage("BUYER_LAST_YES") : GetMessage("BUYER_LAST_NO"));
if ($arOrderMain["DATE_CANCELED"] <> '')
$cancel .= " ".$arOrderMain["DATE_CANCELED"];
$row->AddField("CANCELED", $cancel);
$row->AddField("PRODUCT", $basketCount);
$row->AddField("PRICE", SaleFormatCurrency($arOrderMain["PRICE"], $arOrderMain["CURRENCY"]));
if (count($arSites) > 1)
$row->AddField("LID", "[".$arOrderMain["LID"]."] ".htmlspecialcharsbx($arSites[$arOrderMain["LID"]]["NAME"])."");
}
if (($_REQUEST["table_id"] ?? '') === $sTableID_tab1)
{
$lAdmin_tab1->CheckListMode();
}
//END MAIN INFO
//BUYERS PROFILE
$sTableID_tab2 = "tbl_sale_buyers_profile_tab2";
$oSort_tab2 = new CAdminSorting($sTableID_tab2);
$lAdmin_tab2 = new CAdminList($sTableID_tab2, $oSort_tab2);
$arPErsonTypes = array();
$db_ptype = CSalePersonType::GetList(($by1="SORT"), ($order1="ASC"));
while ($ptype = $db_ptype->Fetch())
$arPErsonTypes[$ptype["ID"]] = $ptype;
if (!isset($_REQUEST["by"]))
$arProfSort = array("PERSON_TYPE_ID" => "ASC", "DATE_UPDATE" => "DESC");
else
$arProfSort[$by] = $order;
$dbProfileList = CSaleOrderUserProps::GetList(
$arProfSort,
array("USER_ID" => $ID),
false,
false,
array("ID", "NAME", "PERSON_TYPE_ID", "DATE_UPDATE")
);
$dbProfileList = new CAdminResult($dbProfileList, $sTableID_tab2);
$dbProfileList->NavStart();
$lAdmin_tab2->NavText($dbProfileList->GetNavPrint(GetMessage('BUYER_PERSON_LIST')));
$personHeader = array(
array("id"=>"NAME", "content"=>GetMessage("BUYER_P_NAME"), "sort"=>"NAME", "default"=>true),
array("id"=>"PERSON_TYPE_ID","content"=>GetMessage("BUYER_P_PERSONTYPE"), "sort"=>"PERSON_TYPE_ID", "default"=>true),
array("id"=>"DATE_UPDATE", "content"=>GetMessage("BUYER_P_DATE_UPDATE"), "sort"=>"DATE_UPDATE", "default"=>true),
);
$lAdmin_tab2->AddHeaders($personHeader);
while ($arProfList = $dbProfileList->GetNext())
{
$row =& $lAdmin_tab2->AddRow($arProfList["ID"], $arProfList, $selfFolderUrl."sale_buyers_profile_edit.php?id=".$arProfList["ID"]."&lang=".LANG, GetMessage("BUYER_P_PROFILE_EDIT"));
$profileEditUrl = $selfFolderUrl."sale_buyers_profile_edit.php?id=".$arProfList["ID"]."&lang=".LANGUAGE_ID;
$profileEditUrl = $adminSidePanelHelper->editUrlToPublicPage($profileEditUrl);
$row->AddField("NAME", "[".$arProfList["ID"]."] ".$arProfList["NAME"]." ");
$row->AddField("PERSON_TYPE_ID", htmlspecialcharsbx($arPErsonTypes[$arProfList["PERSON_TYPE_ID"]]["NAME"]));
if (count($arSites) > 1)
$row->AddField("LID", "[".$arProfList["LID"]."] ".htmlspecialcharsbx($arSites[$arProfList["LID"]]["NAME"])."");
}
if($_REQUEST["table_id"]==$sTableID_tab2)
$lAdmin_tab2->CheckListMode();
//END BUYERS PROFILE
//BUYERS ORDERS
$sTableID_tab3 = "tbl_sale_buyers_profile_tab3";
$oSort_tab3 = new CAdminSorting($sTableID_tab3);
$lAdmin_tab3 = new CAdminList($sTableID_tab3, $oSort_tab3);
//FILTER ORDER
$arFilterFields = array(
"filter_order_lid",
"filter_order_status",
"filter_order_payed",
"filter_order_delivery",
"filter_order_price",
"filter_date_order_from",
"filter_date_order_to",
"filter_order_date_up_from",
"filter_order_date_up_to",
"filter_summa_to",
"filter_summa_from",
"filter_order_prod_name",
);
$lAdmin_tab3->InitFilter($arFilterFields);
if (!isset($_REQUEST["by"]) || !in_array($by, $orderClass::getAvailableFields()))
$arOrderSort = array("DATE_INSERT" => "DESC");
else
$arOrderSort[$by] = $order;
if ($by == "PAYED")
$arOrderSort["DATE_PAYED"] = $order;
$arOrderFilter = array("USER_ID" => $ID);
if ($filter_order_lid <> '')
$arOrderFilter["LID"] = trim($filter_order_lid);
if (isset($filter_order_status) && !is_array($filter_order_status) && $filter_order_status <> '')
$filter_order_status = array($filter_order_status);
if (isset($filter_order_status) && is_array($filter_order_status) && count($filter_order_status) > 0)
{
$filterOrderCount = count($filter_order_status);
for ($i = 0; $i < $filterOrderCount; $i++)
{
$filter_order_status[$i] = Trim($filter_order_status[$i]);
if ($filter_order_status[$i] <> '')
$arOrderFilter["STATUS_ID"][] = $filter_order_status[$i];
}
}
if ($filter_order_payed <> '')
$arOrderFilter["PAYED"] = Trim($filter_order_payed);
if ($filter_order_delivery <> '')
$arOrderFilter["ALLOW_DELIVERY"] = Trim($filter_order_delivery);
if ($filter_date_order_from <> '')
{
$dateFrom = MkDateTime(FmtDate($filter_date_order_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$arOrderFilter[">=DATE_INSERT"] = Trim($filter_date_order_from);
}
if ($filter_date_order_to <> '')
{
if ($arDate = ParseDateTime($filter_date_order_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (mb_strlen($filter_date_order_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_order_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arOrderFilter["<=DATE_INSERT"] = $filter_date_order_to;
}
else
$filter_date_order_to = "";
}
if(trim($filter_date_order_from_DAYS_TO_BACK) <> '')
{
$dateBack = intval($filter_date_order_from_DAYS_TO_BACK);
$arOrderFilter["DATE_FROM"] = ConvertTimeStamp(AddToTimeStamp(array("DD" => "-".$dateBack), mktime(0, 0, 0, date("n"), date("j"), date("Y"))), "SHORT");
}
if ($filter_order_date_up_from <> '')
{
$dateFrom = MkDateTime(FmtDate($filter_order_date_up_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$arOrderFilter[">=DATE_UPDATE"] = trim($filter_order_date_up_from);
}
if ($filter_order_date_up_to <> '')
{
if ($arDate = ParseDateTime($filter_order_date_up_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (mb_strlen($filter_order_date_up_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_order_date_up_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arOrderFilter["<=DATE_UPDATE"] = $filter_order_date_up_to;
}
else
$filter_order_date_up_to = "";
}
if ($filter_summa_from <> '')
{
$arOrderFilter[">=PRICE"] = FloatVal($filter_summa_from);
}
if ($filter_summa_to <> '')
{
$arOrderFilter["<=PRICE"] = FloatVal($filter_summa_to);
}
if ($filter_order_prod_name <> '')
{
$arOrderFilter["%BASKET.NAME"] = $filter_order_prod_name;
}
$getListParams = array(
'filter' => $arOrderFilter,
'order' => $arOrderSort,
'select' => array(
"ID",
"LID",
"STATUS_ID",
"DATE_STATUS",
"PAYED",
"DATE_PAYED",
"PRICE",
"DATE_UPDATE",
"DATE_INSERT",
"CURRENCY",
// "ALLOW_DELIVERY",
// "DATE_ALLOW_DELIVERY"
)
);
$usePageNavigation = true;
$navyParams = CDBResult::GetNavParams(CAdminResult::GetNavSize($sTableID));
if ($navyParams['SHOW_ALL'])
{
$usePageNavigation = false;
}
else
{
$navyParams['PAGEN'] = (int)$navyParams['PAGEN'];
$navyParams['SIZEN'] = (int)$navyParams['SIZEN'];
}
if ($usePageNavigation)
{
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
}
$totalPages = 0;
if ($usePageNavigation)
{
$countQuery = new \Bitrix\Main\Entity\Query(\Bitrix\Sale\Internals\OrderTable::getEntity());
$countQuery->addSelect(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)'));
$countQuery->setFilter($getListParams['filter']);
$totalCount = $countQuery->setLimit(null)->setOffset(null)->exec()->fetch();
unset($countQuery);
$totalCount = (int)$totalCount['CNT'];
if ($totalCount > 0)
{
$totalPages = ceil($totalCount/$navyParams['SIZEN']);
if ($navyParams['PAGEN'] > $totalPages)
$navyParams['PAGEN'] = $totalPages;
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
}
else
{
$navyParams['PAGEN'] = 1;
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = 0;
}
}
$dbOrderList = new CAdminResult(\Bitrix\Sale\Internals\OrderTable::getList($getListParams), $sTableID_tab3);
if ($usePageNavigation)
{
$dbOrderList->NavStart($getListParams['limit'], $navyParams['SHOW_ALL'], $navyParams['PAGEN']);
$dbOrderList->NavRecordCount = $totalCount;
$dbOrderList->NavPageCount = $totalPages;
$dbOrderList->NavPageNomer = $navyParams['PAGEN'];
}
else
{
$dbOrderList->NavStart();
}
// $dbOrderList->NavStart();
$lAdmin_tab3->NavText($dbOrderList->GetNavPrint(GetMessage('BUYER_ORDER_LIST')));
$orderHeader = array(
array("id"=>"ID", "content"=>"ID", "sort"=>"ID", "default"=>true),
array("id"=>"PAYED", "content"=>GetMessage("BUYERS_H_PAID"), "sort"=>"PAYED", "default"=>true),
array("id"=>"ALLOW_DELIVERY", "content"=>GetMessage("BUYER_LAST_H_ALLOW_DELIVERY"), "sort"=>"", "default"=>true),
array("id"=>"PRODUCT", "content"=>GetMessage("BUYERS_H_ALL_PRODUCT"), "sort"=>"", "default"=>true),
array("id"=>"PRICE", "content"=>GetMessage("BUYERS_H_SUM"), "sort"=>"PRICE", "default"=>true),
array("id"=>"DATE_INSERT", "content"=>GetMessage("BUYERS_H_DATE_INSERT"), "sort"=>"DATE_INSERT", "default"=>true),
);
if (count($arSites) > 1)
$orderHeader[] = array("id"=>"LID", "content"=>GetMessage("BUYERS_H_SITE"), "sort"=>"LID", "default"=>true);
$lAdmin_tab3->AddHeaders($orderHeader);
while ($arOrder = $dbOrderList->Fetch())
{
$row =& $lAdmin_tab3->AddRow($arOrder["ID"], $arOrder, "sale_order_view.php?ID=".$arOrder["ID"]."&lang=".LANG, GetMessage("BUYERS_ORDER_EDIT"));
$orderLinkUrl = "sale_order_view.php?ID=".$arOrder["ID"]."&lang=".LANG;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$orderLinkUrl = "/shop/orders/details/".$arOrder["ID"]."/";
}
$orderLink = "".$arOrder["ID"]." ";
$row->AddField("ID", $orderLink);
$status_id = "".GetMessage('BUYERS_PREF').$arOrder["ID"]." ";
$status_id .= " ";
$row->AddField("STATUS_ID", $status_id);
$payed = "";
$res = \Bitrix\Sale\Internals\PaymentTable::getList(array(
'order' => array('ID' => 'ASC'),
'filter' => array(
'ORDER_ID' => $arOrder['ID']
)
));
while($payment = $res->fetch())
{
if (strval($payed) != "")
$payed .= "
";
$paymentLinkUrl = $selfFolderUrl."sale_order_payment_edit.php?order_id=".$arOrder['ID']."&payment_id=".$payment["ID"]."&lang=".LANGUAGE_ID;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$paymentLinkUrl = "/shop/orders/payment/details/".$payment["ID"]."/";
}
$payed .= "[".$payment["ID"]." ], ".
htmlspecialcharsbx($payment["PAY_SYSTEM_NAME"]).", ".
($payment["PAID"] == "Y" ? \Bitrix\Main\Localization\Loc::getMessage("SOB_PAYMENTS_PAID") : \Bitrix\Main\Localization\Loc::getMessage("SOB_PAYMENTS_UNPAID")).", ".
($payment["PS_STATUS"] <> '' ? \Bitrix\Main\Localization\Loc::getMessage("SOB_PAYMENTS_STATUS").": ".htmlspecialcharsbx($payment["PS_STATUS"]).", " : "").
''.htmlspecialcharsex(SaleFormatCurrency($payment["SUM"], $payment["CURRENCY"])).'';
}
$row->AddField("PAYED", $payed);
$shipmentStatuses = array();
$dbRes = \Bitrix\Sale\Internals\StatusTable::getList(array(
'select' => array('ID', 'NAME' => 'Bitrix\Sale\Internals\StatusLangTable:STATUS.NAME'),
'filter' => array(
'=Bitrix\Sale\Internals\StatusLangTable:STATUS.LID' => LANGUAGE_ID,
'=TYPE' => 'D'
),
));
while ($shipmentStatus = $dbRes->fetch())
$shipmentStatuses[$shipmentStatus["ID"]] = $shipmentStatus["NAME"] . " [" . $shipmentStatus["ID"] . "]";
$allowDelivery = "";
$res = \Bitrix\Sale\Internals\ShipmentTable::getList(array(
'order' => array('ID' => 'ASC'),
'filter' => array('ORDER_ID' => $arOrder['ID'], '!=SYSTEM' => 'Y')
));
while($shipment = $res->fetch())
{
$shipmentLinkUrl = $selfFolderUrl."sale_order_shipment_edit.php?order_id=".$arOrder["ID"]."&shipment_id=".$shipment["ID"]."&lang=".LANGUAGE_ID;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$shipmentLinkUrl = "/shop/orders/shipment/details/".$shipment["ID"]."/";
}
$shipment["ID_LINKED"] = '['.$shipment["ID"].' ]';
if (strval($allowDelivery) != "")
$allowDelivery .= " ";
$allowDelivery .= "[".$shipment["ID"]." ], ".
htmlspecialcharsbx($shipment["DELIVERY_NAME"]).", ".
''.htmlspecialcharsEx(SaleFormatCurrency($shipment["PRICE_DELIVERY"], $shipment["CURRENCY"]))." , ".
($shipment["ALLOW_DELIVERY"] == "Y" ? \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_ALLOW_DELIVERY") : \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_NOT_ALLOW_DELIVERY")).", ".
($shipment["CANCELED"] == "Y" ? \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_CANCELED").", " : "").
($shipment["DEDUCTED"] == "Y" ? \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_DEDUCTED").", " : "").
($shipment["MARKED"] == "Y" ? \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_MARKED").", " : "").
($shipment["TRACKING_NUMBER"] <> '' ? htmlspecialcharsbx($shipment["TRACKING_NUMBER"]).", " : "");
if($shipment["STATUS_ID"] <> '')
$allowDelivery .= $shipmentStatuses[$shipment["STATUS_ID"]] ? htmlspecialcharsbx($shipmentStatuses[$shipment["STATUS_ID"]]) : \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_STATUS").": ".$shipment["STATUS_ID"];
}
$row->AddField("ALLOW_DELIVERY", $allowDelivery);
$status = "[".$arOrder["STATUS_ID"]."] ".htmlspecialcharsbx($orderStatusNames[$arOrder["STATUS_ID"]])." ".$arOrder["DATE_STATUS"];
$row->AddField("STATUS_ID", $status);
$orderProduct = "";
$arBasketItems = array();
$dbItemsList = \Bitrix\Sale\Internals\BasketTable::getList(array(
'order' => array("ID" => "ASC", "SET_PARENT_ID" => "DESC", "TYPE" => "DESC"),
'filter' => array("ORDER_ID" => $arOrder["ID"])
));
while ($arItem = $dbItemsList->fetch())
$arBasketItems[] = $arItem;
$arBasketItems = getMeasures($arBasketItems);
foreach ($arBasketItems as $arBasketOrder)
{
$measure = isset($arBasketOrder["MEASURE_TEXT"]) ? htmlspecialcharsEx($arBasketOrder["MEASURE_TEXT"]) : GetMessage("BUYERS_UNIT");
$class = "";
$hidden = "";
if (CSaleBasketHelper::isSetItem($arBasketOrder))
{
$class = "class=\"set_item_".$arBasketOrder["SET_PARENT_ID"]."\"";
$hidden = "style=\"display:none\"";
}
$elementQueryObject = CIBlockElement::getList(array(), array(
"ID" => $arBasketOrder["PRODUCT_ID"]), false, false, array("IBLOCK_ID", "IBLOCK_TYPE_ID"));
if ($elementData = $elementQueryObject->fetch())
{
$orderProductUrl = $selfFolderUrl."cat_product_edit.php?IBLOCK_ID=".$elementData["IBLOCK_ID"].
"&type=".$elementData["IBLOCK_TYPE_ID"]."&ID=".$arBasketOrder["PRODUCT_ID"]."&lang=".LANGUAGE_ID."&WF=Y";
}
$orderProductUrl = $adminSidePanelHelper->editUrlToPublicPage($orderProductUrl);
$orderProduct .= "".htmlspecialcharsbx($arBasketOrder["NAME"])." - ".$arBasketOrder["QUANTITY"]." ".$measure."
";
$dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arBasketOrder["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")));
while($arProp = $dbProp -> GetNext())
{
$orderProduct .= "
".$arProp["NAME"].": ".$arProp["VALUE"]."
";
}
if (CSaleBasketHelper::isSetParent($arBasketOrder))
{
$orderProduct .= "
".GetMessage("BUYER_F_SHOW_SET")." ";
}
$orderProduct .= "
";
}
$row->AddField("PRODUCT", $orderProduct);
$row->AddField("PRICE", SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]));
if (count($arSites) > 1)
$row->AddField("LID", "[".$arOrder["LID"]."] ".htmlspecialcharsbx($arSites[$arOrder["LID"]]["NAME"])."");
$arActions = array();
$viewOrderAction = $lAdmin_tab3->ActionRedirect("sale_order_view.php?ID=".$arOrder["ID"]."&lang=".LANGUAGE_ID);
if ($adminSidePanelHelper->isPublicSidePanel())
{
$viewOrderAction = "top.BX.adminSidePanel.onOpenPage('/shop/orders/details/".$arOrder["ID"]."/?lang=".LANGUAGE_ID."');";
}
$arActions[] = array(
"ICON" => "view",
"TEXT" => GetMessage("BUYERS_ORDER_EDIT"),
"ACTION" => $viewOrderAction,
"DEFAULT" => true
);
$reorderUrl = $selfFolderUrl."sale_buyers_profile.php?USER_ID=".$ID."&lang=".LANGUAGE_ID."&reorder=".$arOrder["ID"]."&lid=".$arOrder["LID"];
$reorderUrl = $adminSidePanelHelper->setDefaultQueryParams($reorderUrl);
if ($adminSidePanelHelper->isPublicSidePanel())
{
$arActions[] = array(
"ICON" => "edit",
"TEXT" => GetMessage("BUYER_PD_REORDER"),
"ONCLICK" => "top.BX.SidePanel.Instance.open('$reorderUrl')"
);
}
else
{
$arActions[] = array(
"ICON" => "edit",
"TEXT" => GetMessage("BUYER_PD_REORDER"),
"LINK" => $reorderUrl,
);
}
$row->AddActions($arActions);
}
if($_REQUEST["table_id"]==$sTableID_tab3)
$lAdmin_tab3->CheckListMode();
//END BUYERS ORDER
if (!$adminSidePanelHelper->isPublicSidePanel())
{
//BUYERS ARCHIVE ORDERS
$sTableID_tab7 = "tbl_sale_buyers_profile_tab7";
$oSort_tab7 = new CAdminSorting($sTableID_tab7);
$lAdmin_tab7 = new CAdminList($sTableID_tab7, $oSort_tab7);
//FILTER ARCHIVE ORDER
$arFilterFields = array(
"filter_order_lid",
"filter_order_status",
"filter_order_payed",
"filter_order_delivery",
"filter_order_price",
"filter_date_order_archived_from",
"filter_date_order_archived_to",
"filter_date_order_from",
"filter_date_order_to",
"filter_summa_to",
"filter_summa_from",
"filter_order_prod_name",
);
$lAdmin_tab7->InitFilter($arFilterFields);
if (!isset($_REQUEST["by"]))
$archiveSort = array("DATE_INSERT" => "DESC");
else
$archiveSort[$by] = $order;
$archiveFilter = ["USER_ID" => $ID];
if ($filter_order_lid <> '')
$archiveFilter["LID"] = trim($filter_order_lid);
if (isset($filter_order_status) && !is_array($filter_order_status) && $filter_order_status <> '')
$filter_order_status = array($filter_order_status);
if (isset($filter_order_status) && is_array($filter_order_status) && count($filter_order_status) > 0)
{
$filterOrderCount = count($filter_order_status);
for ($i = 0; $i < $filterOrderCount; $i++)
{
$filter_order_status[$i] = Trim($filter_order_status[$i]);
if ($filter_order_status[$i] <> '')
$archiveFilter["STATUS_ID"][] = $filter_order_status[$i];
}
}
if ($filter_order_payed <> '')
$archiveFilter["PAYED"] = Trim($filter_order_payed);
if ($filter_order_delivery <> '')
$archiveFilter["ALLOW_DELIVERY"] = Trim($filter_order_delivery);
if ($filter_date_order_from <> '')
{
$dateFrom = MkDateTime(FmtDate($filter_date_order_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$archiveFilter[">=DATE_INSERT"] = Trim($filter_date_order_from);
}
if ($filter_date_order_to <> '')
{
if ($arDate = ParseDateTime($filter_date_order_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
$archiveFilter["<=DATE_INSERT"] = new \Bitrix\Main\Type\DateTime($filter_date_order_to);
}
else
$filter_date_order_to = "";
}
// if(strlen(trim($filter_date_order_from_DAYS_TO_BACK))>0)
// {
// $dateBack = (int)($filter_date_order_from_DAYS_TO_BACK);
// $archiveFilter["DATE_FROM"] = ConvertTimeStamp(AddToTimeStamp(array("DD" => "-".$dateBack), mktime(0, 0, 0, date("n"), date("j"), date("Y"))), "SHORT");
// }
if ($filter_date_order_archived_from <> '')
{
$dateFrom = MkDateTime(FmtDate($filter_date_order_archived_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$archiveFilter[">=DATE_ARCHIVED"] = trim($filter_date_order_archived_from);
}
if ($filter_date_order_archived_to <> '')
{
if ($arDate = ParseDateTime($filter_date_order_archived_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
$archiveFilter["<=DATE_ARCHIVED"] = new \Bitrix\Main\Type\DateTime($filter_date_order_archived_to);
}
else
$filter_date_order_archived_to = "";
}
if ($filter_summa_from <> '')
{
$archiveFilter[">=PRICE"] = FloatVal($filter_summa_from);
}
if ($filter_summa_to <> '')
{
$archiveFilter["<=PRICE"] = FloatVal($filter_summa_to);
}
if ($filter_order_prod_name <> '')
{
$archiveFilter["%BASKET_ARCHIVE.NAME"] = $filter_order_prod_name;
}
$getListParams = array(
'filter' => $archiveFilter,
'order' => $archiveSort,
'select' => array(
"ID",
"ORDER_ID",
"ACCOUNT_NUMBER",
"LID",
"STATUS_ID",
"PAYED",
"PRICE",
"DATE_ARCHIVED",
"DATE_INSERT",
"CURRENCY"
)
);
$usePageNavigation = true;
$navyParams = CDBResult::GetNavParams(CAdminResult::GetNavSize($sTableID));
if ($navyParams['SHOW_ALL'])
{
$usePageNavigation = false;
}
else
{
$navyParams['PAGEN'] = (int)$navyParams['PAGEN'];
$navyParams['SIZEN'] = (int)$navyParams['SIZEN'];
}
if ($usePageNavigation)
{
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
}
$totalPages = 0;
if ($usePageNavigation)
{
$countQuery = new \Bitrix\Main\Entity\Query(\Bitrix\Sale\Internals\OrderArchiveTable::getEntity());
$countQuery->addSelect(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)'));
$countQuery->setFilter($getListParams['filter']);
$totalCount = $countQuery->setLimit(null)->setOffset(null)->exec()->fetch();
unset($countQuery);
$totalCount = (int)$totalCount['CNT'];
if ($totalCount > 0)
{
$totalPages = ceil($totalCount/$navyParams['SIZEN']);
if ($navyParams['PAGEN'] > $totalPages)
$navyParams['PAGEN'] = $totalPages;
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
}
else
{
$navyParams['PAGEN'] = 1;
$getListParams['limit'] = $navyParams['SIZEN'];
$getListParams['offset'] = 0;
}
}
$dbOrderList = new CAdminResult(\Bitrix\Sale\Internals\OrderArchiveTable::getList($getListParams), $sTableID_tab7);
if ($usePageNavigation)
{
$dbOrderList->NavStart($getListParams['limit'], $navyParams['SHOW_ALL'], $navyParams['PAGEN']);
$dbOrderList->NavRecordCount = $totalCount;
$dbOrderList->NavPageCount = $totalPages;
$dbOrderList->NavPageNomer = $navyParams['PAGEN'];
}
else
{
$dbOrderList->NavStart();
}
$lAdmin_tab7->NavText($dbOrderList->GetNavPrint(GetMessage('BUYER_ORDER_LIST')));
$orderHeader = array(
array("id"=>"ID", "content"=>"ID", "sort"=>"ID", "default"=>true),
array("id"=>"ORDER_ID", "content"=>GetMessage("BUYERS_H_ORDER_ID"), "sort"=>"ORDER_ID", "default"=>true),
array("id"=>"ACCOUNT_NUMBER", "content"=>GetMessage("BUYERS_H_ACCOUNT_NUMBER"), "sort"=>"ACCOUNT_NUMBER", "default"=>true),
array("id"=>"PAYED", "content"=>GetMessage("BUYERS_H_PAID"), "sort"=>"PAYED", "default"=>true),
array("id"=>"ALLOW_DELIVERY", "content"=>GetMessage("BUYER_LAST_H_ALLOW_DELIVERY"), "sort"=>"", "default"=>true),
array("id"=>"PRODUCT", "content"=>GetMessage("BUYERS_H_ALL_PRODUCT"), "sort"=>"", "default"=>true),
array("id"=>"PRICE", "content"=>GetMessage("BUYERS_H_SUM"), "sort"=>"PRICE", "default"=>true),
array("id"=>"DATE_INSERT", "content"=>GetMessage("BUYERS_H_DATE_INSERT"), "sort"=>"DATE_INSERT", "default"=>true),
array("id"=>"DATE_ARCHIVED", "content"=>GetMessage("BUYERS_H_DATE_ARCHIVED"), "sort"=>"DATE_ARCHIVED", "default"=>true),
);
if (count($arSites) > 1)
$orderHeader[] = array("id"=>"LID", "content"=>GetMessage("BUYERS_H_SITE"), "sort"=>"LID", "default"=>true);
$lAdmin_tab7->AddHeaders($orderHeader);
while ($arOrder = $dbOrderList->Fetch())
{
$row =& $lAdmin_tab7->AddRow($arOrder["ORDER_ID"], $arOrder, "sale_order_archive_view.php?ID=".$arOrder["ID"]."&lang=".LANG, GetMessage("BUYERS_ORDER_EDIT"));
$orderLinkUrl = "sale_order_archive_view.php?ID=".$arOrder["ID"]."&lang=".LANG;
$orderLink = "".$arOrder["ID"]." ";
$row->AddField("ID", $orderLink);
$orderLink = "".$arOrder["ORDER_ID"]." ";
$row->AddField("ORDER_ID", $orderLink);
$orderLink = "".htmlspecialcharsbx($arOrder["ACCOUNT_NUMBER"])." ";
$row->AddField("ACCOUNT_NUMBER", $orderLink);
$status_id = "".GetMessage('BUYERS_PREF').$arOrder["ID"]." ";
$status_id .= " ";
$row->AddField("STATUS_ID", $status_id);
$payed = ($arOrder["PAYED"] === "Y") ? \Bitrix\Main\Localization\Loc::getMessage("SOB_PAYMENTS_PAID") : \Bitrix\Main\Localization\Loc::getMessage("SOB_PAYMENTS_UNPAID");
$row->AddField("PAYED", $payed);
$allowDelivery = ($arOrder["ALLOW_DELIVERY"] == "Y") ? \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_ALLOW_DELIVERY") : \Bitrix\Main\Localization\Loc::getMessage("SOB_SHIPMENTS_NOT_ALLOW_DELIVERY");
$row->AddField("ALLOW_DELIVERY", $allowDelivery);
$status = "[".$arOrder["STATUS_ID"]."] ".htmlspecialcharsbx($orderStatusNames[$arOrder["STATUS_ID"]])." ".$arOrder["DATE_STATUS"];
$row->AddField("STATUS_ID", $status);
$orderProduct = "";
$arBasketItems = array();
$dbItemsList = \Bitrix\Sale\Internals\BasketArchiveTable::getList(array(
'order' => array("ID" => "ASC", "SET_PARENT_ID" => "DESC", "TYPE" => "DESC"),
'filter' => array("ARCHIVE_ID" => $arOrder["ID"])
));
while ($arItem = $dbItemsList->fetch())
$arBasketItems[] = $arItem;
$arBasketItems = getMeasures($arBasketItems);
foreach ($arBasketItems as $arBasketOrder)
{
$measure = isset($arBasketOrder["MEASURE_TEXT"]) ? htmlspecialcharsEx($arBasketOrder["MEASURE_TEXT"]) : GetMessage("BUYERS_UNIT");
$class = "";
$hidden = "";
if (CSaleBasketHelper::isSetItem($arBasketOrder))
{
$class = "class=\"set_item_".$arBasketOrder["SET_PARENT_ID"]."\"";
$hidden = "style=\"display:none\"";
}
$elementQueryObject = CIBlockElement::getList(array(), array(
"ID" => $arBasketOrder["PRODUCT_ID"]), false, false, array("IBLOCK_ID", "IBLOCK_TYPE_ID"));
if ($elementData = $elementQueryObject->fetch())
{
$orderProductUrl = $selfFolderUrl."cat_product_edit.php?IBLOCK_ID=".$elementData["IBLOCK_ID"].
"&type=".$elementData["IBLOCK_TYPE_ID"]."&ID=".$arBasketOrder["PRODUCT_ID"]."&lang=".LANGUAGE_ID."&WF=Y";
}
$orderProductUrl = $adminSidePanelHelper->editUrlToPublicPage($orderProductUrl);
$orderProduct .= "".htmlspecialcharsbx($arBasketOrder["NAME"])." - ".$arBasketOrder["QUANTITY"]." ".$measure."
";
$dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arBasketOrder["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")));
while($arProp = $dbProp -> GetNext())
{
$orderProduct .= "
".$arProp["NAME"].": ".$arProp["VALUE"]."
";
}
if (CSaleBasketHelper::isSetParent($arBasketOrder))
{
$orderProduct .= "
".GetMessage("BUYER_F_SHOW_SET")." ";
}
$orderProduct .= "
";
}
$row->AddField("PRODUCT", $orderProduct);
$row->AddField("PRICE", SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]));
if (count($arSites) > 1)
$row->AddField("LID", "[".$arOrder["LID"]."] ".htmlspecialcharsbx($arSites[$arOrder["LID"]]["NAME"])."");
$arActions = array();
$viewOrderAction = $lAdmin_tab7->ActionRedirect($orderLinkUrl);
$arActions[] = array(
"ICON" => "view",
"TEXT" => GetMessage("BUYERS_ORDER_EDIT"),
"ACTION" => $viewOrderAction,
"DEFAULT" => true
);
$row->AddActions($arActions);
}
if($_REQUEST["table_id"]==$sTableID_tab7)
$lAdmin_tab7->CheckListMode();
//END BUYERS ORDER
}
//BUYERS BASKET
$sTableID_tab4 = "t_stat_list_tab4";
$oSort_tab4 = new CAdminSorting($sTableID_tab4, false, false, "basket_by", "basket_sort");
$lAdmin_tab4 = new CAdminList($sTableID_tab4, $oSort_tab4);
//FILTER BASKET
$arFilterFields = array(
"filter_basket_lid",
"basket_name_product",
);
$lAdmin_tab4->InitFilter($arFilterFields);
$basketBy = (!empty($_REQUEST["basket_by"]) ? trim($_REQUEST["basket_by"]) : "DATE_INSERT");
$basketSort = (!empty($_REQUEST["basket_sort"]) ? trim($_REQUEST["basket_sort"]) : "DESC");
if (!isset($_REQUEST["basket_by"]))
$arBasketSort = array("DATE_INSERT" => "DESC", "LID" => "ASC");
else
$arBasketSort[$basketBy] = $basketSort;
$arBasketFilter = array("FUSER.USER_ID" => $ID, "ORDER_ID" => "NULL");
if ($filter_basket_lid <> '')
$arBasketFilter["LID"] = trim($filter_basket_lid);
if (trim($basket_name_product) <> '')
$arBasketFilter["%NAME"] = $basket_name_product;
CAdminMessage::ShowNote($basketMessage);
CAdminMessage::ShowMessage($basketError);
//update price
$arCacheFuser = array();
$arUpdateFilter = $arBasketFilter;
$arUpdateFilter["!CALLBACK_FUNC"] = '';
$dbBasketList = \Bitrix\Sale\Internals\BasketTable::getList(array(
'order' => $arBasketSort,
'filter' => $arUpdateFilter,
'select' => array('FUSER_ID', 'LID')
));
while ($arBasket = $dbBasketList->fetch())
{
if (!in_array($arBasket["FUSER_ID"], $arCacheFuser))
{
$arCacheFuser[] = $arBasket["FUSER_ID"];
CSaleBasket::UpdateBasketPrices($arBasket["FUSER_ID"], $arBasket["LID"]);
}
}
$dbBasketList = \Bitrix\Sale\Internals\BasketTable::getList(array(
'order' => array_merge(
array(
"SET_PARENT_ID" => "DESC",
"TYPE" => "DESC"),
$arBasketSort),
'filter' => $arBasketFilter,
));
$dbBasketList = new CAdminResult($dbBasketList, $sTableID_tab4);
$dbBasketList->NavStart();
$lAdmin_tab4->NavText($dbBasketList->GetNavPrint(GetMessage('BUYER_BASKET_BASKET')));
$BasketHeader = array(
array("id"=>"DATE_INSERT", "content"=>GetMessage("BUYER_BH_DATE_INSERT"), "sort"=>"DATE_INSERT", "default"=>true),
array("id"=>"NAME","content"=>GetMessage("BUYER_BH_NAME"), "sort"=>"NAME", "default"=>true),
array("id"=>"PRICE", "content"=>GetMessage("BUYER_BH_PRICE"), "sort"=>"PRICE", "default"=>true),
array("id"=>"QUANTITY", "content"=>GetMessage("BUYER_BH_QUANTITY"), "sort"=>"QUANTITY", "default"=>true),
);
if (count($arSites) > 1)
$BasketHeader[] = array("id"=>"LID", "content"=>GetMessage("BUYER_BH_LID"), "sort"=>"LID", "default"=>true);
$lAdmin_tab4->AddHeaders($BasketHeader);
$arSetData = array();
$arBasketData = array();
while ($arBasket = $dbBasketList->GetNext())
{
if (CSaleBasketHelper::isSetItem($arBasket))
{
$arSetData[$arBasket["SET_PARENT_ID"]][] = $arBasket;
continue;
}
$arBasketData[] = $arBasket;
}
foreach ($arBasketData as $arBasket)
{
$row =& $lAdmin_tab4->AddRow($arBasket["PRODUCT_ID"], $arBasket, '', '');
$orderProductUrl = $arBasket["DETAIL_PAGE_URL"];
$elementQueryObject = CIBlockElement::getList(array(), array(
"ID" => $arBasket["PRODUCT_ID"]), false, false, array("IBLOCK_ID", "IBLOCK_TYPE_ID"));
if ($elementData = $elementQueryObject->fetch())
{
$orderProductUrl = $selfFolderUrl."cat_product_edit.php?IBLOCK_ID=".$elementData["IBLOCK_ID"].
"&type=".$elementData["IBLOCK_TYPE_ID"]."&ID=".$arBasket["PRODUCT_ID"]."&lang=".LANGUAGE_ID."&WF=Y";
}
$orderProductUrl = $adminSidePanelHelper->editUrlToPublicPage($orderProductUrl);
$name = "".$arBasket["NAME"]."
";
$name .= " ";
$dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arBasket["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")));
while($arProp = $dbProp -> GetNext())
{
$name .= "".$arProp["NAME"].": ".$arProp["VALUE"]."
";
}
if (CSaleBasketHelper::isSetParent($arBasket))
{
$name .= "".GetMessage("BUYER_F_SHOW_SET")." ";
if (!empty($arSetData) && array_key_exists($arBasket["ID"], $arSetData))
{
$name .= "";
foreach ($arSetData[$arBasket["ID"]] as $set)
$name .= "
".$set["NAME"]."
";
$name .= "
";
}
}
$row->AddField("NAME", $name);
$row->AddField("PRICE", SaleFormatCurrency($arBasket["PRICE"], $arBasket["CURRENCY"]));
if (count($arSites) > 1)
$row->AddField("LID", "[".$arBasket["LID"]."] ".htmlspecialcharsbx($arSites[$arBasket["LID"]]["NAME"])."");
}
if ($isWithOrdersMode)
{
$lAdmin_tab4->AddGroupActionTable(
array(
"order_basket" => GetMessage("BUYER_PD_ORDER"),
"delay_y" => GetMessage("BUYER_PD_DELAY_Y"),
"delay_n" => GetMessage("BUYER_PD_DELAY_N"),
"delete_basket" => GetMessage("BUYER_PD_DELETE"),
)
);
}
if($_REQUEST["table_id"]==$sTableID_tab4)
$lAdmin_tab4->CheckListMode();
//END BUYERS BASKET
//BUYERS VIEWED PRODUCT
$sTableID_tab5 = "t_stat_list_tab5";
$oSort_tab5 = new CAdminSorting($sTableID_tab5, false, false, 'viewed_by', 'viewed_sort');
$lAdmin_tab5 = new CAdminList($sTableID_tab5, $oSort_tab5);
$viewedBy = (!empty($_REQUEST["viewed_by"]) ? trim($_REQUEST["viewed_by"]) : "DATE_VISIT");
$viewedSort = (!empty($_REQUEST["viewed_sort"]) ? trim($_REQUEST["viewed_sort"]) : "DESC");
if (!isset($_REQUEST["viewed_by"]))
$viewedProductsSort = array("DATE_VISIT" => "DESC", "SITE_ID" => "ASC");
else
$viewedProductsSort[$viewedBy] = $viewedSort;
//FILTER VIEWED
$arFilterFields = array(
"filter_viewed_date_visit",
"filter_date_visit_from",
"filter_date_visit_to",
"filter_viewed_lid",
);
$lAdmin_tab5->InitFilter($arFilterFields);
$arFilter = array();
$arFuserItems = CSaleUser::GetList(array("USER_ID" => $ID));
$arFilter["FUSER_ID"] = $arFuserItems["ID"];
if ($filter_viewed_lid <> '')
$arFilter["LID"] = trim($filter_viewed_lid);
if(trim($filter_date_visit_from) <> '')
{
$arFilter["DATE_FROM"] = FmtDate($filter_date_visit_from,"D.M.Y");
}
if(trim($filter_date_visit_to) <> '')
{
if ($arDate = ParseDateTime($filter_date_visit_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (mb_strlen($filter_date_visit_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_visit_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["DATE_TO"] = $filter_date_visit_to;
}
else
{
$filter_date_visit_to = "";
}
}
if(trim($filter_date_visit_from_DAYS_TO_BACK) <> '')
{
$dateBack = intval($filter_date_visit_from_DAYS_TO_BACK);
$arFilter["DATE_FROM"] = ConvertTimeStamp(AddToTimeStamp(array("DD" => "-".$dateBack), mktime(0, 0, 0, date("n"), date("j"), date("Y"))), "SHORT");
}
CAdminMessage::ShowNote($viewedMessage);
CAdminMessage::ShowMessage($viewedError);
$newFilter = array(
'FUSER_ID' => \Bitrix\Sale\Fuser::getIdByUserId($ID)
);
foreach($arFilter as $key => $value)
{
if($key == "DATE_FROM")
{
$newFilter['>=DATE_VISIT'] = $value;
}
elseif($key == "DATE_TO")
{
$newFilter['setSelect(array(
"PRODUCT_ID",
"DATE_VISIT",
"SITE_ID",
"VIEW_COUNT",
"NAME" => "ELEMENT.NAME",
"PRICE" => "PRODUCT.PRICE",
"QUANTITY" => "PRODUCT.QUANTITY",
"CURRENCY" => "PRODUCT.CURRENCY",
"RATE" => "PRODUCT.CURRENT_CURRENCY_RATE",
"CURRENCY_RATE" => "PRODUCT.CURRENT_CURRENCY_RATE_CNT"
))->setfilter($newFilter)
->setOrder($viewedProductsSort)
;
$viewedIterator = $viewedQuery->exec();
}
else
$viewedIterator = new CDBResult();
$dbViewsList = new CAdminResult($viewedIterator, $sTableID_tab5);
$dbViewsList->NavStart();
$lAdmin_tab5->NavText($dbViewsList->GetNavPrint(GetMessage('BUYER_PRODUCT_LIST')));
$viewedHeader = array(
array("id"=>"DATE_VISIT", "content"=>GetMessage("BUYER_V_DATE_INSERT"), "sort"=>"DATE_VISIT", "default"=>true),
array("id"=>"NAME","content"=>GetMessage("BUYER_V_NAME"), "sort"=>"NAME", "default"=>true),
array("id"=>"PRICE", "content"=>GetMessage("BUYER_V_PRICE"), "sort"=>"PRICE", "default"=>true),
array("id"=>"QUANTITY", "content"=>GetMessage("BUYER_V_QUANTITY"), "sort"=>"", "default"=>true),
);
if (count($arSites) > 1)
$viewedHeader[] = array("id"=>"SITE_ID", "content"=>GetMessage("BUYER_V_LID"), "sort"=>"SITE_ID", "default"=>true);
$lAdmin_tab5->AddHeaders($viewedHeader);
$arProductId = array();
$arCatalogProductId = array();
$arViewsData = array();
$mapViewByProduct = array();
$viewCount = 0;
while ($arViews = $dbViewsList->Fetch())
{
$arViewsData[$viewCount] = $arViews;
$elementID = (int)$arViews["PRODUCT_ID"];
if (!isset($mapViewByProduct[$elementID]))
$mapViewByProduct[$elementID] = array();
$mapViewByProduct[$elementID][] = $viewCount;
$arProductId[$arViews["PRODUCT_ID"]] = $arViews["PRODUCT_ID"];
$arCatalogProductId[] = $arViews["PRODUCT_ID"];
$viewCount++;
}
unset($arViews, $dbViewsList, $viewCount);
// Get product name
if (!empty($arCatalogProductId))
{
$elementIterator = CIblockElement::GetList(
array(),
array("ID" => $arCatalogProductId),
false,
false,
array('ID', 'IBLOCK_ID', 'DETAIL_PAGE_URL')
);
while($element = $elementIterator->GetNext())
{
$elementID = (int)$element['ID'];
if (isset($mapViewByProduct[$elementID]) && !empty($mapViewByProduct[$elementID]))
{
foreach ($mapViewByProduct[$elementID] as &$viewCount)
{
$arViewsData[$viewCount]['DETAIL_PAGE_URL'] = $element['~DETAIL_PAGE_URL'];
}
unset($viewCount);
}
}
unset($element, $elementIterator);
}
// collect iblock info about all products in the static class member. Will be used in the CSaleProduct::GetProductSku
if (!empty($arProductId))
CSaleProduct::GetProductListIblockInfo($arProductId);
// Resort items by params
if (!isset($_REQUEST["by"]))
$arViewSort = array("DATE_VISIT" => SORT_DESC);
else
$arViewSort[$_REQUEST["by"]] = ($_REQUEST["order"] == "asc" ? SORT_ASC : SORT_DESC);
Bitrix\Main\Type\Collection::sortByColumn($arViewsData, $arViewSort);
foreach ($arViewsData as $arViews)
{
$row =& $lAdmin_tab5->AddRow($arViews["PRODUCT_ID"], $arViews, '', '');
$orderProductUrl = $arViews["DETAIL_PAGE_URL"];
$elementQueryObject = CIBlockElement::getList(array(), array(
"ID" => $arViews["PRODUCT_ID"]), false, false, array("IBLOCK_ID", "IBLOCK_TYPE_ID"));
if ($elementData = $elementQueryObject->fetch())
{
$orderProductUrl = $selfFolderUrl."cat_product_edit.php?IBLOCK_ID=".$elementData["IBLOCK_ID"].
"&type=".$elementData["IBLOCK_TYPE_ID"]."&ID=".$arViews["PRODUCT_ID"]."&lang=".LANGUAGE_ID."&WF=Y";
}
$orderProductUrl = $adminSidePanelHelper->editUrlToPublicPage($orderProductUrl);
$name = "[".$arViews["PRODUCT_ID"]."] ".htmlspecialcharsEx($arViews["NAME"])." ";
if (floatVal($arViews["PRICE"]) <= 0)
$name .= "(".GetMessage('BUYER_DONT_CAN_BUY').")
";
$name .= " ";
// get set items
/** @var $productProvider IBXSaleProductProvider */
if ($productProvider = CSaleBasket::GetProductProvider($arViews))
{
if (method_exists($productProvider, "GetSetItems"))
{
$arSets = $productProvider::GetSetItems($arViews["PRODUCT_ID"], CSaleBasket::TYPE_SET);
if (!empty($arSets))
{
$name .= "".GetMessage("BUYER_F_SHOW_SET")." ";
$name .= "";
foreach ($arSets as $arSetData)
{
foreach ($arSetData["ITEMS"] as $setItem)
{
$orderProductUrl = $setItem["DETAIL_PAGE_URL"];
$elementQueryObject = CIBlockElement::getList(array(), array(
"ID" => $arViews["PRODUCT_ID"]), false, false, array("IBLOCK_ID", "IBLOCK_TYPE_ID"));
if ($elementData = $elementQueryObject->fetch())
{
$orderProductUrl = $selfFolderUrl."cat_product_edit.php?IBLOCK_ID=".$elementData["IBLOCK_ID"].
"&type=".$elementData["IBLOCK_TYPE_ID"]."&ID=".$arViews["PRODUCT_ID"]."&lang=".LANGUAGE_ID."&WF=Y";
}
$orderProductUrl = $adminSidePanelHelper->editUrlToPublicPage($orderProductUrl);
$name .= "
[".$setItem["ITEM_ID"]."]
".$setItem["NAME"]." ";
}
}
$name .= "
";
}
}
}
$row->AddField("NAME", $name);
$QUANTITY = " ";
if (isset($arViews["QUANTITY"]))
$QUANTITY = $arViews["QUANTITY"];
$row->AddField("QUANTITY", $QUANTITY);
$price = " ";
if (floatval($arViews["PRICE"]) > 0)
$price = SaleFormatCurrency($arViews["PRICE"], $arViews["CURRENCY"]);
$row->AddField("PRICE", $price);
if (count($arSites) > 1)
$row->AddField("LID", "[".$arViews["LID"]."] ".htmlspecialcharsbx($arSites[$arViews["LID"]]["NAME"])."");
$arResult = CSaleProduct::GetProductSku($ID, $arViews['SITE_ID'], $arViews["PRODUCT_ID"], $arViews["NAME"]);
$arResult["POPUP_MESSAGE"] = array(
"PRODUCT_ADD_TO_ORDER" => GetMessage('BUYER_PD_ORDER'),
"PRODUCT_ADD_TO_BASKET" => GetMessage('BUYER_PD_DELAY_N'),
"PRODUCT_NOT_TO_ORDER" => GetMessage('BUYER_DONT_CAN_BUY'),
"PRODUCT_PRICE_FROM" => GetMessage('BUYERS_FROM')
);
if (!empty($arResult["SKU_ELEMENTS"])):
$linkOrder = "showOfferPopup(".CUtil::PhpToJsObject($arResult['SKU_ELEMENTS']).", ".CUtil::PhpToJsObject($arResult['SKU_PROPERTIES']).", 'order', ".CUtil::PhpToJsObject($arResult["POPUP_MESSAGE"]).");";
$linkBasket = "showOfferPopup(".CUtil::PhpToJsObject($arResult['SKU_ELEMENTS']).", ".CUtil::PhpToJsObject($arResult['SKU_PROPERTIES']).", 'basket', ".CUtil::PhpToJsObject($arResult["POPUP_MESSAGE"]).");";
else:
if ($adminSidePanelHelper->isPublicSidePanel())
{
$linkOrder = "top.BX.adminSidePanel.onOpenPage('/shop/orders/details/0/?lang=".LANGUAGE_ID."&USER_ID=".$ID."&SITE_ID=".$arViews["SITE_ID"]."&product[".$arViews["PRODUCT_ID"]."]=1');";
}
else
{
$linkOrder = 'BX.adminPanel.Redirect([], \''.$selfFolderUrl.'sale_order_create.php?USER_ID='.$ID.'&lang=' . LANGUAGE_ID . '&SITE_ID='.$arViews["SITE_ID"].'&product['.$arViews["PRODUCT_ID"].']=1\', event);';
}
$linkBasket = 'fAddToBasketViewed('.$arViews["PRODUCT_ID"].', \''.$arViews["SITE_ID"].'\')';
endif;
$arActions = array();
$arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("BUYER_PD_ORDER"), "ACTION"=>$linkOrder, "DEFAULT"=>true);
$arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("BUYER_PD_DELAY_N"), "ACTION"=>$linkBasket);
if (floatval($arViews["PRICE"]) > 0)
$row->AddActions($arActions);
}
if($_REQUEST["table_id"]==$sTableID_tab5)
$lAdmin_tab5->CheckListMode();
//END VIEWED
//SUBSCRIPTION PRODUCTS
if($catalogSubscribeEnabled)
{
$sTableID_tab6 = "t_stat_list_tab6";
$oSort_tab6 = new CAdminSorting($sTableID_tab6, false, false, 'byS', 'orderS');
$lAdmin_tab6 = new CAdminList($sTableID_tab6, $oSort_tab6);
$arFilterFields = array(
'find_id',
'find_user_contact',
'find_item_id',
'find_date_from_1',
'find_date_from_2',
'find_date_to_1',
'find_date_to_2',
'find_contact_type',
'find_active'
);
$lAdmin_tab6->InitFilter($arFilterFields);
$filter = array('=USER_ID' => $ID);
if($find_id)
$filter['=ID'] = $find_id;
if($find_user_contact)
$filter['%USER_CONTACT'] = $find_user_contact;
if($find_item_id)
$filter['=ITEM_ID'] = $find_item_id;
if($find_date_from_1)
$filter['>=DATE_FROM'] = $find_date_from_1;
if($find_date_to_1)
$filter['>=DATE_TO'] = $find_date_to_1;
if($find_contact_type)
$filter['=CONTACT_TYPE'] = $find_contact_type;
if($find_active)
{
global $DB;
if($find_active == 'Y')
{
$filter[] = array(
'LOGIC' => 'OR',
array('=DATE_TO' => false),
array('>DATE_TO' => date($DB->dateFormatToPHP(CLang::getDateFormat('FULL')), time()))
);
}
else
{
$filter[] = array(
'LOGIC' => 'AND',
array('!=DATE_TO' => false),
array(' date($DB->dateFormatToPHP(CLang::getDateFormat('FULL')), time()))
);
}
}
if(!empty($find_date_from_2))
{
$filter['<=DATE_FROM'] = CIBlock::isShortDate($find_date_from_2) ?
ConvertTimeStamp(AddTime(MakeTimeStamp($find_date_from_2), 1, 'D'), 'FULL'): $find_date_from_2;
}
if(!empty($find_date_to_2))
{
$filter['<=DATE_TO'] = CIBlock::isShortDate($find_date_to_2) ?
ConvertTimeStamp(AddTime(MakeTimeStamp($find_date_to_2), 1, 'D'), 'FULL'): $find_date_to_2;
}
$subscribeManager = new \Bitrix\Catalog\Product\SubscribeManager();
if(($listRowId = $lAdmin_tab6->groupAction()))
{
switch($_REQUEST['action'])
{
case 'delete':
$itemId = 0;
if(isset($_REQUEST['itemId']))
$itemId = $_REQUEST['itemId'];
$subscribeManager->deleteManySubscriptions($listRowId, $itemId);
break;
case 'activate':
$subscribeManager->activateSubscription($listRowId);
break;
case 'deactivate':
$subscribeManager->deactivateSubscription($listRowId);
break;
}
$errorObject = current($subscribeManager->getErrors());
if($errorObject)
{
$lAdmin_tab6->addGroupError($errorObject->getMessage());
}
}
$subscriptionHeaders = array();
$subscriptionHeaders['ID'] = array('id' => 'ID', 'content' => 'ID', 'sort' => 'ID', 'default' => true, 'align' => 'center');
$subscriptionHeaders['DATE_FROM'] = array('id' => 'DATE_FROM','content' => Loc::getMessage('CS_DATE_FROM'),
'sort' => 'DATE_FROM', 'default' => true);
$subscriptionHeaders['USER_CONTACT'] = array('id' => 'USER_CONTACT','content' => Loc::getMessage('CS_USER_CONTACT'),
'sort' => 'USER_CONTACT', 'default' => true);
$subscriptionHeaders['USER_ID'] = array('id' => 'USER_ID', 'content' => Loc::getMessage('CS_USER'),
'default' => true);
$subscriptionHeaders['CONTACT_TYPE'] = array('id' => 'CONTACT_TYPE','content' => Loc::getMessage('CS_CONTACT_TYPE'),
'sort' => 'CONTACT_TYPE', 'default' => true, 'align' => 'center');
$subscriptionHeaders['ACTIVE'] = array('id' => 'ACTIVE', 'content' => Loc::getMessage('CS_ACTIVE'),
'default' => true, 'align' => 'center');
$subscriptionHeaders['DATE_TO'] = array('id' => 'DATE_TO','content' => Loc::getMessage('CS_DATE_TO'),
'sort' => 'DATE_TO', 'default' => true);
$subscriptionHeaders['ITEM_ID'] = array('id' => 'ITEM_ID','content' => Loc::getMessage('CS_ITEM_ID'),
'sort' => 'ITEM_ID', 'default' => false, 'align' => 'right');
$subscriptionHeaders['PRODUCT_NAME'] = array('id' => 'PRODUCT_NAME','content' => Loc::getMessage('CS_PRODUCT_NAME'),
'sort' => 'PRODUCT_NAME', 'default' => true);
$subscriptionHeaders['SITE_ID'] = array('id' => 'SITE_ID','content' => Loc::getMessage('CS_SITE_ID'),
'sort' => 'SITE_ID', 'default' => true, 'align' => 'center');
$lAdmin_tab6->addHeaders($subscriptionHeaders);
$select = array();
$ignoreFields = array('ACTIVE');
$selectFields = array_keys($subscriptionHeaders);
$selectFields = array_diff($selectFields, $ignoreFields);
foreach($selectFields as $fieldName)
{
$select[$fieldName] = $fieldName;
}
$select['PRODUCT_NAME'] = 'IBLOCK_ELEMENT.NAME';
$select['IBLOCK_ID'] = 'IBLOCK_ELEMENT.IBLOCK_ID';
$byS = (!empty($_REQUEST['byS']) ? trim($_REQUEST['byS']) : 'DATE_FROM');
$orderS = (!empty($_REQUEST['orderS']) ? trim($_REQUEST['orderS']) : 'DESC');
if (!isset($_REQUEST['byS']))
$queryOrder = array('DATE_FROM' => 'DESC');
else
$queryOrder[$byS] = $orderS;
$nav = new Bitrix\Main\UI\AdminPageNavigation('buyers-subscription-list');
$queryObject = Bitrix\Catalog\SubscribeTable::getList(array(
'select' => $select,
'filter' => $filter,
'order' => $queryOrder,
'count_total'=>true,
'offset' => $nav->getOffset(),
'limit' => $nav->getLimit()
));
$nav->setRecordCount($queryObject->getCount());
$lAdmin_tab6->setNavigation($nav, Loc::getMessage('CS_PAGES'));
$contactType = Bitrix\Catalog\SubscribeTable::getContactTypes();
$actionUrl = '&USER_ID='.$ID.'&lang='.LANGUAGE_ID;
$listUserData = array();
while($subscribe = $queryObject->fetch())
{
$subscribe['CONTACT_TYPE'] = $contactType[$subscribe['CONTACT_TYPE']]['NAME'];
if(!empty($subscribe['USER_ID']))
{
$listUserData[$subscribe['USER_ID']][] = $subscribe['ID'];
}
$rowList[$subscribe['ID']] = $row = &$lAdmin_tab6->addRow($subscribe['ID'], $subscribe);
if($subscribeManager->checkSubscriptionActivity($subscribe['DATE_TO']))
{
$row->addField('ACTIVE', Loc::getMessage('CS_FILTER_YES'));
}
else
{
$row->addField('ACTIVE', Loc::getMessage('CS_FILTER_NO'));
}
if(defined('CATALOG_PRODUCT'))
{
$editUrl = CIBlock::getAdminElementEditLink($subscribe['IBLOCK_ID'], $subscribe['ITEM_ID'], array(
'find_section_section' => -1, 'WF' => 'Y', 'replace_script_name' => true,
'return_url' => $APPLICATION->getCurPageParam()));
}
else
{
$editUrl = CIBlock::getAdminElementEditLink($subscribe['IBLOCK_ID'], $subscribe['ITEM_ID'], array(
'find_section_section' => -1, 'WF' => 'Y', 'replace_script_name' => true));
}
$row->addField('PRODUCT_NAME',
''.htmlspecialcharsbx($subscribe['PRODUCT_NAME']).' ');
$actions = array();
$actionUrl .= '&itemId='.$subscribe['ITEM_ID'];
$actions[] = array(
'ICON' => 'delete',
'TEXT' => Loc::getMessage('CS_ACTION_DELETE'),
'ACTION' => "if(confirm('".GetMessageJS('CS_ACTION_DELETE_CONFIRM')."')) ".
$lAdmin_tab6->actionDoGroup($subscribe['ID'], 'delete', $actionUrl)
);
$actions[] = array(
'TEXT' => Loc::getMessage('CS_ACTION_ACTIVATE'),
'ACTION' => $lAdmin_tab6->actionDoGroup($subscribe['ID'], 'activate', $actionUrl)
);
$actions[] = array(
'TEXT' => Loc::getMessage('CS_ACTION_DEACTIVATE'),
'ACTION' => $lAdmin_tab6->actionDoGroup($subscribe['ID'], 'deactivate', $actionUrl)
);
$row->addActions($actions);
}
if (!empty($listUserData))
{
$listUserId = array_keys($listUserData);
$listUsers = implode(' | ', $listUserId);
$userQuery = CUser::getList('ID', 'ASC',
array('ID' => $listUsers) ,
array('FIELDS' => array('ID' ,'LOGIN', 'NAME', 'LAST_NAME')));
while($user = $userQuery->fetch())
{
if(is_array($listUserData[$user['ID']]))
{
foreach($listUserData[$user['ID']] as $subscribeId)
{
$userString = ''.CUser::formatName(CSite::getNameFormat(false), $user, true, true).' ';
if ($adminSidePanelHelper->isPublicSidePanel())
{
$userString = CUser::formatName(CSite::getNameFormat(false), $user, true, true);
}
$rowList[$subscribeId]->addField('USER_ID', $userString);
}
}
}
}
$footerArray = array(array('title' => Loc::getMessage('CS_LIST_SELECTED'),
'value' => $queryObject->getCount()));
$lAdmin_tab6->addFooter($footerArray);
$lAdmin_tab6->addGroupActionTable(array(
'delete' => Loc::getMessage('CS_ACTION_DELETE'),
'activate' => Loc::getMessage('CS_ACTION_ACTIVATE'),
'deactivate' => Loc::getMessage('CS_ACTION_DEACTIVATE'),
));
if($_REQUEST["table_id"] == $sTableID_tab6)
$lAdmin_tab6->checkListMode();
}
//END SUBSCRIPTION PRODUCTS
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$siteLID = "";
$arSiteMenu = array();
$arSitesShop = array();
$arSitesTmp = array();
$rsSites = CSite::GetList("id", "asc", Array("ACTIVE" => "Y"));
while ($arSite = $rsSites->Fetch())
{
$site = COption::GetOptionString("sale", "SHOP_SITE_".$arSite["ID"], "");
if ($arSite["ID"] == $site)
$arSitesShop[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]);
$arSitesTmp[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]);
}
$rsCount = count($arSitesShop);
if ($rsCount <= 0)
{
$arSitesShop = $arSitesTmp;
$rsCount = count($arSitesShop);
}
if ($rsCount === 1)
$siteLID = "&SITE_ID=".$arSitesShop[0]["ID"]."&USER_ID=".$ID;
else
{
foreach ($arSitesShop as $key => $val)
{
$actionSiteShop = "window.location = 'sale_order_create.php?lang=".LANGUAGE_ID."&USER_ID=".$ID."&SITE_ID=".$val["ID"]."';";
if ($adminSidePanelHelper->isPublicSidePanel())
{
$actionSiteShop = "top.BX.adminSidePanel.onOpenPage('/shop/orders/details/0/?lang=".LANGUAGE_ID."&USER_ID=".$ID."&SITE_ID=".$val["ID"]."');";
}
$arSiteMenu[] = array(
"TEXT" => $val["NAME"]." (".$val["ID"].")",
"ACTION" => $actionSiteShop
);
}
}
$orderAddLinkUrl = $selfFolderUrl."sale_order_create.php?lang=".LANGUAGE_ID.$siteLID;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$orderAddLinkUrl = "/shop/orders/details/0/?lang=".LANGUAGE_ID.$siteLID;
}
$listUrl = $selfFolderUrl."sale_buyers.php?lang=".LANGUAGE_ID;
if ($adminSidePanelHelper->isPublicSidePanel())
{
$listUrl = $selfFolderUrl."menu_sale_buyers/";
}
$arMenu = [];
$arMenu[] = [
"TEXT"=>GetMessage("BUYER_LIST"),
"LINK" => $listUrl,
"ICON" => "btn_list",
];
if ($isWithOrdersMode)
{
$addButton = array(
"TEXT"=>GetMessage("BUYER_NEW_ORDER"),
"LINK" => $orderAddLinkUrl,
"TITLE"=>GetMessage("BUYER_NEW_ORDER"),
"ICON" => "btn_new",
"MENU" => $arSiteMenu,
"PUBLIC" => ($adminSidePanelHelper->isPublicSidePanel() ? true : false),
);
if ($adminSidePanelHelper->isPublicSidePanel())
{
$addButton = array(
"TEXT"=>GetMessage("BUYER_NEW_ORDER"),
"ONCLICK" => "top.BX.adminSidePanel.onOpenPage('/shop/orders/details/0/?lang=".LANGUAGE_ID.$siteLID."');",
"TITLE"=>GetMessage("BUYER_NEW_ORDER"),
"ICON" => "btn_new",
"MENU" => $arSiteMenu,
"PUBLIC" => ($adminSidePanelHelper->isPublicSidePanel() ? true : false),
);
}
$arMenu[] = $addButton;
}
if (
$adminSidePanelHelper->isPublicSidePanel()
&& empty($arUser['UF_DEPARTMENT'])
&& isset($arUser['EXTERNAL_AUTH_ID'])
&& $arUser['EXTERNAL_AUTH_ID'] === 'shop'
)
{
$arMenu[] = [
"TEXT"=>GetMessage("BUYER_EDIT"),
"LINK" => '/shop/buyer/'.$u_ID.'/edit/',
"TITLE"=>GetMessage("BUYER_EDIT"),
"PUBLIC" => true,
];
}
$context = new CAdminContextMenu($arMenu);
$context->Show();
$aTabs = array(
array(
"DIV" => "tab1",
"TAB" => GetMessage("BUYER_INFO"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_INFO_DESC"),
),
...(
$isWithOrdersMode
? [[
"DIV" => "tab-order",
"TAB" => GetMessage("BUYER_G_STATISTIC"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_G_STATISTIC"),
]]
: []
),
array(
"DIV" => "tab2",
"TAB" => GetMessage("BUYER_PROFILE"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_PROFILE_DESC"),
),
...(
$isWithOrdersMode
? [[
"DIV" => "tab3",
"TAB" => GetMessage("BUYER_ORDER"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_ORDER_DESC"),
]]
: []
),
);
if ($isWithOrdersMode && !$adminSidePanelHelper->isPublicSidePanel())
{
$aTabs[] = array(
"DIV" => "tab7",
"TAB" => GetMessage("BUYER_ORDER_ARCHIVE"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_ORDER_ARCHIVE_DESC"),
);
}
$aTabs[] = array(
"DIV" => "tab5",
"TAB" => GetMessage("BUYER_BASKET"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_BASKET_DESC"),
);
$aTabs[] = array(
"DIV" => "tab6",
"TAB" => GetMessage("BUYER_LOOKED"),
"ICON"=>"",
"TITLE"=>GetMessage("BUYER_LOOKED_DESC"),
);
if($catalogSubscribeEnabled)
{
$aTabs[] = array(
"DIV" => "tab8",
"TAB" => GetMessage("CS_TAB_TITLE"),
"ICON" => "",
"TITLE" => GetMessage("CS_TAB_DESC"),
);
}
$tabControl = new CAdminTabControl("tabControl", $aTabs, true, true);
$tabControl->Begin();
?>
$tabControl->BeginNextTab();?>
Fatal error : Uncaught Error: Call to undefined function GetMessage() in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\admin\buyers_profile.php:2177
Stack trace:
#0 {main}
thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\admin\buyers_profile.php on line 2177