Skip to Content

SugarCRM. Конвертация Lead. Тонкости.

 

Передо мной была пооставлена задача конвертации стандартных полей Lead в custom поля Account.

Во-первых, эти самые custom поля нужно добавить в форму конвертации Lead. Для этого копируем файл ~/modules/Leads/metadata/convertdefs.php в ~/custom/modules/Leads/metadata/convertdefs.php (для сооблюдения Upgrade Safe), в который добавляем нужные поля. Находим массив $viewdefs['Accounts']['ConvertLead'], в нём находим 'panels', и в 'LNK_NEW_ACCOUNT' вписываем наши элементы: 

// В этот массив добавляем поля
$viewdefs['Accounts']['ConvertLead'] = array(
    SOME_DATA_DEFINED_HERE,
// Находим этот блок
    'panels' =>array (
        'LNK_NEW_ACCOUNT' => array (
            array (
                'name',
                'phone_office',
            ),
// А вот и нужные мне поля, о которых идёт речь
            array(
            	'first_name_c',
            	'last_name_c',
            ),
// Дальше по умолчанию
            array (
                'website',
            ),
            array(
                'description'
            ),
        )
    ),
);

Во-вторых, нужно импортировать в них нужные значения. SugarCRM по умолчанию позволяет импорт значений только в одноимённые поля, т.е. поле  'first_name' из Lead может быть импортировано только в поле  'first_name' другого модуля. Но, в моём случае, в модуле Accounts нет по умолчанию своих полей 'first_name' и 'last_name', т.е. мне пришлось их создавать через Студию, в результате чего я получил поля 'first_name_c' и 'last_name_c', которые мы и вписали в шаблон. Для импорта правильных значений в эти поля копируем ~/modules/Leads/views/view.convertlead.php в ~/custom/modules/Leads/views/view.convertlead.php, в методе display находим цикл, в котором перебираются поля, и вписываем нужный код: 

// находим этот цикл
foreach($focus->field_defs as $field => $def)
            {
            	if(isset($vdef[$ev->view]['copyData']) && $vdef[$ev->view]['copyData'])
                {
	                if ($module == "Accounts" && $field == 'name')
	                {
                            $focus->name = $this->focus->account_name;
	                }
	                // Здесь я присвоил моим полям нужные значения
	                else if ($module == "Accounts" && $field == 'first_name_c')
	                {
	                    $focus->first_name_c = $this->focus->first_name;
	                } 
	                else if ($module == "Accounts" && $field == 'last_name_c')
	                {
	                    $focus->last_name_c = $this->focus->last_name;
	                } 
	                // Дальше по умолчанию
	                else if ($module == "Opportunities" && $field == 'amount')
	                {
	                    $focus->amount = unformat_number($this->focus->opportunity_amount);
	                }
                        // Там такого достаточно много, не буду сюда весь код писать :) 
                 	
                }
            }

Вот, сообственно, и всё. В итоге мы получили отображение нужных полей с нужными значениями в форме конвертации Lead. 

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Доступны HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
докажи, что не робот
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.