From 5efb3f606e552156abeb5478c1e37078762358a3 Mon Sep 17 00:00:00 2001 From: velz Date: Tue, 7 May 2019 11:16:59 +0530 Subject: [PATCH] REG:PD REPORT --- api/application/config/constants.php | 2 +- api/application/controllers/PD_Controller.php | 29 +- api/application/docs/sample.pdf | Bin 882877 -> 929249 bytes api/application/helpers/assetsform_helper.php | 73 +- .../helpers/bankingform_helper.php | 11 +- .../helpers/businessform_helper.php | 15 +- .../helpers/financialform_helper.php | 73 +- .../helpers/getprocessedjson_helper.php | 61 + api/application/helpers/myutil_helper.php | 55 +- api/application/helpers/pdalerts_helper.php | 2 +- api/application/helpers/stockform_helper.php | 8 +- api/application/libraries/Pdfgenerator.php | 2 +- api/application/models/PD_Model.php | 2 +- .../views/report_templates/JSONTOREPORT.php | 1286 +++++++++++------ 14 files changed, 1120 insertions(+), 499 deletions(-) diff --git a/api/application/config/constants.php b/api/application/config/constants.php index fd325dd8..5bb1627a 100644 --- a/api/application/config/constants.php +++ b/api/application/config/constants.php @@ -101,7 +101,7 @@ else if(ENVIRONMENT == 'testing') { defined('LENDER_BUCKET_NAME_PREFIX') OR define('LENDER_BUCKET_NAME_PREFIX','len'); defined('PHANTOMJSSCRIPT_LOCATION') OR define('PHANTOMJSSCRIPT_LOCATION','phantomjs_test'); - defined('LOGTOBOT') OR define('LOGTOBOT',1); + defined('LOGTOBOT') OR define('LOGTOBOT',0); } /*********************END of AWS resources Constants*************************************************/ diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index 97e65e31..4bf4af4b 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -794,7 +794,7 @@ class PD_Controller extends REST_Controller { - $dataToBot = array('ENV'=>ENVIRONMENT,'Task Name'=>'PD Template Assign','Template ID'=>$choosed_template_id[0]['fk_template_id'] ,'PDID'=> $pd_details['pd_id'],'Method' => 'UpdatePDMaster','Pre-Status' => $exist_pd_details[0]['pd_status'],'Current_status' => $pd_details['pd_status']); + $dataToBot = array('ENV'=>ENVIRONMENT,'Task Name'=>'PD Template Assign','Template ID'=>$pd_details['fk_pd_template_id'] ,'PDID'=> $pd_details['pd_id'],'Method' => 'UpdatePDMaster','Pre-Status' => $exist_pd_details[0]['pd_status'],'Current_status' => $pd_details['pd_status']); MYHTTPCLIENT::sendPOST($dataToBot); } @@ -894,9 +894,15 @@ class PD_Controller extends REST_Controller { { //update Applicant details - $fields = array('additional_pd_id' => $pd_id); - $where_condition_array = array('pd_co_applicant_id'=>$pd_details['pd_co_applicant_id'],'mobile_no' => $pd_details['mobile_no']); - $this->PD_MODEL->updateRecords($fields,PDAPPLICANTSDETAILS,$where_condition_array); + $fields = array('pd_co_applicant_id'=>$pd_details['pd_co_applicant_id'],'mobile_no' => $pd_details['mobile_no']); + $where_condition_array = array('additional_pd_id' => $pd_id); + $this->PD_Model->updateRecords($fields,PDAPPLICANTSDETAILS,$where_condition_array); + + //update Assiged PD to Address Table + $where_condition_array = array('pd_address_id' => $newpd['fk_address_id']); + $temp_data = array('assigned_pd' => $pd_id); + $id = $this->PD_Model->updateRecords($temp_data,PDADDRESS,$where_condition_array); + $logger = MYLOG::logFunction(); $logger->info("TEMPLATE ASSIGN FUNCTIONALTIY CALLED AND TEMPLATED ID - ".$newpd['fk_pd_template_id']." CHOOSED",array('ENV'=>ENVIRONMENT,'Parent-PDID' => $newpd['parent_pd_id'],'Addresss ID'=>$newpd['fk_address_id'] ,'PDID' => $pd_id,'PD Type' => "Addtional PD",'Current_status' => $newpd['pd_status'])); @@ -905,10 +911,7 @@ class PD_Controller extends REST_Controller { MYHTTPCLIENT::sendPOST($dataToBot); - //update Assiged PD to Address Table - $where_condition_array = array('pd_address_id' => $newpd['fk_address_id']); - $temp_data = array('assigned_pd' => $pd_id); - $id = $this->PD_Model->updateRecords($temp_data,PDADDRESS,$where_condition_array); + //PDALERTS::pdnotification($newpd['pd_id']); @@ -958,7 +961,7 @@ class PD_Controller extends REST_Controller { $pdid = $records['pd_id']; $pd_master_detials = $this->PD_Model->getPDMasterDetails($pdid); - $address_count = $this->db->SELECT('count(*) as count')->FROM(PDADDRESS.' as PDADDRESS')->WHERE('PDADDRESS.fk_pd_id',$pd_master_detials[0]['parent_pd_id'])->WHERE('assigned_pd is null')->GET()->result_array(); + $address_count = $this->db->SELECT('count(*) as count')->FROM(PDADDRESS.' as PDADDRESS')->WHERE('PDADDRESS.fk_pd_id',$pd_master_detials[0]['parent_pd_id'])->WHERE('assigned_pd is null')->WHERE('PDADDRESS.isactive',1)->GET()->result_array(); $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; @@ -4690,6 +4693,7 @@ class PD_Controller extends REST_Controller { // PDALERTS::pdnotification(600); // die(); + $records = $this->post('records'); $pdid = $records['pd_id']; $is_regenerate = 0; @@ -4702,7 +4706,7 @@ class PD_Controller extends REST_Controller { $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(); - $data['pd_score'] = $this->calculateScore($pdid); + //$data['pd_score'] = $this->calculateScore($pdid); //print_r($data['pd_score']); // 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; @@ -4745,8 +4749,9 @@ class PD_Controller extends REST_Controller { $data['pd_processed_forms'][$i] = $this->PD_Model->selectCustomRecords($fields,$where_condition_array,PDFORMDETAILSJSON,array(),'','company_id','ASC'); } - //print_r(json_decode($data['pd_processed_forms'][20][0]['processed_json'],true)); - //die(); + //print_r(json_decode($data['pd_processed_forms'][14][0]['processed_json'],true)); + //die(); + //echo "*******************************************"; $t = $this->load->view('report_templates/JSONTOREPORT',$data,true); //echo $t; die(); //PDF Gen using DOM PDF diff --git a/api/application/docs/sample.pdf b/api/application/docs/sample.pdf index a44617f2b2ac29d27e0b827b9561c00815f5bc8d..051010a0870d72e4c4a77cfe5c98dcf6421d2928 100644 GIT binary patch delta 37744 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[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 UQgkaGEQg*mU$<^^ptt$|0VeTHm;e9( delta 24085 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 z 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¬+tdJ)DrXaCwpyT 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 diff --git a/api/application/helpers/assetsform_helper.php b/api/application/helpers/assetsform_helper.php index a0a01f97..61763186 100644 --- a/api/application/helpers/assetsform_helper.php +++ b/api/application/helpers/assetsform_helper.php @@ -106,19 +106,31 @@ public static function getBusinessAssetsDetails($values){ // echo "helper"; // print_r($fetchVal); $storeValue=array(); - $storeValue['business_assets_mode'] = $fetchVal['business_assets_mode']; - // this is machinaries + if($fetchVal['business_assets_mode'] != ""){ + $storeValue['business_assets_mode'] = $fetchVal['business_assets_mode']; + + if($fetchVal['business_assets_mode']==4){ switch(strtoupper($fetchVal['business_ownership_type'])) { case 'RENTED': - $storeValue['business_name_of_the_owner'] = ''; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['equipment_manufacturing_description'].' rented at Rs.'.$fetchVal['business_monthly_rented_amt']; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; + $storeValue['ownership'] = 'RENTED'; + $storeValue['business_approximate_market_value'] = 'NA'; + $storeValue['rent_amount'] = $fetchVal['business_monthly_rented_amt']; + + $storeValue['business_name_of_the_owner'] = ''; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['equipment_manufacturing_description']; + //.' rented at Rs.'.$fetchVal['business_monthly_rented_amt']; $storeValue['business_approximate_market_value'] = ''; break; case 'OWNED': + $storeValue['ownership'] = 'OWNED'; + $storeValue['rent_amount'] = 'NA'; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; $storeValue['business_name_of_the_owner'] = $fetchVal['business_name_of_the_owner'][0]['id']==0 ? $fetchVal['business_name_of_the_other_owner'] : $fetchVal['business_name_of_the_owner'][0]['name']; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['equipment_manufacturing_description'].' purchased in '.$fetchVal['business_purchase_year']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['equipment_manufacturing_description']; + //.' purchased in '.$fetchVal['business_purchase_year']; $storeValue['business_approximate_market_value'] = 'Rs.'.$fetchVal['business_approximate_market_value']; @@ -133,14 +145,22 @@ public static function getBusinessAssetsDetails($values){ else if($fetchVal['business_assets_mode']==3){ switch(strtoupper($fetchVal['business_ownership_type'])) { case 'RENTED': - $storeValue['business_name_of_the_owner'] = ''; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['manufacturer_model_vehicle'].' rented at Rs.'.$fetchVal['business_monthly_rented_amt']; - $storeValue['business_approximate_market_value'] = ''; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; + $storeValue['ownership'] = 'RENTED'; + $storeValue['business_approximate_market_value'] = 'NA'; + $storeValue['rent_amount'] = $fetchVal['business_monthly_rented_amt']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['manufacturer_model_vehicle']; + //.' rented at Rs.'.$fetchVal['business_monthly_rented_amt']; + break; case 'OWNED': //print_r($fetchVal['business_name_of_the_owner']);die(); + $storeValue['ownership'] = 'OWNED'; + $storeValue['rent_amount'] = 'NA'; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; $storeValue['business_name_of_the_owner'] = $fetchVal['business_name_of_the_owner'][0]['id']==0 ? $fetchVal['business_name_of_the_other_owner'] : $fetchVal['business_name_of_the_owner'][0]['name']; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['manufacturer_model_vehicle'].' purchased in '. $fetchVal['business_purchase_year']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['manufacturer_model_vehicle']; + //.' purchased in '. $fetchVal['business_purchase_year']; $storeValue['business_approximate_market_value'] = 'Rs.'.$fetchVal['business_approximate_market_value']; break; default: @@ -154,13 +174,22 @@ public static function getBusinessAssetsDetails($values){ else if($fetchVal['business_assets_mode']==2){ switch(strtoupper($fetchVal['business_ownership_type'])) { case 'RENTED': - $storeValue['business_name_of_the_owner'] = ''; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['property_type']==1 ? $fetchVal['business_details'][0]['other_property_type'].' rented at Rs.'. $fetchVal['business_monthly_rented_amt'] : $fetchVal['business_details'][0]['property_type'].' rented at Rs.'. $fetchVal['business_monthly_rented_amt']; - $storeValue['business_approximate_market_value'] = ''; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; + $storeValue['ownership'] = 'RENTED'; + $storeValue['business_approximate_market_value'] = 'NA'; + $storeValue['rent_amount'] = $fetchVal['business_monthly_rented_amt']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['property_type']==1 ? $fetchVal['business_details'][0]['other_property_type']:$fetchVal['business_details'][0]['property_type_master']; + //.' rented at Rs.'. $fetchVal['business_monthly_rented_amt'] : $fetchVal['business_details'][0]['property_type'].' rented at Rs.'. $fetchVal['business_monthly_rented_amt']; + break; case 'OWNED': + $storeValue['ownership'] = 'OWNED'; + $storeValue['rent_amount'] = 'NA'; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; $storeValue['business_name_of_the_owner'] = $fetchVal['business_name_of_the_owner'][0]['id']==0 ? $fetchVal['business_name_of_the_other_owner'] : $fetchVal['business_name_of_the_owner'][0]['name']; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['property_type']==1 ? $fetchVal['business_details'][0]['other_property_type'].' purchased in '. $fetchVal['business_purchase_year'] : $fetchVal['business_details'][0]['property_type'].' purchased in '. $fetchVal['business_purchase_year']; + + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['property_type']==1 ? $fetchVal['business_details'][0]['other_property_type']:$fetchVal['business_details'][0]['property_type_master']; + //.' purchased in '. $fetchVal['business_purchase_year'] : $fetchVal['business_details'][0]['property_type'].' purchased in '. $fetchVal['business_purchase_year']; $storeValue['business_approximate_market_value'] = 'Rs.'.$fetchVal['business_approximate_market_value']; break; default: @@ -173,13 +202,22 @@ public static function getBusinessAssetsDetails($values){ else if($fetchVal['business_assets_mode']==1){ switch(strtoupper($fetchVal['business_ownership_type'])) { case 'RENTED': - $storeValue['business_name_of_the_owner'] = ''; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['any_other_assets'].' rented at Rs.'. $fetchVal['business_monthly_rented_amt']; - $storeValue['business_approximate_market_value'] = 'Rs.'.$fetchVal['business_details'][0]['any_other_asset_value']; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; + $storeValue['ownership'] = 'RENTED'; + $storeValue['business_approximate_market_value'] = 'NA'; + $storeValue['business_name_of_the_owner'] = ''; + $storeValue['rent_amount'] = $fetchVal['business_monthly_rented_amt']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['any_other_assets']; + //.' rented at Rs.'. $fetchVal['business_monthly_rented_amt']; + break; case 'OWNED': + $storeValue['ownership'] = 'OWNED'; + $storeValue['business_assets_mode_master'] = $fetchVal['business_assets_mode_master']; + $storeValue['rent_amount'] = 'NA'; $storeValue['business_name_of_the_owner'] = $fetchVal['business_name_of_the_owner']['id']==0 ? $fetchVal['business_name_of_the_other_owner'] : $fetchVal['business_name_of_the_owner']['name']; - $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['any_other_assets'].' purchased in '. $fetchVal['business_purchase_year'].' at Rs.'.$fetchVal['business_details'][0]['any_other_asset_value']; + $storeValue['about_business_assets'] = $fetchVal['business_details'][0]['any_other_assets']; + //.' purchased in '. $fetchVal['business_purchase_year'].' at Rs.'.$fetchVal['business_details'][0]['any_other_asset_value']; $storeValue['business_approximate_market_value'] = 'Rs.'.$fetchVal['business_approximate_market_value']; break; default: @@ -187,6 +225,7 @@ public static function getBusinessAssetsDetails($values){ $storeValue['about_business_assets'] = ''; $storeValue['business_approximate_market_value'] = ''; } + } } array_push($mergeResult,$storeValue); diff --git a/api/application/helpers/bankingform_helper.php b/api/application/helpers/bankingform_helper.php index 0f8377b8..97f394e4 100644 --- a/api/application/helpers/bankingform_helper.php +++ b/api/application/helpers/bankingform_helper.php @@ -4,19 +4,20 @@ class Bankingform { //get business Banking public static function getBusinessBankingDetails($values){ - if(count($values)>0){ + // print_r($values);die(); + if(count($values)>0){ $values = array_map(function($tag) { $count_vintage = $tag['vintage_year'] >0 ? $tag['vintage_year'] :""; $count_vintage .= ($tag['vintage_year'] == 1) ? " Year" : (($tag['vintage_year'] > 1) ? " Years" : ""); $count_vintage.=' '; - $count_vintage .=$tag['vintage_month'] >0 ? $tag['vintage_month'] : ""; + $count_vintage .=$tag['vintage_month'] >0 ? ' and ' . $tag['vintage_month'] : ""; $count_vintage .=($tag['vintage_month'] == 1) ? " Month" : (($tag['vintage_month'] > 1) ? " Months" : ""); return array( 'account_name' => $tag['applicant_name']['id']==0 ? $tag['other_applicant'] : $tag['applicant_name']['name'], - 'bank_name' => $tag['bank_name'] ==1 ? $tag['other_bank'] : $tag['bank_name'], - 'account_type' => $tag['account_type'], + 'bank_name' => $tag['bank_name'] ==1 ? $tag['other_bank'] : $tag['bank_name_master'], + 'account_type' => $tag['account_type_master'], 'main_business' => $tag['salary'], - 'od_cc_limit' => ($tag['account_type']==3) ? $tag['limit'] : (($tag['account_type']==4) ? $tag['limit'] : ''), + 'od_cc_limit' => ($tag['account_type']==3) ? $tag['limit'] : (($tag['account_type']==4) ? $tag['limit'] : 'NA'), 'vintage' => $count_vintage, ); }, $values); diff --git a/api/application/helpers/businessform_helper.php b/api/application/helpers/businessform_helper.php index 8e395150..56340ef4 100644 --- a/api/application/helpers/businessform_helper.php +++ b/api/application/helpers/businessform_helper.php @@ -8,13 +8,14 @@ public static function getPartnerDetails($values){ foreach($values as $parRow){ $getPartner = array_map(function($tag) { $con_business_run = $tag['current_business_experiance_year'] >0 ? $tag['current_business_experiance_year'] :""; - $con_business_run .= ($tag['current_business_experiance_year'] == 1) ? "Year" : (($tag['current_business_experiance_year'] > 1) ? "Years" : ""); + $con_business_run .= ($tag['current_business_experiance_year'] == 1) ? " Year" : (($tag['current_business_experiance_year'] > 1) ? " Years" : ""); $con_business_run.=' '; - $con_business_run .=$tag['current_business_experiance_month'] >0 ? $tag['current_business_experiance_month'] : ""; - $con_business_run .=($tag['current_business_experiance_month'] == 1) ? "Month" : (($tag['current_business_experiance_month'] > 1) ? "Months" : ""); + $con_business_run .=$tag['current_business_experiance_month'] >0 ? 'and ' . $tag['current_business_experiance_month'] : ""; + $con_business_run .=($tag['current_business_experiance_month'] == 1) ? " Month" : (($tag['current_business_experiance_month'] > 1) ? " Months" : ""); return array( 'name' => array_key_exists('partner_other_name',$tag) ? $tag['partner_other_name'] : $tag['partner_name_master'], 'share_holding' => $tag['shareholding'].'%', + 'started_business' => $tag['started_business'] ? $tag['started_business'] : 'No', 'no_years_business' => $con_business_run, 'total_experience' => $tag['total_business_experiance'], 'previous_experience' => array_key_exists('total_business_previous_experience',$tag) ? $tag['total_business_previous_experience'] : 'NIL', @@ -32,8 +33,9 @@ public static function getFamilyMemberDetails($values){ $getFamilyMembers = array_map(function($tag) { return array( 'name' => $tag['family_member_salutation_master'].' '.$tag['family_member_name'], - 'relation' => $tag['other_family_relationship_id_master'] .' of '.$tag['relation_to_id_master'], - 'designation' => $tag['relationship_with_company_id_master'], + 'individual_relation' => $tag['other_family_relationship_id_master'] .' of ', + 'relation_to' => $tag['relation_to_id_master'], + 'relation_to_company' => substr($tag['relationship_with_company_id_master'],0,-2), 'started_business' => $tag['started_business'], ); @@ -48,6 +50,7 @@ public static function getActivityDetails($values,$type){ foreach($values as $busManuRowkey=>$busManuRow){ $getEachProducts=array(); $getEachProducts['products']=$busManuRow['main_products']; + $getEachProducts['description']=$busManuRow['description']; $getEachProducts['area_of_sale']=$busManuRow['area_of_sale']; // check area of sales @@ -207,6 +210,7 @@ public static function getActivityDetails($values,$type){ foreach($values as $busManuRowkey=>$busManuRow){ $getEachProducts=array(); $getEachProducts['products']=$busManuRow['main_products']; + $getEachProducts['description']=$busManuRow['description']; $getEachProducts['area_of_sale']=$busManuRow['area_of_sale']; // check area of sales @@ -366,6 +370,7 @@ public static function getActivityDetails($values,$type){ foreach($values as $busManuRowkey=>$busManuRow){ $getEachProducts=array(); $getEachProducts['products']=$busManuRow['others_details']; + $getEachProducts['description']=$busManuRow['description']; array_push($getRow,$getEachProducts); } diff --git a/api/application/helpers/financialform_helper.php b/api/application/helpers/financialform_helper.php index 4189a54d..2160279e 100644 --- a/api/application/helpers/financialform_helper.php +++ b/api/application/helpers/financialform_helper.php @@ -51,15 +51,17 @@ public static function getOtherLoanDetails($values){ // business financial details public static function getBusinessFinancialDetails($values){ $values = array_map(function($tag) { - return array( + + return array( 'financial_year' => $tag['financial_year'], - 'financial_annual_sale' => 'Rs.'.$tag['financial_annual_sale'], + 'financial_sales_revenue' => 'Rs.'.$tag['financial_annual_sale'], + 'financial_net_profit_mode' => $tag['finanical_profit_or_loss']==1 ? 1 : 0, 'financial_net_profit' => $tag['finanical_profit_or_loss']==1 ? 'Rs.'.$tag['financial_net_profit'] : '', + 'financial_net_loss' => $tag['finanical_profit_or_loss']!=1 ? 'Rs.'.$tag['financial_net_loss'] : '', 'financial_margin_of_profit' => $tag['finanical_profit_or_loss']==1 ? $tag['financial_margin_of_profit'] : '', - 'financial_net_loss' => $tag['finanical_profit_or_loss']!=1 ? 'Rs.'.$tag['financial_net_loss'] : '', 'financial_margin_of_loss' => $tag['finanical_profit_or_loss']!=1 ? $tag['financial_margin_of_loss'] : '', 'profit_variation' => $tag['financial_variation'], - 'sale_variation' => $tag['financial_profit_to_sale_variation'], + 'sale_variation' => $tag['financial_annualsales_variation'],'financial_profit_to_sale_variation' => $tag['financial_profit_to_sale_variation'] ); }, $values); return $values; @@ -70,26 +72,54 @@ public static function getBusinessCustomerFinancialDetails($values) { if($tag['estimate_profit_or_loss']==1){ return array( 'estimate_profit_or_loss' => $tag['estimate_profit_or_loss'], - 'estimate_sales_average' => 'Rs.'.$tag['estimate_sales_average'], - 'estimate_sales_from_to' => '(Rs.'.$tag['estimate_sales_from'].', Rs.'.$tag['estimate_sales_to'].')', - 'estimate_sales_to' => 'Rs.'.$tag['estimate_sales_to'], + 'estimate_sales_average' => $tag['estimate_sales_average'], + 'estimate_sales_from' => $tag['estimate_sales_from'], + 'estimate_sales_to' => $tag['estimate_sales_to'], 'estimate_net_margin_availablity' => $tag['estimate_net_margin_availablity'], - 'estimate_net_margin' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? 'Rs.'.$tag['estimate_profit_margin'] : 'Rs.'.$tag['estimate_net_profit'], - 'estimate_net_margin_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '(Rs.'.$tag['estimate_net_profit_from'].', Rs.'.$tag['estimate_net_profit_to'].')' : '', - 'estimate_net_margin_range' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_profit_percent'] : $tag['estimate_profit_margin_percent'], - 'estimate_net_margin_range_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '' : '( '.$tag['estimate_profit_range_from'].', '.$tag['estimate_profit_range_to'].')', + + //'estimate_net_margin' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ?$tag['estimate_profit_margin'] : $tag['estimate_net_profit'], + + 'net_profit_loss_sales_per_from' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_profit_range_from']: $tag['estimate_net_profit_from'], + + 'net_profit_loss_sales_per_to' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_profit_range_to']: $tag['estimate_net_profit_to'], + + 'net_profit_loss_sales_final_per' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_profit_margin_percent']:$tag['estimate_profit_margin'], //$tag['estimate_net_profit_percent'], + + 'net_profit_loss_sales_final_rs' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_profit_margin']: $tag['estimate_profit_margin_percent'],//$tag['estimate_net_profit'], + + + + //'estimate_net_margin_from' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_profit_from']: '', + + //'estimate_net_margin_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_profit_to']:'', + + //'estimate_net_margin_range' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_profit_percent'] : $tag['estimate_profit_margin_percent'], + + //'estimate_net_margin_range_from' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '' : $tag['estimate_profit_range_from'], + + // 'estimate_net_margin_range_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '' : '( '.$tag['estimate_profit_range_from'].', '.$tag['estimate_profit_range_to'].')', ); } else if($tag['estimate_profit_or_loss']==2){ return array( 'estimate_profit_or_loss' => $tag['estimate_profit_or_loss'], 'estimate_sales_average' => 'Rs.'.$tag['estimate_sales_average'], - 'estimate_sales_from_to' => '(Rs.'.$tag['estimate_sales_from'].', Rs.'.$tag['estimate_sales_to'].')', + 'estimate_sales_from' =>$tag['estimate_sales_from'], + 'estimate_sales_to' => $tag['estimate_sales_to'], 'estimate_net_margin_availablity' => $tag['estimate_net_margin_availablity'], - 'estimate_net_margin' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? 'Rs.'.$tag['estimate_net_loss'] : 'Rs.'.$tag['estimate_loss_margin'], - 'estimate_net_margin_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '(Rs.'.$tag['estimate_net_loss_from'].', Rs.'.$tag['estimate_net_loss_to'].')' : '', - 'estimate_net_margin_range' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_loss_percent'] : $tag['estimate_loss_margin_percent'], - 'estimate_net_margin_range_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '' : '('.$tag['estimate_loss_range_from'].', '.$tag['estimate_loss_range_to'].')', + + 'net_profit_loss_sales_per_from' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_loss_range_from']: $tag['estimate_net_profit_from'], + + 'net_profit_loss_sales_per_to' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_loss_range_to']: $tag['estimate_net_loss_to'], + + 'net_profit_loss_sales_final_per' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_loss_margin_percent']: $tag['estimate_loss_margin'],//$tag['estimate_net_loss_percent'], + + 'net_profit_loss_sales_final_rs' => strtoupper($tag['estimate_net_margin_availablity'])=='YES' ? $tag['estimate_loss_margin']: $tag['estimate_loss_margin_percent']//$tag['estimate_net_loss'], + + //'estimate_net_margin' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? 'Rs.'.$tag['estimate_net_loss'] : 'Rs.'.$tag['estimate_loss_margin'], + //'estimate_net_margin_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '(Rs.'.$tag['estimate_net_loss_from'].', Rs.'.$tag['estimate_net_loss_to'].')' : '', + //'estimate_net_margin_range' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? $tag['estimate_net_loss_percent'] : $tag['estimate_loss_margin_percent'], + //'estimate_net_margin_range_from_to' => strtoupper($tag['estimate_net_margin_availablity'])=='NO' ? '' : '('.$tag['estimate_loss_range_from'].', '.$tag['estimate_loss_range_to'].')', ); } @@ -109,5 +139,16 @@ public static function getBusinessCustomerHeader($values){ return array(); } } + +public static function getAvailableFacilities($array) +{ + $word_array = array('1' => 'Others', '2' => 'Bank Guarantee', '3' => 'Cash Credit Limit','4' => 'Factoring', '5' => 'Forfaiting', '6' => 'Letter of Credit'); + if(is_array($array)) + { + //$array = array_map(function($arr){ },$array); + } + return $array; +} + } ?> \ No newline at end of file diff --git a/api/application/helpers/getprocessedjson_helper.php b/api/application/helpers/getprocessedjson_helper.php index d29ae92d..731242a8 100644 --- a/api/application/helpers/getprocessedjson_helper.php +++ b/api/application/helpers/getprocessedjson_helper.php @@ -1960,6 +1960,67 @@ class GETPROCESSEDJSON } } + + if(array_key_exists('state',$address)) + { + //print_r($address); + $CI->db->SELECT( $master_tables_field_names['STATE'] ); + $CI->db->FROM(STATE); + $CI->db->WHERE('isactive',1); + $CI->db->WHERE($master_tables_pkid['STATE'] ,$address['state']); + $adress_type_name= $CI->db->GET()->result_array(); + //print_r($CI->db->last_query()); + if(count($adress_type_name)) + { + $raw_json['addresses'][$raw_json_key]['state_master'] = $adress_type_name[0][$master_tables_field_names['STATE']]; + } + } + + if(array_key_exists('city',$address)) + { + //print_r($address); + $CI->db->SELECT( $master_tables_field_names['CITY'] ); + $CI->db->FROM(CITY); + $CI->db->WHERE('isactive',1); + $CI->db->WHERE($master_tables_pkid['CITY'] ,$address['city']); + $city= $CI->db->GET()->result_array(); + //print_r($CI->db->last_query()); + if(count($city)) + { + $raw_json['addresses'][$raw_json_key]['city_master'] = $city[0][$master_tables_field_names['CITY']]; + } + } + + if(array_key_exists('pincode',$address)) + { + //print_r($address); + $CI->db->SELECT( $master_tables_field_names['PINCODE'] ); + $CI->db->FROM(PINCODE); + $CI->db->WHERE('isactive',1); + $CI->db->WHERE($master_tables_pkid['PINCODE'] ,$address['pincode']); + $pincode= $CI->db->GET()->result_array(); + //print_r($CI->db->last_query()); + if(count($pincode)) + { + $raw_json['addresses'][$raw_json_key]['pincode_master'] = $pincode[0][$master_tables_field_names['PINCODE']]; + } + } + + if(array_key_exists('uom',$address)) + { + //print_r($address); + $CI->db->SELECT( $master_tables_field_names['UOM'] ); + $CI->db->FROM(UOM); + $CI->db->WHERE('isactive',1); + $CI->db->WHERE($master_tables_pkid['UOM'] ,$address['uom']); + $uom= $CI->db->GET()->result_array(); + //print_r($CI->db->last_query()); + if(count($uom)) + { + $raw_json['addresses'][$raw_json_key]['uom_master'] = $uom[0][$master_tables_field_names['UOM']]; + } + } + } return ($raw_json); diff --git a/api/application/helpers/myutil_helper.php b/api/application/helpers/myutil_helper.php index 2149bcbc..c389bdc7 100644 --- a/api/application/helpers/myutil_helper.php +++ b/api/application/helpers/myutil_helper.php @@ -15,7 +15,7 @@ class MYUTIL $digits_1 = strlen($no); $i = 0; $str = array(); - $words = array('0' => '', '1' => 'One', '2' => 'Two', + $words = array('0' => 'zero', '1' => 'One', '2' => 'Two', '3' => 'Three', '4' => 'Four', '5' => 'Five', '6' => 'Six', '7' => 'Seven', '8' => 'Eight', '9' => 'Nine', '10' => 'Ten', '11' => 'Eleven', '12' => 'Twelve', @@ -47,12 +47,12 @@ class MYUTIL $points = ($point) ? "." . $words[$point / 10] . " " . $words[$point = $point % 10] : ''; - $res = $result . "Rupees " ; + $res = $result; if($points != "") { $res.=$points . " Paise"; } - return $res; + return $result.' Only'; } @@ -78,18 +78,47 @@ class MYUTIL // die(); if($companyid == $value['company_order_id']) { - $getSentense = $value['company_name']; - $getSentense .=' is a '; - $getSentense .=$value['business_entity_type']==1 ? $value['business_entity_type_other'] : $value['business_entity_type_master']; - $getSentense .=' formed on '; + $data['company_name'] = $value['company_name']; + //$getSentense .=' is a '; + $data['type_of_activity'] = $value['business_entity_type']==1 ? $value['business_entity_type_other'] : $value['business_entity_type_master']; + //$getSentense .=' formed on '; + //echo $data['type_of_activity']; + switch($value['business_entity_type']) + { + case 1: + case 6: + case 9: + $data['partners_title_name'] = "Member Details"; + break; + case 2: + $data['partners_title_name'] = "Director / Shareholder Details"; + break; + case 3: + //echo '3'; + $data['partners_title_name'] = "Proprietor Details"; + break; + case 4: + $data['partners_title_name'] = "Karta Details"; + break; + case 5: + case 7: + $data['partners_title_name'] = "Partner Details"; + break; + case 8: + case 11: + $data['partners_title_name'] = "Director Details"; + break; + + case 10: + $data['partners_title_name'] = "Trustee Details"; + break; + } + $data['year_and_month']= $value['business_years'] . ' Years'; + $data['year_and_month'] .= isset($value['business_month']) ? ' and '.$value['business_month'] . ' Months': ''; - $year_and_month = $value['business_years'] . ' Years'; - $year_and_month .= isset($value['business_month']) ? $value['business_month'] . ' months ago': ' ago'; - $getSentense .=$value['business_date_object'] ? date("d-m-Y", strtotime($value['business_date_object'])) : $year_and_month; + $data['formed_on'] = $value['business_date_object'] ? date("d-m-Y", strtotime($value['business_date_object'])) : null; - - $getSentense .='.'; - return $getSentense; + return $data; //return $value['company_name'].' is a '.$value['business_entity_type']==1 ? $value['business_entity_type_other'] : $value['business_entity_type_master'] .' formed on '.date("d-m-Y", strtotime($value['business_date_object'])); } } diff --git a/api/application/helpers/pdalerts_helper.php b/api/application/helpers/pdalerts_helper.php index 44481c7d..90dc2e9c 100644 --- a/api/application/helpers/pdalerts_helper.php +++ b/api/application/helpers/pdalerts_helper.php @@ -307,7 +307,7 @@ class PDALERTS $logger->error("Mailer Error:" ,array($mail->ErrorInfo)); } else { - $logger->info("Mailer Send:" ,array('mail ID' => $lender_email,'Status' => 'SEND')); + $logger->info("Mailer Send:" ,array('mail_ID' => $lender_email,'Status' => 'SEND')); } } diff --git a/api/application/helpers/stockform_helper.php b/api/application/helpers/stockform_helper.php index 0d8e2d0f..f88cd289 100644 --- a/api/application/helpers/stockform_helper.php +++ b/api/application/helpers/stockform_helper.php @@ -18,7 +18,7 @@ public static function getStockManufacturingDetails($rawMaterial,$goods){ 'name' => $tag['raw_name'], 'quantity' => strtoupper($tag['stock_observed'])=='YES' ? $tag['raw_quantity'] : '', 'uom' => strtoupper($tag['stock_observed'])=='YES' ? $getUom : '', - 'value' => strtoupper($tag['stock_observed'])=='YES' ? 'Rs.'.$tag['raw_value'] : '', + 'value' => strtoupper($tag['stock_observed'])=='YES' ? $tag['raw_value'] : '', ); }, $rawMaterial); @@ -33,7 +33,7 @@ public static function getStockManufacturingDetails($rawMaterial,$goods){ 'name' => $tag['goods_name'], 'quantity' => strtoupper($tag['goods_observed'])=='YES' ? $tag['goods_quantity'] : '', 'uom' => strtoupper($tag['goods_observed'])=='YES' ? $getGUom : '', - 'value' => strtoupper($tag['goods_observed'])=='YES' ? 'Rs.'.$tag['goods_value'] : '', + 'value' => strtoupper($tag['goods_observed'])=='YES' ? $tag['goods_value'] : '', ); }, $goods); @@ -52,7 +52,7 @@ public static function getStockRetailDetails($goods){ 'name' => $tag['traded_goods_name'], 'quantity' => strtoupper($tag['traded_goods_observed'])=='YES' ? $tag['traded_goods_quantity'] : '', 'uom' => strtoupper($tag['traded_goods_observed'])=='YES' ? $getUom : '', - 'value' => strtoupper($tag['traded_goods_observed'])=='YES' ? 'Rs.'.$tag['estimated_traded_goods_value'] : '', + 'value' => strtoupper($tag['traded_goods_observed'])=='YES' ? $tag['estimated_traded_goods_value'] : '', 'is_sufficiant' => (strtoupper($tag['traded_goods_observed'])=='YES') ? $getSufficient : ((strtoupper($tag['traded_goods_observed'])=='NO') ? $getSufficient : ''), ); }, $goods); @@ -71,7 +71,7 @@ public static function getStockWholesaleDetails($goods){ 'name' => $tag['traded_goods_name'], 'quantity' => strtoupper($tag['traded_goods_observed'])=='YES' ? $tag['traded_goods_quantity'] : '', 'uom' => strtoupper($tag['traded_goods_observed'])=='YES' ? $getUom : '', - 'value' => strtoupper($tag['traded_goods_observed'])=='YES' ? 'Rs.'.$tag['estimated_traded_goods_value'] : '', + 'value' => strtoupper($tag['traded_goods_observed'])=='YES' ? $tag['estimated_traded_goods_value'] : '', 'is_sufficiant' => (strtoupper($tag['traded_goods_observed'])=='YES') ? $getSufficient : ((strtoupper($tag['traded_goods_observed'])=='NO') ? $getSufficient : ''), ); }, $goods); diff --git a/api/application/libraries/Pdfgenerator.php b/api/application/libraries/Pdfgenerator.php index e187227d..ae780981 100644 --- a/api/application/libraries/Pdfgenerator.php +++ b/api/application/libraries/Pdfgenerator.php @@ -21,7 +21,7 @@ class Pdfgenerator public function generate($html, $filename='', $stream=TRUE, $paper = 'A4', $orientation = "portrait") { // echo 'stream'.$html.'tttt'; - $dompdf = new Dompdf(array('enable_remote' => true,'DOMPDF_ENABLE_PHP'=>true)); + $dompdf = new Dompdf(array('enable_remote' => true,'DOMPDF_ENABLE_PHP'=>true,'DOMPDF_UNICODE_ENABLED' => true)); $dompdf->load_html($html); $dompdf->set_paper($paper, $orientation); diff --git a/api/application/models/PD_Model.php b/api/application/models/PD_Model.php index 98e8f677..2df789cf 100644 --- a/api/application/models/PD_Model.php +++ b/api/application/models/PD_Model.php @@ -744,7 +744,7 @@ class PD_Model extends SPARQ_Model { */ public function getPDMasterDetails($pdid) { - $this->db->SELECT('PDTRIGGER.pd_id, PDTRIGGER.fk_lender_id,ENTITY.full_name as lender_full_name,ENTITY.short_name as lender_short_name, PDTRIGGER.fk_entity_billing_id,ENTITYBILLING.billing_name,PDTRIGGER.lender_applicant_id, DATE_FORMAT(PDTRIGGER.pd_date_of_initiation, "%d/%m/%Y") as pd_date_of_initiation,DATE_FORMAT(PDTRIGGER.pd_report_generated_date,"%d/%m/%Y") as pd_report_generated_date,PDTRIGGER.pd_date_of_initiation as pd_date_of_initiation_sqlformat, PDTRIGGER.fk_product_id,PRODUCTS.name as product_name,PRODUCTS.abbr as product_abbr, PDTRIGGER.fk_subproduct_id,SUBPRODUCTS.name as subproduct_name,SUBPRODUCTS.abbr as subproduct_abbr, PDTRIGGER.fk_pd_type,PDTYPE.type_name as pd_type_name, PDTRIGGER.pd_status,PDTRIGGER.pd_specific_clarification, DATE_FORMAT(PDTRIGGER.createdon,"%d/%m/%Y %H:%i %p") as createdon, PDTRIGGER.fk_createdby, DATE_FORMAT(PDTRIGGER.updatedon,"%d/%m/%Y %H:%i %p") as updatedon, PDTRIGGER.fk_updatedby,concat(USERPROFILE.first_name," ",USERPROFILE.last_name) as createdby,concat(USERPROFILE1.first_name," ",USERPROFILE1.last_name) as updatedby, PDTRIGGER.fk_pd_allocation_type,,PDALLOCATIONTYPE.pd_allocation_type_name, PDTRIGGER.fk_pd_allocated_to,concat(USERPROFILE2.first_name," ",USERPROFILE2.last_name) as pd_allocated_to,PDTRIGGER.executive_id,concat(EXECUTIVE.first_name," ",EXECUTIVE.last_name) as executive_name,PDTRIGGER.central_pd_officer_id,concat(CENTRALOFFICER.first_name," ",CENTRALOFFICER.last_name) as centralofficer,PDTRIGGER.fk_pd_template_id,TEMPLATE.template_name, PDTRIGGER.fk_customer_segment,CUSTOMERSEGMENT.name as customer_segment_name,CUSTOMERSEGMENT.abbr as customer_segment_abbr, PDTRIGGER.pd_officier_final_judgement, PDTRIGGER.pd_agency_id,AGENCY.full_name as agency_name, PDTRIGGER.loan_amount,PDTRIGGER.addressline1,PDTRIGGER.addressline2,PDTRIGGER.addressline3,PDTRIGGER.fk_city,CITY.name as city_name,PDTRIGGER.fk_state,STATE.name as state_name,PINCODE.pincode,PDTRIGGER.pincode as pincode_id,PDTRIGGER.pd_contact_person,PDTRIGGER.pd_contact_mobileno,DATE_FORMAT(PDTRIGGER.scheduled_on,"%d/%m/%Y %h:%i %p") as scheduled_on,PDTRIGGER.scheduled_on as scheduled_on_for_validation,DATE_FORMAT(PDTRIGGER.scheduled_on,"%dth %b %Y ") as scheduled_date_for_log,DATE_FORMAT(PDTRIGGER.scheduled_on,"%h:%i %p") as scheduled_time_for_log,DATE_FORMAT(PDTRIGGER.completed_on,"%d/%m/%Y %h:%i:%s %p") as completed_on,PDTRIGGER.remarks,PDTRIGGER.bounce_reason,PDTRIGGER.bounce_reason_others,BOUNCEMASTER.bounce_reason_name,PDTRIGGER.is_original_report_created,PDTRIGGER.pd_report_latest_version,PDAPPLICANTSDETAILS.applicant_name as main_applicant,PDTRIGGER.pd_branch_id,ENTITYLENDERBRANCH.branch_name,PDTRIGGER.qc_feedback,PDTRIGGER.qc_rating,PDTRIGGER.qc_remarks,PDTRIGGER.lender_rating,PDTRIGGER.lender_feedback,PDAPPLICANTSDETAILS.applicant_title_name,TITLES.name as title_name,PDTRIGGER.pd_contact_landline,PDTRIGGER.other_pincode,PDTRIGGER.is_otp_done,PDTRIGGER.encrypted_url,PDTRIGGER.is_child,PDTRIGGER.parent_pd_id,PDTRIGGER.fk_primary_address_id,PDTRIGGER.fk_address_id'); + $this->db->SELECT('PDTRIGGER.pd_id, PDTRIGGER.fk_lender_id,ENTITY.full_name as lender_full_name,ENTITY.short_name as lender_short_name, PDTRIGGER.fk_entity_billing_id,ENTITYBILLING.billing_name,PDTRIGGER.lender_applicant_id, DATE_FORMAT(PDTRIGGER.pd_date_of_initiation, "%d/%m/%Y") as pd_date_of_initiation,DATE_FORMAT(PDTRIGGER.pd_report_generated_date,"%d/%m/%Y") as pd_report_generated_date,PDTRIGGER.pd_date_of_initiation as pd_date_of_initiation_sqlformat, PDTRIGGER.fk_product_id,PRODUCTS.name as product_name,PRODUCTS.abbr as product_abbr, PDTRIGGER.fk_subproduct_id,SUBPRODUCTS.name as subproduct_name,SUBPRODUCTS.abbr as subproduct_abbr, PDTRIGGER.fk_pd_type,PDTYPE.type_name as pd_type_name, PDTRIGGER.pd_status,PDTRIGGER.pd_specific_clarification, DATE_FORMAT(PDTRIGGER.createdon,"%d/%m/%Y %H:%i %p") as createdon, PDTRIGGER.fk_createdby, DATE_FORMAT(PDTRIGGER.updatedon,"%d/%m/%Y %H:%i %p") as updatedon, PDTRIGGER.fk_updatedby,concat(USERPROFILE.first_name," ",USERPROFILE.last_name) as createdby,concat(USERPROFILE1.first_name," ",USERPROFILE1.last_name) as updatedby, PDTRIGGER.fk_pd_allocation_type,,PDALLOCATIONTYPE.pd_allocation_type_name, PDTRIGGER.fk_pd_allocated_to,concat(USERPROFILE2.first_name," ",USERPROFILE2.last_name) as pd_allocated_to,PDTRIGGER.executive_id,concat(EXECUTIVE.first_name," ",EXECUTIVE.last_name) as executive_name,PDTRIGGER.central_pd_officer_id,concat(CENTRALOFFICER.first_name," ",CENTRALOFFICER.last_name) as centralofficer,PDTRIGGER.fk_pd_template_id,TEMPLATE.template_name, PDTRIGGER.fk_customer_segment,CUSTOMERSEGMENT.name as customer_segment_name,CUSTOMERSEGMENT.abbr as customer_segment_abbr, PDTRIGGER.pd_officier_final_judgement, PDTRIGGER.pd_agency_id,AGENCY.full_name as agency_name, PDTRIGGER.loan_amount,PDTRIGGER.addressline1,PDTRIGGER.addressline2,PDTRIGGER.addressline3,PDTRIGGER.fk_city,CITY.name as city_name,PDTRIGGER.fk_state,STATE.name as state_name,PINCODE.pincode,PDTRIGGER.pincode as pincode_id,PDTRIGGER.pd_contact_person,PDTRIGGER.pd_contact_mobileno,DATE_FORMAT(PDTRIGGER.scheduled_on,"%d/%m/%Y %h:%i %p") as scheduled_on,PDTRIGGER.scheduled_on as scheduled_on_for_validation,DATE_FORMAT(PDTRIGGER.scheduled_on,"%dth %b %Y ") as scheduled_date_for_log,DATE_FORMAT(PDTRIGGER.scheduled_on,"%h:%i %p") as scheduled_time_for_log,DATE_FORMAT(PDTRIGGER.completed_on,"%d/%m/%Y %h:%i:%s %p") as completed_on,PDTRIGGER.remarks,PDTRIGGER.bounce_reason,PDTRIGGER.bounce_reason_others,BOUNCEMASTER.bounce_reason_name,PDTRIGGER.is_original_report_created,PDTRIGGER.pd_report_latest_version,PDAPPLICANTSDETAILS.applicant_name as main_applicant,PDTRIGGER.pd_branch_id,ENTITYLENDERBRANCH.branch_name,PDTRIGGER.qc_feedback,PDTRIGGER.qc_rating,PDTRIGGER.qc_remarks,PDTRIGGER.lender_rating,PDTRIGGER.lender_feedback,PDAPPLICANTSDETAILS.applicant_title_name,TITLES.name as title_name,PDTRIGGER.pd_contact_landline,PDTRIGGER.other_pincode,PDTRIGGER.is_otp_done,PDTRIGGER.encrypted_url,PDTRIGGER.is_child,PDTRIGGER.parent_pd_id,PDTRIGGER.fk_primary_address_id,PDTRIGGER.fk_address_id,PDTRIGGER.start_location'); $this->db->FROM(PDTRIGGER.' as PDTRIGGER'); $this->db->JOIN(ENTITY.' as ENTITY','PDTRIGGER.fk_lender_id = ENTITY.entity_id ','LEFT'); $this->db->JOIN(ENTITYBILLING.' as ENTITYBILLING','PDTRIGGER.fk_entity_billing_id = ENTITYBILLING.entity_billing_id','LEFT'); diff --git a/api/application/views/report_templates/JSONTOREPORT.php b/api/application/views/report_templates/JSONTOREPORT.php index 48502137..f9c7c467 100644 --- a/api/application/views/report_templates/JSONTOREPORT.php +++ b/api/application/views/report_templates/JSONTOREPORT.php @@ -4,7 +4,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - + @@ -115,6 +118,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ₹"; ?>







"; @@ -123,7 +128,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); echo "

PERSONAL DISCUSSION REPORT

"; echo "
for the case of
"; - echo "

".$pd_master_details[0]['title_name'].' '.$pd_master_details[0]['main_applicant']."

"; + echo "

".$main_applicant_name."

"; echo ""; echo "



"; ?> @@ -158,6 +163,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - -

Location Details :

+

PD LOCATION

PD Location Address : '.$pd_address['address'].' ,'.$pd_address['city_master'].' ,'.$pd_address['state_master'].' - '.$pincode; + echo '

GPS Coordinates of location where PD Visit was done : '.$pd_master_details[0]['start_location']; + ?> - foreach($address_form['addresses'] as $address_key => $address) - { - - - $address_key == 0? $paragraph_starting_text = "The applicants were met at their ": $paragraph_starting_text = "The applicants were also met at their "; - - $address_type = $address['address_type_others'] != "" ? $address['address_type_others'] : $address['address_type_master']; - - $locality_type = $address['locality_others'] != "" ? $address['locality_others'] : $address['locality_master']; - - - echo $paragraph_starting_text.$address_type." at ".$address['address'].". The PD location is situated in an area that can be classified as ".$locality_type.", and the approach was ".$address['pd_location_master'].". The locality was ".$address['comment_locality_master'].".

"; - - - } + Satellite Image of location of Where PD was Done - if( $address_form['address_form_remark'] != "") + Approch to PD Location + + Name Board +

Location Summary

+
The ".$address_type." is located in ".$locality." and the estimated area of the office is ".$estimated_area." ."; + echo "

The PD location was ". $pd_address['pd_location_master'].", and the locality in which the ".$address_type ." is situated is ".$pd_address['comment_locality_master'] .", as per the general observations made during the visit by PD officer."; + echo "

The PD officer also made the following observations:" ; + echo "
    "; + + echo "
  • The location of the ".$address_type." is ".$final_remark_data['is_service_provided']." to the nature of business.
  • "; + if($business_assets_details['business_assets_for_address'][0]['business_is_pd_visited'] == 'yes') { - ?>

    -

    PD Officer's Note (About Location Details) :

    Business Activity was seen during visit."; } + else{ + echo "
  • No business activity was seen during the PD visit
  • "; + } + if(isset($business_assets_details['business_assets_form_remark'])){ + echo "
  • ".$business_assets_details['business_assets_form_remark'] ."
  • ";} + echo "
"; + + if($address_form['address_form_remark']) + { + echo $address_form['address_form_remark'];} + echo "
"; + //die(); ?> @@ -377,66 +415,98 @@ defined('BASEPATH') OR exit('No direct script access allowed'); -
-

Loan Details :

- A loan for Rs ".MYUTIL::customIndianNumberFormat($loan_form['loan_amount'])." (".MYUTIL::numtowords($loan_form['loan_amount']).") has been applied by the applicant for ".$loan_form['end_use_master'][0]."."; - if($loan_form['is_transfer'] == 'yes') - { - echo "There is a balance transfer of Rs. ".MYUTIL::customIndianNumberFormat($loan_form['balance_transfer_amount'])." (".MYUTIL::numtowords($loan_form['balance_transfer_amount']).")from ".$loan_form['lender_master'].",and the balance top up of Rs.".$loan_form['topup_amount']." is to be used for ".$loan_form['end_use_topup_master'].". The applicants are comfortable to pay an EMI of Rs.".MYUTIL::customIndianNumberFormat($loan_form['emi_level'])." per month."; - } - else +

LOAN DETAILS:

+ 'Total Loan Amount applied for','details' => "".$loan_amount.'('."".MYUTIL::numtowords($loan_form['loan_amount']).')'); + + $loan_table_dispaly_rows[] = array('particulars' => 'Loan Tenure expected','details' => $loan_form['loan_tenure'].' Months'); + + $end_use = 'For '; + foreach($loan_form['end_use_master'] as $enduse) { - $own_contribution_string = ""; - if(count($loan_form['source_of_own_contribution_master'])) - { - $own_contribution_string = implode(" , ",$loan_form['source_of_own_contribution_master']); - } - // echo $own_contribution_string; - // echo "#################".strripos($own_contribution_string,','); - if($loan_form['other_source'] != "") - { - $own_contribution_string = substr_replace($own_contribution_string,"and",strripos($own_contribution_string,','),1); - } - echo "The amount of Rs.".MYUTIL::customIndianNumberFormat($loan_form['own_contribution'])." as own contribution from ".$own_contribution_string.". The applicants are comfortable to pay an EMI of Rs.".MYUTIL::customIndianNumberFormat($loan_form['emi_level'])." per month."; + if(strpos(strval($enduse), 'Others') === false) { $end_use.= $enduse.' and ';}else{ $end_use.=$loan_form['end_use_other'].' and'; } } + $end_use = substr_replace($end_use, '', strrpos($end_use, 'and'),strlen($end_use)); + $loan_table_dispaly_rows[] = array('particulars' => 'Loan Purpose','details' => $end_use); - //print_r($loan_form['owners_list_master']); - $owners_list = ""; - if(count($loan_form['owners_list_master'])) + if(strcasecmp($loan_form['is_transfer'],'no')) { - foreach($loan_form['owners_list_master'] as $owner) - { - $owners_list .= $owner." , "; - } - $owners_list = substr($owners_list,0,(strlen($owners_list)-2)); + + $loan_table_dispaly_rows[] = array('particulars' => 'Balance Transfer Amount','details' => "".MYUTIL::customIndianNumberFormat($loan_form['balance_transfer_amount']).'('."".MYUTIL::numtowords($loan_form['balance_transfer_amount']).')'); + + $loan_table_dispaly_rows[] = array('particulars' => 'Top Up Amount applied for','details' => "".MYUTIL::customIndianNumberFormat($loan_form['topup_amount']).'('."".MYUTIL::numtowords($loan_form['topup_amount']).')'); + + $loan_table_dispaly_rows[] = array('particulars' => 'Balance Transfer from','details' => $loan_form['lender_master']); + + } + else{ + + $loan_table_dispaly_rows[] = array('particulars' => 'Amount of Own Contribution','details' =>"".MYUTIL::customIndianNumberFormat($loan_form['own_contribution']).'('."".MYUTIL::numtowords($loan_form['own_contribution']).')' ); + $source_of_own_contribution = null; + + foreach($loan_form['source_of_own_contribution_master'] as $own_source) + { + if(strpos(strval($own_source), 'Others') === false) { $source_of_own_contribution.= $own_source.' and ';}else{ $source_of_own_contribution.=$loan_form['other_source'].' and'; } + } + $source_of_own_contribution = substr_replace($source_of_own_contribution, '', strrpos($source_of_own_contribution, 'and'),strlen($source_of_own_contribution)); + + $loan_table_dispaly_rows[] = array('particulars' => 'Source of Own Contribution','details' => $source_of_own_contribution); } - //echo "#################".strripos($owners_list,','); - $owners_list = count($loan_form['owners_list_master']) > 1 ? substr_replace($owners_list," and ",strripos($owners_list,','),1) : $owners_list ; - echo "The property being mortgaged is a ".$loan_form['property_type_master']." owned by ".$owners_list.", and is ".$loan_form['construction_status_master']." with an estimated market value of Rs ".number_format($loan_form['emv_per_customer'])."(".MYUTIL::numtowords($loan_form['emv_per_customer']).")

"; + $loan_table_dispaly_rows[] = array('particulars' => 'EMI Comfortable Paying','details' => $rupee_symbol.MYUTIL::customIndianNumberFormat($loan_form['emi_level']).'('.$rupee_symbol.MYUTIL::numtowords($loan_form['emi_level']).')' ); - if($loan_form['loandetails_remarks'] != "" || $loan_form['loandetails_remarks'] != null) - { - ?> -
-

PD Officer's Note (About Loan Details) :

'Type of Property Being Mortgaged','details' => $loan_form['property_type_master']); + + $owners_list = null;foreach($loan_form['owners_list_master'] as $owner){ $owners_list.=$owner.' and'; } + $owners_list = substr_replace($owners_list, '', strrpos($owners_list, 'and'),strlen($owners_list)); + $loan_table_dispaly_rows[] = array('particulars' => 'Name of the current / proposed owner(s) of the Property being Mortgaged','details' => $owners_list); + + $loan_table_dispaly_rows[] = array('particulars' => 'Status of Construction','details' => $loan_form['construction_status_master']); + + $loan_table_dispaly_rows[] = array('particulars' => 'Estimated Market Value of the property being mortgaged','details' => $rupee_symbol.MYUTIL::customIndianNumberFormat($loan_form['emv_per_customer']).'('.MYUTIL::numtowords($loan_form['emv_per_customer']).')'); + + //print_r($loan_table_dispaly_rows);die(); + ?> +

+ + + + $row) + { + echo '"; } ?> + +
S.No Loan Particulars Loan Particular Details
'.($row_key + 1)." ".$row['particulars']." ".$row['details'] ."
+
".$loan_form['loandetails_remarks']; + ?> - + 0) { + for($business_count = 0;$business_count < $total_no_of_business; $business_count++) + { + + + ?>
$bRow) { + $bRow = $pd_processed_forms[13][$business_count]; $businessRow = json_decode($bRow['processed_json'],true); $companyList = MYUTIL::findCompanyName($all_company_details,$businessRow['company_id'],2); //$companyList .=' The director details are as under :'; - $bindEachResult["company_name"]=$companyList; + $bindEachResult["company_details"]=$companyList; // this is for partner details if(array_key_exists('partners',$businessRow)){ $bindEachResult["partner"]=Businessform::getPartnerDetails($businessRow['partners']); @@ -503,8 +573,25 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $bindEachResult['business_peak_details']='The Business has no major changes in sales across season.'; } // this is for no of employess details - $bindEachResult['company_empployees']='As per person met there are '.$businessRow['employees_permanent'].' permanent and '.$businessRow['employees_temporary'].' temporary employees with company.'; - $bindEachResult['officer_visit_company_empployees']='The PD Officer could notice approximately '.$businessRow['officer_total'] .' employees during the visit.'; + if(isset($businessRow['employees_permanent']) && $businessRow['employees_permanent'] <= 0) { + $bindEachResult['company_empployees']='As per person met there are no permanent'; + } + else{ + $bindEachResult['company_empployees']='As per person met there are '.$businessRow['employees_permanent'].' permanent '; + } + if(isset($businessRow['employees_temporary']) && $businessRow['employees_temporary'] > 0) + { + $bindEachResult['company_empployees'].= 'and '.$businessRow['employees_temporary'].' temporary employee(s) with company.'; + }else{ + $bindEachResult['company_empployees'].= ' and no temporary employess found'; + } + if(isset($businessRow['officer_total']) && $businessRow['officer_total'] > 0) + { + $bindEachResult['officer_visit_company_empployees']='At the time of PD visit, approximately '.$businessRow['officer_total'] .' employee(s) during the visit at the business premises.'; + } + else{ + $bindEachResult['officer_visit_company_empployees']='At the time of PD visit, PD officer could not able to see any of employees at the business premises.'; + } //this is documents visited $getDocuments=array(); if(array_key_exists('shop_eat_act_cert',$businessRow) && strtoupper($businessRow['shop_eat_act_cert'])=='YES'){ @@ -532,15 +619,24 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } $bindEachResult['visit_documents']=$getDocuments; array_push($businessResult,$bindEachResult); - } + + + //print_r($businessResult); ?> -

Business Details

+

BUSINESS INFORMATION:

$fetchRow){ ?> -

About Company :

-

The director details are as under :

+

+
Company / Firm Name:
+
Business Entity Type:
+
Date of Incorporation:
+
Business Vintage: +

+ + +

@@ -550,6 +646,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); + @@ -561,6 +658,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); + @@ -568,16 +666,17 @@ defined('BASEPATH') OR exit('No direct script access allowed'); 0){ ?>
-

Besides the above, the below family members are also involved in the business :

+

Other Family Members involved in business :

No.of Years in Current Business Total Work Experience Previous ExperienceStarted Business
- - - + + + + @@ -585,8 +684,9 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - + + + @@ -595,21 +695,23 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - + - 0){ ?> + 0){ ?>
-

The Manufacturing details are as under :

+

Type of Business Activity : Manufacturing

NameRelationDesignationStarted BusinessIndividual RelationshipRelated toRelationship to Company / FirmStarted Business (Yes / No)
- - - - + + + + @@ -629,6 +731,21 @@ defined('BASEPATH') OR exit('No direct script access allowed');
ProductsArea of SaleSales DoneMax Sales DoneKey ProductsArea of OperationsArea of Sale / ServiceArea where Max Sale / Service done
+ +
+

Brief of the Business / Service Model

+ + + + + + + + + + +
Product / Service Process Brief
+ @@ -637,16 +754,16 @@ defined('BASEPATH') OR exit('No direct script access allowed'); 0){ ?>
-

The Retail Trading details are as under :

+

Type of Business Activity : Retail Trading

- - - - + + + + @@ -666,6 +783,20 @@ defined('BASEPATH') OR exit('No direct script access allowed');
ProductsArea of SaleSales DoneMax Sales DoneKey ProductsArea of OperationsArea of Sale / ServiceArea where Max Sale / Service done
+ +
+

Brief of the Business / Service Model

+ + + + + + + + + + +
Product / Service Process Brief
@@ -674,16 +805,16 @@ defined('BASEPATH') OR exit('No direct script access allowed'); 0){ ?>
-

The Service Provider details are as under :

+

Type of Business Activity : Service Provider

- - - + + + @@ -703,6 +834,21 @@ defined('BASEPATH') OR exit('No direct script access allowed');
ServicesArea of SaleServices AtMax Revenue FromArea of OperationsArea of Sale / ServiceArea where Max Sale / Service done
+ + +
+

Brief of the Business / Service Model

+ + + + + + + + + + +
Product / Service Process Brief
@@ -711,16 +857,16 @@ defined('BASEPATH') OR exit('No direct script access allowed'); 0){ ?>
-

The Wholesale Trading details are as under :

+

Type of Business Activity : Wholesale Trading

- - - - + + + + @@ -740,6 +886,21 @@ defined('BASEPATH') OR exit('No direct script access allowed');
ProductsArea of SaleSales DoneMax Sales DoneKey ProductsArea of OperationsArea of Sale / ServiceArea where Max Sale / Service done
+ + +
+

Brief of the Business / Service Model

+ + + + + + + + + + +
Product / Service Process Brief
@@ -767,9 +928,18 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - + + + + + + + + - +

@@ -791,31 +961,98 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - + + + + + 0){ + $bindBusinessAsset['details']=ASSETSFORM::getBusinessAssetsDetails($businessAssetRow['business_assets_details']); + } + array_push($businessAssetResult,$bindBusinessAsset); + + + //print_r($businessAssetResult); + ?> + + 0){ ?> +

