function test_timePeriodDates() { Debug::text('Testing Time Period Dates!', __FILE__, __LINE__, __METHOD__, 10); TTDate::setTimeZone('PST'); $dates = TTDate::getTimePeriodDates('custom_date', strtotime('15-Jul-10 12:00 PM'), NULL, array('start_date' => strtotime('10-Jul-10 12:43 PM'), 'end_date' => strtotime('12-Jul-10 12:43 PM'))); $this->assertEquals($dates['start_date'], (int) 1278745200); $this->assertEquals($dates['end_date'], (int) 1279004399); $dates = TTDate::getTimePeriodDates('custom_time', strtotime('15-Jul-10 12:00 PM'), NULL, array('start_date' => strtotime('10-Jul-10 12:43 PM'), 'end_date' => strtotime('12-Jul-10 12:53 PM'))); $this->assertEquals($dates['start_date'], (int) 1278790980); $this->assertEquals($dates['end_date'], (int) 1278964380); $dates = TTDate::getTimePeriodDates('today', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1279177200); $this->assertEquals($dates['end_date'], (int) 1279263599); $dates = TTDate::getTimePeriodDates('yesterday', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1279090800); $this->assertEquals($dates['end_date'], (int) 1279177199); $dates = TTDate::getTimePeriodDates('last_24_hours', strtotime('15-Jul-10 12:43 PM')); $this->assertEquals($dates['start_date'], (int) 1279136580); $this->assertEquals($dates['end_date'], (int) 1279222980); $dates = TTDate::getTimePeriodDates('this_week', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1278831600); $this->assertEquals($dates['end_date'], (int) 1279436399); $dates = TTDate::getTimePeriodDates('last_week', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1278226800); $this->assertEquals($dates['end_date'], (int) 1278831599); $dates = TTDate::getTimePeriodDates('last_7_days', strtotime('15-Jul-10 12:43 PM')); $this->assertEquals($dates['start_date'], (int) 1278572400); $this->assertEquals($dates['end_date'], (int) 1279177199); $dates = TTDate::getTimePeriodDates('this_month', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1277967600); $this->assertEquals($dates['end_date'], (int) 1280645999); $dates = TTDate::getTimePeriodDates('last_month', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1275375600); $this->assertEquals($dates['end_date'], (int) 1277967599); $dates = TTDate::getTimePeriodDates('last_month', strtotime('15-Mar-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1265011200); $this->assertEquals($dates['end_date'], (int) 1267430399); $dates = TTDate::getTimePeriodDates('last_30_days', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1276585200); $this->assertEquals($dates['end_date'], (int) 1279177199); $dates = TTDate::getTimePeriodDates('this_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1277967600); $this->assertEquals($dates['end_date'], (int) 1285916399); $dates = TTDate::getTimePeriodDates('last_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1270105200); $this->assertEquals($dates['end_date'], (int) 1277967599); $dates = TTDate::getTimePeriodDates('last_90_days', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1271401200); $this->assertEquals($dates['end_date'], (int) 1279177199); $dates = TTDate::getTimePeriodDates('this_year_1st_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1262332800); $this->assertEquals($dates['end_date'], (int) 1270105199); $dates = TTDate::getTimePeriodDates('this_year_2nd_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1270105200); $this->assertEquals($dates['end_date'], (int) 1277967599); $dates = TTDate::getTimePeriodDates('this_year_3rd_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1277967600); $this->assertEquals($dates['end_date'], (int) 1285916399); $dates = TTDate::getTimePeriodDates('this_year_4th_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1285916400); $this->assertEquals($dates['end_date'], (int) 1293868799); $dates = TTDate::getTimePeriodDates('last_year_1st_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1230796800); $this->assertEquals($dates['end_date'], (int) 1238569199); $dates = TTDate::getTimePeriodDates('last_year_2nd_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1238569200); $this->assertEquals($dates['end_date'], (int) 1246431599); $dates = TTDate::getTimePeriodDates('last_year_3rd_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1246431600); $this->assertEquals($dates['end_date'], (int) 1254380399); $dates = TTDate::getTimePeriodDates('last_year_4th_quarter', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1254380400); $this->assertEquals($dates['end_date'], (int) 1262332799); $dates = TTDate::getTimePeriodDates('last_3_months', strtotime('15-May-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1266134400); $this->assertEquals($dates['end_date'], (int) 1273906799); $dates = TTDate::getTimePeriodDates('last_6_months', strtotime('15-May-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1258185600); $this->assertEquals($dates['end_date'], (int) 1273906799); $dates = TTDate::getTimePeriodDates('last_9_months', strtotime('15-May-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1250233200); $this->assertEquals($dates['end_date'], (int) 1273906799); $dates = TTDate::getTimePeriodDates('last_12_months', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1247554800); $this->assertEquals($dates['end_date'], (int) 1279177199); $dates = TTDate::getTimePeriodDates('this_year', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1262332800); $this->assertEquals($dates['end_date'], (int) 1293868799); $dates = TTDate::getTimePeriodDates('last_year', strtotime('15-Jul-10 12:00 PM')); $this->assertEquals($dates['start_date'], (int) 1230796800); $this->assertEquals($dates['end_date'], (int) 1262332799); }
function convertTimePeriodToStartEndDate($time_period_arr, $prefix = NULL) { Debug::Arr($time_period_arr, 'Input: Time Period Array: ', __FILE__, __LINE__, __METHOD__, 10); //Convert time_period into start/end date, with pay_period_schedule_ids if necessary. if (isset($time_period_arr['time_period']) and ($time_period_arr['time_period'] == 'custom_date' or $time_period_arr['time_period'] == 'custom_time')) { Debug::Text('Found Custom dates...', __FILE__, __LINE__, __METHOD__, 10); $retarr[$prefix . 'time_period']['time_period'] = $time_period_arr['time_period']; if (isset($time_period_arr['start_date'])) { $retarr[$prefix . 'start_date'] = TTDate::getBeginDayEpoch(TTDate::parseDateTime($time_period_arr['start_date'])); } if (isset($time_period_arr['end_date'])) { $retarr[$prefix . 'end_date'] = TTDate::getEndDayEpoch(TTDate::parseDateTime($time_period_arr['end_date'])); } } elseif (isset($time_period_arr['time_period'])) { $params = array(); if (isset($time_period_arr['pay_period_schedule_id'])) { $params = array('pay_period_schedule_id' => $time_period_arr['pay_period_schedule_id']); //Make sure we keep the original array intact so we if this function is run more than once it will work each time. $retarr[$prefix . 'time_period']['pay_period_schedule_id'] = $time_period_arr['pay_period_schedule_id']; } elseif (isset($time_period_arr['pay_period_id'])) { $params = array('pay_period_id' => $time_period_arr['pay_period_id']); //Make sure we keep the original array intact so we if this function is run more than once it will work each time. $retarr[$prefix . 'time_period']['pay_period_id'] = $time_period_arr['pay_period_id']; } if (!isset($time_period_arr['time_period'])) { Debug::Text('ERROR: Time Period idenfier not specified!', __FILE__, __LINE__, __METHOD__, 10); $retarr[$prefix . 'time_period'] = NULL; } else { $retarr[$prefix . 'time_period']['time_period'] = $time_period_arr['time_period']; } //Debug::Arr($params, 'Time Period: '.$time_period_arr['time_period'] .' Params: ', __FILE__, __LINE__, __METHOD__,10); $time_period_dates = TTDate::getTimePeriodDates($time_period_arr['time_period'], NULL, $this->getUserObject(), $params); if ($time_period_dates != FALSE) { if (isset($time_period_dates['start_date'])) { $retarr[$prefix . 'start_date'] = $time_period_dates['start_date']; } if (isset($time_period_dates['end_date'])) { $retarr[$prefix . 'end_date'] = $time_period_dates['end_date']; } if (isset($time_period_dates['pay_period_id'])) { $retarr[$prefix . 'pay_period_id'] = $time_period_dates['pay_period_id']; } } else { //No pay period find default to no time period, otherwise the report can take forever to finish. Debug::Text('No pay periods found, defaulting to none (0)...', __FILE__, __LINE__, __METHOD__, 10); $retarr[$prefix . 'pay_period_id'] = 0; //This can actually find data not assigned to a pay period. } } else { Debug::Text('Invalid TimePeriod filter...', __FILE__, __LINE__, __METHOD__, 10); return FALSE; } Debug::Arr($retarr, 'Output: Time Period Array: ', __FILE__, __LINE__, __METHOD__, 10); return $retarr; }