function course_and_batch_completion($batchid,$userid,$courseid,$totalsessions,$antended_sessions,$testid=0){ global $DB, $OUTPUT,$USER,$CFG; $users_batch_id=$DB->get_records('local_batch_users',array('userid'=>$userid,'f2fid'=>$batchid)); if($users_batch_id){ foreach($users_batch_id as $users_id){ //print_object($users_id);exit; $user_batch_id=$DB->get_field('local_batch_users','id',array('userid'=>$users_id->userid,'f2fid'=>$batchid)); $user_batch_status=new stdClass(); $user_batch_status->id=$user_batch_id; $user_batch_status->userid=$users_id->userid; $user_batch_status->courseid=$users_id->courseid; if($totalsessions==$antended_sessions){ $user_batch_status->completion_status=1; }else{ $user_batch_status->completion_status=0; } $user_batch_status->timemodified=time(); $enroldate=$DB->get_record_sql("SELECT * FROM {enrol} AS e,{user_enrolments} as ue WHERE e.courseid=$users_id->courseid AND ue.enrolid=e.id AND ue.userid=$users_id->userid"); $course_completions=new stdClass(); $course_completions->userid=$users_id->userid; $course_completions->course=$users_id->courseid; $course_completions->timeenrolled=$enroldate->timecreated; if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid and timecompleted!=''")){ $course_completions->timecompleted=Null; }else{ $course_completions->timecompleted=time(); } $course_completion_check=course_completion_check($users_id->courseid,$users_id->userid,$testid); switch($course_completion_check){ case "no_course_completion_criteria": $batch_creater_roleid=$DB->get_record_sql("SELECT * FROM {facetoface} where id=$batchid"); if(!empty($batch_creater_roleid->roleid)){ $completion_criteriasroles=explode(',',$batch_creater_roleid->roleid); foreach($completion_criteriasroles as $completion_criteriasrole){ $completion_criterias->role=$completion_criteriasrole; } }elseif(is_siteadmin()){ $nh_roleid=$DB->get_record_sql("SELECT * FROM {role} where shortname='nh'"); $completion_criterias->role=$nh_roleid->id; } $completion_criterias=new stdClass(); $completion_criterias->course=$users_id->courseid; $completion_criterias->criteriatype=7; if($totalsessions==$antended_sessions){ $completion_criteria=$DB->insert_record('course_completion_criteria', $completion_criterias); if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid and timecompleted!=''")){ }elseif(!$DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid")){ $course_completions_id=$DB->insert_record('course_completions', $course_completions); } $execute_batch=$DB->update_record('local_batch_users', $user_batch_status); $attendees=$DB->get_field_sql("SELECT count(id) FROM {local_batch_users} where f2fid=$batchid and completion_status=1"); if($attendees){ $execute=$DB->execute('update {facetoface} SET attendees='.$attendees.' WHERE id='.$batchid.''); if($execute_batch&&$execute){ return true; }else{ return false; } }else{ return false; } }else{ return false; } break; case "set_criteria_and_course_completion": if($totalsessions==$antended_sessions){ $execute_batch=$DB->update_record('local_batch_users', $user_batch_status); }else{ $execute_batch=$DB->update_record('local_batch_users', $user_batch_status); } $attendees=$DB->get_field_sql("SELECT count(id) FROM {local_batch_users} where f2fid=$batchid and completion_status=1"); if($attendees){ $execute=$DB->execute('update {facetoface} SET attendees='.$attendees.' WHERE id='.$batchid.''); if($execute_batch&&$execute){ return true; }else{ return false; } }else{ return false; } break; case "set_criteria_and_nocourse_completion": return false; break; case "manual_course_completion_criteria": if($totalsessions==$antended_sessions){ if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid and timecompleted!=''")){ //$get_course_completion=$DB->get_record_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid"); //$course_completions->id=$get_course_completion->id; //$course_completions_id=$DB->update_record('course_completions', $course_completions); }elseif(!$DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid")){ $course_completions_id=$DB->insert_record('course_completions', $course_completions); } $execute_batch=$DB->update_record('local_batch_users', $user_batch_status); }else{ if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid and timecompleted!=''")){ //$deleterecord=$DB->delete_records('course_completions',array('userid'=>$users_id->userid,'course'=>$users_id->courseid)); $execute_batch=$DB->update_record('course_completions', $course_completions); } $execute_batch=$DB->update_record('local_batch_users', $user_batch_status); } $attendees=$DB->get_field_sql("SELECT count(id) FROM {local_batch_users} where f2fid=$batchid and completion_status=1"); if($attendees){ $execute=$DB->execute('update {facetoface} SET attendees='.$attendees.' WHERE id='.$batchid.''); if($execute_batch&&$execute){ return true; }else{ return false; } }else{ return false; } break; } //print_object($course_completion_check);exit; // if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid")){ // $get_course_completion=$DB->get_record_sql("SELECT * FROM {course_completions} WHERE course=$users_id->courseid AND userid=$users_id->userid"); // $course_completions->id=$get_course_completion->id; // $course_completions_id=$DB->update_record('course_completions', $course_completions); // }else{ // $course_completions_id=$DB->insert_record('course_completions', $course_completions); // } //$users=$DB->get_record('user',array('id'=>$users_id->userid)); //$teacher = fullname(get_admin()); //$from = fullname($teacher); //$subject = $batchname .' + '. $coursename .' -Completion'; // //$body="This is to inform you that the training w.r.t ?'.$batchname.'? is completed and would request you to share the trainer feedback from LMS for this training."; ////sending email to user about batch completion //email_to_user($users, $from, $subject, $body); } }else{ return false; } }
public function assign_users($id,$userid10,$supervisorid=0){ global $CFG, $OUTPUT, $DB, $USER,$PAGE; /* 0 indicates batch status is new * 1 indicates batch status is active * 2 indicates batch status is canceled * 3 indicates batch status is hold * 8 indicates batch status is completed */ $timenow=time(); $batchstatus=$DB->get_field('facetoface','active',array('id'=>$id)); $batchstatus_sessions=$DB->get_record('facetoface',array('id'=>$id)); $batch_trainer=$DB->get_field('facetoface','trainerid',array('id'=>$id)); if($supervisorid==0){ $assigned_users_status=$DB->get_records_sql("SELECT * FROM {local_batch_users} WHERE f2fid=$id and completion_status=0"); }else{ $assigned_users_status=$DB->get_records_sql("SELECT * FROM {local_batch_users} WHERE f2fid=$id AND supervisorid=$supervisorid and completion_status=0"); } if($supervisorid==0 && (is_trainers() || is_siteadmin() || is_instructor() || is_ast_nh())){ $assigned_users=$DB->get_records_sql("SELECT * FROM {local_batch_users} WHERE f2fid=$id"); }else{ $assigned_users=$DB->get_records_sql("SELECT * FROM {local_batch_users} WHERE f2fid=$id AND supervisorid=$supervisorid"); } $out=''; $data=array(); $out.='<form method="post" id="formattendence'.$id.'" action="view_sessions.php">'; $out.='<input type="hidden" value="'.$id.'" name="batchid">'; if(!empty($assigned_users)){ foreach($assigned_users as $assigned_user){ $row=array(); $user=$DB->get_record_sql("SELECT * FROM {user} WHERE id=$assigned_user->userid"); if($user){ $user_data=$DB->get_record_sql("SELECT * FROM {local_userdata} WHERE userid=$assigned_user->userid "); $row[]=$user->firstname.' '.$user->lastname; $row[]=$user->email; $row[]=$user->idnumber; if($assigned_user->supervisorid!=''){ $supervisor=$DB->get_record_sql("SELECT * FROM {user} WHERE id =$assigned_user->supervisorid"); $row[]=$supervisor->firstname.' '.$supervisor->lastname; }else{ $supervisor=''; $row[]='Not assigned supervisor'; } if($userid10==$batch_trainer||is_siteadmin()||$USER->id==$batch_trainer){ if($assigned_user->completion_status==1&&($batchstatus_sessions->actualsessions==$assigned_user->antended_sessions)){ $checked="checked"; }else{ $checked=""; } if($assigned_user->courseid!=0){ $course_completion_check=course_completion_check($assigned_user->courseid,$assigned_user->userid); } $disabled="disabled"; }else{ $disabled="disabled"; } if(empty($checked)){ $radio = '<img src="'.$CFG->wwwroot.'/pix/i/grade_incorrect.png" title="Training Completed">'; }else{ $radio = '<img src="'.$CFG->wwwroot.'/pix/i/grade_correct.png" title="Training not Completed">'; } //$radio='<input type="checkbox" name="status[]" value="'.$assigned_user->userid.'" class="check'.$id.'" '.$checked.'='.$checked.' '.$disabled.'='.$disabled.'>'; $sessions=$assigned_user->antended_sessions."/".$batchstatus_sessions->actualsessions; if($assigned_user->courseid!=0){ $course_completion_check1=$DB->record_exists_sql("SELECT * FROM {course_completion_criteria} cc,{course} c Where c.id=$assigned_user->courseid and c.id=cc.course and c.enablecompletion=1 AND cc.module IS NOT NULL AND cc.moduleinstance IS NOT NULL"); //$course_completion_check1=$DB->record_exists_sql("SELECT * FROM {course_completion_criteria} Where course=$assigned_user->courseid AND module!='' AND moduleinstance!=''"); } //*check manual course_completion_criteria*// if($course_completion_check1==1){ if($DB->record_exists_sql("SELECT * FROM {course_completions} WHERE course=$assigned_user->courseid AND userid=$assigned_user->userid and timecompleted!=''")){ $coursecompletion="Passed"; }else{ $coursecompletion="Not Completed"; } }else{ $coursecompletion="N/A"; } $row[]=$sessions; $row[]=$coursecompletion; $row[]=$radio; if($batchstatus==8){ }elseif($batchstatus==0||$batchstatus==3){ $delete = html_writer::link(new moodle_url('/mod/facetoface/confirm_user.php', array('id' =>$assigned_user->id,'userid' => $assigned_user->userid)), html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/aia/delete'), 'onmouseover' => "this.src='".$OUTPUT->pix_url('t/aia/delete1')."'", 'onmouseout' => "this.src='".$OUTPUT->pix_url('t/aia/delete')."'", 'title' => 'un-assign', 'alt' =>'un-assign', 'class' => 'iconsmall')), array('id' => 'deleteconfirm_user' . $assigned_user->userid . '')); echo html_writer::script("Y.on('click', M.util.tmahendra_show_confirm_dialog, '#deleteconfirm_user$assigned_user->userid', null, {'message':'" . get_string('deleteconfirm_user', 'mod_facetoface',$user->firstname.' '.$user->lastname) . "','callbackargs':{'id':$assigned_user->userid,'extraparams':'&rem=remove&delete=$assigned_user->userid'}});"); $row[]=$delete; } $data[]=$row; } //$data[]=$row; } } $table = new html_table(); $head=array('Employee','Email','Id','Supervisor'); if($batchstatus==0||$batchstatus==3||$batchstatus==2||$batchstatus==8){ $disabled="disabled"; }else{ if($userid10==$batch_trainer||is_siteadmin()||$USER->id==$batch_trainer){ $disabled=""; } } $head[]='Attended Sessions'; $head[]='Test status'; $head[]='Training Completed'; if($batchstatus==0||$batchstatus==3){ $head[]='Remove'; }elseif($batchstatus==8){ } $table->head = $head; $table->width = '100%'; $table->id ='assigned_users_view'.$id.''; $table->size = array('15%','15%','10%','15%','10%','10%','15%','10%'); $table->align = array('left','left','left','left','left','left','center','center'); $table->data = $data; if(!empty($data)){ $out.= html_writer::table($table); $out.=html_writer::script('$(document).ready(function() { $("#assigned_users_view'.$id.'").DataTable( { scrollY:"50vh", scrollCollapse: true, paging:false }); $("#checkAll'.$id.'").change(function () { $("input:checkbox").prop("checked", $(this).prop("checked")); // //$("#sub'.$id.'").attr("disabled", "disabled"); // if($("input:checkbox").prop("checked", $(this).prop("checked"))){ // var a=$(this).prop("checked"); // //alert(a); // if(a==true){ // $("#sub'.$id.'").removeAttr("disabled"); // } // } // // }); });'); if($userid10==$batch_trainer||is_siteadmin()||$USER->id==$batch_trainer){ if($batchstatus==1){ } } $out.='</form>'; }else{ $out.="<div id=emptymsg>Assigned Users are empty</div>"; } return $out; }