Assets used in Buisness

+ +

+ + + + + + + + + + + + $baRow){ + if(isset($baRow['business_assets_mode_master'])) + { + $rent_amount = isset($baRow['rent_amount']) ? $rupee_symbol.MYUTIL::customIndianNumberFormat((double)$baRow['rent_amount']): '0.00'; + ?> + + + + + + + + + +
S.NoAsset TypeAsset DescriptionOwnershipMonthly Rent
+ + + +

Business asset is not available.

+ + +
$baRow) { + $profit_loss_symbal = ' /'; + $baRow = $pd_processed_forms[14][$business_count]; $businessFinancialRow = json_decode($baRow['processed_json'],true); - // statement + //print_r($businessFinancialRow);die(); + // statementdate_per_financial if(strtoupper($businessFinancialRow['is_financial_statements'])=='YES' && count($businessFinancialRow['date_per_financial'])>0){ $bindBusinessFinancial["company_name"] =MYUTIL::findCompanyName($all_company_details,$businessFinancialRow['company_id'],1); - $bindBusinessFinancial["company_name"] .= count($businessFinancialRow['date_per_financial'])>1 ? ' provided with last '.count($businessFinancialRow['date_per_financial']).' years of financial statements and the snapshot is as below :' : ' we were provided with last '.count($businessFinancialRow['date_per_financial']).' year of financial statements and the snapshot is as below :'; + //$bindBusinessFinancial["company_name"] .= count($businessFinancialRow['date_per_financial'])>1 ? ' provided with last '.count($businessFinancialRow['date_per_financial']).' years of financial statements and the snapshot is as below :' : ' we were provided with last '.count($businessFinancialRow['date_per_financial']).' year of financial statements and the snapshot is as below :'; + $bindBusinessFinancial["years_data_provided"] = count($businessFinancialRow['date_per_financial']); $bindBusinessFinancial['statements']=FINANCIALFORM::getBusinessFinancialDetails($businessFinancialRow['date_per_financial']); } else { $bindBusinessFinancial["company_name"] =MYUTIL::findCompanyName($all_company_details,$businessFinancialRow['company_id'],1); - $bindBusinessFinancial["company_name"] .=' not provided the financial statements :'; + //$bindBusinessFinancial["company_name"] .=' not provided the financial statements :'; $bindBusinessFinancial['statements']=array(); } // customer - if(strtoupper($businessFinancialRow['is_financial_customer'])!='YES' && count($businessFinancialRow['estimated_value'])==0){ + if(strtoupper($businessFinancialRow['is_financial_customer'])!='YES' && (!isset($businessFinancialRow['estimated_value']))){ $bindBusinessFinancial["financial_customer"] ="As per customers, the financials are as below :"; $bindBusinessFinancial['customer_statements']=array(); $bindBusinessFinancial['customer_statements_header']=array(); @@ -830,84 +1067,208 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $bindBusinessFinancial['customer_statements']=array(); $bindBusinessFinancial['customer_statements_header']=array(); } + $bindBusinessFinancial['working_capital_receive'] = $businessFinancialRow['receive_the_money_in_days']; + $bindBusinessFinancial['working_capital_pay'] = $businessFinancialRow['pay_the_money_in_days']; + $bindBusinessFinancial['working_capital_unsold_stock'] = $businessFinancialRow['unsold_stock_lies_in_days'] != "" || $businessFinancialRow['unsold_stock_lies_in_days'] != null ? $businessFinancialRow['unsold_stock_lies_in_days'] != "" : 'Data Not Provided'; + $bindBusinessFinancial['is_working_capital_facility'] = $businessFinancialRow['is_there_working_capital_available']; + $bindBusinessFinancial['working_capital_facilites'] = $businessFinancialRow['working_capital_facilities_availed']; + //FINANCIALFORM::getAvailableFacilities($businessFinancialRow[-'"working_capital_facilities_availed']); + array_push($businessFinancialResult,$bindBusinessFinancial); - } + ?> -

Financial Information

+ 0){ ?> - -

- 0){ ?> - - - - - - - - - - - - - - - Financial Information + - - - - - - - - - - - - -
YearSalesNet ProfitNet Profit to Sales %Net LossNet Loss to Sales %% Variation in PY Sales% Variation in PY Profit
- - -

- 0){ ?> +

Company / Firm Name :" . $iterateFinance['company_name']; ?>

+

No of Years of Financial Statements provided :" . $iterateFinance['years_data_provided']; ?>

+

Snapshot of Financials as per Books of Account Provided:"; ?>

+ 0){ ?> + - - - + "."FY ".$bfRow['financial_year']."";}?> + - - - - - + '.$bfRow['financial_sales_revenue'].'';}?> + + '.$bfRow['financial_net_profit'].'';}else{ echo ''; } }?> + + '.$bfRow['financial_margin_of_profit'].' %';}else { echo ''; } }?> + + + = 0 ? '' : ''; + }else { echo '';}?> + - + + + = 0 ? '' :''; + }else + {echo '';} }?> + + + = 0 ? '' : ''; + }else { echo '';}}?>
Particulars
-
-
-
-
-
-
-
-
-
Sales / Revenue (Rs)
Net Profit / (Net Loss) (Rs) ('.$bfRow['financial_net_loss'].')
Net Profit or (Net Loss) to Sales % ('.$bfRow['financial_margin_of_loss'].' %)
% () in Sales over PY'.$bfRow['sale_variation'].' %('.$bfRow['sale_variation'].' %)NA
% () in Net Profit over PY'.$bfRow['profit_variation'].' %('.$bfRow['profit_variation'].')NA
% () in Net Profit % over PY'.$bfRow['financial_profit_to_sale_variation'].' %('.$bfRow['financial_profit_to_sale_variation'].' %)NA
- + + +

+ 0){ + //print_r($iterateFinance['customer_statements']);die(); + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Particulars Range provided Final Considered
From To
Sales / Revenue (Rs)
Net Profit or (Net Loss) to Sales % >
Net Profit / (Net Loss) (Rs) >>>> >
Sales / Revenue (Rs)
Net Profit or (Net Loss) to Sales (Rs) >
Net Profit / (Net Loss)% >>>> >
+ + + + + +

Working Capital Cycle:

+ + + + + + + +
S.No Particulars Days
1 Debtor Days
2 Creditor Days
3 Stock Days
+ +

Working Capital Facilities:

+ + + + + "; + }?> + +
S.No Facility Type Facility Details
".$facility."
+ The Loan Applicants have not availed any Working Capital Facilities from any financial institution

";} ?> +

Financial information is not available.

- + +
+ + + 0){ + $getEachValues['is_od_cc'] = null; + foreach($businessBankRow['banking_details'] as $bd){ if($bd['account_type']== 4 || $bd['account_type']== 3){ $getEachValues['is_od_cc'] = true; } } + $getEachValues['bankDetails']=BANKINGFORM::getBusinessBankingDetails($businessBankRow['banking_details']); + $bankingResult = array_merge($bankingResult,$getEachValues); + + } + + ?> + + 0){ ?> +

Business Banking:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Account NameBank NameAccount TypeAccount VintageOD/CC Limit(Rs)
+ + + + + + @@ -916,132 +1277,204 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $clientResult=array(); // this is for manufacturing - foreach($pd_processed_forms[2] as $rowKey=> $cRow) { - $clientRow = json_decode($cRow['processed_json'],true); + //global $client_first_row; + $client_first_row = ''; + $client_second_row = ''; + $client_third_row = ''; + $client_fourth_row = ''; + $client_fifth_row = ''; + $client_sixth_row = ''; + $client_seventh_row = ''; + $to_no_of_clients = 0; + $done_on_credit = 0; + $name_of_the_company = ''; + $cRow = $pd_processed_forms[2][$business_count]; + $clientRow = json_decode($cRow['processed_json'],true); + + $name_of_the_company = MYUTIL::findCompanyName($all_company_details,$clientRow['company_id'],1); + // $bindEachResult["company_name"]=MYUTIL::findCompanyName($all_company_details,$clientRow['company_id'],1); + // $getmanufacturing = array(); + // $getTrading=array(); + // $getService=array(); + //$getTotalPaymentsPercentonCredit=array(); + $client_first_row = '1Product / Service '; + $client_second_row = '2Contact Person '; + $client_third_row = '3Mobile Number '; + $client_fourth_row = '4Landline No'; + $client_fifth_row = '5Payment Terms'; + $client_sixth_row = '6Payment Mode'; + $client_seventh_row = '7No of Days Credit'; - $bindEachResult["company_name"]=MYUTIL::findCompanyName($all_company_details,$clientRow['company_id'],1); - $getmanufacturing = array(); - $getTrading=array(); - $getService=array(); - $getTotalPaymentsPercentonCredit=array(); + + // this is for manufacturing if(array_key_exists('manufacturing_details',$clientRow)){ + + $done_on_credit += $clientRow['manufacturing_details'][0]['main_raw_materials_total_payments_percent_on_credit']; + foreach($clientRow['manufacturing_details'] as $manuRow){ + if(isset($manuRow['main_raw_materials'])){ - $getmanufacturing = array_map(function($tag) { - return array( - 'product' => $tag['manufacturing_product_name'], - 'client_name' => $tag['manufacturing_client_name'], - 'person_title_name' => array_key_exists('person_title_name_master',$tag) ? $tag['person_title_name_master'] : '', - 'person_designation' => ($tag['person_designation']==1) ? $tag['other_person_designation'] : ($tag['person_designation']>1 ? $tag['person_designation_master']: ''), - 'contact_person_name' => $tag['manufacturing_contact_person_name'], - 'contact_person_mobile_number' => $tag['manufacturing_contact_person_mobile_number'], - 'payment_type_master' => array_key_exists('manufacturing_payment_type_master',$tag) ? $tag['manufacturing_payment_type_master'] : '', - - ); - }, $manuRow['main_raw_materials']); - array_push($getTotalPaymentsPercentonCredit,$manuRow['main_raw_materials_total_payments_percent_on_credit']); + + $to_no_of_clients += count($manuRow['main_raw_materials']); + + foreach($manuRow['main_raw_materials'] as $main_raw_material_key => $main_raw_material) + { + //print_r($main_raw_material); + $client_first_row .= ''.$main_raw_material['manufacturing_product_name'].''; + + $client_second_row .= $main_raw_material['person_title_name_master'] ? '' . $main_raw_material['person_title_name_master']: '' . ''; + $client_second_row .= $main_raw_material['manufacturing_contact_person_name'] ; + + $client_second_row .= isset($main_raw_material['person_designation']) && $main_raw_material['person_designation']== 1 ? ' '.$main_raw_material['other_person_designation'] : ' ';// + + $client_second_row .= isset($main_raw_material['person_designation_master']) ? $main_raw_material['person_designation_master'] : '' ; + + $client_second_row .= ' '.$main_raw_material['manufacturing_client_name'].''; + + $client_third_row .= ''. $main_raw_material['manufacturing_contact_person_mobile_number'] .''; + + $client_fourth_row .= $main_raw_material['person_stdcode'] && $main_raw_material['person_landline'] ? ''. $main_raw_material['person_stdcode'].' '.$main_raw_material['person_landline'].'' : ''.'Not Provided'.''; + + $client_fifth_row .= $main_raw_material['manufacturing_payment_type_master'] ? ''. $main_raw_material['manufacturing_payment_type_master'] .'' : 'NA'; + + $client_sixth_row .= $main_raw_material['manufacturing_payment_mode'] ? ''. $main_raw_material['manufacturing_payment_mode'] .'' : 'NA';; + + $client_seventh_row .= $main_raw_material['manufacturing_credit_days_from'] && $main_raw_material['manufacturing_credit_days_to'] ? ''. $main_raw_material['manufacturing_credit_days_from'].' to '. $main_raw_material['manufacturing_credit_days_to'].' days'.'' :' NIL ' ; + + } } } } + + // this is for trading if(array_key_exists('trade_details',$clientRow)){ + $done_on_credit += $clientRow['trade_details'][0]['trading_products_total_payments_percent_on_credit']; foreach($clientRow['trade_details'] as $tradeRow){ if(isset($tradeRow['trading_products'])){ - $getTrading = array_map(function($tag) { - return array( - 'product' => $tag['trade_product_name'], - 'client_name' => $tag['trade_client_name'], - 'person_title_name' => array_key_exists('person_title_name_master',$tag) ? $tag['person_title_name_master'] : '', - 'person_designation' => ($tag['person_designation']==1) ? $tag['other_person_designation'] : ($tag['person_designation']>1 ? $tag['person_designation_master']: ''), - 'contact_person_name' => $tag['trade_product_contact_person_name'], - 'contact_person_mobile_number' => $tag['trade_product_contact_person_mobile_number'], - 'payment_type_master' => array_key_exists('trade_product_payment_type_master',$tag) ? $tag['trade_product_payment_type_master'] :'', - - ); - }, $tradeRow['trading_products']); - array_push($getTotalPaymentsPercentonCredit,$tradeRow['trading_products_total_payments_percent_on_credit']); - + $to_no_of_clients += count($tradeRow['trading_products']); + + foreach($tradeRow['trading_products'] as $trading_product_key => $trading_product) + { + + $client_first_row .= ''.$trading_product['trade_product_name'].''; + + $client_second_row .= $trading_product['person_title_name_master'] ? '' . $trading_product['person_title_name_master']: '' . ''; + $client_second_row .= $trading_product['trade_product_contact_person_name'] ; + + $client_second_row .= isset($trading_product['person_designation']) && $trading_product['person_designation']== 1 ? ' '.$trading_product['other_person_designation'] : ' ';// + + $client_second_row .= isset($trading_product['person_designation_master']) ? $trading_product['person_designation_master'] : '' ; + + $client_second_row .= ' '.$trading_product['trade_client_name'].''; + + $client_third_row .= ''. $trading_product['trade_product_contact_person_mobile_number'] .''; + + $client_fourth_row .= $trading_product['person_stdcode'] && $trading_product['person_landline'] ? ''. $trading_product['person_stdcode'].' '.$trading_product['person_landline'].'' : ''.'Not Provided'.''; + + $client_fifth_row .= $trading_product['trade_product_payment_type_master'] ? ''. $trading_product['trade_product_payment_type_master'] .'' : 'NA'; + + $client_sixth_row .= $trading_product['trade_product_payment_mode'] ? ''. $trading_product['trade_product_payment_mode'] .'' : 'NA';; + + $client_seventh_row .= $trading_product['trade_product_credit_days_from'] && $trading_product['trade_product_credit_days_to']? ''. $trading_product['trade_product_credit_days_from'].' to '. $trading_product['trade_product_credit_days_to'].' days'.'' :' NIL ' ; + + } + + } } } //this is for service if(array_key_exists('service_provider_details',$clientRow)){ + + $done_on_credit += $clientRow['service_provider_details'][0]['service_products_total_payments_percent_on_credit']; + foreach($clientRow['service_provider_details'] as $serviceRow){ if(isset($serviceRow['service_products'])){ - $getService = array_map(function($tag) { - return array( - 'product' => $tag['service_provider_product_name'], - 'client_name' => $tag['service_provider_client_name'], - 'person_title_name' => array_key_exists('person_title_name_master',$tag) ? $tag['person_title_name_master'] : '', - 'person_designation' => ($tag['person_designation']==1) ? $tag['other_person_designation'] : ($tag['person_designation']>1 ? $tag['person_designation_master']: ''), - 'contact_person_name' => $tag['service_provider_product_contact_person_name'], - 'contact_person_mobile_number' => $tag['service_provider_product_contact_person_mobile_number'], - 'payment_type_master' => array_key_exists('service_provider_product_payment_type_master',$tag) ? $tag['service_provider_product_payment_type_master'] :'', - - ); - }, $serviceRow['service_products']); - array_push($getTotalPaymentsPercentonCredit,$serviceRow['service_products_total_payments_percent_on_credit']); + $to_no_of_clients += count($serviceRow['service_products']); + foreach($serviceRow['service_products'] as $service_product_key => $service_product) + { + + $client_first_row .= ''.$service_product['service_provider_product_name'].''; + + $client_second_row .= $service_product['person_title_name_master'] ? '' . $service_product['person_title_name_master']: '' . ''; + $client_second_row .= $service_product['service_provider_product_contact_person_name'] ; + + $client_second_row .= isset($service_product['person_designation']) && $service_product['person_designation']== 1 ? ' '.$service_product['other_person_designation'] : ' ';// + + $client_second_row .= isset($service_product['person_designation_master']) ? $service_product['person_designation_master'] : '' ; + + $client_second_row .= ' '.$service_product['service_provider_client_name'].''; + + $client_third_row .= ''. $service_product['service_provider_product_contact_person_mobile_number'] .''; + + $client_fourth_row .= $service_product['person_stdcode'] && $service_product['person_landline'] ? ''. $service_product['person_stdcode'].' '.$service_product['person_landline'].'' : ''.'Not Provided'.''; + + $client_fifth_row .= $service_product['service_provider_product_payment_type_master'] ? ''. $service_product['service_provider_product_payment_type_master'] .'' : 'NA'; + + $client_sixth_row .= $service_product['service_provider_product_payment_mode'] ? ''. $service_product['service_provider_product_payment_mode'] .'' : 'NA'; + + $client_seventh_row .= $service_product['service_provider_product_credit_days_from'] && $service_product['service_provider_product_credit_days_to']? ''. $service_product['service_provider_product_credit_days_from'].' to '. $service_product['service_provider_product_credit_days_to'].' days'.'' :' NIL ' ; + + } } } } - $bindEachResult["details"]=array_merge($getmanufacturing,$getTrading,$getService); - $bindEachResult['total_payments_percent_on_credit'] = $getTotalPaymentsPercentonCredit; - array_push($clientResult,$bindEachResult); - } + + + $client_first_row .= ''; + $client_second_row .= ''; + $client_third_row .= ''; + $client_fourth_row .= ''; + $client_fifth_row .= ''; + $client_sixth_row .= ''; + $client_seventh_row .= ''; ?> -

Client Details

+ 0 ) + { + echo "

Client Details

"; + ?> - + - - - - + + + Client $i"; + }?> + - - - - - - - - + + + + + + + - - - - - - - +
Product/ServiceClientContactPaymentSr.NoParticulars
-
-
-
- + Out of total sales done by ".$name_of_the_company .", ".$done_on_credit."% is done on credit.

