示例#1
0
 /**
  * @return string
  * @throws Exception
  * @internal
  */
 public static function createNoDeliveryServiceAgent()
 {
     $id = \Bitrix\Sale\Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId();
     if ($id <= 0) {
         Bitrix\Main\Localization\Loc::loadLanguageFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/sale/lib/delivery/helper.php', 'ru');
         $fields = array();
         $fields["NAME"] = \Bitrix\Main\Localization\Loc::getMessage('SALE_DELIVERY_HELPER_NO_DELIVERY_SERVICE');
         $fields["CLASS_NAME"] = '\\Bitrix\\Sale\\Delivery\\Services\\EmptyDeliveryService';
         $fields["CURRENCY"] = 'RUB';
         $fields["ACTIVE"] = "Y";
         $fields["CONFIG"] = array('MAIN' => array('CURRENCY' => 'RUB', 'PRICE' => 0, 'PERIOD' => array('FROM' => 0, 'TO' => 0, 'TYPE' => 'D')));
         $res = \Bitrix\Sale\Delivery\Services\Table::add($fields);
         $id = $res->getId();
         $fields = array('SORT' => 100, 'DELIVERY_ID' => $id, 'PARAMS' => array('PUBLIC_SHOW' => 'N'));
         $rstrPM = new \Bitrix\Sale\Delivery\Restrictions\ByPublicMode();
         $rstrPM->save($fields);
     }
     return "";
 }
示例#2
0
     $result['DATA'] = $message;
     break;
 case 17:
     $id = \Bitrix\Sale\Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId();
     if ($id <= 0) {
         $fields["NAME"] = Loc::getMessage('SALE_CONVERTER_EMPTY_DELIVERY_SERVICE');
         $fields["CLASS_NAME"] = '\\Bitrix\\Sale\\Delivery\\Services\\EmptyDeliveryService';
         $fields["PARENT_ID"] = 0;
         $fields["CURRENCY"] = 'RUB';
         $fields["ACTIVE"] = "Y";
         $fields["CONFIG"] = array('MAIN' => array('CURRENCY' => 'RUB', 'PRICE' => 0, 'PERIOD' => array('FROM' => 0, 'TO' => 0, 'TYPE' => 'D')));
         $fields["SORT"] = 100;
         $res = \Bitrix\Sale\Delivery\Services\Table::add($fields);
         $id = $res->getId();
         $fields = array('SORT' => 100, 'DELIVERY_ID' => $id, 'PARAMS' => array('PUBLIC_SHOW' => 'N'));
         $rstrPM = new \Bitrix\Sale\Delivery\Restrictions\ByPublicMode();
         $rstrPM->save($fields);
     }
     $start = microtime(true);
     $res = null;
     $orderDeliveryId = 'o.DELIVERY_ID';
     if ($DB->type == "MYSQL") {
         $res = $DB->Query('SELECT id FROM b_sale_order_delivery LIMIT 1', false);
     } elseif ($DB->type == "MSSQL") {
         $res = $DB->Query('SELECT TOP(1) id FROM b_sale_order_delivery', false);
     } elseif ($DB->type == "ORACLE") {
         $res = $DB->Query('SELECT id FROM b_sale_order_delivery WHERE ROWNUM=1', false);
         $orderDeliveryId = 'TO_NUMBER(' . $orderDeliveryId . ')';
     }
     if ($res && !$res->Fetch()) {
         if (!$DB->Query("INSERT INTO b_sale_order_delivery (ORDER_ID, BASE_PRICE_DELIVERY, PRICE_DELIVERY, ALLOW_DELIVERY, DATE_ALLOW_DELIVERY, EMP_ALLOW_DELIVERY_ID, DEDUCTED, DATE_DEDUCTED, EMP_DEDUCTED_ID, REASON_UNDO_DEDUCTED, RESERVED, DELIVERY_ID, DELIVERY_DOC_NUM, DELIVERY_DOC_DATE, TRACKING_NUMBER, CANCELED, DATE_CANCELED, EMP_CANCELED_ID, REASON_CANCELED, MARKED, DATE_MARKED, EMP_MARKED_ID, DATE_INSERT, CURRENCY, SYSTEM, RESPONSIBLE_ID, STATUS_ID, DELIVERY_NAME)\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\to.ID, o.PRICE_DELIVERY, o.PRICE_DELIVERY, o.ALLOW_DELIVERY, o.DATE_ALLOW_DELIVERY, o.EMP_ALLOW_DELIVERY_ID, o.DEDUCTED, o.DATE_DEDUCTED, o.EMP_DEDUCTED_ID, o.REASON_UNDO_DEDUCTED, o.RESERVED, CASE WHEN o.DELIVERY_ID IS NULL THEN " . $id . " ELSE " . $orderDeliveryId . " END, o.DELIVERY_DOC_NUM, o.DELIVERY_DOC_DATE, o.TRACKING_NUMBER, o.CANCELED, o.DATE_CANCELED, o.EMP_CANCELED_ID, o.REASON_CANCELED, o.MARKED, o.DATE_MARKED, o.EMP_MARKED_ID, o.DATE_INSERT, o.CURRENCY, 'N', o.RESPONSIBLE_ID, CASE o.DEDUCTED WHEN 'Y' THEN 'DF' ELSE 'DN' END, d.NAME\n\t\t\t\t\t\tFROM b_sale_order o\n\t\t\t\t\t\tLEFT JOIN b_sale_delivery_srv d ON d.ID = (CASE WHEN o.DELIVERY_ID IS NULL THEN " . $id . " ELSE " . $orderDeliveryId . " END)", true)) {