From 03c8a7a689be5fa1d3655e1a87ca97cd57e094f5 Mon Sep 17 00:00:00 2001 From: velz Date: Sat, 16 Mar 2019 22:46:37 +0530 Subject: [PATCH] SCORE IMPROVED --- api/application/config/autoload.php | 2 +- api/application/controllers/PD_Controller.php | 41 ++++--- api/application/docs/sample.pdf | Bin 46867 -> 59697 bytes .../{myuitil_helper.php => myutil_helper.php} | 20 +++- api/application/helpers/pdscore_helper.php | 97 ++++++++++------ api/application/models/PD_Model.php | 11 ++ api/application/views/js/phantomchart.js | 2 +- .../views/report_templates/JSONTOREPORT.php | 105 +++++++++++++----- .../views/report_templates/chart.png | Bin 19444 -> 19178 bytes 9 files changed, 196 insertions(+), 82 deletions(-) rename api/application/helpers/{myuitil_helper.php => myutil_helper.php} (90%) diff --git a/api/application/config/autoload.php b/api/application/config/autoload.php index 616441b4..a5e66d26 100644 --- a/api/application/config/autoload.php +++ b/api/application/config/autoload.php @@ -89,7 +89,7 @@ $autoload['drivers'] = array(); | | $autoload['helper'] = array('url', 'file'); */ -$autoload['helper'] = array('url','file','form', 'jwt', 'authorization', 'date','mylog','myocr','mydb','pdalerts','myuitil','myhttpclient','pdscore','businessform','otherincomeform','financialform','neighbourreferencecheckform', 'otherfamilyform', 'assetsform','stockform', 'bankingform','sms_gupshup'); +$autoload['helper'] = array('url','file','form', 'jwt', 'authorization', 'date','mylog','myocr','mydb','pdalerts','myutil','myhttpclient','pdscore','businessform','otherincomeform','financialform','neighbourreferencecheckform', 'otherfamilyform', 'assetsform','stockform', 'bankingform','sms_gupshup'); /* | ------------------------------------------------------------------- diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index a681887b..c5e47b6a 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -26,6 +26,7 @@ class PD_Controller extends REST_Controller { $this->load->library('AWS_SNS'); $this->load->helper('GETPDFORMDETAILS'); $this->load->helper('GETPROCESSEDJSON'); + $this->load->helper('MYUTIL'); $this->load->library('pdfgenerator'); $this->load->library('excel'); $this->load->library('phpmailer_library'); @@ -4319,6 +4320,7 @@ class PD_Controller extends REST_Controller { public function codeigniterViewTest_post() { + $records = $this->post('records'); $pdid = $records['pd_id']; $is_regenerate = 0; @@ -4330,9 +4332,19 @@ class PD_Controller extends REST_Controller { $data['pd_master_details'] = $this->PD_Model->getPDMasterDetails($pdid); $data['applicants_details'] = $this->PD_Model->getApplicantsDetails($pdid); $data['pd_additional_requirements'] = $this->PD_Model->getPDAdditionalRequirements($pdid); + $data['score_questions_display'] = $this->PD_Model->getScoreableQuestionToDispaly($pdid); $data['pd_score'] = $this->calculateScore($pdid); + //print_r($data['score_questions_display']); //print_r($data['pd_score']); - //die(); + // foreach($data['pd_score']['general'] as $key => $value) + // { + // // echo '\n\n'; + // MYUTIL::findQuestionByKey($data['score_questions_display'],$key); + // // echo '\n\n'; + // // echo $key; + // // echo "***********************"; + // } + // die(); $score_for_chart = $data['pd_score']['score_summary']['overall_score']['final_score'] ? round($data['pd_score']['score_summary']['overall_score']['final_score'],2) : 0; //echo $score_for_chart; @@ -5390,7 +5402,7 @@ class PD_Controller extends REST_Controller { //seperate PD Scorable quesitons from JSON $score_questions = $this->seperateScoreQuestions($form_data,$pd_master_details[0]['is_otp_done']); - // print_r($score_questions); + //print_r($score_questions);die(); // echo "###################################"; //Get Pesrsonal Assets Grid Masters Details $this->db->SELECT('*'); @@ -5441,27 +5453,28 @@ class PD_Controller extends REST_Controller { #####General Form Questions######## $general_form = (json_decode($form_data[18][0]['processed_json'],true)); // echo "seperateScoreQuestions"; - // print_r($general_form);die(); + //print_r($general_form);die(); // - QNO (1.7) OTP AUTHENDICATION DONE $score_questions['general']['otp_done'] = $OTP ? 'Yes': 'No'; // 1 - QNO(1.1) - Is Person Met, One Of the Applicant's $qualification_temp_array = array(); + + $score_questions['general']['person_met_is_applicant'] = 'no'; foreach($general_form['individuals'] as $person) { - array_merge($qualification_temp_array,array($person['qualification'])); + //print_r($person); + $qualification_temp_array = array_merge($qualification_temp_array,array($person['qualification'])); if($person['is_applicant'] == true && $person['is_person_met'] == true) { + //echo $person['applicant_name']; $score_questions['general']['person_met_is_applicant'] = 'yes'; - } - else - { - $score_questions['general']['person_met_is_applicant'] = 'no'; - } - + } } $min = count($qualification_temp_array) ? min($qualification_temp_array) : 6; + //print_r($qualification_temp_array);die(); + // 2 - QNO(1.8) - Qualification $score_questions['general']['qualification'] = $min; @@ -5566,7 +5579,7 @@ class PD_Controller extends REST_Controller { #####supplier Form Questions######## - $supplier_form = (json_decode($form_data[1][0]['processed_json'],true)); + $supplier_form = isset($form_data[1][0]['processed_json'])?(json_decode($form_data[1][0]['processed_json'],true)):array(); //print_r($supplier_form); if(count($supplier_form)) { @@ -5603,7 +5616,7 @@ class PD_Controller extends REST_Controller { #####client Form Questions######## - $client_form = (json_decode($form_data[2][0]['processed_json'],true)); + $client_form = isset($form_data[2][0]['processed_json'])?(json_decode($form_data[2][0]['processed_json'],true)):array(); //print_r($client_form);die(); if(count($client_form)) { @@ -5649,7 +5662,7 @@ class PD_Controller extends REST_Controller { #####End of client Form Questions######## #####Stock Form Questions######## - $stock_form = (json_decode($form_data[11][0]['processed_json'],true)); + $stock_form = isset($form_data[11][0]['processed_json'])?(json_decode($form_data[11][0]['processed_json'],true)):array(); //print_r($stock_form); if(count($stock_form)) { @@ -5659,6 +5672,8 @@ class PD_Controller extends REST_Controller { } else { + $score_questions['business']['stock_raw_material_enough'] = 'Not Applicable'; + $score_questions['business']['stock_finished_goods_enough'] = 'Not Applicable'; $score_questions['general']['value_of_other_assets'] = 'Not Applicable'; } #####End of Stock Form Questions######## diff --git a/api/application/docs/sample.pdf b/api/application/docs/sample.pdf index c5dec94302e627ab47ef8841b37b5a578a71434d..dc33a2cd24a80a1171a9b81f7468f9964d554940 100644 GIT binary patch delta 32052 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 TmRNlJLPC64K%k6@EY|-4@=%S7 diff --git a/api/application/helpers/myuitil_helper.php b/api/application/helpers/myutil_helper.php similarity index 90% rename from api/application/helpers/myuitil_helper.php rename to api/application/helpers/myutil_helper.php index 7a76aa68..9bbdfe01 100644 --- a/api/application/helpers/myuitil_helper.php +++ b/api/application/helpers/myutil_helper.php @@ -1,6 +1,6 @@ $value) + { + //echo $value['key'].'--'.$qkey; + + if(!strcmp(trim($value['key']),trim($qkey))) + { + // echo "\n"; + // echo 'IF'.$value['key'].'--'.$qkey; + return $value['question']; + } + } + + } } ?> \ No newline at end of file diff --git a/api/application/helpers/pdscore_helper.php b/api/application/helpers/pdscore_helper.php index 03d6361c..9584ad2b 100644 --- a/api/application/helpers/pdscore_helper.php +++ b/api/application/helpers/pdscore_helper.php @@ -93,7 +93,7 @@ class PDSCORE $person_met_is_applicant_max_score = ($l1_general/100) * ($person_met_is_applicant_L2/100) * max($person_met_is_applicant); - $score_questions['general']['person_met_is_applicant'] = array('l1_weightage' => $l1_general,'l2_weightage' => $person_met_is_applicant_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['person_met_is_applicant'],'attributed_score' => $person_met_is_applicant_actual_score, 'max_score' => $person_met_is_applicant_max_score,'score_band'=>($person_met_is_applicant[$score_questions['general']['person_met_is_applicant']])); + $score_questions['general']['person_met_is_applicant'] = array('l1_weightage' => $l1_general,'l2_weightage' => $person_met_is_applicant_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['person_met_is_applicant'],'attributed_score' => $person_met_is_applicant_actual_score, 'max_score' => $person_met_is_applicant_max_score,'score_band'=>($person_met_is_applicant[$score_questions['general']['person_met_is_applicant']]),'max_score_band' => max($person_met_is_applicant)); //######1.2 pd_location_approach @@ -101,21 +101,21 @@ class PDSCORE $pd_location_approach_max_score = ($l1_general/100) * ($pd_location_approach_L2/100) * max($pd_location_approach); - $score_questions['general']['pd_location_approach'] = array('l1_weightage' => $l1_general,'l2_weightage' => $pd_location_approach_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['pd_location_approach'],'attributed_score' => $pd_location_approach_actual_score, 'max_score' => $pd_location_approach_max_score,'score_band'=>$pd_location_approach[$score_questions['general']['pd_location_approach']]); + $score_questions['general']['pd_location_approach'] = array('l1_weightage' => $l1_general,'l2_weightage' => $pd_location_approach_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['pd_location_approach'],'attributed_score' => $pd_location_approach_actual_score, 'max_score' => $pd_location_approach_max_score,'score_band'=>$pd_location_approach[$score_questions['general']['pd_location_approach']],'max_score_band' => max($pd_location_approach)); //######1.3 comment_locality $comment_locality_actual_score = ($l1_general/100) * ($comment_locality_L2/100) * $comment_locality[$score_questions['general']['comment_locality']]; $comment_locality_max_score = ($l1_general/100) * ($comment_locality_L2/100) * max($comment_locality); - $score_questions['general']['comment_locality'] = array('l1_weightage' => $l1_general,'l2_weightage' => $comment_locality_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['comment_locality'],'attributed_score' => $comment_locality_actual_score, 'max_score' => $comment_locality_max_score,'score_band'=>$comment_locality[$score_questions['general']['comment_locality']]); + $score_questions['general']['comment_locality'] = array('l1_weightage' => $l1_general,'l2_weightage' => $comment_locality_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['comment_locality'],'attributed_score' => $comment_locality_actual_score, 'max_score' => $comment_locality_max_score,'score_band'=>$comment_locality[$score_questions['general']['comment_locality']],'max_score_band' => max($comment_locality)); //######1.4 customer_behaviour $customer_behaviour_actual_score = ($l1_general/100) * ($customer_behaviour_L2/100) * $customer_behaviour[$score_questions['general']['customer_behaviour']]; $customer_behaviour_max_score = ($l1_general/100) * ($customer_behaviour_L2/100) * max($customer_behaviour); - $score_questions['general']['customer_behaviour'] = array('l1_weightage' => $l1_general,'l2_weightage' => $customer_behaviour_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['customer_behaviour'],'attributed_score' => $customer_behaviour_actual_score, 'max_score' => $customer_behaviour_max_score,'score_band'=>$customer_behaviour[$score_questions['general']['customer_behaviour']]); + $score_questions['general']['customer_behaviour'] = array('l1_weightage' => $l1_general,'l2_weightage' => $customer_behaviour_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['customer_behaviour'],'attributed_score' => $customer_behaviour_actual_score, 'max_score' => $customer_behaviour_max_score,'score_band'=>$customer_behaviour[$score_questions['general']['customer_behaviour']],'max_score_band' => max($customer_behaviour)); //######1.5 neibourhood_check_as_per_pd_officer @@ -123,21 +123,21 @@ class PDSCORE $neibourhood_check_as_per_pd_officer_max_score = ($l1_general/100) * ($neibourhood_check_as_per_pd_officer_L2/100) * max($neibourhood_check_as_per_pd_officer); - $score_questions['general']['neibourhood_check_as_per_pd_officer'] = array('l1_weightage' => $l1_general,'l2_weightage' => $neibourhood_check_as_per_pd_officer_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['neibourhood_check_as_per_pd_officer'],'attributed_score' => $neibourhood_check_as_per_pd_officer_actual_score, 'max_score' => $neibourhood_check_as_per_pd_officer_max_score,'score_band'=>$neibourhood_check_as_per_pd_officer[$score_questions['general']['neibourhood_check_as_per_pd_officer'] != "" || $score_questions['general']['neibourhood_check_as_per_pd_officer'] != null ?$score_questions['general']['neibourhood_check_as_per_pd_officer']: "Negative" ]); + $score_questions['general']['neibourhood_check_as_per_pd_officer'] = array('l1_weightage' => $l1_general,'l2_weightage' => $neibourhood_check_as_per_pd_officer_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['neibourhood_check_as_per_pd_officer'],'attributed_score' => $neibourhood_check_as_per_pd_officer_actual_score, 'max_score' => $neibourhood_check_as_per_pd_officer_max_score,'score_band'=>$neibourhood_check_as_per_pd_officer[$score_questions['general']['neibourhood_check_as_per_pd_officer'] != "" || $score_questions['general']['neibourhood_check_as_per_pd_officer'] != null ?$score_questions['general']['neibourhood_check_as_per_pd_officer']: "Negative" ],'max_score_band' => max($neibourhood_check_as_per_pd_officer)); //######1.6 was_the_company_name_board_sighted $was_the_company_name_board_sighted_actual_score = ($l1_general/100) * ($was_the_company_name_board_sighted_L2/100) * $was_the_company_name_board_sighted[$score_questions['general']['was_the_company_name_board_sighted']]; $was_the_company_name_board_sighted_max_score = ($l1_general/100) * ($was_the_company_name_board_sighted_L2/100) * max($was_the_company_name_board_sighted); - $score_questions['general']['was_the_company_name_board_sighted'] = array('l1_weightage' => $l1_general,'l2_weightage' => $was_the_company_name_board_sighted_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['was_the_company_name_board_sighted'],'attributed_score' => $was_the_company_name_board_sighted_actual_score, 'max_score' => $was_the_company_name_board_sighted_max_score,'score_band'=>$was_the_company_name_board_sighted[$score_questions['general']['was_the_company_name_board_sighted']]); + $score_questions['general']['was_the_company_name_board_sighted'] = array('l1_weightage' => $l1_general,'l2_weightage' => $was_the_company_name_board_sighted_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['was_the_company_name_board_sighted'],'attributed_score' => $was_the_company_name_board_sighted_actual_score, 'max_score' => $was_the_company_name_board_sighted_max_score,'score_band'=>$was_the_company_name_board_sighted[$score_questions['general']['was_the_company_name_board_sighted']],'max_score_band' => max($was_the_company_name_board_sighted)); //######1.7 otp_done $otp_done_actual_score = ($l1_general/100) * ($otp_done_L2/100) * $otp_done[$score_questions['general']['otp_done']]; $otp_done_max_score = ($l1_general/100) * ($otp_done_L2/100) * max($otp_done); - $score_questions['general']['otp_done'] = array('l1_weightage' => $l1_general,'l2_weightage' => $otp_done_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['otp_done'],'attributed_score' => $otp_done_actual_score, 'max_score' => $otp_done_max_score,'score_band'=>$otp_done[$score_questions['general']['otp_done']]); + $score_questions['general']['otp_done'] = array('l1_weightage' => $l1_general,'l2_weightage' => $otp_done_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['otp_done'],'attributed_score' => $otp_done_actual_score, 'max_score' => $otp_done_max_score,'score_band'=>$otp_done[$score_questions['general']['otp_done']],'max_score_band' => max($otp_done)); //######1.8 qualification $qualification_actual_score = ($l1_general/100) * ($qualification_L2/100) * $qualification['id_score'][$score_questions['general']['qualification']]; @@ -145,32 +145,55 @@ class PDSCORE $qualification_max_score = ($l1_general/100) * ($qualification_L2/100) * max($qualification['id_score']); $keys = array_keys($qualification['name_score']); - $score_questions['general']['qualification'] = array('l1_weightage' => $l1_general,'l2_weightage' => $qualification_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $keys[($score_questions['general']['qualification']-1)],'attributed_score' => $qualification_actual_score, 'max_score' => $qualification_max_score,'score_band'=>$qualification['id_score'][$score_questions['general']['qualification']]); + $score_questions['general']['qualification'] = array('l1_weightage' => $l1_general,'l2_weightage' => $qualification_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $keys[($score_questions['general']['qualification']-1)],'attributed_score' => $qualification_actual_score, 'max_score' => $qualification_max_score,'score_band'=>$qualification['id_score'][$score_questions['general']['qualification']],'max_score_band' => max($qualification['id_score'])); //######1.9 value of assets as a % of Loan Amount + $asset_calculation_details = array(); + $actual_value_of_assets = $score_questions['general']['value_of_other_assets']; - //$actual_value_of_assets = 600000; + $asset_calculation_details['actual_value_of_assets'] = $actual_value_of_assets; + //echo 'actual_value_of_assets -'.$actual_value_of_assets; + $loan_amount = $pd_master_details[0]['loan_amount']; - //$loan_amount = 2000000; + $asset_calculation_details['loan_amount'] = $loan_amount; + //echo 'loan_amount - '.$loan_amount; + $avg_expected_value_of_assets = $personal_asset_grid['master_grid'][0]['avg_expected_value_assets']; - $expected_value_of_assets = ($avg_expected_value_of_assets / 100 ) * $personal_asset_grid['master_grid'][0]['loan_amount_to']; + $asset_calculation_details['avg_expected_value_of_assets'] = $avg_expected_value_of_assets; + //echo "avg_expected_value_of_assets - ".$avg_expected_value_of_assets; + //$expected_value_of_assets = ($avg_expected_value_of_assets / 100 ) * $personal_asset_grid['master_grid'][0]['loan_amount_to']; + + $expected_value_of_assets = ($avg_expected_value_of_assets / 100 ) * $loan_amount; + $asset_calculation_details['expected_value_of_assets'] = $expected_value_of_assets; + //echo 'expected_value_of_assets--'.$expected_value_of_assets; + $actual_value_of_assets_percentage = ($actual_value_of_assets / $loan_amount) * 100; + $asset_calculation_details['actual_value_of_assets_percentage'] = + $actual_value_of_assets_percentage; + //echo 'actual_value_of_assets_percentage--'.$actual_value_of_assets_percentage; + $variance = (($actual_value_of_assets_percentage - $avg_expected_value_of_assets)/$avg_expected_value_of_assets )* 100 ; + //echo 'varience--'.$variance; + $asset_calculation_details['variance'] = $variance; - - $final_asset_score = 'No Asset'; + $final_asset_attributed_score = 0; + $final_asset_score = 0; foreach($personal_asset_grid['variance_grid'] as $grid) { - //print_r($grid); - if($grid['variance_ ratio_from'] < $variance && $grid['variance_ration_to'] > $variance) + //print_r($grid['score']); + if($grid['variance_ ratio_from'] <= $variance && $grid['variance_ration_to'] > $variance) { $final_asset_score = $grid['score']; - $final_asset_score = ($l1_general/100 ) * ($value_of_other_assets_L2/100)* $final_asset_score; + $final_asset_attributed_score = ($l1_general/100 ) * ($value_of_other_assets_L2/100)* $final_asset_score; } } + $asset_calculation_details['score'] = $final_asset_score; + // echo "final_asset_score--".$final_asset_score; + // die(); + $score_questions['general']['value_of_other_assets'] = array('l1_weightage' => $l1_general,'l2_weightage' => $value_of_other_assets_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['value_of_other_assets'],'attributed_score' => $final_asset_attributed_score, 'max_score' => (($l1_general/100 ) * ($value_of_other_assets_L2/100) * 10),'score_band'=> $final_asset_score,'max_score_band' => 10); + - $score_questions['general']['value_of_other_assets'] = array('l1_weightage' => $l1_general,'l2_weightage' => $value_of_other_assets_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['value_of_other_assets'],'attributed_score' => $final_asset_score, 'max_score' => (($l1_general/100 ) * ($value_of_other_assets_L2/100) * 10),'score_band'=> 'As Per Grid'); /*-----------END OF GENERAL SECTION -----------*/ /*-----------FINAL REMARKS SECTION -----------*/ @@ -180,7 +203,7 @@ class PDSCORE $pd_officer_recommandations_max_score = ($l1_final/100) * ($pd_officer_recommadations_L2/100) * max($pd_officer_recommandations); - $score_questions['final_remarks']['pd_officer_recommandations'] = array('l1_weightage' => $l1_final,'l2_weightage' => $pd_officer_recommadations_L2,'distributed_weightage' => 0,'answer' => $score_questions['final_remarks']['pd_officer_recommandations'],'attributed_score' => $pd_officer_recommandations_actual_score, 'max_score' => $pd_officer_recommandations_max_score,'score_band'=>$pd_officer_recommandations[ $score_questions['final_remarks']['pd_officer_recommandations'] ]); + $score_questions['final_remarks']['pd_officer_recommandations'] = array('l1_weightage' => $l1_final,'l2_weightage' => $pd_officer_recommadations_L2,'distributed_weightage' => 0,'answer' => $score_questions['final_remarks']['pd_officer_recommandations'],'attributed_score' => $pd_officer_recommandations_actual_score, 'max_score' => $pd_officer_recommandations_max_score,'score_band'=>$pd_officer_recommandations[ $score_questions['final_remarks']['pd_officer_recommandations'] ],'max_score_band' => max($pd_officer_recommandations)); /*-----------END OF FINAL REMARKS SECTION -----------*/ @@ -219,7 +242,7 @@ class PDSCORE $minimum_supplier_info_max_score = strcasecmp($score_questions['business']['minimum_supplier_info'],'Not Applicable') ? ($l1_business/100) * ($minimum_supplier_info_L2/100) * max($minimum_supplier_info) : 0; - $score_questions['business']['minimum_supplier_info'] = array('l1_weightage' => $l1_business,'l2_weightage' => $minimum_supplier_info_L2,'answer' => $score_questions['business']['minimum_supplier_info'],'attributed_score' => $minimum_supplier_info_actual_score, 'max_score' => $minimum_supplier_info_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band'=>$minimum_supplier_info [ $score_questions['business']['minimum_supplier_info'] ]); + $score_questions['business']['minimum_supplier_info'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($minimum_supplier_info_L2,2),'answer' => $score_questions['business']['minimum_supplier_info'],'attributed_score' => round($minimum_supplier_info_actual_score,2), 'max_score' => round($minimum_supplier_info_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band'=>$minimum_supplier_info [ $score_questions['business']['minimum_supplier_info'] ],'max_score_band' => max($minimum_supplier_info)); //######2.8 atleast one client info provided $minimum_client_info_L2 = $business_distribute_level_weightage ? ($minimum_client_info_L2 + ($minimum_client_info_L2 / (100 - $business_distribute_level_weightage ))) : $minimum_client_info_L2 ; @@ -228,7 +251,7 @@ class PDSCORE $minimum_client_info_max_score = strcasecmp($score_questions['business']['minimum_client_info'],'Not Applicable') ? ($l1_business/100) * ($minimum_client_info_L2/100) * max($minimum_client_info) : 0; - $score_questions['business']['minimum_client_info'] = array('l1_weightage' => $l1_business,'l2_weightage' => $minimum_client_info_L2,'answer' => $score_questions['business']['minimum_client_info'],'attributed_score' => $minimum_client_info_actual_score, 'max_score' => $minimum_client_info_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band'=>$minimum_client_info [ $score_questions['business']['minimum_client_info'] ]); + $score_questions['business']['minimum_client_info'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($minimum_client_info_L2,2),'answer' => $score_questions['business']['minimum_client_info'],'attributed_score' => round($minimum_client_info_actual_score,2), 'max_score' => round($minimum_client_info_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band'=>$minimum_client_info [ $score_questions['business']['minimum_client_info'] ],'max_score_band' => max($minimum_client_info)); //######2.9 stock of raw material $stock_raw_material_enough_L2 = $business_distribute_level_weightage ? ($stock_raw_material_enough_L2 + ($stock_raw_material_enough_L2 / (100 - $business_distribute_level_weightage ))) : $stock_raw_material_enough_L2 ; @@ -237,7 +260,7 @@ class PDSCORE $stock_raw_material_enough_max_score = strcasecmp($score_questions['business']['stock_raw_material_enough'],'Not Applicable')? ($l1_business/100) * ($stock_raw_material_enough_L2/100) * max($stock_answer_scores) : 0; - $score_questions['business']['stock_raw_material_enough'] = array('l1_weightage' => $l1_business,'l2_weightage' => $stock_raw_material_enough_L2,'answer' => $score_questions['business']['stock_raw_material_enough'],'attributed_score' => $stock_raw_material_enough_actual_score, 'max_score' => $stock_raw_material_enough_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $stock_answer_scores [ $score_questions['business']['stock_raw_material_enough'] ]); + $score_questions['business']['stock_raw_material_enough'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($stock_raw_material_enough_L2,2),'answer' => $score_questions['business']['stock_raw_material_enough'],'attributed_score' => round($stock_raw_material_enough_actual_score,2), 'max_score' => round($stock_raw_material_enough_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $stock_answer_scores [ $score_questions['business']['stock_raw_material_enough'] ],'max_score_band' =>max($stock_answer_scores) ); //######2.10 stock_finished_goods_enough $stock_finished_goods_enough_L2 = $business_distribute_level_weightage ? ($stock_finished_goods_enough_L2 + ($stock_finished_goods_enough_L2 / (100 - $business_distribute_level_weightage ))) : $stock_finished_goods_enough_L2 ; @@ -246,11 +269,12 @@ class PDSCORE $stock_finished_goods_enough_max_score = strcasecmp($score_questions['business']['stock_finished_goods_enough'],'Not Applicable') ? ($l1_business/100) * ($stock_finished_goods_enough_L2/100) * max($stock_answer_scores) : 0; - $score_questions['business']['stock_finished_goods_enough'] = array('l1_weightage' => $l1_business,'l2_weightage' => $stock_finished_goods_enough_L2,'answer' => $score_questions['business']['stock_finished_goods_enough'],'attributed_score' => $stock_finished_goods_enough_actual_score, 'max_score' => $stock_finished_goods_enough_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $stock_answer_scores [ $score_questions['business']['stock_finished_goods_enough'] != "" || $score_questions['business']['stock_finished_goods_enough'] != null ? $score_questions['business']['stock_finished_goods_enough'] : "no" ]); + $score_questions['business']['stock_finished_goods_enough'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($stock_finished_goods_enough_L2,2),'answer' => $score_questions['business']['stock_finished_goods_enough'],'attributed_score' => round($stock_finished_goods_enough_actual_score,2), 'max_score' => round($stock_finished_goods_enough_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $stock_answer_scores [ $score_questions['business']['stock_finished_goods_enough'] != "" || $score_questions['business']['stock_finished_goods_enough'] != null ? $score_questions['business']['stock_finished_goods_enough'] : "no" ],'max_score_band' => max($stock_answer_scores)); //######2.1 Business Certificates + $cerificates_L2 = 10; $cerificates_L2 = $business_distribute_level_weightage ? ($cerificates_L2 + ($cerificates_L2 / (100 - $business_distribute_level_weightage ))) : $cerificates_L2; //find out no of not applicable cases @@ -279,18 +303,19 @@ class PDSCORE $max_score = ($l1_business/100) * ($business_certificates_distribution/100) * max($cerificates); } - $score_questions['business']['cerificates'][$certificate_key] = array('answer' => $certificate,'attributed_score' => $acutal_score, 'max_score' => $max_score); + $score_questions['business']['cerificates'][$certificate_key] = array('answer' => $certificate,'attributed_score' => round($acutal_score,2), 'max_score' => round($max_score,2),'score_band' => $cerificates[$certificate],'max_score_band'=> max($cerificates),'l1_weightage' =>round($l1_business,2),'l2_weightage'=> round($business_certificates_distribution,2)); $certificate_actual_score += $acutal_score; $certificate_max_score += $max_score; } $score_questions['business']['cerificates']['l1_weightage'] = $l1_business; - $score_questions['business']['cerificates']['l2_weightage'] = $business_certificates_distribution; + $score_questions['business']['cerificates']['l2_weightage'] = round($business_certificates_distribution,2); $score_questions['business']['cerificates']['distributed_weightage'] = $business_distribute_level_weightage; - $score_questions['business']['cerificates']['max_score'] = $certificate_max_score; - $score_questions['business']['cerificates']['attributed_score'] = $certificate_actual_score; + $score_questions['business']['cerificates']['max_score'] = round($certificate_max_score,2); + $score_questions['business']['cerificates']['attributed_score'] = round($certificate_actual_score,2); $score_questions['business']['cerificates']['score_band'] = 'Derived'; + $score_questions['business']['cerificates']['max_score_band'] = 'Derived'; //echo $business_certificates_distribution;die(); //######2.1 no_of_years_business_run @@ -321,7 +346,7 @@ class PDSCORE $no_of_years_business_run_max_score = ($l1_business/100) * ($no_of_years_business_run_L2/100) * max($no_of_years_business_run); - $score_questions['business']['no_of_years_business_run'] = array('l1_weightage' => $l1_business,'l2_weightage' => $no_of_years_business_run_L2,'answer' => $score_questions['business']['no_of_years_business_run'],'attributed_score' => $no_of_years_business_run_actual_score, 'max_score' => $no_of_years_business_run_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $score_band); + $score_questions['business']['no_of_years_business_run'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($no_of_years_business_run_L2),'answer' => $score_questions['business']['no_of_years_business_run'],'attributed_score' => round($no_of_years_business_run_actual_score,2), 'max_score' => round($no_of_years_business_run_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $score_band,'max_score_band' => max($no_of_years_business_run)); //######2.2 business seasonal @@ -332,7 +357,7 @@ class PDSCORE $business_seasonality_actual_score = ($l1_business/100) * ($business_seasonality_L2/100) * $business_seasonality[ $score_questions['business']['business_seasonality'] ]; $business_seasonality_max_score = ($l1_business/100) * ($business_seasonality_L2/100) * max($business_seasonality); - $score_questions['business']['business_seasonality'] = array('l1_weightage' => $l1_business,'l2_weightage' => $business_seasonality_L2,'answer' => $score_questions['business']['business_seasonality'],'attributed_score' => $no_of_years_business_run_actual_score, 'max_score' => $no_of_years_business_run_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $business_seasonality[ $score_questions['business']['business_seasonality'] ]); + $score_questions['business']['business_seasonality'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($business_seasonality_L2,2),'answer' => $score_questions['business']['business_seasonality'],'attributed_score' => round($no_of_years_business_run_actual_score), 'max_score' => round($no_of_years_business_run_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $business_seasonality[ $score_questions['business']['business_seasonality'] ],'max_score_band' => max($business_seasonality)); //######2.3 employees_total $employees_total_actual_score = 0; @@ -360,7 +385,7 @@ class PDSCORE $employees_total_max_score = ($l1_business/100) * ($employees_total_L2/100) * max($employees_total); - $score_questions['business']['employees_total'] = array('l1_weightage' => $l1_business,'l2_weightage' => $employees_total_L2,'answer' => $score_questions['business']['employees_total'],'attributed_score' => $employees_total_actual_score, 'max_score' => $employees_total_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' =>$score_band); + $score_questions['business']['employees_total'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($employees_total_L2,2),'answer' => $score_questions['business']['employees_total'],'attributed_score' => round($employees_total_actual_score,2), 'max_score' => round($employees_total_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' =>$score_band,'max_score_band' => max($employees_total)); //######2.5 owned_property @@ -370,7 +395,7 @@ class PDSCORE $owned_property_actual_score = ($l1_business/100) * ($owned_property_L2/100) * $owned_property[ $score_questions['business']['owned_property'] ]; $owned_property_max_score = ($l1_business/100) * ($owned_property_L2/100) * max($owned_property); - $score_questions['business']['owned_property'] = array('l1_weightage' => $l1_business,'l2_weightage' => $owned_property_L2,'answer' => $score_questions['business']['owned_property'],'attributed_score' => $owned_property_actual_score, 'max_score' => $owned_property_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $owned_property[ $score_questions['business']['owned_property'] ]); + $score_questions['business']['owned_property'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($owned_property_L2,2),'answer' => $score_questions['business']['owned_property'],'attributed_score' => round($owned_property_actual_score,2), 'max_score' => round($owned_property_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $owned_property[ $score_questions['business']['owned_property'] ],'max_score_band' => max($owned_property)); //######2.6 owned_vechile $owned_vechile_L2 = $business_distribute_level_weightage ? ($owned_vechile_L2 + ($owned_vechile_L2 / (100 - $business_distribute_level_weightage ))) : $owned_vechile_L2 ; @@ -378,7 +403,7 @@ class PDSCORE $owned_vechile_actual_score = ($l1_business/100) * ($owned_vechile_L2/100) * $owned_vechile[ $score_questions['business']['owned_vechile'] ]; $owned_vechile_max_score = ($l1_business/100) * ($owned_vechile_L2/100) * max($owned_vechile); - $score_questions['business']['owned_vechile'] = array('l1_weightage' => $l1_business,'l2_weightage' => $owned_vechile_L2,'answer' => $score_questions['business']['owned_vechile'],'attributed_score' => $owned_vechile_actual_score, 'max_score' => $owned_vechile_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $owned_vechile[ $score_questions['business']['owned_vechile'] ]); + $score_questions['business']['owned_vechile'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($owned_vechile_L2,2),'answer' => $score_questions['business']['owned_vechile'],'attributed_score' => round($owned_vechile_actual_score,2), 'max_score' => round($owned_vechile_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $owned_vechile[ $score_questions['business']['owned_vechile'] ],'max_score_band' => max($owned_vechile)); //######2.11 location_suited_for_busienss @@ -387,7 +412,7 @@ class PDSCORE $location_suited_for_busienss_actual_score = ($l1_business/100) * ($location_suited_for_busienss_L2/100) * $location_suited_for_busienss[ $score_questions['business']['location_suited_for_busienss'] ]; $location_suited_for_busienss_max_score = ($l1_business/100) * ($location_suited_for_busienss_L2/100) * max($location_suited_for_busienss); - $score_questions['business']['location_suited_for_busienss'] = array('l1_weightage' => $l1_business,'l2_weightage' => $location_suited_for_busienss_L2,'answer' => $score_questions['business']['location_suited_for_busienss'],'attributed_score' => $location_suited_for_busienss_actual_score, 'max_score' => $location_suited_for_busienss_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $location_suited_for_busienss[ $score_questions['business']['location_suited_for_busienss'] ]); + $score_questions['business']['location_suited_for_busienss'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($location_suited_for_busienss_L2,2),'answer' => $score_questions['business']['location_suited_for_busienss'],'attributed_score' => round($location_suited_for_busienss_actual_score,2), 'max_score' => round($location_suited_for_busienss_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $location_suited_for_busienss[ $score_questions['business']['location_suited_for_busienss'] ],'max_score_band' => max($location_suited_for_busienss)); //######2.11 business_activity_has_seen @@ -396,7 +421,7 @@ class PDSCORE $business_activity_has_seen_actual_score = ($l1_business/100) * ($business_activity_has_seen_L2/100) * $business_activity_has_seen[ $score_questions['business']['business_activity_has_seen'] ]; $business_activity_has_seen_max_score = ($l1_business/100) * ($business_activity_has_seen_L2/100) * max($business_activity_has_seen); - $score_questions['business']['business_activity_has_seen'] = array('l1_weightage' => $l1_business,'l2_weightage' => $business_activity_has_seen_L2,'answer' => $score_questions['business']['business_activity_has_seen'],'attributed_score' => $business_activity_has_seen_actual_score, 'max_score' => $business_activity_has_seen_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $business_activity_has_seen[ $score_questions['business']['business_activity_has_seen'] ]); + $score_questions['business']['business_activity_has_seen'] = array('l1_weightage' => $l1_business,'l2_weightage' => round($business_activity_has_seen_L2,2),'answer' => $score_questions['business']['business_activity_has_seen'],'attributed_score' => round($business_activity_has_seen_actual_score,2), 'max_score' => round($business_activity_has_seen_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $business_activity_has_seen[ $score_questions['business']['business_activity_has_seen'] ], 'max_score_band' => max($business_activity_has_seen)); //######2.13 vintage business banking @@ -425,7 +450,7 @@ class PDSCORE $vintage_of_business_account_max_score = ($l1_business/100) * ($vintage_of_business_account_L2/100) * max($vintage_of_business_account); - $score_questions['business']['vintage_of_business_account'] = array('l1_weightage' => $l1_business,'l2_weightage' => $business_activity_has_seen_L2,'answer' => $score_questions['business']['vintage_of_business_account'],'attributed_score' => $vintage_of_business_account_actual_score, 'max_score' => $vintage_of_business_account_max_score,'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $score_band); + $score_questions['business']['vintage_of_business_account'] = array('l1_weightage' => $l1_business,'l2_weightage' => $business_activity_has_seen_L2,'answer' => $score_questions['business']['vintage_of_business_account'],'attributed_score' => round($vintage_of_business_account_actual_score,2), 'max_score' => round($vintage_of_business_account_max_score,2),'distributed_weightage' => $business_distribute_level_weightage,'score_band' => $score_band,'max_score_band' => max($vintage_of_business_account)); /*-----------END OF BUSINESS SECTION -----------*/ @@ -451,7 +476,9 @@ class PDSCORE } $score_questions['score_summary']['overall_score'] = array('overall_actual_score' => $overall_actual_score, 'overall_max_score' => $overall_max_score,'final_score' => ($overall_actual_score/$overall_max_score) * 100); - //print_r($score_questions); + + $score_questions['score_summary']['asset_calculation_details'] = $asset_calculation_details; + //print_r($score_questions);die(); return ($score_questions); diff --git a/api/application/models/PD_Model.php b/api/application/models/PD_Model.php index cae362cd..af69eb5b 100644 --- a/api/application/models/PD_Model.php +++ b/api/application/models/PD_Model.php @@ -1398,5 +1398,16 @@ class PD_Model extends SPARQ_Model { return $return_data; } + public function getScoreableQuestionToDispaly($pdid) + { + + $this->db->SELECT('question,key'); + $this->db->FROM(QUESTIONKEYMAPPING); + $this->db->WHERE('fk_form_id is null'); + $data = $this->db->GET()->result_array(); + return $data; + //$this->PD_Model->selectCustomRecords(array('question,key'),array('fk_form_id' =>'is null'),QUESTIONKEYMAPPING); + } + } \ No newline at end of file diff --git a/api/application/views/js/phantomchart.js b/api/application/views/js/phantomchart.js index dbdd489c..f6e17d38 100644 --- a/api/application/views/js/phantomchart.js +++ b/api/application/views/js/phantomchart.js @@ -1 +1 @@ -var page = require('webpage').create();page.viewportSize = { width: 600, height: 350 };page.clipRect = { top: 0, left: 0, width: 600, height: 350 };var score = 69;var url = 'http://localhost:9999/AWSEC2/sparqapi/api?'+score;var image_url = 'C:/5.6/xampp/htdocs/AWSEC2/sparqapi/api/application/views/report_templates/chart.png' ;page.open(url,function() {setTimeout(function() {page.render(image_url);phantom.exit();}, 500);}); \ No newline at end of file +var page = require('webpage').create();page.viewportSize = { width: 600, height: 350 };page.clipRect = { top: 0, left: 0, width: 600, height: 350 };var score = 72.11;var url = 'http://localhost:9999/AWSEC2/sparqapi/api?'+score;var image_url = 'C:/5.6/xampp/htdocs/AWSEC2/sparqapi/api/application/views/report_templates/chart.png' ;page.open(url,function() {setTimeout(function() {page.render(image_url);phantom.exit();}, 500);}); \ No newline at end of file diff --git a/api/application/views/report_templates/JSONTOREPORT.php b/api/application/views/report_templates/JSONTOREPORT.php index b2547ce7..645bb866 100644 --- a/api/application/views/report_templates/JSONTOREPORT.php +++ b/api/application/views/report_templates/JSONTOREPORT.php @@ -65,28 +65,31 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } /* #########Score Card Table Styles######### */ - #customers { + #scorecard_table { font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%; } -#customers td, #customers th { +#scorecard_table td, #scorecard_table th { border: 1px solid #ddd; padding: 8px; + } -#customers tr:nth-child(even){background-color: #f2f2f2;} +#scorecard_table tr:nth-child(even){background-color: #f2f2f2;} -#customers tr:hover {background-color: #ddd;} +#scorecard_table tr:hover {background-color: #ddd;} -#customers th { +#scorecard_table th { padding-top: 12px; padding-bottom: 12px; text-align: left; background-color: #4CAF50; color: white; } + +.customth { width: 10%; } /* #########Score Card Table Styles######### */ @@ -138,8 +141,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); Loan Amount Applied For :

