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[] = '<a href="index.php?module=' . $parent_module . '&action=DetailView&record=' . $value . '">' . $contact_name . '</a>';
		} 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[] = '<a href="index.php?module=' . $parent_module . '&action=DetailView&record=' . $value . '">' . $account_name . '</a>';
		} 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[] = '<a href="index.php?module=' . $parent_module . '&action=DetailView&record=' . $value . '">' . $contact_name . '</a>';
		} 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[] = '<a href="index.php?module=' . $parent_module . '&action=DetailView&record=' . $value . '">' . $lead_name . '</a>';
		} 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[] = '<a href="index.php?module=' . $parent_module . '&action=DetailView&record=' . $value . '">' . $account_name . '</a>';
		} 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 .= "<input title='".getTranslatedString('LBL_SELECT')." ". getTranslatedString($related_module). "' class='crmbutton small edit' type='button' onclick=\"return window.open('index.php?module=$related_module&return_module=$currentModule&action=Popup&popuptype=detailview&select=enable&form=EditView&form_submit=false&recordid=$id&parenttab=$parenttab','test','width=640,height=602,resizable=0,scrollbars=0');\" value='". getTranslatedString('LBL_SELECT'). " " . getTranslatedString($related_module) ."'>&nbsp;";
   			}
   			if(in_array('ADD', $actions) && isPermitted($related_module,1, '') == 'yes') {
   				$button .= "<input title='".getTranslatedString('LBL_ADD_NEW'). " ". getTranslatedString($singular_modname) ."' class='crmbutton small create'" .
   					" onclick='this.form.action.value=\"EditView\";this.form.module.value=\"$related_module\"' type='submit' name='button'" .
   					" value='". getTranslatedString('LBL_ADD_NEW'). " " . getTranslatedString($singular_modname) ."'>&nbsp;";
   			}
   		}
 
   		$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;
   	}