| Current Path : /var/www/homesaver/www/bitrix/modules/ipol.sdek/classes/general/ |
| Current File : /var/www/homesaver/www/bitrix/modules/ipol.sdek/classes/general/subscribeHandler.php |
<?php
namespace Ipolh\SDEK;
IncludeModuleLangFile(__FILE__);
class subscribeHandler /*extends abstractGeneral*/
{
protected static $MODULE_LBL = IPOLH_SDEK_LBL;
protected static $MODULE_ID = IPOLH_SDEK;
public static $link = true;
public static function getAjaxAction($action){
$map = self::getMap();
if(array_key_exists($action,$map) && (!$map[$action] || \sdekHelper::isAdmin('R'))) {
if (method_exists('sdekHelper', $action))
\sdekHelper::$action($_POST);
elseif (method_exists('sdekdriver', $action))
\sdekdriver::$action($_POST);
elseif (method_exists('CDeliverySDEK', $action))
\CDeliverySDEK::$action($_POST);
elseif (method_exists('sdekExport', $action))
\sdekExport::$action($_POST);
elseif (method_exists('sdekOption', $action))
\sdekOption::$action($_POST);
elseif (method_exists('\Ipolh\SDEK\StatusHandler', $action))
\Ipolh\SDEK\StatusHandler::$action($_POST);
elseif (method_exists('\Ipolh\SDEK\pvzWidjetHandler', $action))
\Ipolh\SDEK\pvzWidjetHandler::$action($_POST);
elseif (method_exists('\Ipolh\SDEK\CourierCallHandler', $action))
\Ipolh\SDEK\CourierCallHandler::$action($_POST);
elseif (method_exists('\Ipolh\SDEK\StoreHandler', $action))
\Ipolh\SDEK\StoreHandler::$action($_POST);
elseif (method_exists('\Ipolh\SDEK\PrintHandler', $action))
\Ipolh\SDEK\PrintHandler::$action($_POST);
}
}
protected static function getMap()
{
return array(
'countGoods' => false,
'countDelivery' => false,
'getCityPvz' => false,
'getDataViaPointId' => false,
'extCountDeliv' => false,
'htmlTaritfList' => false,
'getAllTarifsToCount' => false,
'formatCurrency' => false,
'getCountryHeaderCities' => false,
'getCountryDetailCities' => false,
'callUpdateList' => false,
'clearCache' => false,
'callOrderStates' => false,
'checkUpdateStates' => false,
// StatusHandler
'getOrderStateRequest' => false,
// CourierCallHandler
'uploadCourierCall' => false,
'newCourierCallRequest' => false,
'loadCourierCallRequest' => false,
'eraseCourierCallRequest' => false,
'deleteCourierCallRequest' => false,
'getCourierCallStateRequest' => false,
'getCourierCallStatesRequest' => false,
// StoreHandler
'uploadStore' => false,
'newStoreRequest' => false,
'loadStoreRequest' => false,
'deleteStoreRequest' => false,
'restorePVZ' => true,
'saveAndSend' => true,
'delReqOD' => true,
'killReqOD' => true,
'printOrderInvoice' => true,
'printOrderShtrih' => true,
'getActiveAccounts' => true,
'tableHandler' => true,
'getOrderState' => true,
'getAccountSelect' => true,
'goSlaughterCities' => true,
'handleImport' => true,
'setImport' => true,
'setAutoloads' => true,
'autoLoadsHandler' => true,
'auth' => true,
'ressurect' => true,
'callAccounts' => true,
'newAccount' => true,
'optionDeleteAccount' => true,
'optionMakeAccDefault' => true,
'killSchet' => true,
'killUpdt' => true,
'logoff' => true,
'checkCdekNumber' => true,
'getPrintOrdersRequest' => true,
'getInvoiceRequest' => true,
'getInvoiceByUuidRequest' => true,
'getBarcodeRequest' => true,
'getBarcodeByUuidRequest' => true,
);
}
// RegisterModuleDependences
protected static function getDependences($PVZ = false){
$arDependences = array(
// sending
array("main", "OnEpilog", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onEpilog"),
array("sale", "OnSaleComponentOrderOneStepComplete", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onOrderCreate"),
array("sale", "OnSaleStatusOrder", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onStatusOrder"),
// print
array("main", "OnAdminListDisplay", self::$MODULE_ID, "Ipolh\\SDEK\subscribeHandler", "displayActPrint"),
// widjet
array("main", "OnEndBufferContent", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "OnEndBufferContent"),
array("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "prepareWidjetData",900),
array("sale", "OnSaleComponentOrderOneStepProcess", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "loadComponent",900),
array("sale", "OnSaleComponentOrderShowAjaxAnswer", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onComponentAjaxAnswer"),
// delivery
array("sale", "OnSaleComponentOrderOneStepPaySystem", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "checkNalD2P"),
array("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "checkNalP2D"),
);
if($PVZ){
$arDependences []= array("sale", "OnSaleComponentOrderOneStepProcess", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "noPVZOldTemplate");
$arDependences []= array("sale", "OnSaleOrderBeforeSaved", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "noPVZNewTemplate");
}
return $arDependences;
}
public static function register($PVZ = false){
foreach (self::getDependences($PVZ) as $regArray){
RegisterModuleDependences($regArray[0],$regArray[1],$regArray[2],$regArray[3],$regArray[4],(isset($regArray[5]) ? $regArray[5] : 100));
}
}
public static function unRegister(){
foreach(self::getDependences(true) as $regArray){
UnRegisterModuleDependences($regArray[0],$regArray[1],$regArray[2],$regArray[3],$regArray[4]);
}
}
// Events
// loading export form
public static function onEpilog(){
\sdekdriver::onEpilog();
}
// loading widjet data
public static function OnEndBufferContent(&$content){
\Ipolh\SDEK\pvzWidjetHandler::onBufferContent($content);
}
// prepare data for component
public static function prepareWidjetData($arResult,$arUserResult){
\Ipolh\SDEK\pvzWidjetHandler::pickupLoader($arResult,$arUserResult);
}
// including component
public static function loadComponent(){
\Ipolh\SDEK\pvzWidjetHandler::loadComponent();
}
// adding properties to order & autoloads
public static function onOrderCreate($oId,$arFields){
\sdekdriver::orderCreate($oId,$arFields);
}
// autoloads via status
public static function onStatusOrder($oId,$status){
\sdekdriver::statusAutoLoad($oId,$status);
}
// checking paysystems while delivery => paysystems
public static function checkNalD2P(&$arResult,&$arUserResult,$arParams){
\CDeliverySDEK::checkNalD2P($arResult,$arUserResult,$arParams);
}
// checking paysystems while paysystems => delivery
public static function checkNalP2D(&$arResult,$arUserResult,$arParams){
\CDeliverySDEK::checkNalP2D($arResult,$arUserResult,$arParams);
}
// adding widjet data (new)
public static function onComponentAjaxAnswer(&$result){
\CDeliverySDEK::onAjaxAnswer($result);
}
// blocking order create if no PVZ
public static function noPVZOldTemplate(&$arResult,&$arUserResult){
\CDeliverySDEK::noPVZOldTemplate($arResult,$arUserResult);
}
public static function noPVZNewTemplate($entity,$values){
return \CDeliverySDEK::noPVZNewTemplate($entity,$values);
}
// show print form
public static function displayActPrint(&$list){
\sdekOption::displayActPrint($list);
}
/**
* @deprecated
*/
public static function OnBeforePrologHandler()
{
}
public static function consolidate(){
if(\sdekHelper::isLogged()){
UnRegisterModuleDependences("main", "OnEpilog", self::$MODULE_ID, "sdekdriver", "onEpilog");
UnRegisterModuleDependences("main", "OnEndBufferContent", self::$MODULE_ID, "CDeliverySDEK", "onBufferContent");
UnRegisterModuleDependences("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "CDeliverySDEK", "pickupLoader");
UnRegisterModuleDependences("sale", "OnSaleComponentOrderOneStepProcess", self::$MODULE_ID, "CDeliverySDEK", "loadComponent");
UnRegisterModuleDependences("sale", "OnSaleOrderBeforeSaved", self::$MODULE_ID, "CDeliverySDEK", "noPVZNotConverted");
UnRegisterModuleDependences("sale", "OnSaleOrderBeforeSaved", self::$MODULE_ID, "CDeliverySDEK", "noPVZConverted");
UnRegisterModuleDependences("main", "OnAdminListDisplay", self::$MODULE_ID, "sdekOption", "displayActPrint");
UnRegisterModuleDependences("main", "OnBeforeProlog", self::$MODULE_ID, "sdekOption", "OnBeforePrologHandler");
UnRegisterModuleDependences("sale", "OnSaleComponentOrderOneStepComplete", self::$MODULE_ID, "sdekdriver", "orderCreate");
UnRegisterModuleDependences("sale", "OnSaleComponentOrderOneStepPaySystem", self::$MODULE_ID, "CDeliverySDEK", "checkNalD2P");
UnRegisterModuleDependences("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "CDeliverySDEK", "checkNalP2D");
UnRegisterModuleDependences("main", "OnBeforeProlog", self::$MODULE_ID, "CDeliverySDEK", "OnSaleComponentOrderShowAjaxAnswer");
RegisterModuleDependences("main", "OnEpilog", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onEpilog");
RegisterModuleDependences("main", "OnEndBufferContent", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "OnEndBufferContent");
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "prepareWidjetData",900);
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepProcess", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "loadComponent",900);
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepComplete", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onOrderCreate");
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepPaySystem", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "checkNalD2P");
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepDelivery", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "checkNalP2D");
RegisterModuleDependences("sale", "OnSaleComponentOrderShowAjaxAnswer", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "onComponentAjaxAnswer");
RegisterModuleDependences("main", "OnAdminListDisplay", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "displayActPrint");
if(option::get('noPVZnoOrder') == 'Y'){
RegisterModuleDependences("sale", "OnSaleComponentOrderOneStepProcess", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "noPVZOldTemplate");
if((\COption::GetOptionString("main","~sale_converted_15",'N') == 'Y')){
RegisterModuleDependences("sale", "OnSaleOrderBeforeSaved", self::$MODULE_ID, "Ipolh\\SDEK\\subscribeHandler", "noPVZNewTemplate");
}
}
}
}
}