Beispiel #1
0
/**
 * this saves the temporary saved values permanently
 *
 * @global object
 * @param object $evaluationcompletedtmp the temporary completed
 * @param object $evaluationcompleted the target completed
 * @param int $userid
 * @return int the id of the completed
 */
function evaluation_save_tmp_values($evaluationcompletedtmp, $evaluationcompleted, $userid) {
    global $DB;
    $tmpcplid = $evaluationcompletedtmp->id;
    //print_object($evaluationcompletedtmp);exit;
    $evaluation_instance = $DB->get_record('local_evaluation',array('id'=>$evaluationcompletedtmp->evaluation));
    if ($evaluationcompleted) {
        //first drop all existing values
        $DB->delete_records('evaluation_value', array('completed' => $evaluationcompleted->id));
        //update the current completed
        $evaluationcompleted->timemodified = time();
        $DB->update_record('evaluation_completed', $evaluationcompleted);
    } else {
        $evaluationcompleted = clone($evaluationcompletedtmp);
        $evaluationcompleted->id = '';
        $evaluationcompleted->userid = $userid;
        $evaluationcompleted->timemodified = time();
        $evaluationcompleted->id = $DB->insert_record('evaluation_completed', $evaluationcompleted);
    }
    
    
    //save all the new values from evaluation_valuetmp
    //get all values of tmp-completed
    $params = array('completed' => $evaluationcompletedtmp->id);
    if (!$values = $DB->get_records('evaluation_valuetmp', $params)) {
        return false;
    }
    foreach ($values as $value) {
        //check if there are depend items
        $item = $DB->get_record('evaluation_item', array('id' => $value->item));
        if ($item->dependitem > 0) {
            $check = evaluation_compare_item_value($tmpcplid, $item->dependitem, $item->dependvalue, true);
        } else {
            $check = true;
        }
        if ($check) {
            unset($value->id);
            $value->completed = $evaluationcompleted->id;
            $DB->insert_record('evaluation_value', $value);
        }
    }
       if($evaluationcompletedtmp->anonymous_response==2 && $evaluation_instance->evaluationtype==3){
     
       $user_response = $DB->get_field_sql("select avg(ev.value) from {evaluation_value} as ev
                                               JOIN {evaluation_completed} as ec ON ev.completed=ec.id
                                               JOIN {evaluation_item} as ei ON ei.id=ev.item AND ei.typ='multichoicerated'
                                              WHERE ec.evaluation=$evaluation_instance->id AND ec.userid=$userid");

       
        if($user_response)
         $timemodified=time(); 
        $DB->execute('update {local_batch_users} SET trainerfeedback='.$user_response.',timemodified='.$timemodified.' WHERE f2fid='.$evaluation_instance->classid.' AND userid='.$userid.'');
        $user_avg_response = $DB->get_field_sql("select avg(bu.trainers_feedbackscore) from {local_batch_users} as bu JOIN {facetoface} as f ON bu.f2fid=f.id AND bu.f2fid=$evaluation_instance->classid AND bu.trainers_feedbackscore!=0");
        if($user_avg_response)
        $DB->execute('update {facetoface} SET trainers_feedback='.$user_avg_response.' WHERE id='.$evaluation_instance->classid.'');
    }elseif($evaluation_instance->evaluationtype==1){
        $user_response = $DB->get_field_sql("select avg(ev.value) from {evaluation_value} as ev
                                               JOIN {evaluation_completed} as ec ON ev.completed=ec.id
                                               JOIN {evaluation_item} as ei ON ei.id=ev.item AND ei.typ='multichoicerated'
                                              WHERE ec.evaluation=$evaluation_instance->id AND ec.userid=$userid");

        if($user_response)
         $timemodified=time(); 
        //$DB->execute('update {local_batch_users} SET prefeedback='.$user_response.' WHERE f2fid='.$evaluation_instance->classid.' AND userid='.$userid.'');
         $DB->execute('update {local_batch_users} SET prefeedback='.$user_response.',timemodified='.$timemodified.' WHERE f2fid='.$evaluation_instance->classid.' AND userid='.$evaluationcompletedtmp->employee_id.' AND supervisorid='.$userid.'');
    }
    elseif($evaluation_instance->evaluationtype==2){
        $user_response = $DB->get_field_sql("select avg(ev.value) from {evaluation_value} as ev
                                               JOIN {evaluation_completed} as ec ON ev.completed=ec.id
                                               JOIN {evaluation_item} as ei ON ei.id=ev.item AND ei.typ='multichoicerated'
                                              WHERE ec.evaluation=$evaluation_instance->id AND ec.userid=$userid");

        if($user_response)
         $timemodified=time(); 
        //$DB->execute('update {local_batch_users} SET postfeedback='.$user_response.' WHERE f2fid='.$evaluation_instance->classid.' AND userid='.$userid.'');
        $DB->execute('update {local_batch_users} SET postfeedback='.$user_response.',timemodified='.$timemodified.' WHERE f2fid='.$evaluation_instance->classid.' AND userid='.$evaluationcompletedtmp->employee_id.' AND supervisorid='.$userid.'');
    }
    
    //drop all the tmpvalues
    $DB->delete_records('evaluation_valuetmp', array('completed' => $tmpcplid));
    $DB->delete_records('evaluation_completedtmp', array('id' => $tmpcplid));
    return $evaluationcompleted->id;
}
            $itemnr = $DB->count_records_select('evaluation_item', $select, $params);
            $lastbreakposition = 0;
            $align = right_to_left() ? 'right' : 'left';

            foreach ($evaluationitems as $evaluationitem) {
                if (!isset($startitem)) {
                    //avoid showing double pagebreaks
                    if ($evaluationitem->typ == 'pagebreak') {
                        continue;
                    }
                    $startitem = $evaluationitem;
                }

                if ($evaluationitem->dependitem > 0) {
                    //chech if the conditions are ok
                    $fb_compare_value = evaluation_compare_item_value($evaluationcompletedtmp->id, $evaluationitem->dependitem, $evaluationitem->dependvalue, true);
                    if (!isset($evaluationcompletedtmp->id) OR ! $fb_compare_value) {
                        $lastitem = $evaluationitem;
                        $lastbreakposition = $evaluationitem->position;
                        continue;
                    }
                }

                if ($evaluationitem->dependitem > 0) {
                    $dependstyle = ' evaluation_complete_depend';
                } else {
                    $dependstyle = '';
                }

                echo $OUTPUT->box_start('evaluation_item_box_' . $align . $dependstyle);
                $value = '';
Beispiel #3
0
/**
 * this saves the temporary saved values permanently
 *
 * @global object
 * @param object $evaluationcompletedtmp the temporary completed
 * @param object $evaluationcompleted the target completed
 * @param int $userid
 * @return int the id of the completed
 */
function evaluation_save_tmp_values($evaluationcompletedtmp, $evaluationcompleted, $userid) {
    global $DB;

    $tmpcplid = $evaluationcompletedtmp->id;
    if ($evaluationcompleted) {
        //first drop all existing values
        $DB->delete_records('evaluation_value', array('completed' => $evaluationcompleted->id));
        //update the current completed
        $evaluationcompleted->timemodified = time();
        $DB->update_record('evaluation_completed', $evaluationcompleted);
    } else {
        $evaluationcompleted = clone($evaluationcompletedtmp);
        $evaluationcompleted->id = '';
        $evaluationcompleted->userid = $userid;
        $evaluationcompleted->timemodified = time();
        $evaluationcompleted->id = $DB->insert_record('evaluation_completed', $evaluationcompleted);
    }

    //save all the new values from evaluation_valuetmp
    //get all values of tmp-completed
    $params = array('completed' => $evaluationcompletedtmp->id);
    if (!$values = $DB->get_records('evaluation_valuetmp', $params)) {
        return false;
    }
    foreach ($values as $value) {
        //check if there are depend items
        $item = $DB->get_record('evaluation_item', array('id' => $value->item));
        if ($item->dependitem > 0) {
            $check = evaluation_compare_item_value($tmpcplid, $item->dependitem, $item->dependvalue, true);
        } else {
            $check = true;
        }
        if ($check) {
            unset($value->id);
            $value->completed = $evaluationcompleted->id;
            $DB->insert_record('evaluation_value', $value);
        }
    }
    //drop all the tmpvalues
    $DB->delete_records('evaluation_valuetmp', array('completed' => $tmpcplid));
    $DB->delete_records('evaluation_completedtmp', array('id' => $tmpcplid));
    return $evaluationcompleted->id;
}