retrieve(1);
global $timedate;
if (!isset($timedate)) $timedate=new TimeDate();
$focus = new Course();
$event_type_info=$app_list_strings['event_types']['course'];
$schedule_obj = new Schedule();
$_REQUEST['event_type'] = 'course';
$_REQUEST['save_with_conflict'] = 'on';
$_REQUEST['top_schedule_options'] = 'off';
$_REQUEST['save_type'] = 'new';
$import_array = array();
$student_array = array();
$schedule_import_query = " SELECT * FROM smsevent_import WHERE duplicate=0 AND schedule_type='weekly' ";
// 0 (single instance) or 1 (multiple instance) 2 is wrong data
//$schedule_import_query .= " AND course_id='course022' "; // course011 for one student, course022 with multiple students
//$schedule_import_query .= " ORDER BY id LIMIT 0, 40 ";
//$schedule_import_query .= " ORDER BY id LIMIT 41, 80 ";
$schedule_import_query .= " ORDER BY id LIMIT 121, 50 ";
$result = $current_user->db->query($schedule_import_query, true);
while($row = $current_user->db->fetchByAssoc($result)) {
$import_array[$row['course_id']][$row['id']] = $row;
$import_array[$row['course_id']]['students'] = array();
$student_query = " SELECT contact_id, start_date, end_date, description FROM event_contacts WHERE event_id='{$row['course_id']}'";
$student_result = $current_user->db->query($student_query, true);
while($student_row = $current_user->db->fetchByAssoc($student_result)) {
$import_array[$row['course_id']]['students'][$student_row['contact_id']] = $student_row;
}
}
foreach($import_array as $ckey=>$cvalue) {
unset($focus); $focus = new Course(); $focus->retrieve($ckey);
unset($schedule_obj); $schedule_obj = new Schedule(); // $schedule_obj->retrieve($ckey);
$schedule_obj->json = new JSON(JSON_LOOSE_TYPE);
foreach($cvalue as $key=>$value) {
if ($key=='students') continue;
$_REQUEST['record'] = $ckey;
$_REQUEST['schedule_type'] = $value['schedule_type'];
list($start_hour, $start_min, $dummy1, $dummy2, $end_hour, $end_min) = split('[:~]', $value['time_slot']);
$_REQUEST['event_start_year'] = substr($value['start_date'], 0, 4);
$_REQUEST['event_start_month'] = substr($value['start_date'], 5, 2);
$_REQUEST['event_start_day'] = substr($value['start_date'], 8, 2);
$_REQUEST['event_start_hour'] = $start_hour;
$_REQUEST['event_start_minute'] = $start_min;
$_REQUEST['event_end_year'] = substr($value['end_date'], 0, 4);
$_REQUEST['event_end_month'] = substr($value['end_date'], 5, 2);
$_REQUEST['event_end_day'] = substr($value['end_date'], 8, 2);
$_REQUEST['event_end_hour'] = $end_hour;
$_REQUEST['event_end_minute'] = $end_min;
$schedule_obj->GetSubmittedData();
switch ($value['week_day']) {
case '月曜日':
$weekday = 1; break;
case '火曜日':
$weekday = 2; break;
case '水曜日':
$weekday = 3; break;
case '木曜日':
$weekday = 4; break;
case '金曜日':
$weekday = 5; break;
case '土曜日':
$weekday = 6; break;
case '日曜日':
$weekday = 7; break;
}
$schedule_obj->recurrence_info_arr['recurrences_arr'][0] = array (
'all_day' => NULL,
'day' => $weekday, // Friday
'from_time_hour' => $start_hour,
'from_time_minute' => $start_min,
'to_time_hour' => $end_hour,
'to_time_minute' => $end_min,
);
if (!empty($value['subject'])) {
$people_resources_info_arr['resources'][$value['subject']] = array (
'category' => 'subject',
'id' => $value['subject'],
'name' => $value['contact_id'],
'people_resources_flag' => 'resources',
'restrict_to_available' => 0,
'subcategory' => NULL,
);
}
if (!empty($value['room_id'])) {
$people_resources_info_arr['resources'][$value['room_id']] = array (
'category' => 'classroom',
'id' => $value['room_id'],
'name' => $value['room_id'],
'people_resources_flag' => 'resources',
'restrict_to_available' => 0,
'subcategory' => NULL,
);
}
if (!empty($value['teacher_id'])) {
$people_resources_info_arr['people'][$value['teacher_id']] = array (
'category' => 'teacher',
'id' => $value['teacher_id'],
'name' => $value['teacher_id'],
'people_resources_flag' => 'people',
'restrict_to_available' => 0,
'subcategory' => 3, // full-time, part-time is 4
);
}
echo "
"; echo "course id: {$value['course_id']} "; echo "teacher id: {$value['teacher_id']} "; echo "subject id: {$value['subject']} ";
echo "room: {$value['room_id']} "; echo "start: {$value['start_date']} "; echo "end: {$value['end_date']} "; echo "time slot: {$value['time_slot']} ";
if ($value['schedule_type']=='weekly') { echo "week day: {$value['week_day']}"; }
else {
echo "monthly schedules: ";
for($i=1;$i<25;$i++) {
if ($value['monthly'.$i]!='0000-00-00') {
echo "{$value['monthly'.$i]} ";
}
else {
break;
}
}
}
}
if ($_REQUEST['schedule_type']=='weekly') {
$schedule_obj->new_with_id=true;
$schedule_obj->people_resources_info_arr['people'] = $people_resources_info_arr['people'];
$schedule_obj->people_resources_info_arr['resources'] = $people_resources_info_arr['resources'];
$schedule_obj->recurrence_info = $schedule_obj->json->encode($schedule_obj->recurrence_info_arr);
$schedule_obj->targets = $people_resources_info_arr['people'] + $people_resources_info_arr['resources'];
$schedule_obj->reschedule_event_mode =VarsCls::TimeslotsNewSchedule();
$schedule_obj->save();
$schedule_obj->event_name=$focus->name;
$schedule_obj->HandleRecurrenceAndTargets();
$schedule_obj->HandleDeletes();
$schedule_obj->CheckConflicts();
$schedule_obj->SaveSchedule();
}
echo "
";
echo "students: ";
$args_to_schedule = array(
'event_contact_status' => 0,
'save_with_conflict' => true,
'existingtimes_add_target_only' => true,
'event_type' => 'course',
//'adding_target_from_subpanel_popup' => true, // ???? NEEDED
);
foreach($cvalue['students'] as $skey=>$svalue) {
echo "{$svalue['contact_id']} - {$svalue['description']} ";
$args_to_schedule['start_date'] = $svalue['start_date'];
$args_to_schedule['end_date'] = $svalue['end_date'];
$person_obj=new AppendTargetToSchedule('people', $svalue['contact_id'], $focus->id, $args_to_schedule);
$person_obj->Process();
unset($person_obj);
}
echo "
";
}
sugar_cleanup();
?>