diff --git a/api/application/config/routes.php b/api/application/config/routes.php index 2185ded1..c53963f0 100644 --- a/api/application/config/routes.php +++ b/api/application/config/routes.php @@ -203,6 +203,7 @@ $route['savePDFormDetails'] = 'PD_Controller/savePDFormDetailsJSON'; $route['getFinalPDReportQuestions'] = 'PD_Controller/getFinalPDReportQuestions'; $route['getTypeOfActivetyFromBusinessForm'] = 'PD_Controller/getTypeOfActivetyFromBusinessJSON'; $route['getCompaniesListsForBusiness'] = 'PD_Controller/getCompaniesListsFromGeneralFormRawJSON'; +$route['getPDImages'] = 'PD_Controller/getPDImages'; //$route['getTypeOfActivetyFromBusinessJSON'] = 'PD_Controller/getTypeOfActivetyFromBusinessJSON'; //Dashboard and Reports Related routes diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index acb3fa7e..a796a564 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -467,43 +467,43 @@ class PD_Controller extends REST_Controller { if(!empty($pd_document_from_mobile)) { - - foreach($pd_document_from_mobile as $iter => $doc) - { - $temp_base64_string = $doc['image']; - $title = $doc['Name']; - $output_file = APPPATH."/docs/temp_base64_image.png"; + $this->saveBase64Images($pd_id,null,$pd_document_from_mobile); + // foreach($pd_document_from_mobile as $iter => $doc) + // { + // $temp_base64_string = $doc['image']; + // $title = $doc['Name']; + // $output_file = APPPATH."/docs/temp_base64_image.png"; - //Generate Random File Name - $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - $charactersLength = strlen($characters); - $randomString = ''; - for ($i = 0; $i < 5; $i++) { - $randomString .= $characters[rand(0, $charactersLength - 1)]; - } - $temp_file_name = $randomString.date('Y-m-d-H:m:s').'.png'; + // //Generate Random File Name + // $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + // $charactersLength = strlen($characters); + // $randomString = ''; + // for ($i = 0; $i < 5; $i++) { + // $randomString .= $characters[rand(0, $charactersLength - 1)]; + // } + // $temp_file_name = $randomString.date('Y-m-d-H:m:s').'.png'; - $ifp = fopen( $output_file, 'wb' ); - $temp_data = explode( ',', $temp_base64_string ); - fwrite( $ifp, base64_decode( $temp_data[ 1 ] ) ); - fclose( $ifp ); - $tempdoc = $output_file; - $tempdocname = $temp_file_name; - $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_details['fk_lender_id']; - $key = 'pd'.$pd_id.'/'.$tempdocname ; - $sourcefile = $tempdoc; + // $ifp = fopen( $output_file, 'wb' ); + // $temp_data = explode( ',', $temp_base64_string ); + // fwrite( $ifp, base64_decode( $temp_data[ 1 ] ) ); + // fclose( $ifp ); + // $tempdoc = $output_file; + // $tempdocname = $temp_file_name; + // $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_details['fk_lender_id']; + // $key = 'pd'.$pd_id.'/'.$tempdocname ; + // $sourcefile = $tempdoc; - $bucket_data = array('bucket_name'=>$bucketname,'key'=>$key,'sourcefile'=>$sourcefile); - $s3result= $this->aws_s3->uploadFileToS3Bucket($bucket_data); + // $bucket_data = array('bucket_name'=>$bucketname,'key'=>$key,'sourcefile'=>$sourcefile); + // $s3result= $this->aws_s3->uploadFileToS3Bucket($bucket_data); - if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) - { - $record_data = array('fk_pd_id' => $pd_id,'pd_document_title'=>$title,'pd_document_name'=>$tempdocname); - $this->PD_Model->saveRecords($record_data,PDDOCUMENTS); - } + // if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) + // { + // $record_data = array('fk_pd_id' => $pd_id,'pd_document_title'=>$title,'pd_document_name'=>$tempdocname); + // $this->PD_Model->saveRecords($record_data,PDDOCUMENTS); + // } - } + // } } } /***********************END OF PD DOCUMENTS(base64 type) UPLOAD SECTION FROM MOBILE***********/ @@ -4154,9 +4154,11 @@ class PD_Controller extends REST_Controller { $this->db->WHERE('PDFORMDETAILSJSON.isactive',1); $template_forms_count = $this->db->GET()->result_array(); - if($template_forms_count[0]['count'] != 0) { + if($template_forms_count[0]['count'] != 0) { + if($form['form_id'] == 13) { + $temp[] = array('form_id' => $form['form_id'],'form_name'=> $form['form_name'],'isAnswered' => true,'isAnswerable'=>true); $business_form_status = 1; } @@ -4173,12 +4175,12 @@ class PD_Controller extends REST_Controller { } else { - if($form['form_id'] == 13) - { - $temp[] = array('form_id' => $form['form_id'],'form_name'=> $form['form_name'],'isAnswered' => false,'isAnswerable'=>true); - $business_form_status = 1; - } + { + + $temp[] = array('form_id' => $form['form_id'],'form_name'=> $form['form_name'],'isAnswered' => false,'isAnswerable'=>true); + + } else{ if($business_form_status == 1){ $temp[] = array('form_id' => $form['form_id'],'form_name'=> $form['form_name'],'isAnswered' => false,'isAnswerable'=>true); @@ -4610,12 +4612,112 @@ class PD_Controller extends REST_Controller { public function savePDPhotos_post() { + $records = $this->post('records'); - $data['dataStatus'] = true; - $data['status'] = REST_Controller::HTTP_OK; - $data['records'] = $records; - $this->response($data,REST_Controller::HTTP_OK); + $res = $this->saveBase64Images($records['pd_id'],$records['formid'],$records['images']); + + if(count($res)) + { + $data['dataStatus'] = true; + $data['status'] = REST_Controller::HTTP_OK; + $data['records'] = $res['count']; + $data['msg'] = $res['msg']; + $this->response($data,REST_Controller::HTTP_OK); + } + else + { + $data['dataStatus'] = false; + $data['status'] = REST_Controller::HTTP_NO_CONTENT; + $data['msg'] = 'Something Went Wrong!'; + $this->response($data,REST_Controller::HTTP_OK); + } } + public function getPDImages_post() + { + $records = $this->post('records'); + $result_data = $this->PD_Model->getSignedPDDocsURL($records['pd_id'],$records['form_id']); + if(count($result_data)) + { + $data['dataStatus'] = true; + $data['status'] = REST_Controller::HTTP_OK; + $data['records'] = $result_data; + $this->response($data,REST_Controller::HTTP_OK); + } + else + { + $data['dataStatus'] = true; + $data['status'] = REST_Controller::HTTP_NOT_MODIFIED; + $data['msg'] = 'No Data Available'; + $this->response($data,REST_Controller::HTTP_OK); + } + + } + + public function saveBase64Images($pd_id,$form_id = null,$data) + { + + $count = 0; + $result = array(); + $pd_details = $this->PD_Model->getPDMasterDetails($pd_id); + //print_r($pd_details); + + foreach($data as $iter => $doc) + { + $temp_base64_string = $doc['image']; + $title = $doc['Name']; + $output_file = APPPATH."/docs/temp_base64_image.png"; + + //Generate Random File Name + $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $charactersLength = strlen($characters); + $randomString = ''; + for ($i = 0; $i < 5; $i++) { + $randomString .= $characters[rand(0, $charactersLength - 1)]; + } + $temp_file_name = $randomString.date('Y-m-d-H:m:s').'.png'; + + + $ifp = fopen( $output_file, 'wb' ); + $temp_data = explode( ',', $temp_base64_string ); + fwrite( $ifp, base64_decode( $temp_data[ 1 ] ) ); + fclose( $ifp ); + $tempdoc = $output_file; + $tempdocname = $temp_file_name; + $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_details[0]['fk_lender_id']; + $key = 'pd'.$pd_id.'/'.$tempdocname ; + // if($form_id != null) + // { + // $key = 'pd'.$pd_id.'/'.'form'.$form_id.'/'.$tempdocname; + // } + $sourcefile = $tempdoc; + + $bucket_data = array('bucket_name'=>$bucketname,'key'=>$key,'sourcefile'=>$sourcefile); + $s3result= $this->aws_s3->uploadFileToS3Bucket($bucket_data); + + if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) + { + $record_data = array('fk_pd_id' => $pd_id,'pd_document_title'=>$title,'pd_document_name'=>$tempdocname,'fk_form_id'=>$form_id); + $id = $this->PD_Model->saveRecords($record_data,PDDOCUMENTS); + if($id != null || $id != "") { $count++;} + } + + } + + if($count == count($data)) + { + $result['status'] = true; + $result['count'] = $count; + $result['msg'] = "All Images Saved Successfully"; + } + else + { + $result['status'] = true; + $result['count'] = $count; + $result['msg'] = "Some Images Not Saved!"; + } + return $result; + } + } \ No newline at end of file diff --git a/api/application/docs/temp_base64_image.png b/api/application/docs/temp_base64_image.png index 855b4041..56ba1ad4 100755 Binary files a/api/application/docs/temp_base64_image.png and b/api/application/docs/temp_base64_image.png differ diff --git a/api/application/models/PD_Model.php b/api/application/models/PD_Model.php index d126bab1..e5aa5a01 100644 --- a/api/application/models/PD_Model.php +++ b/api/application/models/PD_Model.php @@ -215,8 +215,9 @@ class PD_Model extends SPARQ_Model { /* *Get All PD Related Documents as signed and expired URL's from S3 Buckets */ - public function getSignedPDDocsURL($pdid) + public function getSignedPDDocsURL($pdid,$form_id = null) { + // echo $pdid,$form_id;die(); $document_lists = array(); if($pdid != '' || $pdid != null) { @@ -227,7 +228,12 @@ class PD_Model extends SPARQ_Model { if(count($lender_id)) { //Get PD Documenttitle and name from DB - $document_lists = $this->selectRecords(PDDOCUMENTS,array('fk_pd_id' => $pdid)); + $where_condition_array = array('fk_pd_id' => $pdid); + if($form_id != null) + { + $where_condition_array['fk_form_id'] = $form_id; + } + $document_lists = $this->selectRecords(PDDOCUMENTS,$where_condition_array); if(count($document_lists)) { @@ -592,7 +598,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, 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.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'); + $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, 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,PDTRIGGER.pincode,PINCODE.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'); $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');