"; echo " - - + +
As Per PD Initiation Rs " . number_format($pd_master_details[0]['loan_amount'],2,',',','). ".
As Per Loan Applicants during PD Rs " . number_format($loan_form['loan_amount'],2,',',','). ".
As Per PD Initiation Rs " . number_format($pd_master_details[0]['loan_amount'],2,'.',','). ".
As Per Loan Applicants during PD Rs " . number_format($loan_form['loan_amount'],2,'.',','). ".
"; echo "
"; @@ -152,10 +155,10 @@ defined('BASEPATH') OR exit('No direct script access allowed'); //print_r($pd_score); ?> - - - - + + + +
General Section Score
Business Section Score
Final Remarks Score
Final PD Score (Over all Acutal score () / over all Maximum Score ( )) * 100)
General Section Score
Business Section Score
Final Remarks Score
Final PD Score (Over all Acutal score () / over all Maximum Score ( )) * 100)
'; - echo " General Question (". $pd_score['general']['otp_done']['l1_weightage']."%) Answer Score Band Attributed Score Max Score"; + echo ''; + echo ""; foreach($pd_score['general'] as $key => $general) { + $question = MYUTIL::findQuestionByKey($score_questions_display,$key); $span = '('.$general['l1_weightage'].'% * '. $general['l2_weightage'].'% * '.$general['score_band'].')'; - echo ''.''; + $max_span = '('.$general['l1_weightage'].'% * '. $general['l2_weightage'].'% * '.$general['max_score_band'].')'; + echo ''.''; } + + echo ""; echo '
General Questions L1(". $pd_score['general']['otp_done']['l1_weightage']."%) L2 Answer Score Attributed Score Max Score
'.$key.' ('.$general['l2_weightage'].'%)'.$general['answer']. - ''.$general['score_band'].''.$general['attributed_score'].'
'.$span.'
'.$general['max_score'].'
'.$question.''.$general['l2_weightage'] .'%'.$general['answer']. + ''.$general['score_band'].''.$general['attributed_score'].'
'.$span.'
'.$general['max_score'].'
'.$max_span.'
General Section Sum of Attributed Score | Sum of Max Score ".number_format($pd_score['score_summary']['general']['actual_score'],2,'.',',')." ".number_format($pd_score['score_summary']['general']['max_score'],2,'.',',')."
'; echo '

