public function initForGlobalSearchByType($type, $value, $operator = 's') { $fieldList = $this->meta->getFieldNameListByType($type); if ($this->conditionInstanceCount <= 0) { $this->startGroup(''); } else { $this->startGroup(self::$AND); } $nameFieldList = explode(',', $this->getModuleNameFields($this->module)); foreach ($nameFieldList as $nameList) { $field = $this->meta->getFieldByColumnName($nameList); $this->fields[] = $field->getFieldName(); } foreach ($fieldList as $index => $field) { $fieldName = $this->meta->getFieldByColumnName($field); $this->fields[] = $fieldName->getFieldName(); if ($index > 0) { $this->addConditionGlue(self::$OR); } $this->addCondition($fieldName->getFieldName(), $value, $operator); } $this->endGroup(); if (!in_array('id', $this->fields)) { $this->fields[] = 'id'; } }
public function retrieveMeta() { parent::retrieveMeta(); $this->retrieveMetaForTables(); }
/** 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; }
require_once 'modules/Leads/ConvertLeadUI.php'; $uiinfo = new ConvertLeadUI($_REQUEST['record'], $current_user); if (isPermitted("Leads", "EditView", $_REQUEST['record']) == 'yes' && isPermitted("Leads", "ConvertLead") == 'yes' && (isPermitted("Accounts", "EditView") == 'yes' || isPermitted("Contacts", "EditView") == 'yes') && (vtlib_isModuleActive('Contacts') || vtlib_isModuleActive('Accounts')) && !isLeadConverted($focus->id) && ($uiinfo->getCompany() != null || $uiinfo->isModuleActive('Contacts') == true)) { $smarty->assign("CONVERTLEAD", "permitted"); } $category = getParentTab(); $smarty->assign("CATEGORY", $category); if (isPermitted("Leads", "Delete", $_REQUEST['record']) == 'yes') { $smarty->assign("DELETE", "permitted"); } if (isPermitted("Emails", "EditView", '') == 'yes') { //Added to pass the parents list as hidden for Emails -- 09-11-2005 $parent_email = getEmailParentsList('Leads', $_REQUEST['record'], $focus); $smarty->assign("HIDDEN_PARENTS_LIST", $parent_email); $vtwsObject = VtigerWebserviceObject::fromName($adb, $currentModule); $vtwsCRMObjectMeta = new VtigerCRMObjectMeta($vtwsObject, $current_user); $emailFields = $vtwsCRMObjectMeta->getEmailFields(); $smarty->assign("SENDMAILBUTTON", "permitted"); $emails = array(); foreach ($emailFields as $key => $value) { $emails[] = $value; } $smarty->assign("EMAILS", $emails); $cond = "LTrim('%s') !=''"; $condition = array(); foreach ($emails as $key => $value) { $condition[] = sprintf($cond, $value); } $condition_str = implode("||", $condition); $js = "if(" . $condition_str . "){fnvshobj(this,'sendmail_cont');sendmail('" . $currentModule . "'," . $_REQUEST['record'] . ");}else{OpenCompose('','create');}"; $smarty->assign('JS', $js);
public function addUserSearchConditions($input) { global $log, $default_charset; if ($input['searchtype'] == 'advance') { $json = new Zend_Json(); $advft_criteria = $_REQUEST['advft_criteria']; if (!empty($advft_criteria)) { $advft_criteria = $json->decode($advft_criteria); } $advft_criteria_groups = $_REQUEST['advft_criteria_groups']; if (!empty($advft_criteria_groups)) { $advft_criteria_groups = $json->decode($advft_criteria_groups); } if (empty($advft_criteria) || count($advft_criteria) <= 0) { return; } $advfilterlist = getAdvancedSearchCriteriaList($advft_criteria, $advft_criteria_groups); if (empty($advfilterlist) || count($advfilterlist) <= 0) { return; } if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } foreach ($advfilterlist as $groupindex => $groupcolumns) { $filtercolumns = $groupcolumns['columns']; if (count($filtercolumns) > 0) { $this->startGroup(''); foreach ($filtercolumns as $index => $filter) { $name = explode(':', $filter['columnname']); if (empty($name[2]) && $name[1] == 'crmid' && $name[0] == 'vtiger_crmentity') { $name = $this->getSQLColumn('id'); } else { $name = $name[2]; } $this->addCondition($name, $filter['value'], $filter['comparator']); $columncondition = $filter['column_condition']; if (!empty($columncondition)) { $this->addConditionGlue($columncondition); } } $this->endGroup(); $groupConditionGlue = $groupcolumns['condition']; if (!empty($groupConditionGlue)) { $this->addConditionGlue($groupConditionGlue); } } } $this->endGroup(); } elseif ($input['type'] == 'dbrd') { if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } $allConditionsList = $this->getDashBoardConditionList(); $conditionList = $allConditionsList['conditions']; $relatedConditionList = $allConditionsList['relatedConditions']; $noOfConditions = count($conditionList); $noOfRelatedConditions = count($relatedConditionList); foreach ($conditionList as $index => $conditionInfo) { $this->addCondition($conditionInfo['fieldname'], $conditionInfo['value'], $conditionInfo['operator']); if ($index < $noOfConditions - 1 || $noOfRelatedConditions > 0) { $this->addConditionGlue(self::$AND); } } foreach ($relatedConditionList as $index => $conditionInfo) { $this->addRelatedModuleCondition($conditionInfo['relatedModule'], $conditionInfo['conditionModule'], $conditionInfo['finalValue'], $conditionInfo['SQLOperator']); if ($index < $noOfRelatedConditions - 1) { $this->addConditionGlue(self::$AND); } } $this->endGroup(); } else { if (isset($input['search_field']) && $input['search_field'] != "") { $fieldName = vtlib_purify($input['search_field']); } else { return; } if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } $moduleFields = $this->meta->getModuleFields(); $field = $moduleFields[$fieldName]; $type = $field->getFieldDataType(); if (isset($input['search_text']) && $input['search_text'] != "") { // search other characters like "|, ?, ?" by jagi $value = $input['search_text']; $stringConvert = function_exists(iconv) ? @iconv("UTF-8", $default_charset, $value) : $value; if (!$this->isStringType($type)) { $value = trim($stringConvert); } if ($type == 'picklist') { global $mod_strings; // Get all the keys for the for the Picklist value $mod_keys = array_keys($mod_strings, $value); if (sizeof($mod_keys) >= 1) { // Iterate on the keys, to get the first key which doesn't start with LBL_ (assuming it is not used in PickList) foreach ($mod_keys as $mod_idx => $mod_key) { $stridx = strpos($mod_key, 'LBL_'); // Use strict type comparision, refer strpos for more details if ($stridx !== 0) { $value = $mod_key; break; } } } } if ($type == 'currency') { // Some of the currency fields like Unit Price, Total, Sub-total etc of Inventory modules, do not need currency conversion if ($field->getUIType() == '72') { $value = CurrencyField::convertToDBFormat($value, null, true); } else { $currencyField = new CurrencyField($value); if ($this->getModule() == 'Potentials' && $fieldName == 'amount') { $currencyField->setNumberofDecimals(2); } $value = $currencyField->getDBInsertedValue(); } } } if (!empty($input['operator'])) { $operator = $input['operator']; } elseif (trim(strtolower($value)) == 'null') { $operator = 'e'; } else { if (!$this->isNumericType($type) && !$this->isDateType($type)) { $operator = 'c'; } else { $operator = 'h'; } } $this->addCondition($fieldName, $value, $operator); $this->endGroup(); } }
public function addUserSearchConditions($input) { global $log, $default_charset; if ($input['searchtype'] == 'advance') { if (empty($input['search_cnt'])) { return; } $noOfConditions = vtlib_purify($input['search_cnt']); if ($input['matchtype'] == 'all') { $matchType = self::$AND; } else { $matchType = self::$OR; } if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } for ($i = 0; $i < $noOfConditions; $i++) { $fieldInfo = 'Fields' . $i; $condition = 'Condition' . $i; $value = 'Srch_value' . $i; list($fieldName, $typeOfData) = split("::::", str_replace('\'', '', stripslashes($input[$fieldInfo]))); $moduleFields = $this->meta->getModuleFields(); $field = $moduleFields[$fieldName]; $type = $field->getFieldDataType(); $operator = str_replace('\'', '', stripslashes($input[$condition])); $searchValue = $input[$value]; $searchValue = function_exists(iconv) ? @iconv("UTF-8", $default_charset, $searchValue) : $searchValue; if ($type == 'picklist') { global $mod_strings; // Get all the keys for the for the Picklist value $mod_keys = array_keys($mod_strings, $searchValue); if (sizeof($mod_keys) >= 1) { // Iterate on the keys, to get the first key which doesn't start with LBL_ (assuming it is not used in PickList) foreach ($mod_keys as $mod_idx => $mod_key) { $stridx = strpos($mod_key, 'LBL_'); // Use strict type comparision, refer strpos for more details if ($stridx !== 0) { $searchValue = $mod_key; break; } } } } $this->addCondition($fieldName, $searchValue, $operator); if ($i + 1 < $noOfConditions) { $this->addConditionGlue($matchType); } } $this->endGroup(); } elseif ($input['type'] == 'dbrd') { if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } $allConditionsList = $this->getDashBoardConditionList(); $conditionList = $allConditionsList['conditions']; $relatedConditionList = $allConditionsList['relatedConditions']; $noOfConditions = count($conditionList); $noOfRelatedConditions = count($relatedConditionList); foreach ($conditionList as $index => $conditionInfo) { $this->addCondition($conditionInfo['fieldname'], $conditionInfo['value'], $conditionInfo['operator']); if ($index < $noOfConditions - 1 || $noOfRelatedConditions > 0) { $this->addConditionGlue(self::$AND); } } foreach ($relatedConditionList as $index => $conditionInfo) { $this->addRelatedModuleCondition($conditionInfo['relatedModule'], $conditionInfo['conditionModule'], $conditionInfo['finalValue'], $conditionInfo['SQLOperator']); if ($index < $noOfRelatedConditions - 1) { $this->addConditionGlue(self::$AND); } } $this->endGroup(); } else { if (isset($input['search_field']) && $input['search_field'] != "") { $fieldName = vtlib_purify($input['search_field']); } else { return; } if ($this->conditionInstanceCount > 0) { $this->startGroup(self::$AND); } else { $this->startGroup(''); } $moduleFields = $this->meta->getModuleFields(); $field = $moduleFields[$fieldName]; $type = $field->getFieldDataType(); if (isset($input['search_text']) && $input['search_text'] != "") { // search other characters like "|, ?, ?" by jagi $value = $input['search_text']; $stringConvert = function_exists(iconv) ? @iconv("UTF-8", $default_charset, $value) : $value; if (!$this->isStringType($type)) { $value = trim($stringConvert); } if ($type == 'picklist') { global $mod_strings; // Get all the keys for the for the Picklist value $mod_keys = array_keys($mod_strings, $value); if (sizeof($mod_keys) >= 1) { // Iterate on the keys, to get the first key which doesn't start with LBL_ (assuming it is not used in PickList) foreach ($mod_keys as $mod_idx => $mod_key) { $stridx = strpos($mod_key, 'LBL_'); // Use strict type comparision, refer strpos for more details if ($stridx !== 0) { $value = $mod_key; break; } } } } } if (!empty($input['operator'])) { $operator = $input['operator']; } elseif (trim(strtolower($value)) == 'null') { $operator = 'e'; } else { if (!$this->isNumericType($type) && !$this->isDateType($type)) { $operator = 'c'; } else { $operator = 'h'; } } $this->addCondition($fieldName, $value, $operator); $this->endGroup(); } }