[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