• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/session.php
  • Класс: BitrixImOpenLinesSession
  • Вызов: Session::updateCrmFlags
public function updateCrmFlags($fields)
{
	$result = false;
	$updateFields = [];

	if (
		(isset($fields['CRM_CREATE_LEAD']) && $fields['CRM_CREATE_LEAD'] == 'Y') ||
		(isset($fields['CRM_CREATE_COMPANY']) && $fields['CRM_CREATE_COMPANY'] == 'Y') ||
		(isset($fields['CRM_CREATE_CONTACT']) && $fields['CRM_CREATE_CONTACT'] == 'Y') ||
		(isset($fields['CRM_CREATE_DEAL']) && $fields['CRM_CREATE_DEAL'] == 'Y') ||
		(isset($fields['CRM_ACTIVITY_ID']) && !empty($fields['CRM_ACTIVITY_ID']))
	)
	{
		$updateFields['CRM'] = 'Y';
		$updateFields['CRM_CREATE'] = 'Y';
	}
	elseif((isset($fields['CRM_ACTIVITY_ID']) && !empty($fields['CRM_ACTIVITY_ID'])))
	{
		$updateFields['CRM'] = 'Y';
	}
	else
	{
		if (isset($fields['CRM_CREATE']))
		{
			if ($fields['CRM_CREATE'] == 'Y')
			{
				$updateFields['CRM_CREATE'] = 'Y';
				$updateFields['CRM'] = 'Y';
			}
			else
			{
				$updateFields['CRM_CREATE'] = 'N';

				if (isset($fields['CRM']))
				{
					if ($fields['CRM'] == 'Y')
					{
						$updateFields['CRM'] = 'Y';
					}
					else
					{
						$updateFields['CRM'] = 'N';
					}
				}
			}
		}
	}

	if (isset($fields['CRM_CREATE_LEAD']))
	{
		if ($fields['CRM_CREATE_LEAD'] == 'Y')
		{
			$updateFields['CRM_CREATE_LEAD'] = 'Y';
		}
		else
		{
			$updateFields['CRM_CREATE_LEAD'] = 'N';
		}
	}

	if (isset($fields['CRM_CREATE_COMPANY']))
	{
		if ($fields['CRM_CREATE_COMPANY'] == 'Y')
		{
			$updateFields['CRM_CREATE_COMPANY'] = 'Y';
		}
		else
		{
			$updateFields['CRM_CREATE_COMPANY'] = 'N';
		}
	}

	if (isset($fields['CRM_CREATE_CONTACT']))
	{
		if ($fields['CRM_CREATE_CONTACT'] == 'Y')
		{
			$updateFields['CRM_CREATE_CONTACT'] = 'Y';
		}
		else
		{
			$updateFields['CRM_CREATE_CONTACT'] = 'N';
		}
	}

	if (isset($fields['CRM_CREATE_DEAL']))
	{
		if ($fields['CRM_CREATE_DEAL'] == 'Y')
		{
			$updateFields['CRM_CREATE_DEAL'] = 'Y';
		}
		else
		{
			$updateFields['CRM_CREATE_DEAL'] = 'N';
		}
	}

	if (isset($fields['CRM_ACTIVITY_ID']))
	{
		$updateFields['CRM_ACTIVITY_ID'] = $fields['CRM_ACTIVITY_ID'];
	}

	if (!empty($updateFields))
	{
		foreach ($updateFields as $cell=>$field)
		{
			if ($this->getData($cell) == $field)
			{
				unset($updateFields[$cell]);
			}
		}
	}

	if (!empty($updateFields))
	{
		$updateFields['SKIP_CHANGE_STATUS'] = true;
		$result = $this->update($updateFields);
	}

	Debug::addSession($this,  __METHOD__, ['updateFields' => $updateFields, 'fields' => $fields]);

	return $result;
}