diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index d1ce03b4..3ae00cbd 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -1266,7 +1266,12 @@ class PD_Controller extends REST_Controller { $pd_status = $records['pd_status']; $pd_from_date = $records['pd_from_date']; $pd_to_date = $records['pd_to_date']; - $result_data = $this->PD_Model->PDListwithGlobalFilters($pd_type,$pd_status,$pd_from_date,$pd_to_date); + $pd_city = $records['pd_city']; + $pd_products = $records['pd_products']; + $pd_lender = $records['pd_lender']; + $pd_applicant_name = $records['pd_name']; + $pd_applicant_lender_ref = $records['pd_applicant_id']; + $result_data = $this->PD_Model->PDListwithGlobalFilters($pd_type,$pd_status,$pd_from_date,$pd_to_date,$pd_city,$pd_products,$pd_lender,$pd_applicant_name,$pd_applicant_lender_ref); if(count($result_data)) { @@ -2245,14 +2250,8 @@ class PD_Controller extends REST_Controller { foreach($template_form_details as $template_key => $template_form_detail) { $pd_form_raw_data = $this->PD_Model->getPDFormDetailsWithScoring($pd_id,$template_form_detail['form_id']); - print_r($pd_form_raw_data); - // $pd_form_structured_data = GETPDFORMDETAILS::getPDFormDetailsStructured($pd_form_raw_data,$pd_id,$template_form_detail['form_id']); - - // echo "\n\n"; - // echo $template_form_detail['pd_form_name'].'-- details'; - // print_r($pd_form_structured_data); - // echo "\n\n"; + $pd_score = $this->calculatePDScore($pd_form_raw_data); $transformed_data = $this->transformKeyPairToQuestionAnswers($pd_form_raw_data,$template_form_detail['form_id']); @@ -2322,7 +2321,7 @@ class PD_Controller extends REST_Controller { { if($master['ismaster'] != 1) { - $current_question_array[] = array('question'=>$master['question'],'answer'=>$raw_data['column_value']); + $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']); } else { @@ -2333,7 +2332,7 @@ class PD_Controller extends REST_Controller { if(count($result_data)) { //print_r($result_data); - $current_question_array[] = array('question'=>$master['question'],'answer'=>$result_data[0]['name']); + $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']); } // } @@ -3324,9 +3323,14 @@ class PD_Controller extends REST_Controller { // echo $ci_instant; } - public function calculatePDScore($pdid) + public function calculatePDScore($pd_form_raw_data) { - + echo "calculatePDScore"; + print_r($pd_form_raw_data); + //die(); + echo "calculatePDScore\n\n\n\n"; + + } } \ No newline at end of file diff --git a/api/application/models/PD_Model.php b/api/application/models/PD_Model.php index dd3a0ceb..f8f74591 100644 --- a/api/application/models/PD_Model.php +++ b/api/application/models/PD_Model.php @@ -118,7 +118,7 @@ class PD_Model extends SPARQ_Model { //PD List with Common Filters - public function PDListwithGlobalFilters($pd_type,$pd_status,$pd_from_date,$pd_to_date) + public function PDListwithGlobalFilters($pd_type,$pd_status,$pd_from_date,$pd_to_date,$pd_city,$pd_products,$pd_lender,$pd_applicant_name,$pd_applicant_lender_ref) { $this->db->SELECT('PDTRIGGER.pd_id, PDTRIGGER.fk_lender_id,ENTITY.full_name as lender_full_name,ENTITY.short_name as lender_short_name,PDTRIGGER.fk_entity_billing_id,ENTITYBILLING.billing_name, PDTRIGGER.lender_applicant_id, DATE_FORMAT(PDTRIGGER.pd_date_of_initiation, "%d/%m/%Y") as pd_date_of_initiation, PDTRIGGER.fk_product_id,PRODUCTS.name as product_name,PRODUCTS.abbr as product_abbr, PDTRIGGER.fk_subproduct_id,SUBPRODUCTS.name as subproduct_name,SUBPRODUCTS.abbr as subproduct_abbr, PDTRIGGER.fk_pd_type,PDTYPE.type_name as pd_type_name, PDTRIGGER.pd_status,PDTRIGGER.pd_specific_clarification, DATE_FORMAT(PDTRIGGER.createdon,"%d/%m/%Y %H:%i:%s") as createdon, PDTRIGGER.fk_createdby, DATE_FORMAT(PDTRIGGER.updatedon,"%d/%m/%Y %H:%i:%s") as updatedon, PDTRIGGER.fk_updatedby,concat(USERPROFILE.first_name," ",USERPROFILE.last_name) as createdby,concat(USERPROFILE1.first_name," ",USERPROFILE1.last_name) as updatedby, PDTRIGGER.fk_pd_allocation_type,,PDALLOCATIONTYPE.pd_allocation_type_name, PDTRIGGER.fk_pd_allocated_to,concat(USERPROFILE2.first_name," ",USERPROFILE2.last_name) as pd_allocated_to,PDTRIGGER.executive_id,concat(EXECUTIVE.first_name," ",EXECUTIVE.last_name) as executive_name,PDTRIGGER.central_pd_officer_id,concat(CENTRALOFFICER.first_name," ",CENTRALOFFICER.last_name) as centralofficer,PDTRIGGER.fk_pd_template_id,TEMPLATE.template_name, PDTRIGGER.fk_customer_segment,CUSTOMERSEGMENT.name as customer_segment_name,CUSTOMERSEGMENT.abbr as customer_segment_abbr, PDTRIGGER.pd_officier_final_judgement, PDTRIGGER.pd_agency_id,AGENCY.full_name as agency_name, PDTRIGGER.loan_amount,PDTRIGGER.addressline1,PDTRIGGER.addressline2,PDTRIGGER.addressline3,PDTRIGGER.fk_city,CITY.name as city_name,PDTRIGGER.fk_state,STATE.name as state_name,PDTRIGGER.pincode,PDTRIGGER.pd_contact_person,PDTRIGGER.pd_contact_mobileno,DATE_FORMAT(PDTRIGGER.scheduled_on,"%d/%m/%Y %h:%i %p") as scheduled_on,DATE_FORMAT(PDTRIGGER.completed_on,"%d/%m/%Y %h:%i:%s %p") as completed_on,PDTRIGGER.remarks,PDTRIGGER.is_original_report_created,PDTRIGGER.pd_report_latest_version'); @@ -140,6 +140,7 @@ class PD_Model extends SPARQ_Model { $this->db->JOIN(ENTITY.' as AGENCY','PDTRIGGER.pd_agency_id = AGENCY.entity_id','LEFT'); $this->db->JOIN(STATE.' as STATE','PDTRIGGER.fk_state = STATE.state_id ','LEFT'); $this->db->JOIN(CITY.' as CITY','PDTRIGGER.fk_city = CITY.city_id','LEFT'); + $this->db->JOIN(PDAPPLICANTSDETAILS.' as PDAPPLICANTSDETAILS','PDTRIGGER.pd_id = PDAPPLICANTSDETAILS.fk_pd_id','LEFT'); if(count($pd_type)) { @@ -154,6 +155,32 @@ class PD_Model extends SPARQ_Model { { $this->db->where('pd_date_of_initiation BETWEEN ' ."'$pd_from_date'". ' AND ' ."'$pd_to_date'"); } + + if(count($pd_city)) + { + $this->db->WHERE_IN('fk_city',$pd_city); + } + + if(count($pd_products)) + { + $this->db->WHERE_IN('fk_product_id',$pd_products); + } + + if(count($pd_lender)) + { + $this->db->WHERE_IN('fk_lender_id',$pd_lender); + } + + if($pd_applicant_lender_ref != "" || $pd_applicant_lender_ref != null ) + { + $this->db->WHERE('lender_applicant_id',$pd_applicant_lender_ref); + } + + if($pd_applicant_name != "" || $pd_applicant_name != null ) + { + $this->db->WHERE('PDAPPLICANTSDETAILS.applicant_name',$pd_applicant_name); + } + $this->db->ORDER_BY('PDTRIGGER.pd_id','DESC'); $result_array = $this->db->GET()->result_array(); @@ -708,7 +735,7 @@ class PD_Model extends SPARQ_Model { //Get Forms details - $this->db->SELECT('TEMPLATEFORMS.form_id,PDFORMS.pd_form_name as form_name'); + $this->db->SELECT('TEMPLATEFORMS.form_id,TEMPLATEFORMS.pd_form_order,PDFORMS.pd_form_name as form_name'); $this->db->FROM(TEMPLATEFORMS.' as TEMPLATEFORMS'); $this->db->JOIN(PDFORMS.' as PDFORMS','TEMPLATEFORMS.form_id = PDFORMS.pd_form_id'); $this->db->WHERE('TEMPLATEFORMS.fk_template_id',$template_id); @@ -967,20 +994,51 @@ class PD_Model extends SPARQ_Model { public function getPDFormDetailsWithScoring($pd_id,$pd_form_id = "") { - - + //PDFORMDETAILS.createdon, PDFORMDETAILS.fk_createdby,USERPROFILE.first_name,USERPROFILE.last_name + // echo $pd_form_id; $pd_master_detials = $this->getPDMasterDetails($pd_id); - $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, PDFORMDETAILS.createdon, PDFORMDETAILS.fk_createdby,USERPROFILE.first_name,USERPROFILE.last_name'); + //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->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(USERPROFILE.' as USERPROFILE','PDFORMDETAILS.fk_createdby = USERPROFILE.userid','LEFT'); + $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(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'); + + + + + + //$this->db->JOIN(USERPROFILE.' as USERPROFILE','PDFORMDETAILS.fk_createdby = USERPROFILE.userid','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->ORDER_BY('PDFORMDETAILS.pd_form_detail_id'); $form_details = $this->db->GET()->result_array(); return $form_details;