Получать электронные письма сотрудников SugarCRM

Я пишу некоторый код для sugarCRM, и я хотел бы уведомить сотрудников по электронной почте. Я использую активную модель записи, чтобы получить сотрудников, но их электронные письма нигде не найти.

$employees = BeanFactory::getBean('Employees')->get_full_list();

Как получить письма активных сотрудников через этот интерфейс? Мне нужно вынуть их из записей и добавить в электронное письмо, которое я отправляю.

3 ответа

Решение

Чтобы сохранить адрес электронной почты пользователя, используйте это:

$sea = new SugarEmailAddress;
$sea->addAddress($bean->email1, true);
$sea->save($newUser->id, "Users");

Чтобы получить основной адрес электронной почты, используйте это:

$primary_email=$user->emailAddress->getPrimaryAddress($user);

Надеюсь, что это поможет вам...:)

Проверьте это больше: SugarCRM Developer

Я также столкнулся с этой ситуацией, но я нашел решение ниже. Надеюсь, это работает для вас. Ура!!

<?php

$userId=array('2132131312323232','323232323232323'); //array of users id's
foreach($userId as $key => $val) {
 $email_query = "select E.email_address from email_addr_bean_rel EB inner join email_addresses E on EB.email_address_id = E.id WHERE EB.bean_id='".$val."' and E.deleted = 0"; 
 // Your implementation
}
?> 

Ссылаясь на sAcH и эту документацию схемы, я написал запрос ниже. Вероятно, его можно много почистить, но он работает, и это то, что меня волнует прямо сейчас.

Он возвращает основной адрес электронной почты всех активных, не удаленных сотрудников, эффективно создавая список адресов электронной почты для ваших активных пользователей:

select e.email_address
from email_addr_bean_rel eb
    inner join email_addresses e
    on eb.email_address_id = e.id
where eb.bean_id in
    (select id
        from users
        where deleted = 0 and employee_status = 'Active')
    and e.deleted = 0 and eb.primary_address = 1
    and eb.deleted = 0 and eb.bean_module = 'Users'

Важно отметить, что есть два поля, в которых пользователь может быть активен: status и employee_status. Это проверяет последнее; просто обратите внимание, что есть два поля статуса, а не одно!

Другие вопросы по тегам