[Vtigercrm-developers] [PATCH 4.2.3] Order pending activities by date and time

Mike Fedyk mfedyk at mikefedyk.com
Sat Feb 4 21:51:52 PST 2006


diff -dr -U2 -x config.php -x connection.php 
vtiger_crm-4.2.3/modules/Activities/OpenListView.php 
vtiger-4.2.3-testing/modules/Activities/OpenListView.php
--- vtiger_crm-4.2.3/modules/Activities/OpenListView.php    2005-12-23 
03:17:24.000000000 -0800
+++ vtiger-4.2.3-testing/modules/Activities/OpenListView.php   
 2006-02-04 21:44:00.000000000 -0800
@@ -40,9 +40,37 @@
 
 $today = date("Y-m-d", time());
+#Keep this to a minimum of 3 days to show monday's activities when 
today is friday
 $later = date("Y-m-d", strtotime("$today + 7 days"));
 
 //$activity = new Activity();
 //change made as requested by community by shaw
- $list_query = " select 
crmentity.crmid,crmentity.smownerid,crmentity.setype, activity.*, 
contactdetails.lastname, contactdetails.firstname, 
contactdetails.contactid, account.accountid, account.accountname, 
recurringevents.recurringtype,recurringevents.recurringdate from 
activity inner join crmentity on crmentity.crmid=activity.activityid 
left join cntactivityrel on cntactivityrel.activityid= 
activity.activityid left join contactdetails on 
contactdetails.contactid= cntactivityrel.contactid left join 
seactivityrel on seactivityrel.activityid = activity.activityid left 
outer join account on account.accountid = contactdetails.accountid left 
outer join recurringevents on 
recurringevents.activityid=activity.activityid inner join 
salesmanactivityrel on 
salesmanactivityrel.activityid=activity.activityid WHERE 
crmentity.deleted=0 and (activity.activitytype = 'Meeting' or 
activity.activitytype='Call' or activity.activitytype='Task') AND ( 
activity.status is NULL || activity.status != 'Completed' ) and (  
activity.eventstatus is NULL ||  activity.eventstatus != 'Held') and (  
activity.eventstatus is NULL ||  activity.eventstatus != 'Not Held' ) 
AND (((date_start >= '$today' AND date_start < '$later') OR (date_start 
< '$today'))  OR (recurringevents.recurringdate between '$today' and 
'$later') ) AND salesmanactivityrel.smid ='{$current_user->id}'";
+ $list_query = "SELECT
+         crmentity.crmid,
+         crmentity.smownerid,
+         crmentity.setype,
+         activity.*,
+         contactdetails.lastname,
+         contactdetails.firstname,
+         contactdetails.contactid,
+         account.accountid,
+         account.accountname,
+         recurringevents.recurringtype,
+         recurringevents.recurringdate,
+         GREATEST(recurringevents.recurringdate,activity.date_start) as 
sort_date
+         FROM activity
+         INNER JOIN crmentity ON crmentity.crmid = activity.activityid
+         LEFT JOIN cntactivityrel ON cntactivityrel.activityid = 
activity.activityid
+         LEFT JOIN contactdetails ON contactdetails.contactid = 
cntactivityrel.contactid
+         LEFT JOIN seactivityrel ON seactivityrel.activityid = 
activity.activityid
+         LEFT OUTER JOIN account ON account.accountid = 
contactdetails.accountid
+         LEFT OUTER JOIN recurringevents ON recurringevents.activityid 
= activity.activityid
+         INNER JOIN salesmanactivityrel ON 
salesmanactivityrel.activityid = activity.activityid
+         WHERE crmentity.deleted=0
+         AND ( activity.status is NULL || activity.status != 'Completed' )
+         AND ( activity.eventstatus is NULL ||  activity.eventstatus != 
'Held')
+         AND ( activity.eventstatus is NULL ||  activity.eventstatus != 
'Not Held' )
+         AND ( date_start <= '$later' OR recurringevents.recurringdate 
<= '$later' )
+         AND salesmanactivityrel.smid ='{$current_user->id}'
+         ORDER BY sort_date, activity.time_start";
 
 //$list_query = getListQuery("Activities",$where);
@@ -65,5 +93,6 @@
                      'accountid' => $adb->query_result($list_result, 
$i, 'accountid'),
                                      'contactid' => 
$adb->query_result($list_result,$i,'contactid'),
-                                     'date_start' => 
getDisplayDate($adb->query_result($list_result,$i,'date_start')),
+                     'date_start' => 
getDisplayDate($adb->query_result($list_result,$i,'date_start')),
+                     'time_start' => 
$adb->query_result($list_result,$i,'time_start'),
                      'due_date' => 
getDisplayDate($adb->query_result($list_result,$i,'due_date')),
                      'recurringtype' => 
getDisplayDate($adb->query_result($list_result,$i,'recurringtype')),
@@ -79,5 +108,5 @@
 
 // Stick the form header out there.
-$later_day = getDisplayDate(date("Y-m-d", strtotime("$today + 7 days")));
+$later_day = getDisplayDate(date("Y-m-d", strtotime($later)));
 //echo get_form_header($current_module_strings['LBL_UPCOMING'], 
"<table><tr><td 
nowrap>".$current_module_strings['LBL_TODAY'].$later_day."</td></tr></table>", 
false);
 
@@ -114,4 +144,5 @@
     $end_date=$event['due_date']; //included for getting the OverDue 
Activities in the Upcoming Activities
     $start_date=$event['date_start'];
+    $time_start=$event['time_start'];
 
     switch ($event['type']) {
@@ -149,8 +180,10 @@
         $end=explode("-",$end_date);
     }
+    $end_time=explode(":",$time_start);
     
-    $current_date=date("Y-m-d",mktime(date("m"),date("d"),date("Y")));
+   
 $current_date=date("Y-m-d-H-i",mktime(date("H"),date("i"),0,date("m"),date("d"),date("Y")));
     $curr=explode("-",$current_date);
-    $date_diff= 
mktime(0,0,0,date("$curr[1]"),date("$curr[2]"),date("$curr[0]")) - 
mktime(0,0,0,date("$end[1]"),date("$end[2]"),date("$end[0]"));
+    $date_diff= 
mktime(date("$curr[3]"),date("$curr[4]"),0,date("$curr[1]"),date("$curr[2]"),date("$curr[0]"))
+        - 
mktime(date("$end_time[0]"),date("$end_time[1]"),0,date("$end[1]"),date("$end[2]"),date("$end[0]"));
     
     if($date_diff>0)




More information about the vtigercrm-developers mailing list