/** * 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 = '';
/** * 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; }