Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace TbsSemi\DealReport\Handler;
- use Bitrix\Crm\DealTable;
- use Bitrix\Main\Config\Option;
- use Bitrix\Main\Loader;
- class Deal
- {
- public static function addDealRelations($arFields)
- {
- if (!Loader::includeModule('crm')) {
- return;
- }
- $currentDealId = $arFields['ID'];
- $relatedDealsField = Option::get('tbssemi.dealreport', 'DEAL_SETTINGS_FIELD_RELATED_DEALS');
- $dealFields = DealTable::getList(array(
- 'filter' => array(
- 'ID' => $currentDealId,
- ),
- 'select' => array('ID', $relatedDealsField),
- ))->fetch();
- if (empty($dealFields)) {
- return;
- }
- foreach ($dealFields[$relatedDealsField] as $relatedDeal) {
- $matches = array();
- preg_match(
- '/'. \CCrmOwnerTypeAbbr::Deal .'_(\d+)/i',
- $relatedDeal,
- $matches
- );
- $relatedDealId = $matches[1];
- if (empty($relatedDealId)) {
- continue;
- }
- $relatedDealFields = DealTable::getList(array(
- 'filter' => array(
- 'ID' => $relatedDealId,
- ),
- 'select' => array('ID', $relatedDealsField),
- ))->fetch();
- if (empty($relatedDealFields)) {
- continue;
- }
- $updateRelatedDeals = $relatedDealFields[$relatedDealsField];
- if (!is_array($updateRelatedDeals)) {
- $updateRelatedDeals = array();
- }
- $updateRelatedDeals[] = $currentDealId;
- DealTable::update($relatedDealId, array(
- $relatedDealsField => $updateRelatedDeals,
- ));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement