From a5167015c6a34fd32368986d4ea59a4a7e8fa0d2 Mon Sep 17 00:00:00 2001 From: velz Date: Sat, 16 Mar 2019 00:41:07 +0530 Subject: [PATCH] SCORE CHANGED --- api/application/docs/sample.pdf | Bin 30117 -> 46867 bytes api/application/helpers/pdscore_helper.php | 74 ++++++----- api/application/views/js/phantomchart.js | 2 +- .../views/report_templates/JSONTOREPORT.php | 120 +++++++++++++++--- .../views/report_templates/chart.png | Bin 18735 -> 19444 bytes api/index.php | 2 +- 6 files changed, 141 insertions(+), 57 deletions(-) diff --git a/api/application/docs/sample.pdf b/api/application/docs/sample.pdf index ee98cd04059fdc1fffc321da50bdb9908491e7ad..c5dec94302e627ab47ef8841b37b5a578a71434d 100644 GIT binary patch delta 27623 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 delta 19125 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 diff --git a/api/application/helpers/pdscore_helper.php b/api/application/helpers/pdscore_helper.php index 9009e7aa..03d6361c 100644 --- a/api/application/helpers/pdscore_helper.php +++ b/api/application/helpers/pdscore_helper.php @@ -10,7 +10,7 @@ class PDSCORE public static function genericDI($score_questions,$pd_master_details,$personal_asset_grid) { - //print_r($score_questions);echo "###################"; + //print_r($personal_asset_grid);echo "###################"; ############ GENERIC SE-DI CASES ####################### ############ SCROE VARIABLES DECLERATIONS ############## @@ -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'],'actual_score' => $person_met_is_applicant_actual_score, 'max_score' => $person_met_is_applicant_max_score); + $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']])); //######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'],'actual_score' => $pd_location_approach_actual_score, 'max_score' => $pd_location_approach_max_score); + $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']]); //######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'],'actual_score' => $comment_locality_actual_score, 'max_score' => $comment_locality_max_score); + $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']]); //######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'],'actual_score' => $customer_behaviour_actual_score, 'max_score' => $customer_behaviour_max_score); + $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']]); //######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'],'actual_score' => $neibourhood_check_as_per_pd_officer_actual_score, 'max_score' => $neibourhood_check_as_per_pd_officer_max_score); + $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" ]); //######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'],'actual_score' => $was_the_company_name_board_sighted_actual_score, 'max_score' => $was_the_company_name_board_sighted_max_score); + $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']]); //######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'],'actual_score' => $otp_done_actual_score, 'max_score' => $otp_done_max_score); + $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']]); //######1.8 qualification $qualification_actual_score = ($l1_general/100) * ($qualification_L2/100) * $qualification['id_score'][$score_questions['general']['qualification']]; @@ -145,20 +145,20 @@ 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)],'actual_score' => $qualification_actual_score, 'max_score' => $qualification_max_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']]); //######1.9 value of assets as a % of Loan Amount - //$actual_value_of_assets = $score_questions['general']['value_of_other_assets']; - $actual_value_of_assets = 600000; - //$loan_amount = $pd_master_details[0]['loan_amount']; - $loan_amount = 2000000; + $actual_value_of_assets = $score_questions['general']['value_of_other_assets']; + //$actual_value_of_assets = 600000; + $loan_amount = $pd_master_details[0]['loan_amount']; + //$loan_amount = 2000000; $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']; $actual_value_of_assets_percentage = ($actual_value_of_assets / $loan_amount) * 100; $variance = (($actual_value_of_assets_percentage - $avg_expected_value_of_assets)/$avg_expected_value_of_assets )* 100 ; - $final_asset_score = 'DEFAULT'; + $final_asset_score = 'No Asset'; foreach($personal_asset_grid['variance_grid'] as $grid) { //print_r($grid); @@ -170,7 +170,7 @@ class PDSCORE } } - $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'],'actual_score' => $final_asset_score, 'max_score' => (($l1_general/100 ) * ($value_of_other_assets_L2/100) * 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 +180,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'],'actual_score' => $pd_officer_recommandations_actual_score, 'max_score' => $pd_officer_recommandations_max_score); + $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'] ]); /*-----------END OF FINAL REMARKS SECTION -----------*/ @@ -219,7 +219,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'],'actual_score' => $minimum_supplier_info_actual_score, 'max_score' => $minimum_supplier_info_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######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 +228,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'],'actual_score' => $minimum_client_info_actual_score, 'max_score' => $minimum_client_info_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######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 +237,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'],'actual_score' => $stock_raw_material_enough_actual_score, 'max_score' => $stock_raw_material_enough_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######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,7 +246,7 @@ 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'],'actual_score' => $stock_finished_goods_enough_actual_score, 'max_score' => $stock_finished_goods_enough_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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" ]); @@ -279,7 +279,7 @@ class PDSCORE $max_score = ($l1_business/100) * ($business_certificates_distribution/100) * max($cerificates); } - $score_questions['business']['cerificates'][$certificate_key] = array('answer' => $certificate,'actual_score' => $acutal_score, 'max_score' => $max_score); + $score_questions['business']['cerificates'][$certificate_key] = array('answer' => $certificate,'attributed_score' => $acutal_score, 'max_score' => $max_score); $certificate_actual_score += $acutal_score; $certificate_max_score += $max_score; @@ -289,12 +289,14 @@ class PDSCORE $score_questions['business']['cerificates']['l2_weightage'] = $business_certificates_distribution; $score_questions['business']['cerificates']['distributed_weightage'] = $business_distribute_level_weightage; $score_questions['business']['cerificates']['max_score'] = $certificate_max_score; - $score_questions['business']['cerificates']['actual_score'] = $certificate_actual_score; + $score_questions['business']['cerificates']['attributed_score'] = $certificate_actual_score; + $score_questions['business']['cerificates']['score_band'] = 'Derived'; //echo $business_certificates_distribution;die(); //######2.1 no_of_years_business_run $no_of_years_business_run_actual_score = 0; + $score_band = 0; foreach($no_of_years_business_run as $key => $value) { $exp = explode('to',$key); @@ -310,6 +312,7 @@ class PDSCORE $no_of_years_business_run_L2 = $business_distribute_level_weightage ? ($no_of_years_business_run_L2 + ($no_of_years_business_run_L2 / (100 - $business_distribute_level_weightage ))) : $no_of_years_business_run_L2 ; $no_of_years_business_run_actual_score = ($l1_business/100) * ($no_of_years_business_run_L2/100) * $value; + $score_band = $value; } } @@ -318,7 +321,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'],'actual_score' => $no_of_years_business_run_actual_score, 'max_score' => $no_of_years_business_run_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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); //######2.2 business seasonal @@ -329,13 +332,13 @@ 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'],'actual_score' => $no_of_years_business_run_actual_score, 'max_score' => $no_of_years_business_run_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######2.3 employees_total $employees_total_actual_score = 0; $employees_total_L2 = $business_distribute_level_weightage ? ($employees_total_L2 + ($employees_total_L2 / (100 - $business_distribute_level_weightage ))) : $employees_total_L2 ; - + $score_band = 0; foreach($employees_total as $key => $value) { $exp = explode('to',$key); @@ -348,6 +351,7 @@ class PDSCORE if($left_exp && $right_exp) { $employees_total_actual_score = ($l1_business/100) * ($employees_total_L2/100) * $value; + $score_band = $value; } } @@ -356,7 +360,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'],'actual_score' => $employees_total_actual_score, 'max_score' => $employees_total_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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); //######2.5 owned_property @@ -366,7 +370,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'],'actual_score' => $owned_property_actual_score, 'max_score' => $owned_property_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######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 ; @@ -374,7 +378,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'],'actual_score' => $owned_vechile_actual_score, 'max_score' => $owned_vechile_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######2.11 location_suited_for_busienss @@ -383,7 +387,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'],'actual_score' => $location_suited_for_busienss_actual_score, 'max_score' => $location_suited_for_busienss_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######2.11 business_activity_has_seen @@ -392,13 +396,14 @@ 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'],'actual_score' => $business_activity_has_seen_actual_score, 'max_score' => $business_activity_has_seen_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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'] ]); //######2.13 vintage business banking $vintage_of_business_account_L2 = $business_distribute_level_weightage ? ($vintage_of_business_account_L2 + ($vintage_of_business_account_L2 / (100 - $business_distribute_level_weightage ))) : $vintage_of_business_account_L2 ; $vintage_of_business_account_actual_score = 0; + $score_band = 0; foreach($vintage_of_business_account as $key => $value) { $exp = explode('to',$key); @@ -411,6 +416,7 @@ class PDSCORE if($left_exp && $right_exp) { $vintage_of_business_account_actual_score = ($l1_business/100) * ($vintage_of_business_account_L2/100) * $value; + $score_band = $value; } } @@ -419,7 +425,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'],'actual_score' => $vintage_of_business_account_actual_score, 'max_score' => $vintage_of_business_account_max_score,'distributed_weightage' => $business_distribute_level_weightage); + $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); /*-----------END OF BUSINESS SECTION -----------*/ @@ -435,17 +441,17 @@ class PDSCORE foreach($value as $v_key => $f_value) { $overall_max_score += $f_value['max_score']; - $overall_actual_score += $f_value['actual_score']; + $overall_actual_score += $f_value['attributed_score']; $current_max_score += $f_value['max_score']; - $current_actual_score += $f_value['actual_score']; + $current_actual_score += $f_value['attributed_score']; } $score_questions['score_summary'][$key] = array('actual_score' => $current_actual_score,'max_score' => $current_max_score); } $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); return ($score_questions); diff --git a/api/application/views/js/phantomchart.js b/api/application/views/js/phantomchart.js index a8604f45..dbdd489c 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 = 51;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 = 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 diff --git a/api/application/views/report_templates/JSONTOREPORT.php b/api/application/views/report_templates/JSONTOREPORT.php index 2a56ff0f..b2547ce7 100644 --- a/api/application/views/report_templates/JSONTOREPORT.php +++ b/api/application/views/report_templates/JSONTOREPORT.php @@ -63,20 +63,31 @@ defined('BASEPATH') OR exit('No direct script access allowed'); tfoot{ color:#e00201; } - /* metert gauge css */ - + /* #########Score Card Table Styles######### */ + #customers { + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + border-collapse: collapse; + width: 100%; +} -.sc-gauge { width:200px; height:200px; margin:200px auto; } -.sc-background { position:relative; height:100px; margin-bottom:10px; background-color:#fff; border-radius:150px 150px 0 0; overflow:hidden; text-align:center; } -.sc-mask { position:absolute; top:20px; right:20px; left:20px; height:80px; background-color:#555888; border-radius:150px 150px 0 0 } -.sc-percentage { position:absolute; top:100px; left:-200%; width:400%; height:400%; margin-left:100px; background-color:#00aeef; } -.sc-percentage { transform:rotate(158deg); transform-origin:top center; } -.sc-min { float:left; } -.sc-max { float:right; } -.sc-value { position:absolute; top:50%; left:0; width:100%; font-size:48px; font-weight:700 } - - /* metert gauge css */ +#customers td, #customers th { + border: 1px solid #ddd; + padding: 8px; +} + +#customers tr:nth-child(even){background-color: #f2f2f2;} + +#customers tr:hover {background-color: #ddd;} + +#customers th { + padding-top: 12px; + padding-bottom: 12px; + text-align: left; + background-color: #4CAF50; + color: white; +} + /* #########Score Card Table Styles######### */ @@ -117,7 +128,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); echo "PD Report Date ".$pd_master_details[0]['updatedon'].""; echo "PD Vist Date ".$pd_master_details[0]['scheduled_on'].""; echo "PD Initiated by ".$pd_master_details[0]['branch_name']." Branch"; - echo "Loan Applicant ID ".$pd_master_details[0]['lender_applicant_id'].""; + echo "Loan Application ID ".$pd_master_details[0]['lender_applicant_id'].""; echo "Product ".$pd_master_details[0]['product_name'].""; echo "Customer Segment ".$pd_master_details[0]['customer_segment_name'].""; ?> @@ -134,32 +145,99 @@ defined('BASEPATH') OR exit('No direct script access allowed'); echo "
"; echo "

"; echo "

Executive Summary

"; - // echo "General Section Score :".number_format($pd_score['score_summary']['general']['actual_score'],2,'.','.')."
"; - // echo "Business Section Score :".number_format($pd_score['score_summary']['business']['actual_score'],2,'.','.')."
"; - // echo "Final Remarks Score :".number_format($pd_score['score_summary']['final_remarks']['actual_score'],2,'.','.')."
"; + // echo "General Section Score :".number_format($pd_score['score_summary']['general']['score_band'],2,'.','.')."
"; + // echo "Business Section Score :".number_format($pd_score['score_summary']['business']['score_band'],2,'.','.')."
"; + // echo "Final Remarks Score :".number_format($pd_score['score_summary']['final_remarks']['score_band'],2,'.','.')."
"; // echo "Final PD Score :".number_format($pd_score['score_summary']['overall_score']['final_score'],2,'.','.')."
"; + //print_r($pd_score); ?> - +
General Section Score
Business Section Score
Final Remarks Score
Final PD Score
Final PD Score (Over all Acutal score () / over all Maximum Score ( )) * 100)