"; }?> + @@ -1049,114 +1482,168 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $row) { - $clientRow = json_decode($row['processed_json'],true); - $bindEachResult = array(); - $bindEachResult["company_name"]=MYUTIL::findCompanyName($all_company_details,$clientRow['company_id'],1); - $getmanufacturing = array(); - $getTrading=array(); - $getTotalPaymentsPercentonCredit=array(); + $supplier_details = $pd_processed_forms[1][$business_count]; + $clientRow = json_decode($supplier_details['processed_json'],true); + + $company_name = MYUTIL::findCompanyName($all_company_details,$clientRow['company_id'],1); + $total_no_of_suppliers = count($clientRow['manufacturing_details']); + $total_payments_percent_on_credit_for_supplier = 0; + + foreach($clientRow['manufacturing_details'] as $manuRow){ + $total_payments_percent_on_credit_for_supplier = $clientRow['manufacturing_details'][0]['main_raw_materials_total_payments_percent_on_credit']; if(isset($manuRow['main_raw_materials'])){ - $getmanufacturing = array_map(function($tag) { - return array( - 'product' => $tag['manufacturing_raw_material_name'], - 'supplier_name' => $tag['manufacturing_supplier_name'], - 'person_title_name' => array_key_exists('person_title_name_master',$tag) ? $tag['person_title_name_master'] : '', - 'person_designation' => ($tag['person_designation']==1) ? $tag['other_person_designation'] : ($tag['person_designation']>1 ? $tag['person_designation_master']: ''), - 'contact_person_name' => $tag['manufacturing_contact_person_name'], - 'contact_person_mobile_number' => $tag['manufacturing_contact_person_mobile_number'], - 'payment_type_master' => $tag['manufacturing_payment_type_master'], - - ); - }, $manuRow['main_raw_materials']); - array_push($getTotalPaymentsPercentonCredit,$manuRow['main_raw_materials_total_payments_percent_on_credit']); + + foreach($manuRow['main_raw_materials'] as $raw){ + + $temp['supplier_first_row'] = '1Item Purchased '.''.$raw['manufacturing_raw_material_name'].''; + + $supplier_second_row = '2Contact Person '; + + $supplier_second_row .= $raw['person_title_name_master'] ? '' . $raw['person_title_name_master']: '' . ''; + $supplier_second_row .= $raw['manufacturing_contact_person_name'] ; + + $supplier_second_row .= isset($raw['person_designation']) && $raw['person_designation']== 1 ? ' '.$raw['other_person_designation'] : ' ';// + + $supplier_second_row .= isset($raw['person_designation_master']) ? $raw['person_designation_master'] : '' ; + + $supplier_second_row .= ' '.$raw['manufacturing_supplier_name'].''; + $temp['supplier_second_row'] = $supplier_second_row.''; + + $temp['supplier_third_row'] = '3Mobile Number '.''. $raw['manufacturing_contact_person_mobile_number'] .''; + + $temp['supplier_fourth_row'] = '4Landline No'; + + $temp['supplier_fourth_row'] .= $raw['person_stdcode'] && $raw['person_landline'] ? ''. $raw['person_stdcode'].' '.$raw['person_landline'].'' : ''.'Not Provided'.''; + + $temp['supplier_fifth_row'] = '5Payment Terms'; + + $temp['supplier_fifth_row'] .= $raw['manufacturing_payment_type_master'] ? ''. $raw['manufacturing_payment_type_master'] .'' : 'NA'; + + $temp['supplier_sixth_row'] = '6Payment Mode'; + + $temp['supplier_sixth_row'] .= $raw['manufacturing_payment_mode'] ? ''. $raw['manufacturing_payment_mode'] .'' : 'NA'; + + $temp['supplier_seventh_row'] = '7No of Days Credit'; + + $temp['supplier_seventh_row'] .= $raw['manufacturing_credit_days_from'] && $raw['manufacturing_credit_days_to'] ? ''. $raw['manufacturing_credit_days_from'].' to '. $raw['manufacturing_credit_days_to'].'' : 'NA'; + array_push($supplierResult,$temp); + + } } } // this is for trading foreach($clientRow['trade_details'] as $tradeRow){ - if(isset($tradeRow['trading_products'])){ - - $getTrading = array_map(function($tag) { - return array( - 'product' => $tag['trade_product_name'], - 'supplier_name' => $tag['trade_supplier_name'], - 'person_title_name' => array_key_exists('person_title_name_master',$tag) ? $tag['person_title_name_master'] : '', - 'person_designation' => ($tag['person_designation']==1) ? $tag['other_person_designation'] : ($tag['person_designation']>1 ? $tag['person_designation_master']: ''), - 'contact_person_name' => $tag['trade_product_contact_person_name'], - 'contact_person_mobile_number' => $tag['trade_product_contact_person_mobile_number'], - 'payment_type_master' => array_key_exists('trade_product_payment_type_master',$tag) ? $tag['trade_product_payment_type_master'] :'', - - ); - }, $tradeRow['trading_products']); - array_push($getTotalPaymentsPercentonCredit,$tradeRow['trading_products_total_payments_percent_on_credit']); - - } + + $total_payments_percent_on_credit_for_supplier = $clientRow['trade_details'][0]['trading_products_total_payments_percent_on_credit']; + + if(isset($tradeRow['trading_products'])){ + + + foreach($tradeRow['trading_products'] as $trade){ + + $temp['supplier_first_row'] = '1Item Purchased '.''.$trade['trade_product_name'].''; + + $supplier_second_row = '2Contact Person '; + + $supplier_second_row .= $trade['person_title_name_master'] ? '' . $trade['person_title_name_master']: '' . ''; + $supplier_second_row .= $trade['trade_product_contact_person_name'] ; + + $supplier_second_row .= isset($trade['person_designation']) && $trade['person_designation']== 1 ? ' '.$trade['other_person_designation'] : ' ';// + + $supplier_second_row .= isset($trade['person_designation_master']) ? $trade['person_designation_master'] : '' ; + + $supplier_second_row .= ' '.$trade['trade_supplier_name'].''; + $temp['supplier_second_row'] = $supplier_second_row.''; + + $temp['supplier_third_row'] = '3Mobile Number '.''. $trade['trade_product_contact_person_mobile_number'] .''; + + $temp['supplier_fourth_row'] = '4Landline No'; + + $temp['supplier_fourth_row'] .= $trade['person_stdcode'] && $trade['person_landline'] ? ''. $trade['person_stdcode'].' '.$trade['person_landline'].'' : ''.'Not Provided'.''; + + $temp['supplier_fifth_row'] = '5Payment Terms'; + + $temp['supplier_fifth_row'] .= $trade['trade_product_payment_type_master'] ? ''. $trade['trade_product_payment_type_master'] .'' : 'NA'; + + $temp['supplier_sixth_row'] = '6Payment Mode'; + + $temp['supplier_sixth_row'] .= $trade['trade_product_payment_mode'] ? ''. $trade['trade_product_payment_mode'] .'' : 'NA'; + + $temp['supplier_seventh_row'] = '7No of Days Credit'; + + $temp['supplier_seventh_row'] .= $trade['trade_product_credit_days_from'] && $trade['trade_product_credit_days_to'] ? ''. $trade['trade_product_credit_days_from'].' to '. $trade['trade_product_credit_days_to'].' days' : 'NA'; + array_push($supplierResult,$temp); + + } + } + } - $bindEachResult["details"]=array_merge($getmanufacturing,$getTrading); - $bindEachResult['total_payments_percent_on_credit'] = $getTotalPaymentsPercentonCredit; - count($bindEachResult['details'])? array_push($supplierResult,$bindEachResult) : $supplierResult; - - } - - if(count($supplierResult)) + + if(count($supplierResult)) { ?>

Supplier Details

$fetchRow){ + echo '
Supplier '.($k+1).':'; ?> - + - - - - + + + - - - - - - - - - - - - - - - +
Raw Material/TradingSupplierContactPaymentSr.NoParticularsDetails
-
-
-
- + + + 0) + { + echo "

Have to make payment of about ". $total_payments_percent_on_credit_for_supplier ." % in advance rest on delivery.

"; + } + + }?> $stRow) { + $stRow = $pd_processed_forms[11][$business_count]; $stockRow = json_decode($stRow['processed_json'],true); + //print_r($stockRow);die(); + $is_stock_sufficient_enough = $stockRow['is_sufficiant_finished_and_traded_goods']; + $is_raw_materials_sufficient_enough = null; $bindStockResult["company_name"]=MYUTIL::findCompanyName($all_company_details,$stockRow['company_id'],1); // this is for stock manufacturing details - if(count($stockRow['manufacturing_details'][0]['manufacturing_raw_materials']) > 0 || count($stockRow['manufacturing_details'][0]['manufacturing_finished_goods']) > 0){ + if(count($stockRow['manufacturing_details'] && (count($stockRow['manufacturing_details'][0]['manufacturing_raw_materials']) > 0 || count($stockRow['manufacturing_details'][0]['manufacturing_finished_goods']) > 0))){ + + $is_raw_materials_sufficient_enough = $stockRow['manufacturing_details'][0]['is_sufficiant_raw']; $bindStockResult["manufacturing"]=Stockform::getStockManufacturingDetails($stockRow['manufacturing_details'][0]['manufacturing_raw_materials'], $stockRow['manufacturing_details'][0]['manufacturing_finished_goods']); + //print_r($bindStockResult["manufacturing"]); } else { $bindStockResult["manufacturing"]=array(); @@ -1175,162 +1662,110 @@ defined('BASEPATH') OR exit('No direct script access allowed'); else { $bindStockResult["wholesale"]=array(); } - count($bindStockResult['wholesale']) || count($bindStockResult['retail']) || count($bindStockResult['manufacturing'])? array_push($stockResult,$bindEachResult) : $stockResult; - } + count($bindStockResult['wholesale']) || count($bindStockResult['retail']) || count($bindStockResult['manufacturing'])? array_push($stockResult,$bindStockResult) : $stockResult; + + //print_r($stockResult);//die(); ?> - +

Stock Details

0) { ?> -

The Manufacturing stock details are as under :

+ - - - - - - + + + + + - + - - - - + + + + - - -
TypeNameQtyUOMValueDetailsSr.NoType of StockStock ItemStock Value (Rs)Stock Quantity
+ + 0) { ?> -

The Retail trading stock details are as under :

- - - - - - - - - - - + + - - - - + + - - -
NameQtyUOMValueDetails
+ 0) { ?> -

The Wholesale trading stock details are as under :

- - - - - - - - - - - + + - - - - + + +
NameQtyUOMValueDetails
- - + Considering the size of operations, the stock of goods maintained is sufficient as per the PD Officer’s observations.

"; + }else if(!strcasecmp($is_stock_sufficient_enough,'no')){ + echo "

Considering the size of operations, the stock of goods maintained is not sufficient as per the PD Officer’s observations.

"; + } + if(!strcasecmp($is_raw_materials_sufficient_enough,'yes')) + { + echo "

Considering the size of operations, the stock of raw materials maintained is sufficient as per the PD Officer’s observations.

"; + }else if(!strcasecmp($is_raw_materials_sufficient_enough,'no')) + { + echo "

Considering the size of operations, the stock of raw materials maintained is not sufficient as per the PD Officer’s observations.

"; + } + ?> + - - - $baRow) { - - $businessAssetRow = json_decode($baRow['processed_json'],true); - $bindBusinessAsset["company_name"] ='Assets used for '; - $bindBusinessAsset["company_name"] .=MYUTIL::findCompanyName($all_company_details,$businessAssetRow['company_id'],1); - $bindBusinessAsset["company_name"] .=' Business :'; - if(count($businessAssetRow['business_assets_details'])>0){ - $bindBusinessAsset['details']=ASSETSFORM::getBusinessAssetsDetails($businessAssetRow['business_assets_details']); - } - array_push($businessAssetResult,$bindBusinessAsset); - } - - - ?> -

Asset Details

- 0){ ?> - -

- - - - - - - - - - - - - - - - - - - -
AssetOwned ByDetailsMarket Value
- - - -

Business asset is not available.

- - + + $oaRow) { $otherAssetRow = json_decode($oaRow['processed_json'],true); @@ -1372,6 +1807,10 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $iRow) { $otherIcomeRow = json_decode($iRow['processed_json'],true); @@ -1615,7 +2054,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');

Final Remarks Section

- Details Score Card Section