X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=lib%2Freport.php;h=b2bc16d2d4aa759974569439a498687c5b2f3797;hb=refs%2Ftags%2Flive-2014-03-13;hp=f06e8ca9d7c54a85bdf45342d9bfbe22845cebea;hpb=0bb5ed236bdb79e75feb7491b508592d6a0ebe37;p=readifood.git diff --git a/lib/report.php b/lib/report.php index f06e8ca..b2bc16d 100644 --- a/lib/report.php +++ b/lib/report.php @@ -69,15 +69,27 @@ $q->withColumn('count(*)', 'count'); $q->addGroupByColumn('week')->orderByUpdated(); $rows = $q->find(); + $year_offset = 0; $week_offset = 0; $week = 1; $last_week = 0; $total = 0; echo "\n"; foreach ($rows as $row) { - /* Convert week of year to date range. */ - if (! $week_offset) $week_offset = $row->getWeek() - 1; - else $week = $row->getWeek() - $week_offset; + /* + Convert week of year to date range. + Beware that week 201401 comes after 201352. + */ + $yearweek = $row->getWeek(); + if (! $week_offset) { + $year_offset = substr($yearweek, 0, 4); + $week_offset = substr($yearweek, 4, 2) - 1; + } + else { + $y = substr($yearweek, 0, 4); + $w = substr($yearweek, 4, 2); + $week = (($y - $year_offset) * 52) + ($w - $week_offset); + } $total += $row->getCount(); /* Fill in missing weeks. XXX */ for ($missing_week = $last_week + 1; $missing_week < $week; $missing_week++) {