'; - - echo ''; - echo ""; + + echo '
Final Remarks Question (". $pd_score['final_remarks']['pd_officer_recommandations']['l1_weightage']."%) Answer Score BandAttributed Score Max Score
'; + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + + + echo '
Asset Value Calculaitons
Actual Value Of Assets(a)". number_format($pd_score['score_summary']['asset_calculation_details']['actual_value_of_assets'],2,'.',',')."
Loan Amount(b)". number_format($pd_score['score_summary']['asset_calculation_details']['loan_amount'],2,'.',',')."
Avg Expected Value Of Assets(c)". round($pd_score['score_summary']['asset_calculation_details']['avg_expected_value_of_assets'],2)."%
Expected Value Of Assets(d = c*b)". number_format($pd_score['score_summary']['asset_calculation_details']['expected_value_of_assets'],2,'.',',')."
Actual Value Of Assets Percentage(e = (a/b) * 100)". round($pd_score['score_summary']['asset_calculation_details']['actual_value_of_assets_percentage'],2)."%
Variance(f = ((e-c)/c) * 100)". round($pd_score['score_summary']['asset_calculation_details']['variance'],2)."
Score As per Grid". round($pd_score['score_summary']['asset_calculation_details']['score'],2)."
'; + echo '


'; + + echo ''; + echo ""; foreach($pd_score['final_remarks'] as $key => $final_remark) { + + $question = MYUTIL::findQuestionByKey($score_questions_display,$key); $span = '('.$final_remark['l1_weightage'].'% * '. $final_remark['l2_weightage'].'% * '.$final_remark['score_band'].')'; - echo ''.''; + $max_span = '('.$final_remark['l1_weightage'].'% * '. $final_remark['l2_weightage'].'% * '.$final_remark['max_score_band'].')'; + echo ''.''; } + + echo ""; echo '
Final Remarks Questions L1(". $pd_score['final_remarks']['pd_officer_recommandations']['l1_weightage']."%) L2Answer ScoreAttributed Score Max Score
'.$key.' ('.$final_remark['l2_weightage'].'%)'.$final_remark['answer'].''.$final_remark['score_band'].''.$final_remark['attributed_score'].'
'.$span.'
'.$final_remark['max_score'].'
'.$question.''.$final_remark['l2_weightage'].'%'.$final_remark['answer'].''.$final_remark['score_band'].''.$final_remark['attributed_score'].'
'.$span.'
'.$final_remark['max_score'].'
'.$max_span.'
Final Remarks Section Sum of Attributed Score | Sum of Max Score ".number_format($pd_score['score_summary']['final_remarks']['actual_score'],2,'.',',')." ".number_format($pd_score['score_summary']['final_remarks']['max_score'],2,'.',',')."
'; + echo '


