Так что в последнее время я довольно широко работал с SugarCRM, и мне нужно иметь возможность отображать последнюю дату, когда контакт был отправлен по электронной почте, а также поиск в зависимости от того, как давно контакт был отправлен по электронной почте.
Я могу легко создать логику для получения последней даты электронной почты, но я не могу искать по ее значению.
Поэтому я заглянул в SearchFields.php и нашел следующий код, который, очевидно,получает адрес электронной почты контакта.
'email' =>
array (
'query_type' => 'default',
'operator' => 'subquery',
'subquery' => 'SELECT eabr.bean_id FROM email_addr_bean_rel eabr JOIN email_addresses ea ON (ea.id = eabr.email_address_id) WHERE eabr.deleted=0 AND ea.email_address LIKE',
'db_field' =>
array (
0 => 'id',
),
),
Используя эти данные, я решил создать новый массив со следующим кодом для получения последней даты электронной почты.Очевидно, что это нужно будет отсортировать или что-то еще, чтобы получить фактическую дату последней электронной почты, если контакт был отправлен по электронной почте несколько раз, но вы поняли.
'last_email_c' =>
array (
'query_type' => 'default',
'operator' => 'subquery',
'subquery' => 'SELECT e.date_sent FROM emails e WHERE e.parent_type = \'Contacts\' AND e.parent_id = \'{0}\'',
'db_field' =>
array (
0 => 'id',
),
),
Моя проблема в том, что я не знаю, что делатьВ этом новом подзапросе я зарегистрировался в listviewdefs и searchdefs и не могу найти ни одной из этих пользовательских полей поиска.
Чего мне не хватает?