예제 #1
0
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;
   }
}
예제 #2
0
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;
    }