PD SCORE3

This commit is contained in:
velz 2018-12-19 17:50:26 +05:30
parent 444b3cc4dd
commit b58897aab8
2 changed files with 53 additions and 31 deletions

View File

@ -2270,8 +2270,8 @@ class PD_Controller extends REST_Controller {
{
$pd_form_raw_data = $this->PD_Model->getPDFormDetailsWithScoring($pd_id,$template_form_detail['form_id']);
$pd_score = $this->calculatePDScore($pd_form_raw_data);
$transformed_data = $this->transformKeyPairToQuestionAnswers($pd_form_raw_data,$template_form_detail['form_id']);
$pd_form_raw_data_with_score = $this->calculatePDScore($pd_form_raw_data);
$transformed_data = $this->transformKeyPairToQuestionAnswers($pd_form_raw_data_with_score,$template_form_detail['form_id']);
$final_data_to_response['question_answers']['form_details'][] = array('name' =>[$template_form_detail['pd_form_name']],'details' => $transformed_data);
@ -2327,8 +2327,10 @@ class PD_Controller extends REST_Controller {
$fields = array('question', 'key', 'ismaster', 'master_name');
$where_condition_array = array('fk_form_id' => $form_id,'isactive' => 1);
$question_key_master_data = $this->PD_Model->selectCustomRecords($fields,$where_condition_array,QUESTIONKEYMAPPING);
//print_r($pd_form_raw_data);
//print_r($pd_form_raw_data);die();
$current_question_array = array();
if(count($pd_form_raw_data))
{
foreach($pd_form_raw_data as $raw_key => $raw_data)
{
$que_key = $raw_data['column_name'];
@ -2340,7 +2342,7 @@ class PD_Controller extends REST_Controller {
{
if($master['ismaster'] != 1)
{
$current_question_array[] = array('category_weightage' => $raw_data['category_weightage'],'question_weightage' => $raw_data['question_weightage'],'answer_score' => $raw_data['score'],'question'=>$master['question'],'answer'=>$raw_data['column_value']);
$current_question_array[] = array('category_id'=>$raw_data['fk_category_id'],'category_name'=>$raw_data['category_name'],'category_weightage' => $raw_data['category_weightage'],'question_weightage' => $raw_data['question_weightage'],'answer_score' => $raw_data['score'],'max_score' => $raw_data['max_score'],'question'=>$master['question'],'answer'=>$raw_data['column_value'],'actual_score'=>$raw_data['actual_score'],'exact_score'=>$raw_data['exact_score']);
}
else
{
@ -2351,7 +2353,7 @@ class PD_Controller extends REST_Controller {
if(count($result_data))
{
//print_r($result_data);
$current_question_array[] = array('category_weightage' => $raw_data['category_weightage'],'question_weightage' => $raw_data['question_weightage'],'answer_score' => $raw_data['score'],'question'=>$master['question'],'answer'=>$result_data[0]['name']);
$current_question_array[] = array('category_id'=>$raw_data['fk_category_id'],'category_name'=>$raw_data['category_name'],'category_weightage' => $raw_data['category_weightage'],'question_weightage' => $raw_data['question_weightage'],'answer_score' => $raw_data['score'],'max_score' => $raw_data['max_score'],'question'=>$master['question'],'answer'=>$result_data[0]['name'],'actual_score'=>$raw_data['actual_score'],'exact_score'=>$raw_data['exact_score']);
}
//
}
@ -2359,6 +2361,7 @@ class PD_Controller extends REST_Controller {
}
}
}
}
return $current_question_array ;
@ -3342,12 +3345,37 @@ class PD_Controller extends REST_Controller {
// echo $ci_instant;
}
public function calculatePDScore($pd_form_raw_data)
public function calculatePDScore($data)
{
echo "calculatePDScore";
print_r($pd_form_raw_data);
//die();
echo "calculatePDScore\n\n\n\n";
$pd_form_raw_data = $data;
$actual_score = 0;
$exact_score = 0;
foreach($pd_form_raw_data as $raw_key => $raw_data)
{
if($raw_data['category_weightage'] != '' && $raw_data['question_weightage'] != '' && $raw_data['score'] != '' && $raw_data['max_score'] != '')
{
$pd_form_raw_data[$raw_key]['actual_score'] = (($raw_data['category_weightage']/100) * ($raw_data['question_weightage']/100) * $raw_data['max_score']);
$pd_form_raw_data[$raw_key]['exact_score'] = (($raw_data['category_weightage']/100) * ($raw_data['question_weightage']/100) * $raw_data['score']);
// $actual_score = $actual_score + ($raw_data['category_weightage'] * $raw_data['question_weightage'] * $raw_data['max_score']);
// $exact_score = $exact_score + ($raw_data['category_weightage'] * $raw_data['question_weightage'] * $raw_data['score']);
}
else
{
$pd_form_raw_data[$raw_key]['actual_score'] = null;
$pd_form_raw_data[$raw_key]['exact_score'] = null;
}
}
return $pd_form_raw_data;
}

View File

@ -999,31 +999,13 @@ class PD_Model extends SPARQ_Model {
// echo $pd_form_id;
$pd_master_detials = $this->getPDMasterDetails($pd_id);
//SUB QUERY START
$this->db->SELECT('max(score)');
$this->db->FROM(PDFORMDETAILS.' as PDFORMDETAILS');
$this->db->JOIN(SCORECARDQUESTIONS.' as SCORECARDQUESTIONS','PDFORMDETAILS.column_name = SCORECARDQUESTIONS.fk_key AND PDFORMDETAILS.fk_form_id = SCORECARDQUESTIONS.fk_form_id AND SCORECARDQUESTIONS.fk_template_id = '.$pd_master_detials[0]['fk_pd_template_id'].' AND SCORECARDQUESTIONS.isactive = 1','left');
$this->db->JOIN(SCORECARDANSWERS.' as SCORECARDANSWERS','SCORECARDQUESTIONS.fk_template_id = '.$pd_master_detials[0]['fk_pd_template_id'].' AND SCORECARDQUESTIONS.score_question_id = SCORECARDANSWERS.fk_score_question_id AND SCORECARDQUESTIONS.isactive = 1 AND SCORECARDANSWERS.isactive = 1','left');
$this->db->WHERE('PDFORMDETAILS.fk_pd_id',$pd_id);
if($pd_form_id != "")
{
$this->db->WHERE('PDFORMDETAILS.fk_form_id',$pd_form_id);
}
$this->db->WHERE('PDFORMDETAILS.isactive',1);
//$this->db->GROUP_BY('SCORECARDQUESTIONS.score_question_id');
$max_score = $this->db->get_compiled_select();
//SUB QUERY END
$this->db->SELECT('PDFORMDETAILS.fk_pd_id,PDFORMDETAILS.fk_form_id,PDFORMDETAILS.iter_column_name,PDFORMDETAILS.iter_sub_column_name,PDFORMDETAILS.iteration, PDFORMDETAILS.column_name, PDFORMDETAILS.column_id, PDFORMDETAILS.column_value,TEMPLATECATEGORYWEIGHTAGE.weightage as category_weightage,TEMPLATECATEGORYWEIGHTAGE.fk_question_category_id,QUESTIONKEYMAPPING.fk_category_id,SCORECARDQUESTIONS.weightage as question_weightage,SCORECARDQUESTIONS.calc_type,SCORECARDANSWERS.score,('.$max_score.') as max_score');
$this->db->SELECT('PDFORMDETAILS.fk_pd_id,PDFORMDETAILS.fk_form_id,PDFORMDETAILS.iter_column_name,PDFORMDETAILS.iter_sub_column_name,PDFORMDETAILS.iteration, PDFORMDETAILS.column_name, PDFORMDETAILS.column_id, PDFORMDETAILS.column_value,TEMPLATECATEGORYWEIGHTAGE.weightage as category_weightage,TEMPLATECATEGORYWEIGHTAGE.fk_question_category_id,QUESTIONKEYMAPPING.fk_category_id,QUESTIONCATEGORY.category_name,SCORECARDQUESTIONS.score_question_id,SCORECARDQUESTIONS.weightage as question_weightage,SCORECARDQUESTIONS.calc_type,SCORECARDANSWERS.score');
$this->db->FROM(PDFORMDETAILS.' as PDFORMDETAILS');
$this->db->JOIN(TEMPLATECATEGORYWEIGHTAGE.' as TEMPLATECATEGORYWEIGHTAGE','TEMPLATECATEGORYWEIGHTAGE.fk_template_id ='.$pd_master_detials[0]['fk_pd_template_id']);
$this->db->JOIN(QUESTIONKEYMAPPING.' as QUESTIONKEYMAPPING','TEMPLATECATEGORYWEIGHTAGE.fk_question_category_id = QUESTIONKEYMAPPING.fk_category_id AND QUESTIONKEYMAPPING.fk_form_id = PDFORMDETAILS.fk_form_id AND TEMPLATECATEGORYWEIGHTAGE.isactive = 1 AND QUESTIONKEYMAPPING.isactive = 1 AND QUESTIONKEYMAPPING.key = PDFORMDETAILS.column_name','LEFT');
$this->db->JOIN(QUESTIONCATEGORY.' as QUESTIONCATEGORY','QUESTIONKEYMAPPING.fk_category_id = QUESTIONCATEGORY.question_category_id AND TEMPLATECATEGORYWEIGHTAGE.fk_question_category_id = QUESTIONCATEGORY.question_category_id','LEFT');
$this->db->JOIN(SCORECARDQUESTIONS.' as SCORECARDQUESTIONS','PDFORMDETAILS.column_name = SCORECARDQUESTIONS.fk_key AND PDFORMDETAILS.fk_form_id = SCORECARDQUESTIONS.fk_form_id AND SCORECARDQUESTIONS.fk_template_id = '.$pd_master_detials[0]['fk_pd_template_id'].' AND SCORECARDQUESTIONS.isactive = 1','left');
$this->db->JOIN(SCORECARDANSWERS.' as SCORECARDANSWERS','PDFORMDETAILS.column_value = SCORECARDANSWERS.answer AND SCORECARDQUESTIONS.fk_template_id = '.$pd_master_detials[0]['fk_pd_template_id'].' AND SCORECARDQUESTIONS.score_question_id = SCORECARDANSWERS.fk_score_question_id AND SCORECARDQUESTIONS.isactive = 1 AND SCORECARDANSWERS.isactive = 1','left');
@ -1041,6 +1023,18 @@ class PD_Model extends SPARQ_Model {
$this->db->WHERE('PDFORMDETAILS.isactive',1);
$this->db->ORDER_BY('PDFORMDETAILS.pd_form_detail_id');
$form_details = $this->db->GET()->result_array();
if(count($form_details))
{
foreach($form_details as $form_details_key => $form_detail)
{
// if($form_detail['score_question_id'] != null || $form_detail['score_question_id'] != '')
// {
$max_score = $this->db->SELECT('max(score) as max_score')->FROM(SCORECARDANSWERS)->WHERE('fk_score_question_id',$form_detail['score_question_id'])->GET()->result_array();
$form_details[$form_details_key]['max_score'] = $max_score[0]['max_score'];
// }
}
}
return $form_details;
}