"; //####################### CHART ############################# - echo '

'; + echo '

'; //######################### CHART ########################### - - + //####################General Section Statred######################## } else { echo "Score Chart Not Generated"; } + + echo "
"; + echo "
"; + ?> + + '; + echo " General Question (". $pd_score['general']['otp_done']['l1_weightage']."%) Answer Score Band Attributed Score Max Score"; + foreach($pd_score['general'] as $key => $general) + { + + $span = '('.$general['l1_weightage'].'% * '. $general['l2_weightage'].'% * '.$general['score_band'].')'; + echo ''.''.$key.' ('.$general['l2_weightage'].'%)'.$general['answer']. + ''.$general['score_band'].''.$general['attributed_score'].'
'.$span.''.$general['max_score'].''; + } + echo ''; + + echo '

'; + + echo ''; + echo ""; + foreach($pd_score['final_remarks'] as $key => $final_remark) + { + $span = '('.$final_remark['l1_weightage'].'% * '. $final_remark['l2_weightage'].'% * '.$final_remark['score_band'].')'; + echo ''.''; + } + echo '
Final Remarks Question (". $pd_score['final_remarks']['pd_officer_recommandations']['l1_weightage']."%) Answer Score BandAttributed Score Max Score
'.$key.' ('.$final_remark['l2_weightage'].'%)'.$final_remark['answer'].''.$final_remark['score_band'].''.$final_remark['attributed_score'].'
'.$span.'
'.$final_remark['max_score'].'
'; + + echo '

