function installer_schedule_list() { App::uses('InstallerSchedule', 'ScheduleManager.Model'); $installerScheduleModel = new InstallerSchedule(); $installerSchedules = $installerScheduleModel->find('all'); //debug($installerSchedules);exit; $tmp_installerSchedules = array(); foreach ($installerSchedules as $installerSchedule) { if (!array_key_exists($installerSchedule['InstallerSchedule']['installer_id'], $tmp_installerSchedules)) { $tmp_installerSchedules[$installerSchedule['InstallerSchedule']['installer_id']] = array(); } $address = $this->address_format($installerSchedule['InstallerSchedule']['address'], $installerSchedule['InstallerSchedule']['city'], $installerSchedule['InstallerSchedule']['province'], $installerSchedule['InstallerSchedule']['country'], $installerSchedule['InstallerSchedule']['postal_code']); $new_array = array("work_order_number" => $installerSchedule['WorkOrder']['work_order_number'], "name" => $installerSchedule['InstallerSchedule']['name'], "address" => $address); $tmp_installerSchedules[$installerSchedule['InstallerSchedule']['installer_id']][$installerSchedule['InstallerSchedule']['start_install']] = $new_array; for ($i = 1; $i <= $installerSchedule['InstallerSchedule']['number_of_days'] - 1; $i++) { $inc_day = date('Y-m-d', strtotime("+" . $i . " days", strtotime($installerSchedule['InstallerSchedule']['start_install']))); $tmp_installerSchedules[$installerSchedule['InstallerSchedule']['installer_id']][$inc_day] = $new_array; } } return $tmp_installerSchedules; }
public function calendar_data() { $this->autoRender = false; $start_date = date('Y-m-d', $this->request->query['start']); $end_date = date('Y-m-d', $this->request->query['end']); // debug($start_date); // debug($end_date); App::import('Model', 'ScheduleManager.ServiceEntry'); $serviceEntryModel = new ServiceEntry(); $serviceEntryData = $serviceEntryModel->find('all', array('conditions' => array('ServiceEntry.booked_for >' => $start_date, 'ServiceEntry.booked_for <=' => $end_date))); // debug($serviceEntryData); App::import('Model', 'ScheduleManager.InstallerSchedule'); $installerScheduleModel = new InstallerSchedule(); $installerScheduleData = $installerScheduleModel->find('all', array('conditions' => array('InstallerSchedule.start_install >' => $start_date, 'InstallerSchedule.start_install <=' => $end_date))); // debug($installerScheduleData); App::import('Model', 'ScheduleManager.Appointment'); $appointmentModel = new Appointment(); $start_date = date('Y-m-d H:i:s', $this->request->query['start']); $end_date = date('Y-m-d H:i:s', $this->request->query['end']); $appointmentData = $appointmentModel->find('all', array('conditions' => array('Appointment.start_date >' => $start_date, 'Appointment.end_date <=' => $end_date))); // debug($appointmentData); $calendarData = array(); $calendarData = $this->Calendar->dataFormat('Service', $serviceEntryData, $calendarData); $calendarData = $this->Calendar->dataFormat('Installation', $installerScheduleData, $calendarData); $calendarData = $this->Calendar->dataFormat('Appointment', $appointmentData, $calendarData); echo json_encode($calendarData); }