%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/sale.mobile.orders.list/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/sale.mobile.orders.list/component.php |
<?if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die(); define("SALE_ORDERS_INIT_COUNT", 20); //how mutch orders we must load initially define("SALE_ORDERS_LIST_PACK_SIZE", 20); //how much orders we must load, when user will reach bottom define("SALE_ORDERS_LIST_PRELOAD_START", 2); //when start loading orders not loaded yet define("SALE_ORDERS_LIST_CHECK_TIMEOUT", 120000); //how often we must check the updated orders (msec) if (!CModule::IncludeModule('sale')) { ShowError(GetMessage("SMOL_SALE_NOT_INSTALLED")); return; } if (!CModule::IncludeModule('mobileapp')) { ShowError("SMOL_MOBILEAPP_NOT_INSTALLED"); return; } if (isset($_REQUEST['action'])) $arResult["ACTION"] = $_REQUEST['action']; else $arResult["ACTION"] = ""; $arFilter = array(); $arResult["FILTER_ID"] = "maCustomFilter"; $filterFields = CSaleMobileOrderFilter::buildFieldsParams(); $arCustomFilter = CAdminMobileFilter::getNonemptyFields($arResult["FILTER_ID"], $filterFields); $arCustomFilter = CSaleMobileOrderFilter::adaptFields($arCustomFilter); if(isset($_REQUEST['filtered']) && $_REQUEST['filtered'] == "Y") { if (isset($_REQUEST['filter_name'])) $arResult["FILTER_NAME"] = $_REQUEST['filter_name']; else $arResult["FILTER_NAME"] = ""; switch ($arResult["FILTER_NAME"]) { case "waiting_for_pay": $arFilter["STATUS_ID"] = "N"; break; case "waiting_for_delivery": $arFilter["STATUS_ID"] = "P"; break; case "custom": $arFilter = $arCustomFilter; break; } } if(isset($arParams["FILTER"])) foreach ($arParams["FILTER"] as $key => $fltVal) $arFilter[$key] = $fltVal; if(isset($arFilter["CUSTOM_SUBQUERY"])) unset($arFilter["CUSTOM_SUBQUERY"]); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); //set rights to orders if(!isset($arFilter["USER_ID"])) { if ($saleModulePermissions == "D") $arFilter["USER_ID"] = IntVal($USER->GetID()); elseif ($saleModulePermissions != "W") { $arFilter["STATUS_PERMS_GROUP_ID"] = $GLOBALS["USER"]->GetUserGroupArray(); $arFilter[">=STATUS_PERMS_PERM_VIEW"] = "Y"; $arUserGroups = $USER->GetUserGroupArray(); $arAccessibleSites = array(); $dbAccessibleSites = CSaleGroupAccessToSite::GetList( array(), array("GROUP_ID" => $arUserGroups), false, false, array("SITE_ID") ); while ($arAccessibleSite = $dbAccessibleSites->Fetch()) { if(!in_array($arAccessibleSite["SITE_ID"], $arAccessibleSites)) $arAccessibleSites[] = $arAccessibleSite["SITE_ID"]; } if(count($arAccessibleSites) > 0) $arFilter["LID"] = $arAccessibleSites; } } if (isset($_REQUEST['dialog_name'])) $arResult["DIALOG_NAME"] = $_REQUEST['dialog_name']; else $arResult["DIALOG_NAME"] = ""; //return array (needed by ajax) if(isset($arParams['RETURN_AS_ARRAY']) && $arParams['RETURN_AS_ARRAY'] == 'Y') $arResult['RETURN_AS_ARRAY'] = true; else $arResult['RETURN_AS_ARRAY'] = false; if(isset($arParams["ORDER_DETAIL_PATH"])) $arResult["ORDER_DETAIL_PATH"] = $arParams["ORDER_DETAIL_PATH"]; else $arResult["ORDER_DETAIL_PATH"] = "#"; $arResult["FIELDS"] = array( "USER_ID" => GetMessage("SMOL_FN_USER_ID"), "DELIVERY" => GetMessage("SMOL_FN_DELIVERY"), "PAYED" => GetMessage("SMOL_FN_PAYED"), "PAY_VOUCHER_NUM" => GetMessage("SMOL_FN_PAY_VOUCHER_NUM"), "PAY_VOUCHER_DATE" => GetMessage("SMOL_FN_PAY_VOUCHER_DATE"), "DELIVERY_DOC_NUM" => GetMessage("SMOL_FN_DELIVERY_DOC_NUM"), "DELIVERY_DOC_DATE" => GetMessage("SMOL_FN_DELIVERY_DOC_DATE"), "CANCELED" => GetMessage("SMOL_FN_CANCELED"), "DEDUCTED" => GetMessage("SMOL_FN_DEDUCTED"), "STATUS_NAME" => GetMessage("SMOL_FN_STATUS_ID"), "PRICE_DELIVERY" => GetMessage("SMOL_FN_PRICE_DELIVERY"), "ALLOW_DELIVERY" => GetMessage("SMOL_FN_ALLOW_DELIVERY"), "SUM_PAID" => GetMessage("SMOL_FN_SUM_PAID"), "DATE_UPDATE" => GetMessage("SMOL_FN_DATE_UPDATE"), "PS_STATUS" => GetMessage("SMOL_FN_PS_STATUS"), "PS_STATUS_DESCRIPTION" => GetMessage("SMOL_FN_PS_STATUS_DESCRIPTION"), "PS_SUM" => GetMessage("SMOL_FN_PS_SUM"), "TAX_VALUE" => GetMessage("SMOL_FN_TAX_VALUE"), "REASON_CANCELED" => GetMessage("SMOL_FN_REASON_CANCELED"), "REASON_UNDO_DEDUCTED" => GetMessage("SMOL_FN_REASON_UNDO_DEDUCTED"), ); if($saleModulePermissions > "D") { $arResult["FIELDS"]["MARKED"] = GetMessage("SMOL_FN_MARKED"); $arResult["FIELDS"]["COMMENTS"] = GetMessage("SMOL_FN_COMMENTS"); $arResult["FIELDS"]["REASON_MARKED"] = GetMessage("SMOL_FN_REASON_MARKED"); $arResult["FIELDS"]["USER_EMAIL"] = GetMessage("SMOL_FN_USER_EMAIL"); $arResult["FIELDS"]["USER_DESCRIPTION"] = GetMessage("SMOL_FN_USER_DESCRIPTION"); $arResult["FIELDS"]["PERSON_TYPE"] = GetMessage("SMOL_FN_PERSON_TYPE"); } $arVisibleFields = CUserOptions::GetOption("sale", "maListVisibleFields", array(), $USER->GetID()); if(!empty($arVisibleFields)) $arResult['VISIBLE_FIELDS'] = $arVisibleFields; else $arResult['VISIBLE_FIELDS'] = array("USER_ID", "DELIVERY", "PAYED"); $arSort = array("ID" => "DESC"); $arResult["ORDERS"] = array(); $ordersCount = 0; $ordersIds = array(); $deliveryIds = array(); $personTypesIds = array(); $paySysIds = array(); //$statIds = array(); $select = array( '*', 'PS_STATUS', 'PS_STATUS_CODE', 'PS_STATUS_DESCRIPTION', 'PS_STATUS_MESSAGE', 'PS_SUM', 'PS_CURRENCY', 'PS_RESPONSE_DATE', 'PAY_VOUCHER_NUM', 'PAY_VOUCHER_DATE', 'DATE_PAY_BEFORE', 'DATE_BILL', 'PAY_SYSTEM_NAME', 'PAY_SYSTEM_ID', 'DATE_PAYED', 'EMP_PAYED_ID' ); $dbOrderList = CSaleOrder::GetList($arSort, $arFilter, false, array("nTopCount" =>SALE_ORDERS_INIT_COUNT), $select); while ($arOrderItem = $dbOrderList->GetNext()) { $ordersIds[] = $arOrderItem["ID"]; $deliveryIds[$arOrderItem["ID"]] = $arOrderItem["DELIVERY_ID"]; $personTypesIds[$arOrderItem["ID"]] = $arOrderItem["PERSON_TYPE_ID"]; $paySysIds[$arOrderItem["ID"]] = $arOrderItem["PAY_SYSTEM_ID"]; // $statIds[$arOrderItem["ID"]] = $arOrderItem["STATUS_ID"]; if($arOrderItem["ALLOW_DELIVERY"] == 'Y' && $arOrderItem["PAYED"] == 'Y') $arOrderItem["ADD_ORDER_STEP"] = 'step3'; elseif($arOrderItem["ALLOW_DELIVERY"] == 'Y' || $arOrderItem["PAYED"] == 'Y') $arOrderItem["ADD_ORDER_STEP"] = 'step2'; else $arOrderItem["ADD_ORDER_STEP"] = 'step1'; $arOrderItem["ORDER_DETAIL_LINK"] = $arResult["ORDER_DETAIL_PATH"]."?id=".(int)$arOrderItem["ID"]; $arOrderItem["DATE_UPDATE"] = CSaleMobileOrderUtils::getDateTime($arOrderItem["DATE_UPDATE"]); $arOrderItem["PRICE_DELIVERY"] = SaleFormatCurrency($arOrderItem["PRICE_DELIVERY"], $arOrderItem["CURRENCY"]); $arOrderItem["SUM_PAID"] = SaleFormatCurrency($arOrderItem["SUM_PAID"], $arOrderItem["CURRENCY"]); $arOrderItem["PS_SUM"] = SaleFormatCurrency($arOrderItemr["PS_SUM"], $arOrderItem["CURRENCY"]); $arOrderItem["TAX_VALUE"] = SaleFormatCurrency($arOrderItem["TAX_VALUE"], $arOrderItem["CURRENCY"]); $arOrderItem["DATE_INSERT"] = CSaleMobileOrderUtils::getDateTime($arOrderItem["DATE_INSERT"]); $arOrderItem["TMPL_DELIVERY_ALLOWED"] = $arOrderItem["ALLOW_DELIVERY"] == 'Y' ? 'allowed' : 'notallowed'; $arOrderItem["ADD_ALLOW_DELIVERY_PHRASE"] = $arOrderItem["ALLOW_DELIVERY"] == 'Y' ? GetMessage("SMOL_ALLOWED") : GetMessage("SMOL_DISALLOWED"); $arOrderItem["ADD_ALLOW_PAYED_PHRASE"] = $arOrderItem["PAYED"] == 'Y' ? GetMessage("SMOB_PAYED") : GetMessage("SMOB_NOT_PAYED"); $arOrderItem["TMPL_PAYED"] = $arOrderItem["PAYED"] == 'Y' ? '' : 'notallowed'; $arOrderItem["CANCELED"] = $arOrderItem["CANCELED"] == 'Y' ? GetMessage("SMOL_YES") : GetMessage("SMOL_NO"); $arOrderItem["DEDUCTED"] = $arOrderItem["DEDUCTED"] == 'Y' ? GetMessage("SMOL_YES") : GetMessage("SMOL_NO"); $arOrderItem["MARKED"] = $arOrderItem["MARKED"] == 'Y' ? GetMessage("SMOL_YES") : GetMessage("SMOL_NO"); $arOrderItem["ALLOW_DELIVERY"] = $arOrderItem["ALLOW_DELIVERY"] == 'Y' ? GetMessage("SMOL_YES") : GetMessage("SMOL_NO"); $arOrderItem["ADD_FIO"] = $arOrderItem["USER_NAME"]." ".$arOrderItem["USER_LAST_NAME"]; $arOrderItem["ADD_PRICE"] = SaleFormatCurrency($arOrderItem["PRICE"], $arOrderItem["CURRENCY"]); if(trim($arOrderItem["ADD_FIO"]) == '') $arOrderItem["ADD_FIO"] = $arOrderItem["USER_LOGIN"]; $arResult["ORDERS"][$arOrderItem["ID"]] = $arOrderItem; $ordersCount++; } if(!empty($arResult["ORDERS"])) { $dbProdCount = CSaleBasket::GetList( array(), array("ORDER_ID" => $ordersIds), array("ORDER_ID"), false, array("ORDER_ID","CNT") ); while($arProdCount = $dbProdCount->Fetch()) $arResult["ORDERS"][$arProdCount["ORDER_ID"]]["ADD_PRODUCT_COUNT"] = $arProdCount["CNT"]; $arDeliveries = array(); if(in_array("DELIVERY", $arResult['VISIBLE_FIELDS'])) $arDeliveries = CSaleMobileOrderUtils::getDeliveriesInfo($deliveryIds); $arPersonTypes = array(); if(in_array("PERSON_TYPE", $arResult['VISIBLE_FIELDS'])) $arPersonTypes = CSaleMobileOrderUtils::getPersonTypesNames($personTypesIds); $arPaySysNames = array(); if(in_array("PAYED", $arResult['VISIBLE_FIELDS'])) $arPaySysNames = CSaleMobileOrderUtils::getPaySystemsNames($paySysIds); /* $arStatNames = array(); if(in_array("STATUS_NAME", $arResult['VISIBLE_FIELDS'])) $arStatNames = CSaleMobileOrderUtils::getStatusesNames($statIds); */ $arStatNames = CSaleMobileOrderUtils::getStatusesNames(); foreach ($arResult["ORDERS"] as $orderId => &$arOrder) { if(!is_null($arOrder["DELIVERY_ID"]) && isset($arDeliveries[$arOrder["DELIVERY_ID"]])) $arOrder["ADD_DELIVERY_NAME"] = $arDeliveries[$arOrder["DELIVERY_ID"]]; else $arOrder["ADD_DELIVERY_NAME"] = GetMessage("SMOL_NONE"); if(isset($arPersonTypes[$arOrder["PERSON_TYPE_ID"]])) $arOrder["PERSON_TYPE"] = $arPersonTypes[$arOrder["PERSON_TYPE_ID"]]; if(isset($arPaySysNames[$arOrder["PAY_SYSTEM_ID"]])) $arOrder["ADD_PAY_SYSTEM_NAME"] = $arPaySysNames[$arOrder["PAY_SYSTEM_ID"]].' /'; else $arOrder["ADD_PAY_SYSTEM_NAME"] = GetMessage("SMOL_NONE").' /'; if(isset($arStatNames[$arOrder["STATUS_ID"]])) $arOrder["STATUS_NAME"] = $arStatNames[$arOrder["STATUS_ID"]]; } } if(empty($arResult["ORDERS"]) || $ordersCount < SALE_ORDERS_INIT_COUNT) $arResult['BOTTOM_REACHED'] = true; else $arResult['BOTTOM_REACHED'] = false; $arResult["FILTER"] = $arFilter; $arResult["CURRENT_PAGE"] = $APPLICATION->GetCurPage(); $arResult['AJAX_URL'] = $componentPath."/ajax.php"; $sitesCount = 0; $rsSites = CSite::GetList($by = "sort", $order = "asc", Array()); while($arSite = $rsSites->GetNext()) if(COption::GetOptionString("sale", "SHOP_SITE_".$arSite["ID"], "")) $sitesCount++; $arResult["SHOP_SITES_COUNT"] = $sitesCount; if(!$arResult['RETURN_AS_ARRAY']) CSaleMobileOrderPull::InitEventHandlers(); if($arResult["ACTION"] == "filter_edit") { $arResult["CUSTOM_FILTER"] = CAdminMobileFilter::getFields($arResult["FILTER_ID"]); $filterFields = CSaleMobileOrderFilter::setFieldsValues($filterFields, $arResult["CUSTOM_FILTER"]); $arResult["FILTER_PARAMS"] = array( "TITLE" => GetMessage("SMOL_FILTER_TUNE"), "JS_EVENT_APPLY" => "onAfterFilterApply", "FILTER_ID" => $arResult["FILTER_ID"], "VISIBLE_FIELDS" => $arResult['VISIBLE_FIELDS'], "FIELDS" => $filterFields ); } $this->IncludeComponentTemplate(); ?>