Beispiel #1
0
 public static function companyList()
 {
     $companyList = DDeliveryUI::getCompanySubInfo();
     $companyNameList = array();
     global $APPLICATION;
     foreach ($companyList as $id => $company) {
         $companyNameList[$id] = $APPLICATION->ConvertCharsetArray($company['name'], 'utf-8', SITE_CHARSET);
     }
     $courier = array(45, 29, 23, 27, 28, 20, 35, 36, 30, 31, 22, 43, 17, 48, 46, 14, 41, 13, 44, 40, 26, 24, 49, 50, 51, 52, 53, 54, 55, 58, 61, 63, 66);
     $result = array(DDeliverySDK::TYPE_SELF => array(), DDeliverySDK::TYPE_COURIER => array());
     foreach ($courier as $companyId) {
         if (isset($companyNameList[$companyId])) {
             $result[DDeliverySDK::TYPE_COURIER][$companyId] = $companyNameList[$companyId];
         }
     }
     $self = array(4, 21, 11, 16, 42, 17, 37, 3, 1, 7, 39, 47, 41, 38, 40, 25);
     foreach ($self as $companyId) {
         if (isset($companyNameList[$companyId])) {
             $result[DDeliverySDK::TYPE_SELF][$companyId] = $companyNameList[$companyId];
         }
     }
     return $result;
 }
Beispiel #2
0
 static function Calculate($profile, $arConfig, $arOrder = false, $STEP = false, $TEMP = false)
 {
     global $APPLICATION;
     $itemList = array();
     if (!empty($arOrder) && !empty($arOrder['ITEMS'][0]['PRODUCT_ID']) && !empty($arOrder['ITEMS'][0]['QUANTITY']) && !empty($arOrder['ITEMS'][0]['PRICE']) && !empty($arOrder['ITEMS'][0]['NAME'])) {
         $itemList = $arOrder['ITEMS'];
     }
     if (substr($_SERVER['PHP_SELF'], 0, 14) == '/bitrix/admin/' && substr($_SERVER['PHP_SELF'], 0, 33) != '/bitrix/admin/sale_order_new.php' && substr($_SERVER['PHP_SELF'], 0, 42) != '/bitrix/admin/ddelivery.ddelivery_ajax.php') {
         return array("RESULT" => "ERROR", 'TEXT' => GetMessage('DDELIVERY_ADMIN_PAGE'));
     }
     if (substr($_SERVER['PHP_SELF'], 0, 33) == '/bitrix/admin/sale_order_new.php' || substr($_SERVER['PHP_SELF'], 0, 42) == '/bitrix/admin/ddelivery.ddelivery_ajax.php') {
         if (isset($_REQUEST['bx_order_id'])) {
             $cmsOrderId = $_REQUEST['bx_order_id'];
         } else {
             $cmsOrderId = $_REQUEST['ORDER_AJAX'] == 'Y' ? $_REQUEST['id'] : $_REQUEST['ID'];
         }
         $orderDeliveryTableData = OrderDeliveryTable::getList(array('filter' => array('ORDER_ID' => $cmsOrderId)))->fetch();
         if (empty($orderDeliveryTableData)) {
             return array("RESULT" => "ERROR", 'TEXT' => GetMessage('DDELIVERY_ERROR_ORDER'));
         }
         $property = unserialize($orderDeliveryTableData['PARAMS']);
         $ddOrderId = false;
         if (empty($property) || empty($property['DD_LOCAL_ID'])) {
             $property = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $cmsOrderId, 'CODE' => 'DDELIVERY_ID'))->Fetch();
             if (!$property) {
                 return array("RESULT" => "ERROR", 'TEXT' => GetMessage('DDELIVERY_ERROR_ORDER'));
             } else {
                 $ddOrderId = $property['VALUE'];
             }
         } else {
             $ddOrderId = $property['DD_LOCAL_ID'];
         }
         if (!$ddOrderId) {
             $APPLICATION->ThrowException(GetMessage('DDELIVERY_ADMIN_PAGE'));
             return array("RESULT" => "ERROR", 'TEXT' => GetMessage('DDELIVERY_ADMIN_PAGE'));
         }
         $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("ORDER_ID" => $cmsOrderId));
         $itemList = array();
         while ($arBasket = $dbBasketItems->Fetch()) {
             $itemList[] = $arBasket;
         }
     } else {
         $userId = CSaleBasket::GetBasketUserID();
         $cmsOrderId = "NULL";
         if (!empty($_SESSION['DIGITAL_DELIVERY']) && !empty($_SESSION['DIGITAL_DELIVERY']['ORDER_ID'])) {
             $ddOrderId = $_SESSION['DIGITAL_DELIVERY']['ORDER_ID'];
         }
     }
     if (!empty($ddOrderId)) {
         if (empty($itemList)) {
             // TODO
             $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("FUSER_ID" => $userId, "ORDER_ID" => $cmsOrderId), false, false, array('PRODUCT_ID', 'PRICE', 'QUANTITY', 'NAME'));
             while ($arBasket = $dbBasketItems->Fetch()) {
                 $itemList[] = $arBasket;
             }
             //END TODO
         }
         if (empty($itemList)) {
             return array("RESULT" => "ERROR", 'TEXT' => GetMessage('DDELIVERY_BASKET_EMPTY'));
         }
         $IntegratorShop = self::getShopObject($arConfig, $itemList, array());
         $IntegratorShop->useTaxRate = false;
         $ddeliveryUI = new \DDelivery\DDeliveryUI($IntegratorShop);
         $order = $ddeliveryUI->initOrder($ddOrderId);
         $order->getProductParams();
         $ddeliveryUI->saveFullOrder($order);
         if (!empty($order)) {
             $price = $ddeliveryUI->getClientPrice($order->getPoint(), $order);
             return array("RESULT" => "OK", 'VALUE' => (double) $price);
         } else {
             return array("RESULT" => "ERROR", 'TEXT' => 'Not Find order');
         }
     }
     return array("RESULT" => "ERROR", "ERROR" => GetMessage('DDELIVERY_EMPTY_POINT'));
 }
