예제 #1
0
파일: Emails.php 프로젝트: kduqi/corebos
/** Function to get the emailids for the given ids form the request parameters
 *  It returns an array which contains the mailids and the parentidlists
 */
function get_to_emailids($module)
{
    global $adb, $current_user, $log;
    require_once 'include/Webservices/Query.php';
    //$idlists1 = "";
    $mailds = '';
    if (empty($_REQUEST['field_lists'])) {
        switch ($module) {
            case 'Accounts':
                $_REQUEST["field_lists"] = 9;
                break;
            case 'Contacts':
                $_REQUEST["field_lists"] = 80;
                break;
            case 'Vendors':
                $_REQUEST["field_lists"] = 292;
                break;
        }
    }
    $fieldids = explode(":", vtlib_purify($_REQUEST['field_lists']));
    if ($_REQUEST['idlist'] == 'all' || $_REQUEST['idlist'] == 'relatedListSelectAll') {
        $idlist = getSelectedRecords($_REQUEST, vtlib_purify($_REQUEST['pmodule']), vtlib_purify($_REQUEST['idlist']), vtlib_purify($_REQUEST['excludedRecords']));
    } else {
        $idlist = explode(":", str_replace("undefined", "", vtlib_purify($_REQUEST['idlist'])));
    }
    $entityids = array();
    foreach ($idlist as $key => $id) {
        $entityids[] = vtws_getWebserviceEntityId($module, $id);
    }
    $vtwsObject = VtigerWebserviceObject::fromName($adb, $module);
    $vtwsCRMObjectMeta = new VtigerCRMObjectMeta($vtwsObject, $current_user);
    $emailFields = $vtwsCRMObjectMeta->getEmailFields();
    foreach ($emailFields as $key => $fieldname) {
        $fieldid = $vtwsCRMObjectMeta->getFieldIdFromFieldName($fieldname);
        if (!in_array($fieldid, $fieldids)) {
            unset($emailFields[$key]);
        }
    }
    if (empty($emailFields)) {
        return false;
    }
    if ($module == 'Leads') {
        $query = 'SELECT firstname,lastname,' . implode(",", $emailFields) . ',vtiger_leaddetails.leadid as id
				  FROM vtiger_leaddetails
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_leaddetails.leadid
				  LEFT JOIN vtiger_leadscf ON vtiger_leaddetails.leadid = vtiger_leadscf.leadid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_leaddetails.leadid IN (' . generateQuestionMarks($idlist) . ')';
    } else {
        if ($module == 'Contacts') {
            $query = 'SELECT firstname,lastname,' . implode(",", $emailFields) . ',vtiger_contactdetails.contactid as id
				  FROM vtiger_contactdetails
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_contactdetails.contactid
				  LEFT JOIN vtiger_contactscf ON vtiger_contactdetails.contactid = vtiger_contactscf.contactid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_contactdetails.contactid IN (' . generateQuestionMarks($idlist) . ') AND vtiger_contactdetails.emailoptout=0';
        } else {
            if ($module == 'Accounts') {
                $query = 'SELECT vtiger_account.accountname, ' . implode(",", $emailFields) . ',vtiger_account.accountid as id FROM vtiger_account
				   INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_account.accountid
				   LEFT JOIN vtiger_accountscf ON vtiger_accountscf.accountid= vtiger_account.accountid
				   WHERE vtiger_crmentity.deleted=0 AND vtiger_account.accountid IN (' . generateQuestionMarks($idlist) . ') AND vtiger_account.emailoptout=0';
            } else {
                if ($module == 'Project') {
                    $query = 'SELECT projectname,' . implode(",", $emailFields) . ',vtiger_project.projectid as id
				  FROM vtiger_project
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_project.projectid
				  LEFT JOIN vtiger_projectcf ON vtiger_projectcf.projectid = vtiger_project.projectid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_project.projectid IN (' . generateQuestionMarks($idlist) . ')';
                } else {
                    if ($module == 'ProjectTask') {
                        $query = 'SELECT projecttaskname,' . implode(",", $emailFields) . ',vtiger_projecttask.projecttaskid as id
				  FROM vtiger_projecttask
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_projecttask.projecttaskid
				  LEFT JOIN vtiger_projecttaskcf ON vtiger_projecttaskcf.projecttaskid = vtiger_projecttask.projecttaskid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_projecttask.projecttaskid IN (' . generateQuestionMarks($idlist) . ')';
                    } else {
                        if ($module == 'Potentials') {
                            $query = 'SELECT potentialname,' . implode(",", $emailFields) . ',vtiger_potential.potentialid as id
				  FROM vtiger_potential
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_potential.potentialid
				  LEFT JOIN vtiger_potentialscf ON vtiger_potentialscf.potentialid = vtiger_potential.potentialid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_potential.potentialid IN (' . generateQuestionMarks($idlist) . ')';
                        } else {
                            if ($module == 'HelpDesk') {
                                $query = 'SELECT title,' . implode(",", $emailFields) . ',vtiger_troubletickets.ticketid as id
				  FROM vtiger_troubletickets
				  INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_troubletickets.ticketid
				  LEFT JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid
				  WHERE vtiger_crmentity.deleted=0 AND vtiger_troubletickets.ticketid IN (' . generateQuestionMarks($idlist) . ')';
                            } else {
                                // vendors
                                $query = 'SELECT vtiger_vendor.vendorname, ' . implode(",", $emailFields) . ',vtiger_vendor.vendorid as id FROM vtiger_vendor
				   INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_vendor.vendorid
				   LEFT JOIN vtiger_vendorcf ON vtiger_vendorcf.vendorid= vtiger_vendor.vendorid
				   WHERE vtiger_crmentity.deleted=0 AND vtiger_vendor.vendorid IN (' . generateQuestionMarks($idlist) . ')';
                            }
                        }
                    }
                }
            }
        }
    }
    $result = $adb->pquery($query, $idlist);
    if ($adb->num_rows($result) > 0) {
        while ($entityvalue = $adb->fetchByAssoc($result)) {
            $vtwsid = $entityvalue['id'];
            foreach ($emailFields as $i => $emailFieldName) {
                if ($entityvalue[$emailFieldName] != NULL || $entityvalue[$emailFieldName] != '') {
                    $idlists .= $vtwsid . '@' . $vtwsCRMObjectMeta->getFieldIdFromFieldName($emailFieldName) . '|';
                    if ($module == 'Leads' || $module == 'Contacts') {
                        $mailids .= $entityvalue['lastname'] . " " . $entityvalue['firstname'] . "<" . $entityvalue[$emailFieldName] . ">,";
                    } else {
                        if ($module == "Project") {
                            $mailids .= $entityvalue['projectname'] . "<" . $entityvalue[$emailFieldName] . ">,";
                        } else {
                            if ($module == "ProjectTask") {
                                $mailids .= $entityvalue['projecttaskname'] . "<" . $entityvalue[$emailFieldName] . ">,";
                            } else {
                                if ($module == "Potentials") {
                                    $mailids .= $entityvalue['potentialname'] . "<" . $entityvalue[$emailFieldName] . ">,";
                                } else {
                                    if ($module == "HelpDesk") {
                                        $mailids .= $entityvalue['title'] . "<" . $entityvalue[$emailFieldName] . ">,";
                                    } else {
                                        $mailids .= $entityvalue['accountname'] . "<" . $entityvalue[$emailFieldName] . ">,";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    $return_data = array('idlists' => $idlists, 'mailds' => $mailids);
    return $return_data;
}