%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/helpers/admin/blocks/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/lib/helpers/admin/blocks/presetbasket.php |
<?php
namespace Bitrix\Sale\Helpers\Admin\Blocks;
use Bitrix\Main;
use Bitrix\Sale;
use Bitrix\Sale\Order;
use Bitrix\Sale\Provider;
use Bitrix\Main\Config\Option;
use Bitrix\Highloadblock as HL;
use Bitrix\Main\SystemException;
use Bitrix\Main\Localization\Loc;
use Bitrix\Sale\DiscountCouponsManager;
use Bitrix\Sale\Helpers\Admin\OrderEdit;
Loc::loadMessages(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/admin_tool.php");
class PresetBasket extends OrderBasket
{
/**
* PresetBasket constructor.
*/
public function __construct(Order $order, $jsObjName = "", $idPrefix = "", $createProductBasement = true, $mode = self::EDIT_MODE)
{
parent::__construct($order, $jsObjName, $idPrefix, $createProductBasement, $mode);
$this->createProductBasement = false;
}
protected static function getDefaultVisibleColumns()
{
return array(
"IMAGE" => Loc::getMessage("SALE_ORDER_BASKET_SETTINGS_COL_IMAGE"),
"NAME" => Loc::getMessage("SALE_ORDER_BASKET_SETTINGS_COL_NAME"),
"PROPS" => Loc::getMessage("SALE_ORDER_BASKET_SETTINGS_COL_PROPS"),
"PRICE" => Loc::getMessage("SALE_ORDER_BASKET_SETTINGS_COL_PRICE"),
);
}
public function getScripts($defTails = false)
{
if(!static::$jsInited)
{
\Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/admin/order_basket.js");
\Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/admin/discount_preset_basket.js");
static::$jsInited = true;
}
$langPhrases = array("SALE_ORDER_BASKET_TURN", "SALE_ORDER_BASKET_EXPAND", "SALE_ORDER_BASKET_UP_RATIO",
"SALE_ORDER_BASKET_PROD_EDIT", "SALE_ORDER_BASKET_DOWN_RATIO", "SALE_ORDER_BASKET_PROD_COUNT",
"SALE_ORDER_BASKET_NO_PICTURE", "SALE_ORDER_BASKET_PROD_CREATE", "SALE_ORDER_BASKET_ROW_SETTINGS",
"SALE_ORDER_BASKET_PROD_MENU_EDIT", "SALE_ORDER_BASKET_PROD_MENU_DELETE", "SALE_ORDER_BASKET_BASE_CATALOG_PRICE",
"SALE_ORDER_BASKET_PROD_EDIT_ITEM_SAVE", "SALE_ORDER_BASKET_KG", "SALE_ORDER_BASKET_COUPON",
"SALE_ORDER_BASKET_COUPON_STATUS", "SALE_ORDER_BASKET_COUPON_APPLY", "SALE_ORDER_BASKET_COUPON_DELETE",
"SALE_ORDER_BASKET_POSITION_EXISTS", "SALE_ORDER_BASKET_ADD_COUPON_ERROR"
);
$result = '<script type="text/javascript">';
foreach($langPhrases as $phrase)
$result .= ' BX.message({'.$phrase.': "'.\CUtil::jsEscape(Loc::getMessage($phrase)).'"});';
if(!$defTails)
$data = static::prepareData();
$result .= '
BX.ready(function(){
var obParams = {
tableId: "'.$this->idPrefix.'sale_order_edit_product_table",
idPrefix: "'.$this->idPrefix.'",
visibleColumns: '.\CUtil::phpToJSObject($this->visibleColumns).',
objName: "'.$this->jsObjName.'",
createProductBasement: '.($this->createProductBasement ? 'true' : 'false').',
columnsCount: '.count($this->visibleColumns).',
createBasketBottom: false,
isShowXmlId: '.($this->isShowXmlId ? 'true' : 'false').',
mode: "edit",
unRemovableFields: [],
formatQuantity: "'.Option::get('sale', 'format_quantity', 'AUTO').'",
weightUnit: "'.$this->weightUnit.'"
};';
if(!$defTails)
{
$result .= '
obParams.productsOrder = '.\CUtil::phpToJSObject($data["ITEMS_ORDER"]).';
obParams.products = '.\CUtil::phpToJSObject($data["ITEMS"]).';
obParams.iblocksSkuParams = '.\CUtil::phpToJSObject($data["IBLOCKS_SKU_PARAMS"]).';
obParams.iblocksSkuParamsOrder = '.\CUtil::phpToJSObject($data["IBLOCKS_SKU_PARAMS_ORDER"]).';
obParams.productsOffersSkuParams = '.\CUtil::phpToJSObject($data["PRODUCTS_OFFERS_SKU"]).';';
}
$result .=
$this->jsObjName.'= new BX.Sale.Admin.PresetBasket(obParams);
BX.Sale.Admin.OrderEditPage.registerFieldsUpdaters( '.$this->jsObjName.'.getFieldsUpdaters() );
});';
$result .= $this->settingsDialog->getScripts();
$result .= '</script>';
return $result;
}
public function getEdit($defTails = false)
{
$result = '
<div class="adm-s-gray-title" style="padding-right: 2px;">
'.Loc::getMessage("SALE_ORDER_BASKET_COMPOSITION").'
<div class="adm-s-gray-title-btn-container">
<span
class="adm-btn adm-btn-green adm-btn-add"
onClick="'.$this->jsObjName.'.addProductSearch({lang: \''.LANGUAGE_ID.'\', siteId: \''.$this->order->getSiteId().'\', orderId: '.intval($this->order->getId()).'});"
>'.
Loc::getMessage("SALE_ORDER_BASKET_PRODUCT_ADD").
'</span>
</div>
<div class="clb"></div>
</div>';
$result .= '
<div class="adm-s-order-table-ddi">
<table class="adm-s-order-table-ddi-table" style="width: 100%;" id="'.$this->idPrefix.'sale_order_edit_product_table">
<thead style="text-align: left;">
<tr>
<td>
</td> ';
foreach($this->visibleColumns as $name)
$result .= "<td>".htmlspecialcharsbx($name)."</td>";
$result .= '</tr>
</thead>';
if($defTails)
{
$result .='
<tbody style="border: 1px solid rgb(221, 221, 221);" id="'.$this->idPrefix.'sale-adm-order-basket-loading-row">
<tr>
<td colspan="'.(count($this->visibleColumns)+1).'" style="padding: 20px;">
<img src="/bitrix/images/sale/admin-loader.gif"/>
</td>
</tr>
</tbody>';
}
$result .='
<tbody style="border: 1px solid rgb(221, 221, 221);'.($defTails ? ' display:none;' : '').'" id="'.$this->idPrefix.'sale-adm-order-edit-basket-empty-row">
<tr>
<td colspan="'.(count($this->visibleColumns)+1).'" style="padding: 20px;">
'.Loc::getMessage("SALE_ORDER_BASKET_EMPTY_ROW").'.
</td>
</tr>
</tbody>';
$result .= '
</table>
</div>
<div class="adm-s-gray-title" style="padding-right: 2px;">
<div class="adm-s-gray-title-btn-container">';
$result .= '<span
class="adm-btn adm-btn-green adm-btn-add"
onClick="'.$this->jsObjName.'.addProductSearch({lang: \''.LANGUAGE_ID.'\', siteId: \''.$this->order->getSiteId().'\', index: 1, orderId: '.intval($this->order->getId()).'});"
>'.
Loc::getMessage("SALE_ORDER_BASKET_PRODUCT_ADD").
'</span>
</div>
<div class="clb"></div>
</div>
<input type="hidden" name="BASKET[ID_PREFIX]" value="'.$this->idPrefix.'">
<div class="adm-s-result-container">';
$result .= '
</div>
<div class="clb"></div>';
return $result;
}
}