load->library('myspreadsheet'); SELF::$current_section_id = $section_id; // echo is_numeric($section_id); // var_dump($section_id);die(); //echo $file_path_withname;echo file_exists($file_path_withname); die(); // $file_path_withname = 'C:/xampp/htdocs/ssa_external_data/testing/tmp/mySMCPD.xlsx'; // $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName); $spreadsheet_io_fact = $CI->myspreadsheet->getIOFactory($file_path_withname); //$curr_spreadshett = $spreadsheet_io_fact::load($file_path_withname); //echo $spreadsheet_io_fact->getSheetCount(); //$spreadsheet_io_fact->setReadDataOnly(true); $spreadsheet_io_fact->setActiveSheetIndex(0); $sheetData = $spreadsheet_io_fact->getActiveSheet()->toArray(null, true, false, true); //print_r($sheetData);die(); return SELF::seperateSectionData($section_id,$sheetData,$pd_id); // print_r(SELF::seperateSectionData($section_id,$sheetData,$pd_id));die(); // $CI->load->model('PD_Model'); //return ( $CI->PD_Model->selectCustomRecords(array('pd_co_applicant_id','applicant_name'),array('fk_pd_id' => $pd_id),PDAPPLICANTSDETAILS)); // return array('sam'=>'dsnlskdnm'); // print_r(array('sam'=>'dsnlskdnm')); } static function seperateSectionData($section_id,$sheetData,$pd_id) { // echo 's-worked';die(); $CI =&get_instance(); $CI->load->model('PD_Model'); $where_condition_array = array('isactive' => 1,'section_id' => $section_id); //if($section_id == null){ $where_condition_array = array('isactive' => 1,'section_id in ' => '(null,1)'); } $section_ref_data = $CI->PD_Model->selectCustomRecords(array('*'),$where_condition_array,EXCEL_COLUMN_REF_NAME); // print_r($section_ref_data);die(); $return_data = array(); // $section_id = is_null($section_id) ? '' : $section_id; if($section_id) { $return_data = SELF::getIndividualSectionData($sheetData,$section_ref_data); if($section_id == 2 || $section_id == 8) //get pd initialted address as custom function { if($section_id == 8) { $address_section = $CI->PD_Model->selectCustomRecords(array('*'),array('isactive' => 1,'fk_form_id' => 2,'fk_pd_id' => $pd_id),SMC_CREDIT_PD_SECTION_DATA); // print_r($address_section);die(); if(is_array($address_section) && count($address_section)) { $jsn = json_decode($address_section[0]['json'],true); // echo strtolower($jsn['is_pd_done_on_initiated_address']);die(); if(strtolower($jsn['is_pd_done_on_initiated_address']) == 'no') { $return_data['initiated_address'] = $jsn['alternative_address']; } else { $return_data['initiated_address'] = $jsn['initiated_address']; } } } else if($section_id == 2 || (!isset($return_data['initiated_address']))) { $pd_address = $CI->PD_Model->getPDAddress($pd_id); if(count($pd_address)){ $return_data['initiated_address'] = $pd_address[0]['addressline1'].', '.$pd_address[0]['city_name'].', '.$pd_address[0]['state_name'].' - '.$pd_address[0]['pincode']; } } } if($section_id == 3) //get sub product as custom func tion { $pd_master = $CI->PD_Model->getPDMasterDetails($pd_id); if(count($pd_master)){ $return_data['sub_product'] = $pd_master[0]['fk_subproduct_id']; } } } else { $return_data = SELF::getTriggerData($sheetData,$section_ref_data); } return ($return_data); } static function getIndividualSectionData($sheetData,$section_ref_data) { $return_data = array(); $keys = array(); foreach ($sheetData as $key => $value) { // print_r($value); // die(); $tmp = SELF::returnMatchedData($section_ref_data,$value);//print_r($tmp); if(is_array($tmp)) { if(isset($tmp['parent_key'])) { $trimedData = SELF::trimExcelEmptyCells($value); // $trimedData = ($value); $temp[$tmp['parent_key']][$tmp['key_name']] = SELF::getMultipleCellValues($trimedData,$tmp['key_name']); $keys[$tmp['parent_key']][] = $tmp['key_name']; $return_data = $temp; } else { $temp[$tmp['key_name']] = $value['C']; $return_data = $temp; } } } // print_r($keys); //print_r($return_data);//die(); $return_data = SELF::transformRowColumsForMultipleData($return_data,$keys); if(SELF::$current_section_id == 10) { $return_data['financial_info'] = array_reverse($return_data['financial_info']); $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'); // $return_data['net_profit_rs'] = SELF::getNumFormat($return_data['net_profit_rs']); // $return_data['sales_amount'] = SELF::getNumFormat($return_data['sales_amount']); $return_data['broken_period_turnover_cy'] = SELF::getNumFormat($return_data['broken_period_turnover_cy']); $return_data['broken_period_turnover_py'] = SELF::getNumFormat($return_data['broken_period_turnover_py']); $return_data['broken_period_from_month'] = SELF::getExcel2DateFormat($return_data['broken_period_from_month']); $return_data['broken_period_to_month'] = SELF::getExcel2DateFormat($return_data['broken_period_to_month']); } // print_r($return_data); // die(); return ($return_data); } static function getTriggerData($sheetData,$section_ref_data) { // echo 'worked';die(); $return_data = array(); unset($sheetData[1]); $main_applicant_column_name = ''; foreach ($sheetData as $key => $value) { $value = SELF::trimExcelEmptyCells($value); //print_r($value);//die(); $tmp = SELF::returnMatchedData($section_ref_data,$value); if(is_array($tmp) && isset($tmp['key_name'])) { $temp[$tmp['key_name']] = $value['C']; //$temp['value'] = $value['C']; $return_data = $temp; } if($key == 8) { //print_r($value); $value = (array_splice(($value),3));$value = array_reverse($value); foreach ($value as $val) { $return_data['co_applicants'][] = array('applicant_name' => $val); } } if($key == 9) {break;} } return ($return_data); } static function returnMatchedData($arr,$val) { foreach ($arr as $key => $value) { if(!$value['parent_key'] && ($val['A'] == $value['ref'])) { return array('key_name' => $value['key_name']); } else if($value['parent_key'] && ($val['A'] == $value['ref'])) { return array('key_name' => $value['key_name'],'parent_key' => $value['parent_key']); } } } public static function getApplicantsNameById($id,$latest_applicants_names,$type = 1) //$type i for return name only, 2 for return title only, and 3 for return both { foreach ($latest_applicants_names as $key => $value) { if($id == $value['pd_co_applicant_id']) { return $type == 1 ? $value['applicant_name'] : ($type == 2 ? $value['title'] : ($value['title'].' '.$value['applicant_name'])); } } } static function trimExcelEmptyCells($arr) { $return_data = array(); foreach ($arr as $key => $value) { if($value) { $return_data[$key] = $value; } } return $return_data; } static function getMultipleCellValues($trimedData,$key_name) { $return_data = array(); foreach ($trimedData as $key => $value) { if($key != 'A' && $key != 'B') { // $return_data[] = array($key_name => $value); $return_data[] = $value; } } // if(SELF::$current_section_id == 5) // { // print_r($return_data); // } return $return_data; } static function transformRowColumsForMultipleData($return_data,$keys) { $final_data = array(); $keys_to_be_decimal = array('sales_revenue','net_profit'); $keys_to_be_per = array('share_holding'); // print_r($return_data); // print_r($keys);die(); foreach ($keys as $current_key => $arr) { if(array_key_exists($current_key, $return_data)) { $data_to_be_transform = $return_data[$current_key]; // print_r($data_to_be_transform); $total_no_of_fields = count($data_to_be_transform); $total_no_of_data = count( (reset($data_to_be_transform)) ); // echo $total_no_of_fields.'-'.$total_no_of_data;die(); $temp = array(); for($i = 0;$i<$total_no_of_fields;$i++) { for($j=0;$j<$total_no_of_data;$j++) { if(in_array($arr[$i],$keys_to_be_decimal)) { $temp[$j][ $arr[$i] ] = isset($data_to_be_transform[ $arr[$i] ][$j]) ? (SELF::getNumFormat($data_to_be_transform[ $arr[$i] ][$j])) : ''; } else if(in_array($arr[$i],$keys_to_be_per)) { $temp[$j][ $arr[$i] ] = isset($data_to_be_transform[ $arr[$i] ][$j]) ? (SELF::getNumFormat($data_to_be_transform[ $arr[$i] ][$j],'per')) : ''; } else { $temp[$j][ $arr[$i] ] = isset($data_to_be_transform[ $arr[$i] ][$j]) ? $data_to_be_transform[ $arr[$i] ][$j] : ''; } } } $return_data[$current_key] = $temp; } } return $return_data; } static function getNumFormat($field,$field_type = '') { if(isset($field) && $field != '') { if($field_type == 'per') { $field = $field * 100; } $field = number_format($field,2,'.',''); } return $field; } static function getExcel2DateFormat($excel_date) { // $excel_date = 39994; return gmdate('d-m-Y',$UNIX_DATE = (($excel_date) - 25569) * 86400); // return date('m/d/Y',mktime(0,0,0,1,($excel_date-1),1900)); //gmdate("d-m-Y H:i:s", $UNIX_DATE); } } ?>