/** * test write with distant future cookies * * @return void */ public function testWriteFarFuture() { $this->Cookie->configKey('Testing', 'expires', '+90 years'); $this->Cookie->write('Testing', 'value'); $future = new Time('now'); $future->modify('+90 years'); $expected = ['name' => 'Testing', 'value' => 'value', 'path' => '/', 'domain' => '', 'secure' => false, 'httpOnly' => false]; $result = $this->Controller->response->cookie('Testing'); $this->assertEquals($future->format('U'), $result['expire'], '', 3); unset($result['expire']); $this->assertEquals($expected, $result); }
/** * testIsThisMonth method * * @return void */ public function testIsThisMonth() { $time = new Time(); $this->assertTrue($time->isThisMonth()); $time->year = $time->year + 1; $this->assertFalse($time->isThisMonth()); $time = new Time(); $this->assertFalse($time->modify('next month')->isThisMonth()); }
public function patternevent($id = null) { $patterns = TableRegistry::get('Patterns'); $events = TableRegistry::get('Events'); $employee_id = $this->request->query('employee_id'); $patternparent_id = $this->request->query('patternparentid'); $pattern_sun = $this->request->query('patternSun'); $pattern_mon = $this->request->query('patternMon'); $pattern_tue = $this->request->query('patternTue'); $pattern_wed = $this->request->query('patternWed'); $pattern_thu = $this->request->query('patternThu'); $pattern_fri = $this->request->query('patternFri'); $pattern_sat = $this->request->query('patternSat'); $pattern_id = $this->request->query('id'); $dowMap = array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'); // delete exisitng events for current patternParent // prior to creating events $events_to_delete = [$pattern_sun, $pattern_mon, $pattern_tue, $pattern_wed, $pattern_thu, $pattern_fri, $pattern_sat]; foreach ($events_to_delete as $key => $value) { $events->deleteAll(['pattern_id' => $value]); } $query = $patterns->find('all', ['conditions' => ['pattern_parent_id' => $patternparent_id], 'contain' => ['Resources', 'Employees']]); foreach ($query as $row) { //debug($row->toArray()); $eventsTable = TableRegistry::get('Events'); // day of week $byweekday = $dowMap[$row['day_of_week'] - 1]; // start date $patternend = new \DateTime($row['start_date']); // every n weeks $step = $row->week_of_year; // start date offset $starting_on = $row->starting_on - 1; foreach (getPatternDays($row['start_date'], $byweekday, $step, $starting_on, $row['end_date']) as $patternDay) { // create date schedule array $timezone = 'UTC'; $event = $eventsTable->newEntity(); if (!empty($query)) { //loop through patterns to //create all events based on current employee id and current pattern(s) //save to db //$count_of_leave_entitlement++; //format start and end dates including adding start / end hours and minutes $starthours = date('H', strtotime($row->resource->start_time)); $startmins = date('i', strtotime($row->resource->start_time)); $start = new Time($patternDay->format("Y-m-d")); $start->modify('+' . $starthours . ' hours'); $start->modify('+' . $startmins . ' minutes'); $endhours = date('H', strtotime($row->resource->end_time)); $endmins = date('i', strtotime($row->resource->end_time)); $end = new Time($patternDay->format("Y-m-d")); if ($row->resource->night_shift == 1) { $end->modify('+ 1 day'); } $end->modify('+' . $endhours . ' hours'); $end->modify('+' . $endmins . ' minutes'); // event model to save $event->title = $row->employee->first_name[0] . ' ' . $row->employee->last_name; $event->startdate = $start->format('Y-m-d H:i:s'); $event->enddate = $end->format('Y-m-d H:i:s'); $event->allDay = $row->resource->allDay; $event->pattern_id = $row->id; $event->resource_id = $row->resource_id; $event->employee_id = $row->employee->id; $event->event_type = 'pattern'; $event->patternparentid = $patternparent_id; $eventsTable->save($event); } else { $this->Flash->error(__('The events could not be saved. Please, try again.')); } } } $this->Flash->success(__('The events have been saved.')); return $this->redirect($this->referer()); $this->autoRender = false; }