From 2641ec91220195d2f4a144a038f883a798b6ab0d Mon Sep 17 00:00:00 2001 From: joannechester Date: Tue, 18 Aug 2015 00:49:37 +1000 Subject: [PATCH] week-relative-to-site-setting --- CRM/Utils/Date.php | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/CRM/Utils/Date.php b/CRM/Utils/Date.php index 7c00e040af..73b66e140d 100644 --- a/CRM/Utils/Date.php +++ b/CRM/Utils/Date.php @@ -1470,12 +1470,20 @@ class CRM_Utils_Date { break; case 'week': + $weekFirst = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::LOCALIZATION_PREFERENCES_NAME, 'weekBegins', NULL, 0);; + $thisDay = $now['wday']; + if ($weekFirst > $thisDay){ + $diffDay = $thisDay - $weekFirst + 7; + } + else { + $diffDay = $thisDay - $weekFirst; + } switch ($relativeTerm) { case 'this': $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']), $from); + $from = self::intervalAdd('day', -1 * ($diffDay), $from); $to = self::intervalAdd('day', 6, $from); break; @@ -1483,7 +1491,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']) - 7, $from); + $from = self::intervalAdd('day', -1 * ($diffDay) - 7, $from); $to = self::intervalAdd('day', 6, $from); break; @@ -1491,7 +1499,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']) - 14, $from); + $from = self::intervalAdd('day', -1 * ($diffDay) - 14, $from); $to = self::intervalAdd('day', 6, $from); break; @@ -1499,7 +1507,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']) - 14, $from); + $from = self::intervalAdd('day', -1 * ($diffDay) - 14, $from); $to = self::intervalAdd('day', 13, $from); break; @@ -1507,7 +1515,7 @@ class CRM_Utils_Date { $to['d'] = $now['mday']; $to['M'] = $now['mon']; $to['Y'] = $now['year']; - $to = self::intervalAdd('day', -1 * ($now['wday']) - 1, $to); + $to = self::intervalAdd('day', -1 * ($diffDay) - 1, $to); unset($from); break; @@ -1515,7 +1523,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']), $from); + $from = self::intervalAdd('day', -1 * ($diffDay), $from); unset($to); break; @@ -1523,7 +1531,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']) - 1, $from); + $from = self::intervalAdd('day', -1 * ($diffDay) - 1, $from); unset($to); break; @@ -1541,7 +1549,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']), $from); + $from = self::intervalAdd('day', -1 * ($diffDay), $from); $to['d'] = $now['mday']; $to['M'] = $now['mon']; $to['Y'] = $now['year']; @@ -1554,7 +1562,7 @@ class CRM_Utils_Date { $to['M'] = $now['mon']; $to['Y'] = $now['year']; //CRM-14550 QA Fix - $to = self::intervalAdd('day', -1 * ($now['wday']) + 6, $to); + $to = self::intervalAdd('day', -1 * ($diffDay) + 6, $to); unset($from); break; @@ -1562,7 +1570,7 @@ class CRM_Utils_Date { $from['d'] = $now['mday']; $from['M'] = $now['mon']; $from['Y'] = $now['year']; - $from = self::intervalAdd('day', -1 * ($now['wday']) + 7, $from); + $from = self::intervalAdd('day', -1 * ($diffDay) + 7, $from); $to = self::intervalAdd('day', 6, $from); break; -- 2.25.1