1. При оформлении сделки, есть пользовательское поле, в котором указывается размер скидки.
2. Скидка должна применяться ко всем товарам внутри сделки.(по ней должны работать стандартные отчеты)
3. Общая сумму без учета скидки тоже должна сохраниться.
Работаем с компонентом crm.product_row.list.
Выводим $arResult.
На сколько я понял вот этот код, выводит значения моих товаров:
Я сделал 2 глобальные переменные в crm.deal.edit и передал их в crm.product_row.list.
И собственно вопрос, как можно те самые глобальные переменные запихнуть внутрь [PRODUCT_ROWS].
Я пробовал писать как-то так: $arResult['PRODUCT_ROWS'][]['TEST'] = $Discount;
Но в этом случае он выводит:
Мне же нужно:
2. Скидка должна применяться ко всем товарам внутри сделки.(по ней должны работать стандартные отчеты)
3. Общая сумму без учета скидки тоже должна сохраниться.
Работаем с компонентом crm.product_row.list.
Выводим $arResult.
Код |
---|
Array ( [OWNER_TYPE] => D [OWNER_ID] => 31 [READ_ONLY] => [CURRENCY_ID] => RUB [CURRENCY_FORMAT] => # руб. [PRODUCT_ROWS] => Array ( [0] => Array ( [ID] => 75 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4260 [PRODUCT_NAME] => ла-ла-ла [PRODUCT_DESCRIPTION] => [PRICE] => 36600 [PRICE_ACCOUNT] => 36600.00 [QUANTITY] => 1 ) [1] => Array ( [ID] => 76 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4262 [PRODUCT_NAME] => ту-ту-ту [PRODUCT_DESCRIPTION] => [PRICE] => 11180 [PRICE_ACCOUNT] => 11180.00 [QUANTITY] => 1 ) ) [DISCOUNT] => 20 //передал через глоб переменную из crm.deal.edit (та самая скидка) [REAL_PRICE] => 111111 //передал через глоб переменную из crm.deal.edit (значение должно передавать сумму без учета скидки) |
Код |
---|
if(isset($arParams['PRODUCT_ROWS']) && is_array($arParams['PRODUCT_ROWS'])) { $arResult['PRODUCT_ROWS'] = $arParams['PRODUCT_ROWS']; foreach($arResult['PRODUCT_ROWS'] as &$arProdRow) { if(isset($arProdRow['PRODUCT_NAME'])) { continue; } $dbRes = CCrmProduct::GetList( array(), array('ID' => intval($arProdRow['PRODUCT_ID'])), array('NAME') ); $arProdRow['PRODUCT_NAME'] = is_array($arRes = $dbRes->Fetch()) ? $arRes['NAME'] : '['.strval($arProdRow['PRODUCT_ID']).']'; } } else { $arResult['PRODUCT_ROWS'] = $ownerID > 0 ? CCrmProductRow::LoadRows($ownerType, $ownerID) : array(); } |
И собственно вопрос, как можно те самые глобальные переменные запихнуть внутрь [PRODUCT_ROWS].
Я пробовал писать как-то так: $arResult['PRODUCT_ROWS'][]['TEST'] = $Discount;
Но в этом случае он выводит:
Код |
---|
Array ( [OWNER_TYPE] => D [OWNER_ID] => 31 [READ_ONLY] => [CURRENCY_ID] => RUB [CURRENCY_FORMAT] => # руб. [PRODUCT_ROWS] => Array ( [0] => Array ( [ID] => 75 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4260 [PRODUCT_NAME] => ла-ла-ла [PRODUCT_DESCRIPTION] => [PRICE] => 36600 [PRICE_ACCOUNT] => 36600.00 [QUANTITY] => 1 ) [1] => Array ( [ID] => 76 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4262 [PRODUCT_NAME] => ту-ту-ту [PRODUCT_DESCRIPTION] => [PRICE] => 11180 [PRICE_ACCOUNT] => 11180.00 [QUANTITY] => 1 ) [2] => Array ( [TEST] => 20 ) |
Мне же нужно:
Код |
---|
[PRODUCT_ROWS] => Array ( [0] => Array ( [ID] => 75 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4260 [PRODUCT_NAME] => ла-ла-ла [PRODUCT_DESCRIPTION] => [PRICE] => 36600 [PRICE_ACCOUNT] => 36600.00 [QUANTITY] => 1 [TEST] => 20 <-------------------------------- ) [1] => Array ( [ID] => 76 [OWNER_ID] => 31 [OWNER_TYPE] => D [PRODUCT_ID] => 4262 [PRODUCT_NAME] => ту-ту-ту [PRODUCT_DESCRIPTION] => [PRICE] => 11180 [PRICE_ACCOUNT] => 11180.00 [QUANTITY] => 1 [TEST] => 20 <------------------------------- |