====== Truoble Tickets for Leads ======
/include/utils/EditViewUtils.php
Search:
editview_label[] = array($app_strings['COMBO_CONTACTS'],
Add "Leads" to List
Search:
$parent_module = getSalesEntityType($value);
if($parent_module == "Contacts")
Replace with:
$parent_module = getSalesEntityType($value);
if($parent_module == "Contacts" || $parent_module == "Leads")
Search:
$contact_selected = "selected";
Replace with:
if($parent_module == "Contacts") {
$contact_selected = "selected";
} else {
$leads_selected = "selected";
}
Search:
$editview_label[] = array($contact_selected,
$account_selected
);
Repalce with:
$editview_label[] = array($contact_selected,
$account_selected,
$leads_selected
);
Search:
$editview_label[] = array("Contacts","Accounts");
Replace with:
$editview_label[] = array("Contacts","Accounts", "Leads");
**include/utils/DetailViewUtils.php**
Search:
if ($parent_module == "Contacts") {
$label_fld[] = $app_strings['LBL_CONTACT_NAME'];
$displayValueArray = getEntityName($parent_module, $value);
if (!empty($displayValueArray)) {
foreach ($displayValueArray as $key => $field_value) {
$contact_name = $field_value;
}
} else {
$contact_name='';
}
$label_fld[] = '' . $contact_name . '';
} elseif ($parent_module == "Accounts") {
$label_fld[] = $app_strings['LBL_ACCOUNT_NAME'];
$sql = "select * from vtiger_account where accountid=?";
$result = $adb->pquery($sql, array($value));
$account_name = $adb->query_result($result, 0, "accountname");
$label_fld[] = '' . $account_name . '';
} else {
$value = '';
$label_fld[] = getTranslatedString($fieldlabel, $module);
$label_fld[] = $value;
}
Replace with:
if ($parent_module == "Contacts") {
$label_fld[] = $app_strings['LBL_CONTACT_NAME'];
$displayValueArray = getEntityName($parent_module, $value);
if (!empty($displayValueArray)) {
foreach ($displayValueArray as $key => $field_value) {
$contact_name = $field_value;
}
} else {
$contact_name='';
}
$label_fld[] = '' . $contact_name . '';
} elseif ($parent_module == "Leads") {
$label_fld[] = $app_strings['LBL_LEAD_NAME'];
$displayValueArray = getEntityName($parent_module, $value);
if (!empty($displayValueArray)) {
foreach ($displayValueArray as $key => $field_value) {
$lead_name = $field_value;
}
} else {
$lead_name='';
}
$label_fld[] = '' . $lead_name . '';
} elseif ($parent_module == "Accounts") {
$label_fld[] = $app_strings['LBL_ACCOUNT_NAME'];
$sql = "select * from vtiger_account where accountid=?";
$result = $adb->pquery($sql, array($value));
$account_name = $adb->query_result($result, 0, "accountname");
$label_fld[] = '' . $account_name . '';
} else {
$value = '';
$label_fld[] = getTranslatedString($fieldlabel, $module);
$label_fld[] = $value;
}
Add Relation to DB:
INSERT INTO `vtiger_relatedlists` (`relation_id`, `tabid`, `related_tabid`, `name`, `sequence`, `label`, `presence`, `actions`) VALUES(137, 7, 13, 'get_tickets', 1, 'HelpDesk', 0, 'add');
ID Beachten!
modules/Leads/Leads.php
add:
/**
* Function to get Contact related Tickets.
* @param integer $id - contactid
* returns related Ticket records in array format
*/
function get_tickets($id, $cur_tab_id, $rel_tab_id, $actions=false) {
global $log, $singlepane_view,$currentModule,$current_user;
$log->debug("Entering get_tickets(".$id.") method ...");
$this_module = $currentModule;
$related_module = vtlib_getModuleNameById($rel_tab_id);
require_once("modules/$related_module/$related_module.php");
$other = new $related_module();
vtlib_setup_modulevars($related_module, $other);
$singular_modname = vtlib_toSingular($related_module);
$parenttab = getParentTab();
if($singlepane_view == 'true')
$returnset = '&return_module='.$this_module.'&return_action=DetailView&return_id='.$id;
else
$returnset = '&return_module='.$this_module.'&return_action=CallRelatedList&return_id='.$id;
$button = '';
if($actions && getFieldVisibilityPermission($related_module, $current_user->id, 'parent_id', 'readwrite') == '0') {
if(is_string($actions)) $actions = explode(',', strtoupper($actions));
if(in_array('SELECT', $actions) && isPermitted($related_module,4, '') == 'yes') {
$button .= " ";
}
if(in_array('ADD', $actions) && isPermitted($related_module,1, '') == 'yes') {
$button .= " ";
}
}
$userNameSql = getSqlForNameInDisplayFormat(array('first_name'=>
'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
$query = "select case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name,
vtiger_crmentity.crmid, vtiger_troubletickets.title, vtiger_leaddetails.leadid, vtiger_troubletickets.parent_id,
vtiger_leaddetails.firstname, vtiger_leaddetails.lastname, vtiger_troubletickets.status, vtiger_troubletickets.priority,
vtiger_crmentity.smownerid, vtiger_troubletickets.ticket_no
from vtiger_troubletickets inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_troubletickets.ticketid
left join vtiger_leaddetails on vtiger_leaddetails.leadid=vtiger_troubletickets.parent_id
left join vtiger_users on vtiger_users.id=vtiger_crmentity.smownerid
left join vtiger_groups on vtiger_groups.groupid=vtiger_crmentity.smownerid
where vtiger_crmentity.deleted=0 and vtiger_leaddetails.leadid=".$id;
$return_value = GetRelatedList($this_module, $related_module, $other, $query, $button, $returnset);
if($return_value == null) $return_value = Array();
$return_value['CUSTOM_BUTTON'] = $button;
$log->debug("Exiting get_tickets method ...");
return $return_value;
}