'; + + echo ''; + echo ""; + $certificates = array(); + foreach($pd_score['business'] as $key => $business) + { + $span = '('.$business['l1_weightage'].'% * '. $business['l2_weightage'].'% * '.$business['score_band'].')'; + if($key != 'cerificates') + { + echo ''.''; + } + + if($key == 'cerificates') + { + $certificates = $business; + echo ''.''; + } + + } + echo '
Business Question(". $pd_score['business']['no_of_years_business_run']['l1_weightage']."%) Answer Score Band Attributed ScoreMax Score
'.$key.' ('.$business['l2_weightage'].'%)'.$business['answer'].''.$business['score_band'].''.$business['attributed_score'].'
'.$span.'
'.$business['max_score'].'
'.$key.' ('.$business['l2_weightage'].'%)'.'Certificates'.''.$business['score_band'].''.$business['attributed_score'].''.$general['max_score'].'
'; + + echo '

'; + + echo ''; + echo ""; + $index = 0; + foreach($certificates as $key => $cerificate) + { + $index++; + if($index <=7) + { + echo ''.''; + } + } + echo "
Business Certificates Answer Score Max Score
'.$key.''.$cerificate['answer'].''.round($cerificate['attributed_score'],3).''.round($cerificate['max_score'],3).'
"; + - + $general_form = json_decode($pd_processed_forms[18][0]['processed_json'],true); $persons_met = "Default"; diff --git a/api/application/views/report_templates/chart.png b/api/application/views/report_templates/chart.png index c582fd1f1fe90cda2bb0f80daa8d5d08d958293c..b288448c1759c8e4ba6f0da5d0a075e7e9e158a2 100644 GIT binary patch literal 19444 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 literal 18735 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 Lu6{1-oD!M