Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // http://divasoft.ru/blog/vozvrashchaem-blok-predlozhite-pokupatelyu-v-detalnyy-zakaz-1s-bitriks/
- define("NO_KEEP_STATISTIC", true);
- //define("NOT_CHECK_PERMISSIONS", true);
- require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
- $ID = intval($_REQUEST['ID']);
- if (!$USER->IsAdmin() || $ID==0) {
- die();
- }
- require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/general/admin_tool.php");
- require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/lang/ru/admin/order_detail.php");
- CModule::IncludeModule("iblock");
- CModule::IncludeModule("catalog");
- CModule::IncludeModule("sale");
- $dbOrder = CSaleOrder::GetList(
- array("ID" => "DESC"), array("ID" => $ID), false, false, array(
- "ID", "LID", "PERSON_TYPE_ID",
- "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE",
- "CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED",
- "STATUS_ID", "DATE_STATUS", "EMP_STATUS_ID", "PRICE_DELIVERY",
- "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID",
- "DEDUCTED", "DATE_DEDUCTED", "EMP_DEDUCTED_ID", "REASON_UNDO_DEDUCTED",
- "MARKED", "DATE_MARKED", "EMP_MARKED_ID", "REASON_MARKED",
- "PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID",
- "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION",
- "ADDITIONAL_INFO", "PS_STATUS", "PS_STATUS_CODE", "PS_STATUS_DESCRIPTION",
- "PS_STATUS_MESSAGE", "PS_SUM", "PS_CURRENCY", "PS_RESPONSE_DATE", "COMMENTS",
- "TAX_VALUE", "STAT_GID", "RECURRING_ID", "AFFILIATE_ID", "LOCK_STATUS",
- "USER_LOGIN", "USER_NAME", "USER_LAST_NAME", "USER_EMAIL", "DELIVERY_DOC_NUM",
- "DELIVERY_DOC_DATE", "STORE_ID", "ACCOUNT_NUMBER", "TRACKING_NUMBER",
- )
- );
- if (($arOrder = $dbOrder->Fetch())) {
- ?>
- <div class="load_product order_summary" style="float: left;">
- <table width="100%" class="itog_header"><tr><td>Предложите покупателю</td></tr></table>
- <div id="tabs">
- <?
- $crmMode=false;
- $displayNone = "block";
- $displayNoneBasket = "block";
- $displayNoneViewed = "block";
- $arFilterRecomendet = array();
- $arBasketItems = array();
- $dbBasketTmp = CSaleBasket::GetList( array("ID" => "ASC"), array("ORDER_ID" => $arOrder["ID"]), false, false, array( "ID", "PRODUCT_ID" ) );
- while ($arBasketTmp = $dbBasketTmp->GetNext()) {
- $arBasketItems[] = $arBasketTmp;
- }
- //pr($arBasketItems);
- foreach ($arBasketItems as $arItem) {
- if (!CSaleBasketHelper::isSetItem($arItem)) {
- $arFilterRecomendet[] = $arItem["PRODUCT_ID"];
- }
- }
- $arRecommendedResult = CSaleProduct::GetRecommendetProduct($arOrder["USER_ID"], $arOrder["LID"], $arFilterRecomendet);
- $recomCnt = count($arRecommendedResult);
- if ($recomCnt > 2) {
- $arTmp = array();
- $arTmp[] = $arRecommendedResult[0];
- $arTmp[] = $arRecommendedResult[1];
- $arRecommendedResult = $arTmp;
- }
- if ($recomCnt <= 0)
- $displayNone = "none";
- $arErrors = array();
- $arFuserItems = CSaleUser::GetList(array("USER_ID" => intval($arOrder["USER_ID"])));
- $arCartWithoutSetItems = array();
- $arTmpShoppingCart = CSaleBasket::DoGetUserShoppingCart($arOrder["LID"], $arOrder["USER_ID"], $arFuserItems["ID"], $arErrors, array());
- if (is_array($arTmpShoppingCart)) {
- foreach ($arTmpShoppingCart as $arCartItem) {
- if (CSaleBasketHelper::isSetItem($arCartItem))
- continue;
- $item = findPositionsByID($arCartItem["PRODUCT_ID"]);
- if ($item['IBLOCK_ID'] != CATALOG_IBLOCK_ID) {
- if ($item['PROPS']['CML2_LINK']['VALUE'] != "") {
- $item = findPositionsByID($item['PROPS']['CML2_LINK']['VALUE']);
- }
- }
- $arCartItem['MASTER']=$item;
- $arCartItem['NAME']="[".$item['PROPS']['CML2_ARTICLE']['VALUE']."] ".$arCartItem['NAME'];
- $arCartWithoutSetItems[] = $arCartItem;
- }
- }
- $basketCnt = count($arCartWithoutSetItems);
- if ($basketCnt > 2) {
- $arTmp = array();
- $arTmp[] = $arCartWithoutSetItems[0];
- $arTmp[] = $arCartWithoutSetItems[1];
- $arCartWithoutSetItems = $arTmp;
- }
- if ($basketCnt <= 0)
- $displayNoneBasket = "none";
- ///
- $arViewed = array();
- $arViewedIds = array();
- $viewedCount = 0;
- $mapViewed = array();
- if (CModule::includeModule("catalog")) {
- $viewedIterator = \Bitrix\Catalog\CatalogViewedProductTable::getList(array(
- 'order' => array("DATE_VISIT" => "DESC"),
- 'filter' => array('FUSER_ID' => $arFuserItems["ID"], "SITE_ID" => $arOrder["LID"]),
- 'select' => array("ID", "FUSER_ID", "DATE_VISIT", "PRODUCT_ID", "LID" => "SITE_ID", "NAME" => "ELEMENT.NAME", "PREVIEW_PICTURE" => "ELEMENT.PREVIEW_PICTURE", "DETAIL_PICTURE" => "ELEMENT.DETAIL_PICTURE")
- ));
- while ($viewed = $viewedIterator->fetch()) {
- $viewed['MODULE'] = 'catalog';
- $arViewed[$viewedCount] = $viewed;
- $arViewedIds[] = $viewed['PRODUCT_ID'];
- $mapViewed[$viewed['PRODUCT_ID']] = $viewedCount;
- $viewedCount++;
- }
- unset($viewedCount);
- $baseGroup = CCatalogGroup::getBaseGroup();
- if (!empty($arViewedIds)) {
- $priceIterator = CPrice::getList(
- array(), array("PRODUCT_ID" => $arViewedIds, 'CATALOG_GROUP_ID' => $baseGroup['ID']), false, false, array("PRODUCT_ID", "PRICE", "CURRENCY"));
- while ($productPrice = $priceIterator->fetch()) {
- if (isset($mapViewed[$productPrice['PRODUCT_ID']])) {
- $key = $mapViewed[$productPrice['PRODUCT_ID']];
- $arViewed[$key]["PRICE"] = $productPrice["PRICE"];
- $arViewed[$key]["CURRENCY"] = $productPrice["CURRENCY"];
- }
- }
- }
- $viewedCnt = count($arViewed);
- $arViewed = array_slice($arViewed, 0, 2);
- if (count($arViewed) <= 0)
- $displayNoneViewed = "none";
- }
- else {
- $displayNoneViewed = "none";
- }
- $tabBasket = "tabs";
- $tabViewed = "tabs";
- if ($displayNoneBasket == 'none' && $displayNone == 'none' && $displayNoneViewed == 'block')
- $tabViewed .= " active";
- if ($displayNoneBasket == 'block' && $displayNone == 'none')
- $tabBasket .= " active";
- ?>
- <div id="tab_1" style="display:<?=$displayNone?>" class="tabs active" onClick="fTabsSelect('buyer_recmon', this);" ><?=GetMessage('SOD_SUBTAB_RECOMENET')?></div>
- <div id="tab_2" style="display:<?=$displayNoneBasket?>" class="<?=$tabBasket?>" onClick="fTabsSelect('buyer_basket', this);"><?=GetMessage('SOD_SUBTAB_BASKET')?></div>
- <div id="tab_3" style="display:<?=$displayNoneViewed?>" class="<?=$tabViewed?>" onClick="fTabsSelect('buyer_viewed', this);"><?=GetMessage('SOD_SUBTAB_LOOKED')?></div>
- <?
- if ($displayNone == 'block')
- {
- $displayNoneBasket = 'none';
- $displayNoneViewed = 'none';
- }
- if ($displayNoneBasket == 'block')
- {
- $displayNone = 'none';
- $displayNoneViewed = 'none';
- }
- if ($displayNoneViewed == 'block')
- {
- $displayNone = 'none';
- $displayNoneBasket = 'none';
- }
- ?>
- <div id="buyer_recmon" class="tabstext active" style="display:<?= $displayNone ?>">
- <? echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arRecommendedResult, $recomCnt, $arOrder["CURRENCY"], 'recom', $crmMode); ?>
- </div>
- <div id="buyer_basket" class="tabstext active" style="display:<?= $displayNoneBasket ?>">
- if (count($arCartWithoutSetItems) > 0)
- echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arCartWithoutSetItems, $basketCnt, $arOrder["CURRENCY"], 'basket', $crmMode);
- ?>
- </div>
- <div id="buyer_viewed" class="tabstext active" style="display:<?= $displayNoneViewed ?>">
- <?
- if (count($arViewed) > 0)
- echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arViewed, $viewedCnt, $arOrder["CURRENCY"], 'viewed', $crmMode);
- ?>
- </div>
- </div>
- <script type="text/javascript">
- function fTabsSelect(tabText, el)
- {
- BX('tab_1').className = "tabs";
- BX('tab_2').className = "tabs";
- BX('tab_3').className = "tabs";
- BX(el).className = "tabs active";
- BX(el).className = "tabs active";
- BX(el).style.display = 'block';
- BX('buyer_recmon').className = "tabstext";
- BX('buyer_basket').className = "tabstext";
- BX('buyer_viewed').className = "tabstext";
- BX('buyer_recmon').style.display = 'none';
- BX('buyer_basket').style.display = 'none';
- BX('buyer_viewed').style.display = 'none';
- BX(tabText).style.display = 'block';
- BX(tabText).className = "tabstext active";
- }
- </script>
- <script type="text/javascript">
- /*
- * click on recommendet More
- */
- function fGetMoreProduct(type)
- {
- BX.showWait();
- productData = <? echo CUtil::PhpToJSObject($arFilterRecomendet); ?>;
- var userId = '<?=$arOrder["USER_ID"]?>';
- var fUserId = '<?=$arFuserItems["ID"]?>';
- var currency = '<?=$arOrder["CURRENCY"]?>';
- var lid = '<?=$arOrder["LID"]?>';
- BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&type='+type+'&arProduct='+productData+'¤cy='+currency+'&LID='+lid+'&userId='+userId+'&fUserId='+fUserId+'&ID=<?=$ID?>', fGetMoreProductResult);
- }
- function fGetMoreProductResult(res)
- {
- BX.closeWait();
- var rs = eval( '('+res+')' );
- if (rs["ITEMS"].length > 0)
- {
- if (rs["TYPE"] == 'basket')
- BX("buyer_basket").innerHTML = rs["ITEMS"];
- if (rs["TYPE"] == 'recom')
- BX("buyer_recmon").innerHTML = rs["ITEMS"];
- if (rs["TYPE"] == 'viewed')
- BX("buyer_viewed").innerHTML = rs["ITEMS"];
- }
- }
- </script>
- </div>
- <?}
- require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php");?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement