From 699acfeedf185e27988bad79bf8007a2eade71f4 Mon Sep 17 00:00:00 2001 From: Velz2020 Date: Tue, 2 Mar 2021 23:50:28 +0530 Subject: [PATCH] SMC EXCEL TO REPORT DATA FETCH --- .../controllers/SMC_Credit_PD_Controller.php | 70 +++++++++++++------ .../helpers/readexceldata_helper.php | 28 +++++++- .../models/SMC_Credit_PD_Model.php | 4 ++ .../views/smc_creditpd_reports/MWISE.php | 14 ++-- 4 files changed, 85 insertions(+), 31 deletions(-) diff --git a/api/application/controllers/SMC_Credit_PD_Controller.php b/api/application/controllers/SMC_Credit_PD_Controller.php index 612e09ae..f361d9e2 100644 --- a/api/application/controllers/SMC_Credit_PD_Controller.php +++ b/api/application/controllers/SMC_Credit_PD_Controller.php @@ -1307,28 +1307,12 @@ public function filterSalesPDList_post() { { $records = $this->post('records'); $pd_master_data = $this->PD_Model->getPDMasterDetails($records['pd_id'],$records['random_string']); - $cur_section_data = array(); + // $cur_section_data = array(); + $cur_section_data = $this->loadDataFromExcelBusiProcess($pd_master_data,(isset($records['form_id']) && $records['form_id'] ? $records['form_id'] : null)); // print_r($pd_master_data);die(); // echo $records['form_id'];die(); //check excel file in local, otherwise get it from s3 and store locallly - $filename = ($pd_master_data[0]['re_uploaded'] ? XLPATH.'/tmp/'.$pd_master_data[0]['re_uploaded_file_name'] : XLPATH.'/tmp/'.$pd_master_data[0]['modified_fname']); - - // $filename = XLPATH.'/tmp/mySMCPD_client_working.xlsx'; - // $filename = 'C:\Users\Venba\Downloads\Kathir Info Pvt.xlsx'; - // echo $filename;die(); - if(!file_exists($filename)) - { - - //echo 'getting it from s3'; - $bucket_name = LENDER_BUCKET_NAME_PREFIX.$pd_master_data[0]['fk_lender_id']; - $key = 'tmp/'. ($pd_master_data[0]['re_uploaded'] ? $pd_master_data[0]['re_uploaded_file_name'] : $pd_master_data[0]['modified_fname']); - $singed_uri = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucket_name,$key,'+5 minutes'); - //echo $singed_uri; - $sucess = file_put_contents($filename, file_get_contents($singed_uri)); - - //echo '*'.$sucess; - } - $cur_section_data = readexceldata::getExcelSectionData($filename,(isset($records['form_id']) && $records['form_id'] ? $records['form_id'] : null),$records['pd_id']); + if(count($cur_section_data)) @@ -1349,6 +1333,29 @@ public function filterSalesPDList_post() { } + function loadDataFromExcelBusiProcess($pd_master_data,$form_id) + { + $filename = ($pd_master_data[0]['re_uploaded'] ? XLPATH.'/tmp/'.$pd_master_data[0]['re_uploaded_file_name'] : XLPATH.'/tmp/'.$pd_master_data[0]['modified_fname']); + + // $filename = XLPATH.'/tmp/mySMCPD_client_working.xlsx'; + // $filename = 'C:\Users\Venba\Downloads\Kathir Info Pvt.xlsx'; + // echo $filename;die(); + if(!file_exists($filename)) + { + + //echo 'getting it from s3'; + $bucket_name = LENDER_BUCKET_NAME_PREFIX.$pd_master_data[0]['fk_lender_id']; + $key = 'tmp/'. ($pd_master_data[0]['re_uploaded'] ? $pd_master_data[0]['re_uploaded_file_name'] : $pd_master_data[0]['modified_fname']); + $singed_uri = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucket_name,$key,'+5 minutes'); + //echo $singed_uri; + $sucess = file_put_contents($filename, file_get_contents($singed_uri)); + + //echo '*'.$sucess; + } + return $cur_section_data = readexceldata::getExcelSectionData($filename,$form_id,$pd_master_data[0]['pd_id']); + } + + public function getSMCPDImgSectionData_post() { $rand_string = $this->post('rand_string'); @@ -1461,20 +1468,37 @@ public function filterSalesPDList_post() { $view_data['pd_master_details'] = $this->PD_Model->getPDMasterDetails($records['pd_id']); $view_data['applicant_details'] = $this->PD_Model->getApplicantsDetails($records['pd_id']); - $pd_section_data = $this->SMC_Credit_PD_Model->selectCustomRecords(array('*'),array('isactive' => 1,'fk_pd_id' => $records['pd_id']),SMC_CREDIT_PD_SECTION_DATA,array(),'','fk_form_id','ASC'); + //$pd_section_data = $this->SMC_Credit_PD_Model->selectCustomRecords(array('*'),array('isactive' => 1,'fk_pd_id' => $records['pd_id']),SMC_CREDIT_PD_SECTION_DATA,array(),'','fk_form_id','ASC'); + $pd_section_data = $this->SMC_Credit_PD_Model->getSMCTemplateForPD($records['pd_id'],$view_data['pd_master_details'][0]['fk_product_id'],null,null,'REPORT'); // print_r ($view_data['pd_master_details']);die(); - // print_r($pd_section_data[12]);die(); + // print_r($pd_section_data);die(); + $forms_data_to_be_get_direct_from_excel_sheet = array(3,9,10,15); if(count($pd_section_data)) { foreach ($pd_section_data as $key => $value) { + + if(isset($value['json']) && $value['json'] != '') + { $value['json'] = smc_creditpd::getSMCCreditPDReportContent($value,$records['pd_id']); // if($value['fk_form_id'] == 2){print_r($value['json']);die();} $view_data['pd_section_data'][$value['fk_form_id']] = $value['json']; + } + else + { + + if(in_array($value['fk_form_id'],$forms_data_to_be_get_direct_from_excel_sheet)) + { + $data_from_excel = $this->loadDataFromExcelBusiProcess($view_data['pd_master_details'],$value['fk_form_id']); + //print_r($data_from_excel);die(); + $view_data['pd_section_data'][$value['fk_form_id']] = $data_from_excel; + + } + } //die(); } } - // print_r($view_data['pd_section_data'][1]);die(); + // print_r($view_data['pd_section_data'][15]);die(); $view_data['smc_images'] = $this->SMC_Credit_PD_Model->selectCustomRecords(array('doc_id', 'fk_smc_credit_pd_id','img','img_name','isactive'),array('fk_smc_credit_pd_id' => $records['pd_id'],'isactive' => 1,'img_name!=' => 'satellite'),SMC_CREDIT_PD_DOCS); $view_data['satellite'] = $this->SMC_Credit_PD_Model->selectCustomRecords(array('doc_id', 'fk_smc_credit_pd_id','img','img_name','isactive'),array('fk_smc_credit_pd_id' => $records['pd_id'],'isactive' => 1,'img_name=' => 'satellite'),SMC_CREDIT_PD_DOCS); //print_r(count($view_data['smc_images']));die(); @@ -1513,7 +1537,7 @@ public function filterSalesPDList_post() { // die(); //score card part $html_content = $this->load->view('smc_creditpd_reports/MWISE',$view_data,true); - // echo $html_content;die(); + //echo $html_content;die(); $pdf_name = $view_data['pd_master_details'][0]['main_applicant']; $pdf_doc = $this->pdfgenerator->generate($html_content, $filename='version', $stream=false, $paper = 'A4', $orientation = "portrait"); //End of PDF Gen using DOM PDF diff --git a/api/application/helpers/readexceldata_helper.php b/api/application/helpers/readexceldata_helper.php index 479f9456..2d795b50 100644 --- a/api/application/helpers/readexceldata_helper.php +++ b/api/application/helpers/readexceldata_helper.php @@ -172,7 +172,33 @@ class readexceldata $return_data = SELF::transformRowColumsForMultipleData($return_data,$keys); if(SELF::$current_section_id == 10) { - $return_data['financial_info'] = array_reverse($return_data['financial_info']); + + //implement financial calculations + $pre_yr_fin_data = array(); + if(isset($return_data['financial_info']) && count($return_data['financial_info']) >= 1) + { + $return_data['financial_info'] = array_reverse($return_data['financial_info']); + $return_data['financial_info_available'] = 'yes'; + + foreach ($return_data['financial_info'] as $fy_key => $fy_value) + { + + $net_profit_sales_percent = (isset($fy_value['sales_revenue']) && is_numeric($fy_value['sales_revenue']) && isset($fy_value['net_profit']) && is_numeric($fy_value['net_profit']) ? (($fy_value['net_profit'] / $fy_value['sales_revenue']) * 100): 0.00); + $return_data['financial_info'][$fy_key]['net_profit_sales_percent'] = number_format($net_profit_sales_percent,2,'.',''); + + $return_data['financial_info'][$fy_key]['sales_py'] = ($fy_key == 0 ? 'NA' : number_format ((($fy_value['sales_revenue'] - $pre_yr_fin_data['sales_revenue']) / $pre_yr_fin_data['sales_revenue']),2,'.','')); + + $return_data['financial_info'][$fy_key]['netprofit_py'] = ($fy_key == 0 ? 'NA' : number_format ((($fy_value['net_profit'] - $pre_yr_fin_data['net_profit']) / $pre_yr_fin_data['net_profit'] ),2,'.','')); + + $return_data['financial_info'][$fy_key]['netprofit_py_percent'] = ($fy_key == 0 ? 'NA' : number_format((($net_profit_sales_percent - $pre_yr_fin_data['net_profit_sales_percent']) / $pre_yr_fin_data['net_profit_sales_percent']),2,'.','')); + + + $pre_yr_fin_data = $fy_value; + $pre_yr_fin_data['net_profit_sales_percent'] = $net_profit_sales_percent; + } + } + + $return_data['broken_period_turnover_percent'] = SELF::getNumFormat($return_data['broken_period_turnover_percent'],'per'); // $return_data['net_profit_to_sales_percent'] = SELF::getNumFormat($return_data['net_profit_to_sales_percent'],'per'); diff --git a/api/application/models/SMC_Credit_PD_Model.php b/api/application/models/SMC_Credit_PD_Model.php index b7f86b73..b7c0feca 100644 --- a/api/application/models/SMC_Credit_PD_Model.php +++ b/api/application/models/SMC_Credit_PD_Model.php @@ -61,6 +61,10 @@ class SMC_Credit_PD_Model extends SPARQ_Model { $table = CREDITPDTEMPLATE.' as CREDITPDTEMPLATE'; // $table = SMC_CREDIT_PD_FORMS.' as SMC_CREDIT_PD_FORMS'; $fields = array('SMC_CREDIT_PD_FORMS.form_name','CREDITPDTEMPLATE.pd_form_id as fk_form_id','CREDITPDTEMPLATE.fk_product_id','SMC_CREDIT_PD_SECTION_DATA.fk_pd_id','if(SMC_CREDIT_PD_SECTION_DATA.json is not null,true,false) as is_answered','SMC_CREDIT_PD_SECTION_DATA.is_reupload_data_fetched','SMC_CREDIT_PD_FORMS.complete_check_enabled'); + if($api == 'REPORT') + { + $fields = array('SMC_CREDIT_PD_FORMS.form_name','CREDITPDTEMPLATE.pd_form_id as fk_form_id','CREDITPDTEMPLATE.fk_product_id','SMC_CREDIT_PD_SECTION_DATA.fk_pd_id','SMC_CREDIT_PD_SECTION_DATA.json','if(SMC_CREDIT_PD_SECTION_DATA.json is not null,true,false) as is_answered','SMC_CREDIT_PD_SECTION_DATA.is_reupload_data_fetched','SMC_CREDIT_PD_FORMS.complete_check_enabled'); + } $joins = array( array('table'=>SMC_CREDIT_PD_SECTION_DATA." as SMC_CREDIT_PD_SECTION_DATA",'condition'=>"SMC_CREDIT_PD_SECTION_DATA.fk_form_id = CREDITPDTEMPLATE.pd_form_id AND CREDITPDTEMPLATE.fk_product_id = $product_id AND SMC_CREDIT_PD_SECTION_DATA.fk_pd_id = $pd_id and SMC_CREDIT_PD_SECTION_DATA.isactive = 1 " ,'jointype'=>'LEFT'), array('table'=>SMC_CREDIT_PD_FORMS." as SMC_CREDIT_PD_FORMS",'condition'=>"CREDITPDTEMPLATE.pd_form_id = SMC_CREDIT_PD_FORMS.form_id" ,'jointype'=>'INNER JOIN') diff --git a/api/application/views/smc_creditpd_reports/MWISE.php b/api/application/views/smc_creditpd_reports/MWISE.php index b057c639..f4a6b8bc 100644 --- a/api/application/views/smc_creditpd_reports/MWISE.php +++ b/api/application/views/smc_creditpd_reports/MWISE.php @@ -1013,9 +1013,9 @@ $business_pd_visited_remark = (isset($pd_section_data[8]['business_pd_visited_re - '?> - '?> - '?> + '?> + '?> + '?>
Sales / Revenue ('.$rupee_symbol.') '.$rupee_symbol.' '. MYUTIL::customIndianNumberFormat($pd_section_data[10]['sales_amount']) .'
Net Profit or (Net Loss) to Sales % '. ( $pd_section_data[10]['net_profit_to_sales_percent'] != ''? $pd_section_data[10]['net_profit_to_sales_percent'] : '-').'
Net Profit / (Net Loss) ('.$rupee_symbol.') '.$rupee_symbol.' '.MYUTIL::customIndianNumberFormat($pd_section_data[10]['net_profit_rs']) .'
Sales / Revenue ('.$rupee_symbol.') '.(isset($pd_section_data[10]['sales_amount']) && $pd_section_data[10]['sales_amount'] != '' ? $rupee_symbol.' '. MYUTIL::customIndianNumberFormat($pd_section_data[10]['sales_amount']) : '-') .'
Net Profit or (Net Loss) to Sales % '. ( isset($pd_section_data[10]['net_profit_to_sales_percent']) && $pd_section_data[10]['net_profit_to_sales_percent'] != ''? $pd_section_data[10]['net_profit_to_sales_percent'] : '-').'
Net Profit / (Net Loss) ('.$rupee_symbol.') '.(isset($pd_section_data[10]['net_profit_rs']) && $pd_section_data[10]['net_profit_rs'] != '' ? $rupee_symbol.' '.MYUTIL::customIndianNumberFormat($pd_section_data[10]['net_profit_rs']) : '-') .'

@@ -1025,8 +1025,8 @@ $business_pd_visited_remark = (isset($pd_section_data[8]['business_pd_visited_re - '?> - '?> + '?> + '?> - + @@ -1316,7 +1316,7 @@ Business run by the applicant'; + echo ''; } }
Debtor Days '.$pd_section_data[10]['debtor_days_cm'].'Creditor Days '.$pd_section_data[10]['creditor_days_cm'].' Stock Days '.$pd_section_data[10]['inventory_days_cm'].'
Does the business have any working capital facility from any lender other than Moneywise? (Yes / No) '.$pd_section_data[10]['is_any_other_working_captial_facility'].'
Debtor Days '.(isset($pd_section_data[10]['debtor_days_cm']) ? $pd_section_data[10]['debtor_days_cm'] : '-').'Creditor Days '.( isset($pd_section_data[10]['creditor_days_cm']) ? $pd_section_data[10]['creditor_days_cm'] : '-').' Stock Days '.(isset($pd_section_data[10]['inventory_days_cm']) ? $pd_section_data[10]['inventory_days_cm'] : '-').'
Does the business have any working capital facility from any lender other than Moneywise? (Yes / No) '.(isset($pd_section_data[10]['is_any_other_working_captial_facility']) ? $pd_section_data[10]['is_any_other_working_captial_facility'] : '-').'
Existing Loan Obligations
Sr. No. Loan
Type
$value15) { - echo '
'. ($key15 + 1) .''. $value15['loan_type'] .''.$rupee_symbol.MYUTIL::customIndianNumberFormat($value15['loan_amount']).''.$value15['lender_name'].''.$value15['loan_taken_by'].''.$rupee_symbol.' '.MYUTIL::customIndianNumberFormat($value15['instalment_amount']).''.$value15['instalment_frequency'].''.($value15['original_tenure_months'] != '' ? $value15['original_tenure_months'] : 'NA').''.($value15['current_tenure_months'] != '' ? $value15['current_tenure_months'] : 'NA').''.($value15['elapsed_tenure_months'] != '' ? $value15['elapsed_tenure_months'] : 'NA') .'
'. ($key15 + 1) .''. $value15['loan_type'] .''.$rupee_symbol.MYUTIL::customIndianNumberFormat($value15['loan_amount']).''.($value15['lender_name'] != '' ? $value15['lender_name'] : 'NA').''.$value15['loan_taken_by'].''.$rupee_symbol.' '.MYUTIL::customIndianNumberFormat($value15['instalment_amount']).''.$value15['instalment_frequency'].''.($value15['original_tenure_months'] != '' ? $value15['original_tenure_months'] : 'NA').''.($value15['current_tenure_months'] != '' ? $value15['current_tenure_months'] : 'NA').''.($value15['elapsed_tenure_months'] != '' ? $value15['elapsed_tenure_months'] : 'NA') .'