load->model('Sales_PD_Model'); $this->external_path = $this->config->item('external_data_path'); $this->load->library('AWS_S3'); $this->load->library('pdfgenerator'); $this->load->helper('satellite_image'); } public function loadSalesPDTemplate_post() { $records = $this->post('records'); $lender_id = $records['lender_id']; $product = $records['product_id']; $template = $this->Sales_PD_Model->selectCustomRecords(array('*'),array('lender_id' => $lender_id,'product_id' => $product,'isactive' => 1),SALESPDTEMPLATE); if(is_array($template) && count($template)) { $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $template[0]; $this->response($data,REST_Controller::HTTP_OK); } else { $data['dataStatus'] = false; $data['status'] = REST_Controller::HTTP_NO_CONTENT; $data['msg'] = 'No Tempate Found!'; $this->response($data,REST_Controller::HTTP_OK); } } public function saveSalesPD_post() { $records = $this->post('records'); $applicant_name = ''; $applicant_id = ''; $officer = ''; //satellite_image::getSatelliteImage(22,2);die(); foreach (json_decode($records['pd_json'],true) as $key => $value) { //print_r($value);die(); if($value['section_id'] == 1) { foreach ($value['questions'] as $g_key => $g_value) { if($g_value['question_key'] == 'application_id') { $applicant_id = $g_value['answer_value'] ? $g_value['answer_value'] : 'Not Provided'; } if($records['product_id'] == 4) { if($g_value['question_key'] == 'company_name') { $applicant_name = $g_value['answer_value']; } } else { if($g_value['question_key'] == 'person_met_during_visit') { $applicant_name = $g_value['answer_value']; } } } } if($value['section_id'] == 8) { foreach ($value['questions'] as $g_key => $g_value) { if($g_value['question_key'] == 'name_of_sales_team_member') { $officer = $g_value['answer_value']; } } } } $records['applicant_id'] = $applicant_id; $records['applicant_name'] = $applicant_name; $records['officer_name'] = $officer; $id = null; if(!$records['sales_pd_id']) { //generate sales pd serial no $count = $this->Sales_PD_Model->selectCustomRecords(array('count(*) as count'),array('lender_id' => $records['lender_id'],'product_id' => $records['product_id']),SALES_PD_DATA); $salepd_serial_no = $records['lender_id'] == 35 ? 'MWISE':'UNKNOWN'; $salepd_serial_no .= $records['product_id'] == 4 ? '-BL' : '-LFMP'; $salepd_serial_no .= '-'.(++$count[0]['count']); //echo $salepd_serial_no; //end generate sales pd serial no $records['sales_pd_sno'] = $salepd_serial_no; $id = $this->Sales_PD_Model->saveRecords($records,SALES_PD_DATA); satellite_image::getSatelliteImage($id,2); } else { $id = $this->Sales_PD_Model->updateRecords($records,SALES_PD_DATA,array('sales_pd_id' => $records['sales_pd_id'])); } if($id) { $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $id; $this->response($data,REST_Controller::HTTP_OK); } else { $data['dataStatus'] = false; $data['status'] = REST_Controller::HTTP_NO_CONTENT; $data['msg'] = 'Something went wrong! Try Later'; $this->response($data,REST_Controller::HTTP_OK); } } public function getSalesPDReport_get() { $sales_pd_id = $this->uri->segment(2); $columns = array('SALES_PD_DATA.*','ENTITY.short_name','PRODUCT.abbr'); $table = SALES_PD_DATA.' as SALES_PD_DATA'; $joins = array( array('table' => ENTITY. ' as ENTITY', 'condition' =>'SALES_PD_DATA.lender_id = ENTITY.entity_id', 'jointype' => 'INNER'), array('table' => PRODUCTS. ' as PRODUCT', 'condition' =>'SALES_PD_DATA.product_id = PRODUCT.product_id', 'jointype' => 'INNER') ); $where_condition_array = array('SALES_PD_DATA.sales_pd_id' => $sales_pd_id); $sales_pd_data = $this->Sales_PD_Model->getJoinRecords($columns,$table,$joins,$where_condition_array); //print_r($sales_pd_data);//die(); if($sales_pd_data) { ini_set('max_execution_time', 0); $bucket_name = LENDER_BUCKET_NAME_PREFIX.$sales_pd_data[0]['lender_id']; $pdf_name = strtolower(trim($sales_pd_data[0]['applicant_name'])); $pdf_name = str_replace(' ', '_', $pdf_name); $key = 'sales_pd/'.$sales_pd_id.'/'.$pdf_name.'.pdf'; if(!file_exists($this->external_path.'/sales_pd/'.$sales_pd_id)) { mkdir($this->external_path.'/sales_pd/'.$sales_pd_id,0761); } if(!$sales_pd_data[0]['is_pdf'] || $sales_pd_data[0]['is_edited']) { $json_data = (json_decode($sales_pd_data[0]['pd_json'],true)); $view_data = array(); foreach ($json_data as $sec_key => $section) { $view_data['section'.$section['section_id'] ] = $this->processSalesPDJSON($section); } $view_data['section9'] = $this->Sales_PD_Model->selectCustomRecords(array('*'),array('fk_sales_pd_id' => $sales_pd_id,'img_name !=' => 'satellite'),SALEPD_DOCS); $view_data['satellite_image'] = $this->Sales_PD_Model->selectCustomRecords(array('*'),array('fk_sales_pd_id' => $sales_pd_id,'img_name' => 'satellite'),SALEPD_DOCS); $view_data['product_id'] = $sales_pd_data[0]['product_id']; $view_data['geo_location'] = $sales_pd_data[0]['geo_location']; //print_r($this->db->last_query());die(); //$view_name = $sales_pd_data[0]['short_name'].'_'.$sales_pd_data[0]['abbr']; $view_name = $sales_pd_data[0]['short_name']; $html_content = $this->load->view('sale_pd_templates/'.$view_name,$view_data,true); //echo $html_content;die(); $pdf_doc = $this->pdfgenerator->generate($html_content, $filename='version', $stream=false, $paper = 'A4', $orientation = "portrait"); //End of PDF Gen using DOM PDF $output_file = $this->external_path ."/sales_pd/" . $sales_pd_id . "/temp.pdf"; $bytes = file_put_contents($output_file, $pdf_doc); // echo $bytes; // die(); $bucket_data = array('bucket_name'=>$bucket_name,'key'=>$key,'sourcefile'=>$this->external_path.'/sales_pd/'.$sales_pd_id.'/temp.pdf'); $s3result= $this->aws_s3->uploadFileToS3Bucket($bucket_data); if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) { $this->Sales_PD_Model->updateRecords(array('is_pdf' => 1, 'is_edited' => 0),SALES_PD_DATA,array('sales_pd_id' => $sales_pd_id)); $singed_uri = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucket_name,$key,'30 minutes'); $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $singed_uri; $this->response($data,REST_Controller::HTTP_OK); } } else { $singed_uri = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucket_name,$key,'30 minutes'); $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $singed_uri; $this->response($data,REST_Controller::HTTP_OK); } } } public function listSalesPD_get() { $lender_id = $this->uri->segment(2); $user_id = $this->uri->segment(3); $columns = array('SALES_PD_DATA.sales_pd_id','SALES_PD_DATA.sales_pd_sno','SALES_PD_DATA.applicant_name','SALES_PD_DATA.officer_name','SALES_PD_DATA.applicant_id','SALES_PD_DATA.lender_id','SALES_PD_DATA.product_id','SALES_PD_DATA.is_pdf','SALES_PD_DATA.is_edited','ENTITY.short_name','PRODUCT.abbr','SALES_PD_DATA.createdon'); $table = SALES_PD_DATA.' as SALES_PD_DATA'; $joins = array( array('table' => ENTITY. ' as ENTITY', 'condition' =>'SALES_PD_DATA.lender_id = ENTITY.entity_id', 'jointype' => 'INNER'), array('table' => PRODUCTS. ' as PRODUCT', 'condition' =>'SALES_PD_DATA.product_id = PRODUCT.product_id', 'jointype' => 'INNER') ); $where_condition_array = array(); if(is_numeric($lender_id)) { $where_condition_array = array('SALES_PD_DATA.lender_id' => $lender_id); } if($user_id && is_numeric($user_id)) { $where_condition_array = array('SALES_PD_DATA.createdby' => $user_id); } $order_by = 'SALES_PD_DATA.sales_pd_id'; $sales_pd_data = $this->Sales_PD_Model->getJoinRecords($columns,$table,$joins,$where_condition_array,$order_by,'DESC'); if(count($sales_pd_data)) { $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $sales_pd_data; $this->response($data,REST_Controller::HTTP_OK); } else { $data['dataStatus'] = false; $data['status'] = REST_Controller::HTTP_NO_CONTENT; $data['msg'] = 'Something went wrong! Try Later'; $this->response($data,REST_Controller::HTTP_OK); } } function processSalesPDJSON($section_array) { // //echo '###'.$section_array['section_id'].'####'; if($section_array['section_id'] == 9) { //print_r($section_array); die(); } if($section_array['section_id']) { //print_r($section_array);//die(); return $this->processSalesPDQuestions($section_array['questions'],$section_array['section_id']); } // die(); // $general_section_dta = array(); // foreach ($section_array as $sec_key => $section) // { //} } function processSalesPDQuestions($questions,$section_id) { $temp_array = array(); foreach ($questions as $ques_key => $question) { //if($question['section_id']){} if($question['is_repeatable'] == null && ($question['type'] == 1 || $question['type'] == 2 || $question['type'] == 3 || $question['type'] == 6 || $question['type'] == 7 || $question['type'] == 8))//text,radio,SDD { $temp_array[ $question['question_key'] ] = isset($question['answer_value']) ? $question['answer_value'] : null; if($question['question_key'] == 'state' || $question['question_key'] == 'city' || $question['question_key'] == 'pincode') { $temp_array[ $question['question_key'] ] = $this->getMasterData($question['answer_value'],$question['answers']); } if(isset($question['subfield_key'])) { $temp_array[ $question['question_key'] ] = $question['subfield_value']; } } else if($question['is_repeatable'] == 1 ) { //print_r($question['questions_group']);die(); if($section_id != 9) { foreach ($question['questions_group'] as $group_key => $group_value) { //print_r($group_value['questions']);//die(); $group_temp = array(); foreach ($group_value['questions'] as $q_key => $q_value) { //print_r($q_value);die(); //echo $group_key; $group_temp[ $q_value['question_key'] ] = $q_value['answer_value']; if(isset($q_value['subfield_key'])){ $group_temp[ $q_value['question_key'] ] = $q_value['"subfield_value"']; } //print_r($group_temp); } //print_r($group_temp); $temp_array[ $group_key ] = $group_temp; } } else { //echo "SDKJHKSJ**"; $group_temp = array(); foreach ($question['questions_group'] as $group_key => $group_value) { $temp_array[ $group_value['questions'][0]['question_key'] ][] = isset($group_value['questions'][0]['subfield_key']) ? $group_value['questions'][0]['subfield_value'] : $group_value['questions'][0]['answer_value']; } } } } //print_r($temp_array);die(); return $temp_array; } function getMasterData($id,$array) { foreach($array as $value) { if($id == $value['answer_id']) { return $value['answer']; break; } } } public function saveSalesPDImage_post() { $records = $this->post('records'); $id = $this->Sales_PD_Model->saveRecords($records,SALEPD_DOCS); if($id) { $data['dataStatus'] = true; $data['status'] = REST_Controller::HTTP_OK; $data['records'] = $id; $this->response($data,REST_Controller::HTTP_OK); } else { $data['dataStatus'] = false; $data['status'] = REST_Controller::HTTP_NO_CONTENT; $data['msg'] = 'Something went wrong! Try Later'; $this->response($data,REST_Controller::HTTP_OK); } } }