Example #1
0
/**
 * Update attendee list status' on booking size change
 */
function facetoface_update_attendees($session) {
    global $USER, $DB;

    // Get facetoface
    $facetoface = $DB->get_record('facetoface', array('id' => $session->facetoface));

    // Get course
    $course = $DB->get_record('course', array('id' => $facetoface->course));

    // Update user status'
    $users = facetoface_get_attendees($session->id);

    if ($users) {
        // No/deleted session dates
        if (empty($session->datetimeknown)) {

            // Convert any bookings to waitlists
            foreach ($users as $user) {
                if ($user->statuscode == MDL_F2F_STATUS_BOOKED) {

                    if (!facetoface_user_signup($session, $facetoface, $course, $user->discountcode, $user->notificationtype, MDL_F2F_STATUS_WAITLISTED, $user->id)) {
                        // rollback_sql();
                        return false;
                    }
                }
            }

        // Session dates exist
        } else {
            // Convert earliest signed up users to booked, and make the rest waitlisted
            $capacity = $session->capacity;

            // Count number of booked users
            $booked = 0;
            foreach ($users as $user) {
                if ($user->statuscode == MDL_F2F_STATUS_BOOKED) {
                    $booked++;
                }
            }

            // If booked less than capacity, book some new users
            if ($booked < $capacity) {
                foreach ($users as $user) {
                    if ($booked >= $capacity) {
                        break;
                    }

                    if ($user->statuscode == MDL_F2F_STATUS_WAITLISTED) {

                        if (!facetoface_user_signup($session, $facetoface, $course, $user->discountcode, $user->notificationtype, MDL_F2F_STATUS_BOOKED, $user->id)) {
                            // rollback_sql();
                            return false;
                        }
                        $booked++;
                    }
                }
            }
        }
    }

    return $session->id;
}
Example #2
0
            break;

        case 'takeattendance':
            $rows = facetoface_get_attendees($session->id, array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_NO_SHOW,
                MDL_F2F_STATUS_PARTIALLY_ATTENDED, MDL_F2F_STATUS_FULLY_ATTENDED));
            break;

        case 'attendees':
            if ($attendees) {
                $rows = $attendees;
            } else {
                if ($session->datetimeknown) {
                    $rows = facetoface_get_attendees($session->id, array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_NO_SHOW,
                        MDL_F2F_STATUS_PARTIALLY_ATTENDED, MDL_F2F_STATUS_FULLY_ATTENDED));
                } else {
                    $rows = facetoface_get_attendees($session->id, array(MDL_F2F_STATUS_WAITLISTED, MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_NO_SHOW,
                        MDL_F2F_STATUS_PARTIALLY_ATTENDED, MDL_F2F_STATUS_FULLY_ATTENDED));
                }
            }
            break;
    }

    if (!$download) {
        //output any notifications
        if (isset($result_message)) {
            echo $result_message;
        } else {
            $numattendees = facetoface_get_num_attendees($session->id);
            $overbooked = ($numattendees > $session->capacity);
            if (($action == 'attendees') && $overbooked) {
                $overbookedmessage = get_string('capacityoverbookedlong', 'facetoface', array('current' => $numattendees, 'maximum' => $session->capacity));
                echo $OUTPUT->notification($overbookedmessage, 'notifynotice');
Example #3
0
// Face-to-face activity to return to.
// Load data.
if (!($session = facetoface_get_session($s))) {
    print_error('error:incorrectcoursemodulesession', 'facetoface');
}
if (!($facetoface = $DB->get_record('facetoface', array('id' => $session->facetoface)))) {
    print_error('error:incorrectfacetofaceid', 'facetoface');
}
if (!($course = $DB->get_record('course', array('id' => $facetoface->course)))) {
    print_error('error:coursemisconfigured', 'facetoface');
}
if (!($cm = get_coursemodule_from_instance('facetoface', $facetoface->id, $course->id))) {
    print_error('error:incorrectcoursemodule', 'facetoface');
}
// Load attendees.
$attendees = facetoface_get_attendees($session->id);
// list of requests
$requests = facetoface_get_requests($session->id);
// Load cancellations.
$cancellations = facetoface_get_cancellations($session->id);
$context = context_course::instance($course->id);
$contextmodule = context_module::instance($cm->id);
$PAGE->set_context($context);
/*
 * Handle submitted data
 */
if ($form = data_submitted()) {
    if (!confirm_sesskey()) {
        print_error('confirmsesskeybad', 'error');
    }
    $return = "{$CFG->wwwroot}/mod/facetoface/approve.php?s={$s}&backtoallsessions={$backtoallsessions}";
Example #4
0
public function attendence_consolidate($id){
    global $DB;
    $session_single=$DB->get_field('facetoface_sessions','id',array('facetoface'=>$id));
 $user_rows = facetoface_get_attendees($session_single, array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_NO_SHOW,
                MDL_F2F_STATUS_PARTIALLY_ATTENDED, MDL_F2F_STATUS_FULLY_ATTENDED));
 $data_user=array();
 echo "<div class='attandance_fullwidth' style='width:100%;float:left'>";
 foreach($user_rows as $user_row){  
			$list=array();
			$list[]=$user_row->firstname;
			$data_user[]=$list;
			}
			//	table code
		$table = new html_table();	
		$table->head = array('Employee');
		$table->data=$data_user;
        echo '<div class="attendee_name" style="float:left;width:10%">';
		echo html_writer::table($table);
        echo '</div>';
//print_object($rows);
//$session_details_news=$DB->get_records_sql("SELECT * FROM {facetoface_sessions} WHERE facetoface=$id");
$location='';
$sessions = facetoface_get_sessions($id, $location);
//$session_details=$DB->get_records('facetoface_sessions',array('facetoface'=>$id));
$session_count=1;

foreach($sessions as $session_details_new){
    $has_attendees = facetoface_get_num_attendees($session_details_new->id);
    
    if ($has_attendees && $session_details_new->datetimeknown && facetoface_has_session_started($session_details_new, time())) {
    $rows = facetoface_get_attendees($session_details_new->id, array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_NO_SHOW,
                MDL_F2F_STATUS_PARTIALLY_ATTENDED, MDL_F2F_STATUS_FULLY_ATTENDED));
//print_object($rows);			
		$data=array();
        echo '<div class="indiv-attendance" style="float:left;width:10%">';
		echo '<form method="post" action="attendence_consolidated.php" id="formattendence_'.$session_details_new->id.'">';
		foreach($rows as $row){  
			$list=array();
			if($row->statuscode==80){
				
				$status='<input type="hidden" value="'.$row->submissionid.'" name="submmisionid[]"><input type="checkbox" name="status_['.$row->submissionid.']" checked="checked">';
			}
			else if($row->statuscode==100){
				
				$status='<input type="hidden" value="'.$row->submissionid.'" name="submmisionid[]"><input type="checkbox" name="status_['.$row->submissionid.']" >';
			}
			else{
				
				$status='<input type="hidden" value="'.$row->submissionid.'" name="submmisionid[]"><input type="checkbox" name="status_['.$row->submissionid.']" >';
			}
			$list[]=$status;
			
			//$radio='<input type="text" value="'.$row->submissionid.'" name="submmisionid[]"><input type="radio" name="status[]" >';
			
			$data[]=$list;
			}
			//	table code
        $unixtime_to_date = date('d-m-Y', $session_details_new->sessiondates[0]->timestart);
        $unixtime_to_time = date('h:i:s a', $session_details_new->sessiondates[0]->timestart);
		/*added by hameed on 22 dec for attandance completed marking*/
        $attendance_status = $DB->get_field('facetoface_sessions', 'attendence_status', array('id'=>$session_details_new->id));
        if($attendance_status == 1){
            $class = 'green';
        }else{
            $class = 'black';
        }
		$session_name='<span class='.$class.'>Session'.$session_count.'<br>'.$unixtime_to_date.'<br>'.$unixtime_to_time.'</span>';
		$table = new html_table();	
		$table->head = array($session_name);
		$table->data=$data;
		echo html_writer::table($table);
		echo '<input type="hidden" value="'.$session_details_new->id.'" name="session_details">';
		echo '<input type="submit" value="Absent">';
		echo '</form>';
        echo '</div>';
        $session_count++;
        echo html_writer::script("
            $('.attendence_button').click(function(){
           var data = $('#formattendence_$session_details_new->id').serialize();
            //alert(data);
               $.ajax({
                   url: 'attendence_submit.php',
                   type: 'POST',
                   data: data,
                   beforeSend: function(){
                        //alert(data);
                       $('#result').html('Sending....');
                   },
                   success: function(data){
                      alert('Attendence Submitted');
                      //window.location.reload();
                   }
               });
           });
       
       ");
//print_object($session_details_new->id);
}
}
echo "</div>";

 }
Example #5
0
    function test_facetoface_get_attendees() {
        // Test variables.
        $sessionid1 = 1;
        $sessionid2 = 42;

        // Test - for valid sessionid.
        $this->assertTrue((bool)count(facetoface_get_attendees($sessionid1)));

        // Test - for invalid sessionid.
        $this->assertEquals(facetoface_get_attendees($sessionid2), array());
        $this->resetAfterTest(true);

    }