diff --git a/timesheet/inc/class.timesheet_ui.inc.php b/timesheet/inc/class.timesheet_ui.inc.php index d0ce8889ec..23ce15f63e 100644 --- a/timesheet/inc/class.timesheet_ui.inc.php +++ b/timesheet/inc/class.timesheet_ui.inc.php @@ -471,47 +471,45 @@ class timesheet_ui extends timesheet_bo function get_rows(&$query_in,&$rows,&$readonlys,$id_only=false) { $this->show_sums = false; - if ($query_in['filter']) + + $query_in['enddate'] = $query_in['enddate'] ? $query_in['enddate'] : time(); + $date_filter = $this->date_filter($query_in['filter'],$query_in['startdate'],$query_in['enddate']); + + if ($query_in['startdate']) { - $query_in['enddate'] = $query_in['enddate'] ? $query_in['enddate'] : time(); - $date_filter = $this->date_filter($query_in['filter'],$query_in['startdate'],$query_in['enddate']); + $start = explode('-',date('Y-m-d',$query_in['startdate']+12*60*60)); + $end = explode('-',date('Y-m-d',$query_in['enddate'] ? $query_in['enddate'] : $query_in['startdate']+7.5*24*60*60)); - if ($query_in['startdate']) + // show year-sums, if we are year-aligned (show full years)? + if ((int)$start[2] == 1 && (int)$start[1] == 1 && (int)$end[2] == 31 && (int)$end[1] == 12) { - $start = explode('-',date('Y-m-d',$query_in['startdate']+12*60*60)); - $end = explode('-',date('Y-m-d',$query_in['enddate'] ? $query_in['enddate'] : $query_in['startdate']+7.5*24*60*60)); - - // show year-sums, if we are year-aligned (show full years)? - if ((int)$start[2] == 1 && (int)$start[1] == 1 && (int)$end[2] == 31 && (int)$end[1] == 12) - { - $this->show_sums[] = 'year'; - } - // show month-sums, if we are month-aligned (show full monthes)? - if ((int)$start[2] == 1 && (int)$end[2] == (int)date('d',mktime(12,0,0,$end[1]+1,0,$end[0]))) - { - $this->show_sums[] = 'month'; - } - // show week-sums, if we are week-aligned (show full weeks)? - $week_start_day = $GLOBALS['egw_info']['user']['preferences']['calendar']['weekdaystarts']; - if (!$week_start_day) $week_start_day = 'Sunday'; - switch($week_start_day) - { - case 'Sunday': $week_end_day = 'Saturday'; break; - case 'Monday': $week_end_day = 'Sunday'; break; - case 'Saturday': $week_end_day = 'Friday'; break; - } - $filter_start_day = date('l',$query_in['startdate']+12*60*60); - $filter_end_day = $query_in['enddate'] ? date('l',$query_in['enddate']+12*60*60) : false; - //echo "

prefs: $week_start_day - $week_end_day, filter: $filter_start_day - $filter_end_day

\n"; - if ($filter_start_day == $week_start_day && (!$filter_end_day || $filter_end_day == $week_end_day)) - { - $this->show_sums[] = 'week'; - } - // show day-sums, if range <= 5 weeks - if (!$query_in['enddate'] || $query_in['enddate'] - $query_in['startdate'] < 36*24*60*60) - { - $this->show_sums[] = 'day'; - } + $this->show_sums[] = 'year'; + } + // show month-sums, if we are month-aligned (show full monthes)? + if ((int)$start[2] == 1 && (int)$end[2] == (int)date('d',mktime(12,0,0,$end[1]+1,0,$end[0]))) + { + $this->show_sums[] = 'month'; + } + // show week-sums, if we are week-aligned (show full weeks)? + $week_start_day = $GLOBALS['egw_info']['user']['preferences']['calendar']['weekdaystarts']; + if (!$week_start_day) $week_start_day = 'Sunday'; + switch($week_start_day) + { + case 'Sunday': $week_end_day = 'Saturday'; break; + case 'Monday': $week_end_day = 'Sunday'; break; + case 'Saturday': $week_end_day = 'Friday'; break; + } + $filter_start_day = date('l',$query_in['startdate']+12*60*60); + $filter_end_day = $query_in['enddate'] ? date('l',$query_in['enddate']+12*60*60) : false; + //echo "

prefs: $week_start_day - $week_end_day, filter: $filter_start_day - $filter_end_day

\n"; + if ($filter_start_day == $week_start_day && (!$filter_end_day || $filter_end_day == $week_end_day)) + { + $this->show_sums[] = 'week'; + } + // show day-sums, if range <= 5 weeks + if (!$query_in['enddate'] || $query_in['enddate'] - $query_in['startdate'] < 36*24*60*60) + { + $this->show_sums[] = 'day'; } } //echo "

show_sums=".print_r($this->show_sums,true)."

\n"; @@ -785,15 +783,9 @@ class timesheet_ui extends timesheet_bo if ($query['col_filter']['ts_owner']) $rows['ownerClass'] = 'noPrint'; $rows['no_owner_col'] = $query['no_owner_col']; if (!$rows['no_owner_col'] && $query['selectcols'] && !strpos($query['selectcols'],'ts_owner')) $rows['no_owner_col'] = 1; - if ($query['filter']) - { - $rows += $this->summary; - } - else - { - // Clear summary - $rows += array('duration'=>'','price'=>'','quantity'=>''); - } + + $rows += $this->summary; + $rows['pm_integration'] = $this->pm_integration; $rows['ts_viewtype'] = $rows['no_ts_quantity'] = $rows['no_ts_unitprice'] = $rows['no_ts_total'] = $this->ts_viewtype == 'short'; if (!$rows['ts_viewtype'])