require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/admin_tool.php");
IncludeModuleLangFile(__FILE__);
ClearVars("u_");
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
$arStatusList = False;
$arFilter = array("LID" => LANG, "ID" => "N");
$arGroupByTmpSt = false;
if ($saleModulePermissions < "W")
{
$arFilter["GROUP_ID"] = $GLOBALS["USER"]->GetUserGroupArray();
$arFilter["PERM_UPDATE"] = "Y";
$arGroupByTmpSt = array("ID", "NAME", "MAX" => "PERM_UPDATE");
}
$dbStatusList = CSaleStatus::GetList(
array(),
$arFilter,
$arGroupByTmpSt,
false,
array("ID", "NAME")
);
$arStatusList = $dbStatusList->Fetch();
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D" OR ($saleModulePermissions < "W" AND $arStatusList["PERM_UPDATE"] != "Y"))
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
if(!CBXFeatures::IsFeatureEnabled('SaleAccounts'))
{
require($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");
die();
}
$ID = IntVal($_GET["USER_ID"]);
//reorder
if(isset($_REQUEST["reorder"]) && IntVal($_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
),
'select' => array('PRODUCT_ID', 'ID', 'QUANTITY')
));
while ($arBasket = $dbBasketList->fetch())
$urlProduct .= "&product[".$arBasket["PRODUCT_ID"]."]=".$arBasket["QUANTITY"];
LocalRedirect("/bitrix/admin/sale_order_create.php?USER_ID=".CUtil::JSEscape($ID)."&lang=".LANG."&SITE_ID=".CUtil::JSEscape($lid).CUtil::JSEscape($urlProduct));
}
//USER INFO
$userFIO = "";
$dbUser = CUser::GetByID($ID);
if($arUser = $dbUser->ExtractFields("u_"))
{
$userFIO = $u_NAME;
if (strlen($u_LAST_NAME) > 0)
{
if (strlen($userFIO) > 0)
$userFIO .= " ";
$userFIO .= $u_LAST_NAME;
}
if (strlen($u_SECOND_NAME) > 0)
{
if (strlen($userFIO) > 0)
$userFIO .= " ";
$userFIO .= $u_SECOND_NAME;
}
}
$userAdres = "";
$strUserGroup = "";
if(!empty($arUser))
{
//user group
$arUserGroups = CUser::GetUserGroup($ID);
$dbGroups = CGroup::GetList(($b = "c_sort"), ($o = "asc"), array("ANONYMOUS" => "N"));
while ($arGroups = $dbGroups->Fetch())
{
if (in_array($arGroups["ID"], $arUserGroups))
$strUserGroup .= htmlspecialcharsbx($arGroups["NAME"])."
";
}
//user adres
if (strlen($u_PERSONAL_STATE) > 0)
$userAdres .= $u_PERSONAL_STATE;
if (strlen($u_PERSONAL_CITY) > 0)
{
if (strlen($userAdres) > 0)
$userAdres .= ", ";
$userAdres .= $u_PERSONAL_CITY;
}
if (strlen($u_PERSONAL_STREET) > 0)
{
if (strlen($userAdres) > 0)
$userAdres .= ", ";
$userAdres .= $u_PERSONAL_STREET;
}
//ALL SITES
$arSites = array();
$rsSites = CSite::GetList($oby="id", $oorder="asc", array());
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 && strlen($_REQUEST["viewed_lid"]) > 0 && $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 (strlen($viewedError) <= 0)
{
$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(strlen($arProduct["IBLOCK_EXTERNAL_ID"]) > 0)
{
$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 (strlen($filter_basket_lid)>0)
$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 (strlen($basketError) <= 0)
{
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;
}
}
}
}
$pageTitle = "";
if(!empty($arUser))
$pageTitle = " \"(".htmlspecialcharsBack($u_LOGIN).") ".htmlspecialcharsBack($userFIO)."\"";
$APPLICATION->SetTitle(GetMessage("BUYER_TITLE").$pageTitle);
if(!empty($arUser))
{
$dbStatus = CSaleStatus::GetList(array(), array(), false, false, array('ID', 'NAME', 'LID'));
$arStatusOrder = array();
while ($arStatus = $dbStatus->Fetch())
$arStatusOrder[$arStatus["ID"]] = $arStatus;
//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, '', '');
$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($arStatusOrder[$arOrderMain["STATUS_ID"]]["NAME"])."
".$arOrderMain["DATE_STATUS"];
$row->AddField("STATUS_ID", $status);
$payed = (($arOrderMain["PAYED"] == "Y") ? GetMessage("BUYERS_PAY_YES") : GetMessage("BUYERS_PAY_NO"));
if (strlen($arOrderMain["DATE_PAYED"]) > 0)
$payed .= "
".$arOrderMain["DATE_PAYED"];
$row->AddField("PAYED", $payed);
$cancel = (($arOrderMain["CANCELED"] == "Y") ? GetMessage("BUYER_LAST_YES") : GetMessage("BUYER_LAST_NO"));
if (strlen($arOrderMain["DATE_CANCELED"]) > 0)
$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, "sale_buyers_profile_edit.php?id=".$arProfList["ID"]."&lang=".LANG, GetMessage("BUYER_P_PROFILE_EDIT"));
$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_price",
"filter_date_order_from",
"filter_date_order_to",
"filter_summa_to",
"filter_summa_from",
"filter_order_prod_name",
);
$lAdmin_tab3->InitFilter($arFilterFields);
if (!isset($_REQUEST["by"]))
$arOrderSort = array("DATE_INSERT" => "DESC");
else
$arOrderSort[$by] = $order;
if ($by == "PAYED")
$arOrderSort["DATE_PAYED"] = $order;
$arOrderFilter = array("USER_ID" => $ID);
if (strlen($filter_order_lid)>0)
$arOrderFilter["LID"] = trim($filter_order_lid);
if (isset($filter_order_status) && !is_array($filter_order_status) && strlen($filter_order_status) > 0)
$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 (strlen($filter_order_status[$i]) > 0)
$arOrderFilter["STATUS_ID"][] = $filter_order_status[$i];
}
}
if (strlen($filter_order_payed)>0)
$arOrderFilter["PAYED"] = Trim($filter_order_payed);
if (strlen($filter_order_delivery)>0)
$arOrderFilter["ALLOW_DELIVERY"] = Trim($filter_order_delivery);
if (strlen($filter_date_order_from)>0)
{
$dateFrom = MkDateTime(FmtDate($filter_date_order_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$arOrderFilter["DATE_FROM"] = Trim($filter_date_order_from);
}
if (strlen($filter_date_order_to) > 0)
{
if ($arDate = ParseDateTime($filter_date_order_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (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_TO"] = $filter_date_order_to;
}
else
$filter_date_order_to = "";
}
if(strlen(trim($filter_date_order_from_DAYS_TO_BACK))>0)
{
$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 (strlen($filter_order_date_up_from)>0)
{
$dateFrom = MkDateTime(FmtDate($filter_order_date_up_from,"D.M.Y"),"d.m.Y");
if ($dateFrom)
$arOrderFilter["DATE_UPDATE_FROM"] = trim($filter_order_date_up_from);
}
if (strlen($filter_order_date_up_to) > 0)
{
if ($arDate = ParseDateTime($filter_order_date_up_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (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_TO"] = $filter_order_date_up_to;
}
else
$filter_order_date_up_to = "";
}
if (strlen($filter_summa_from) > 0)
{
$arOrderFilter[">=PRICE"] = FloatVal($filter_summa_from);
}
if (strlen($filter_summa_to) > 0)
{
$arOrderFilter["<=PRICE"] = FloatVal($filter_summa_to);
}
if (strlen($filter_order_prod_name) > 0)
{
$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"=>"STATUS_ID","content"=>GetMessage("BUYERS_H_STATUS"), "sort"=>"STATUS_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_detail.php?ID=".$arOrder["ID"]."&lang=".LANG, GetMessage("BUYERS_ORDER_EDIT"));
$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 .= "
Fatal error: Uncaught Error: Call to undefined function GetMessage() in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\distr\admin\buyers_profile.php:1428 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\distr\admin\buyers_profile.php on line 1428 |