'; - echo '

'; - echo ''; - echo ""; + echo '
Business Question(". $pd_score['business']['no_of_years_business_run']['l1_weightage']."%) Answer Score Band Attributed ScoreMax Score
'; + echo ""; $certificates = array(); foreach($pd_score['business'] as $key => $business) { - $span = '('.$business['l1_weightage'].'% * '. $business['l2_weightage'].'% * '.$business['score_band'].')'; + + $question = MYUTIL::findQuestionByKey($score_questions_display,$key); + $span = '('.$business['l1_weightage'].'% * '. $business['l2_weightage'].'% * '.$business['score_band'].')'; + $max_span = '('.$business['l1_weightage'].'% * '. $business['l2_weightage'].'% * '.$business['max_score_band'].')'; if($key != 'cerificates') { - echo ''.''; + echo ''.''; } if($key == 'cerificates') { $certificates = $business; - echo ''.''; + echo ''.''; } } + + echo ""; + echo '
Business Questions L1(". $pd_score['business']['no_of_years_business_run']['l1_weightage']."%) L2Answer Score Attributed ScoreMax Score
'.$key.' ('.$business['l2_weightage'].'%)'.$business['answer'].''.$business['score_band'].''.$business['attributed_score'].'
'.$span.'
'.$business['max_score'].'
'.$question.''.$business['l2_weightage'].'%'.$business['answer'].''.$business['score_band'].''.$business['attributed_score'].'
'.$span.'
'.$business['max_score'].'
'.$max_span.'
'.$key.' ('.$business['l2_weightage'].'%)'.'Certificates'.''.$business['score_band'].''.$business['attributed_score'].''.$general['max_score'].'
Certificates '.round($business['l2_weightage'],2).'%'.'Refer Cert Table'.''.$business['score_band'].''.$business['attributed_score'].''.$general['max_score'].'
Business Section Sum of Attributed Score | Sum of Max Score ".number_format($pd_score['score_summary']['business']['actual_score'],2,'.',',')." ".number_format($pd_score['score_summary']['business']['max_score'],2,'.',',')."
'; echo ''; echo '

