Binnen vTiger CRM is het mogelijk om mails op te nemen bij de contacten, zodat je alle correspondentie en acties voor een bepaald contact mooi bij elkaar kunt houden. Probleem is echter dat de standaard sortering gebaseerd is op het datumveld. Omdat dat datumveld geen tijd bevat, is het niet mogelijk een goede sortering aan te houden voor mails, die op 1 dag binnen komen. Na lang zoeken heb ik het voor elkaar gekregen om de code van een aantal modules zo aan te passen dat er wel een goede sortering mogelijk is: namelijk op item-ID. Daartoe heb ik het volgende gedaan:
In de file /vtiger/modules/Emails/Emails.php het stuk:
// This is the list of vtiger_fields that are in the lists.
var $list_fields = Array( 'Subject'=>Array('activity'=>'subject'),
'Related to'=>Array('seactivityrel'=>'activityid'),
'Date Sent'=>Array('activity'=>'date_start'),
'Assigned To'=>Array('crmentity','smownerid') );
var $list_fields_name = Array('Subject'=>'subject',
'Related to'=>'activityid',
'Date Sent'=>'date_start',
'Assigned To'=>'assigned_user_id');
var $list_link_field= 'subject';
var $column_fields = Array();
var $sortby_fields = Array('subject','date_start','smownerid');
//Added these variables which are used as default order by and sortorder in ListView
var $default_order_by = 'date_start';
var $default_sort_order = 'ASC';
vervangen door
// This is the list of vtiger_fields that are in the lists.
var $list_fields = Array('ID'=>Array('activity'=>'activityid'),
'Subject'=>Array('activity'=>'subject'),
'Related to'=>Array('seactivityrel'=>'crmid'),
'Date Sent'=>Array('activity'=>'date_start'),
'Assigned To'=>Array('crmentity','smownerid'));
var $list_fields_name = Array('ID'=>'activityid',
'Subject'=>'subject',
'Related to'=>'crmid',
'Date Sent'=>'date_start',
'Assigned To'=>'assigned_user_id');
var $list_link_field= 'subject';
var $column_fields = Array();
var $sortby_fields = Array('activityid', 'subject','date_start','smownerid');
//Added these variables which are used as default order by and sortorder in ListView
var $default_order_by = 'activityid';
var $default_sort_order = 'DESC';
Om dit goed te laten werken moet ook in de database een record worden toegevoegd aan de tabel vtiger_field:
INSERT INTO `vtiger_field` VALUES(10, 451, 'activityid', 'vtiger_activity', 1, '7', 'activityid', 'ID', 1, 0, 0, 100, 0, 21, 1, 'I~O', 1, NULL, 'BAS');
Let op: het field “Related To” wijst nu dus niet meer naar het activityid maar naar het crmid omdat anders er geen onafhankelijke sortering op vtiger_activity.activityid kan worden gedaan. Blijkbaar kan de vTiger CRM software erg slecht tegen kolommen, waarvan de velden een gelijke naam hebben.