Beispiel #3
0
 public function DoInstall()
 {
     if ($GLOBALS['APPLICATION']->GetGroupRight('main') < 'W') {
         return;
     }
     if (is_array($this->NEED_MODULES) && !empty($this->NEED_MODULES)) {
         foreach ($this->NEED_MODULES as $module) {
             if (!IsModuleInstalled($module)) {
                 $this->ShowForm('ERROR', $this->GetMessage('DDELIVERY_NEED_MODULES', array('#MODULE#' => $module, '#NEED#' => $this->NEED_MODULES)));
                 return;
             }
             include $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $module . '/install/version.php';
             if (!CheckVersion($arModuleVersion['VERSION'], $this->NEED_MAIN_VERSION)) {
                 $this->ShowForm('ERROR', $this->GetMessage('DDELIVERY_NEED_MODULES', array('#MODULE#' => $module, '#NEED#' => $this->NEED_MAIN_VERSION)));
                 return;
             }
         }
     }
     if (!function_exists('curl_init')) {
         $this->ShowForm('ERROR', $this->GetMessage('DDELIVERY_NEED_MODULES_CURL', array('#MODULE#' => 'cURL')));
         return;
     }
     if (CheckVersion(SM_VERSION, $this->NEED_MAIN_VERSION)) {
         RegisterModuleDependences('sale', 'onSaleDeliveryHandlersBuildList', self::MODULE_ID, 'DDeliveryEvents', 'Init');
         RegisterModuleDependences('sale', 'OnOrderNewSendEmail', self::MODULE_ID, 'DDeliveryEvents', 'OnOrderNewSendEmail');
         RegisterModuleDependences('sale', 'OnSaleBeforeStatusOrder', self::MODULE_ID, 'DDeliveryEvents', 'OnSaleBeforeStatusOrder');
         if (!symlink(__DIR__ . "/components/ddelivery", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/ddelivery")) {
             CopyDirFiles(__DIR__ . "/components", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components", true, true);
         }
         RegisterModule(self::MODULE_ID);
         CModule::IncludeModule("sale");
         $ddeliveryConfig = CSaleDeliveryHandler::GetBySID('ddelivery')->Fetch();
         $ddeliveryConfig['ACTIVE'] = 'N';
         CSaleDeliveryHandler::Set('ddelivery', $ddeliveryConfig, false);
         include_once __DIR__ . '/../include.php';
         include_once __DIR__ . '/../DDeliveryEvents.php';
         include_once __DIR__ . '/../DDeliveryShop.php';
         // Добавляем свойства в бд
         CSaleOrderProps::add(array('PERSON_TYPE_ID' => '1', 'NAME' => 'DDelivery LocalID', 'TYPE' => 'TEXT', 'REQUIED' => 'N', 'DEFAULT_VALUE' => '', 'SORT' => '10000', 'USER_PROPS' => 'N', 'IS_LOCATION' => 'N', 'PROPS_GROUP_ID' => '2', 'IS_EMAIL' => 'N', 'IS_PROFILE_NAME' => 'N', 'IS_PAYER' => 'N', 'IS_LOCATION4TAX' => 'N', 'IS_ZIP' => 'N', 'CODE' => 'DDELIVERY_ID', 'IS_FILTERED' => 'Y', 'ACTIVE' => 'Y', 'UTIL' => 'Y', 'INPUT_FIELD_LOCATION' => '0', 'MULTIPLE' => 'N'));
         $IntegratorShop = new DDeliveryShop($ddeliveryConfig['CONFIG']['CONFIG'], array(), array());
         $ddeliveryUI = new DDeliveryUI($IntegratorShop, true);
         $ddeliveryUI->createTables();
         $this->ShowForm('OK', GetMessage('MOD_INST_OK'), true);
     } else {
         $this->ShowForm('ERROR', $this->GetMessage('DDELIVERY_NEED_RIGHT_VER', array('#NEED#' => $this->NEED_MAIN_VERSION)));
     }
 }