Пример #1
0
function bind_email($user_id, $mail_detail, $folder, $moduleName, $ossmailviewTab)
{
    $adb = PearDatabase::getInstance();
    if ($mail_detail['ossmailviewid'] == '') {
        $result_ossmailview = $adb->pquery('SELECT ossmailviewid FROM vtiger_ossmailview WHERE uid = ? AND rc_user = ?', [$mail_detail['message_id'], $user_id]);
        if ($adb->num_rows($result_ossmailview) == 0) {
            return FALSE;
        }
        $ossmailviewid = $adb->query_result($result_ossmailview, 0, 'ossmailviewid');
    } else {
        $ossmailviewid = $mail_detail['ossmailviewid'];
    }
    $crmids_fromaddress = OSSMailScanner_Record_Model::findEmail($mail_detail['fromaddress'], $moduleName, TRUE);
    $crmids_toaddress = OSSMailScanner_Record_Model::findEmail($mail_detail['toaddress'], $moduleName, TRUE);
    $crmids_ccaddress = OSSMailScanner_Record_Model::findEmail($mail_detail['ccaddress'], $moduleName, TRUE);
    $crmids_bccaddress = OSSMailScanner_Record_Model::findEmail($mail_detail['bccaddress'], $moduleName, TRUE);
    $crmids_to = OSSMailScanner_Record_Model::_merge_array($crmids_toaddress, $crmids_ccaddress);
    $crmids_to = OSSMailScanner_Record_Model::_merge_array($crmids_to, $crmids_bccaddress);
    $return_ids = [];
    if (count($crmids_fromaddress) != 0) {
        foreach ($crmids_fromaddress as $crmidsRow) {
            $adb->pquery('INSERT INTO vtiger_ossmailview_relation SET ossmailviewid=?, crmid=?, date=?;', [$ossmailviewid, $crmidsRow[0], $mail_detail['udate_formated']]);
            $return_ids[] = $crmidsRow[0];
        }
    }
    if (count($crmids_to) != 0) {
        foreach ($crmids_to as $crmidsRow) {
            $adb->pquery('INSERT INTO vtiger_ossmailview_relation SET ossmailviewid=?, crmid=?, date=?;', [$ossmailviewid, $crmidsRow[0], $mail_detail['udate_formated']]);
            $return_ids[] = $crmidsRow[0];
        }
    }
    return $return_ids;
}
Пример #2
0
/**
 * Mail Scanner bind email action 
 * @package YetiForce.MailScanner
 * @license licenses/License.html
 * @author Mariusz Krzaczkowski <*****@*****.**>
 */
function bind_email($user_id, $mailDetail, $folder, $moduleName)
{
    $adb = PearDatabase::getInstance();
    if ($mailDetail['ossmailviewid'] == '') {
        $result_ossmailview = $adb->pquery('SELECT ossmailviewid FROM vtiger_ossmailview WHERE uid = ? AND rc_user = ?', [$mailDetail['message_id'], $user_id]);
        if ($adb->num_rows($result_ossmailview) == 0) {
            return FALSE;
        }
        $mailViewId = $adb->query_result($result_ossmailview, 0, 'ossmailviewid');
    } else {
        $mailViewId = $mailDetail['ossmailviewid'];
    }
    $crmIds = OSSMailScanner_Record_Model::findEmail($mailDetail['fromaddress'], $moduleName, TRUE);
    $crmidsToaddress = OSSMailScanner_Record_Model::findEmail($mailDetail['toaddress'], $moduleName, TRUE);
    $crmidsCcaddress = OSSMailScanner_Record_Model::findEmail($mailDetail['ccaddress'], $moduleName, TRUE);
    $crmidsBccaddress = OSSMailScanner_Record_Model::findEmail($mailDetail['bccaddress'], $moduleName, TRUE);
    $crmidsReplyToaddress = OSSMailScanner_Record_Model::findEmail($mailDetail['reply_toaddress'], $moduleName, TRUE);
    $crmIds = OSSMailScanner_Record_Model::_merge_array($crmIds, $crmidsToaddress);
    $crmIds = OSSMailScanner_Record_Model::_merge_array($crmIds, $crmidsCcaddress);
    $crmIds = OSSMailScanner_Record_Model::_merge_array($crmIds, $crmidsBccaddress);
    $crmIds = OSSMailScanner_Record_Model::_merge_array($crmIds, $crmidsReplyToaddress);
    $returnIds = [];
    if (count($crmIds) != 0) {
        foreach ($crmIds as $crmRow) {
            $resultRelation = $adb->pquery('SELECT * FROM vtiger_ossmailview_relation WHERE ossmailviewid=? AND crmid=?', [$mailViewId, $crmRow]);
            if ($resultRelation->rowCount() > 0) {
                continue;
            }
            $adb->pquery('INSERT INTO vtiger_ossmailview_relation SET ossmailviewid=?, crmid=?, date=?;', [$mailViewId, $crmRow, $mailDetail['udate_formated']]);
            $returnIds[] = $crmRow;
        }
    }
    return $returnIds;
}