'; - - echo ''; - echo ""; + + echo '
Business Certificates Answer Score Max Score
'; + echo ""; $index = 0; foreach($certificates as $key => $cerificate) { $index++; if($index <=7) { - echo ''.''; + + $span = '('.$cerificate['l1_weightage'].'% * '. $cerificate['l2_weightage'].'% * '.$cerificate['score_band'].')'; + + $max_span = '('.$cerificate['l1_weightage'].'% * '. $cerificate['l2_weightage'].'% * '.$cerificate['max_score_band'].')'; + + echo ''.''; } } echo "
Business Certificates Answer Score Attributed Score Max Score
'.$key.''.$cerificate['answer'].''.round($cerificate['attributed_score'],3).''.round($cerificate['max_score'],3).'
'.$key.''.$cerificate['answer'].''.$cerificate['score_band'].''.round($cerificate['attributed_score'],3).'
'.$span.'
'.round($cerificate['max_score'],3).'
'.$max_span.'
"; @@ -246,7 +291,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); { $all_company_details = $general_form['companies']; } - // echo MYUITIL::findCompanyName($all_company_details,2); + // echo MYUTIL::findCompanyName($all_company_details,2); //print_r($all_company_details); //print_r($pd_score['overall_score']['final_score']); ?> diff --git a/api/application/views/report_templates/chart.png b/api/application/views/report_templates/chart.png index b288448c1759c8e4ba6f0da5d0a075e7e9e158a2..b56bad20035728d60b2ccd018cf6ccad6479b618 100644 GIT binary patch literal 19178 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 n08r3~wMRY3|CuVOasSX+B|rK4E_X*Duaajp<#f literal 19444 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