diff --git a/api/application/config/constants.php b/api/application/config/constants.php index c4954ef3..77296d5a 100644 --- a/api/application/config/constants.php +++ b/api/application/config/constants.php @@ -87,7 +87,7 @@ defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest auto // define login route name for token verification //defined('ROUTE_LOGIN') OR define('ROUTE_LOGIN', '(listLessPDDetails/:any)'); // no errors //defined('ROUTE_LOGIN') OR define('ROUTE_LOGIN', '(listAllTemplates/:any)'); // no errors -defined('ROUTE_LOGIN') OR define('ROUTE_LOGIN', 'getTypeOfActivetyFromBusinessForm'); // no errors +defined('ROUTE_LOGIN') OR define('ROUTE_LOGIN', 'swapOlderPDReportToLatest'); // no errors /*********************AWS resources Constants*************************************************/ defined('PROFILE_PICTURE_BUCKET_NAME') OR define('PROFILE_PICTURE_BUCKET_NAME','sineedgedevprofilepic'); diff --git a/api/application/config/routes.php b/api/application/config/routes.php index e6a146a8..22b132ad 100644 --- a/api/application/config/routes.php +++ b/api/application/config/routes.php @@ -169,6 +169,7 @@ $route['generatePDReport'] = 'PD_Controller/generatePDReport'; $route['getLatestPDReportBlob'] = 'PD_Controller/getLatestPDReportBlob'; $route['saveNewVersionOfPDReport'] = 'PD_Controller/saveNewVersionOfPDReport'; $route['getListOfPDReportVersions'] = 'PD_Controller/getListOfPDReportVersions'; +$route['swapOlderPDReportToLatest'] = 'PD_Controller/swapOlderPDReporttoLatest'; //PD Form Related $route['getPDFormDetails'] = 'PD_Controller/getPDFormDetails'; diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index a9ff5cbb..f448a230 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -2594,21 +2594,20 @@ class PD_Controller extends REST_Controller { $records = $this->post('records'); $pdid = $records['pd_id']; $original_template = "RAW"; - // echo "RE called"; - // die(); + $is_regenerate = 0; + if($records['regen']) + { + $is_regenerate = 1; + } + $pd_master_details = $this->PD_Model->getPDMasterDetails($pdid); - - //getSingleObjectInaBucketAsSignedURI($bucket_name,$folder_name,$time = '+5 minutes') - - // //CHeck if already pd original version created - // if($pd_master_details[0]['is_original_report_created'] == "" || $pd_master_details[0]['is_original_report_created'] == null) - // { - //Get PD Report Functions + //Get PD Report orginal blob $fields = array('report_template_id', 'fk_template_id','content'); $where_condition_array = array('fk_template_id'=>$pd_master_details[0]['fk_pd_template_id'],'isactive'=>1); $result_array = $this->PD_Model->selectCustomRecords($fields,$where_condition_array,REPORTTEMPLATES); $original_template = $result_array[0]['content']; + // //CHeck if already pd original version created if(count($result_array)) { @@ -2651,7 +2650,16 @@ class PD_Controller extends REST_Controller { if(file_put_contents($output_file2, $pdf_doc)) { $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_master_details[0]['fk_lender_id']; - $key = 'pd'.$pdid.'/pd_reports/pd_report_original_version.pdf'; + $key = ""; + if($is_regenerate == 0) + { + $key = 'pd'.$pdid.'/pd_reports/pd_report_original_version.pdf'; + } + else + { + $latest_version = $pd_master_details[0]['pd_report_latest_version'] + 1; + $key = 'pd'.$pdid.'/pd_reports/'.$latest_version.'.pdf'; + } $sourcefile = $output_file2; $bucket_data = array('bucket_name'=>$bucketname,'key'=>$key,'sourcefile'=>$sourcefile); @@ -2667,7 +2675,7 @@ class PD_Controller extends REST_Controller { //call all reports functionality and send it. - $urls = $this->getALLPDReportsSingedURLs($bucket_name,$key); + $urls = $this->getALLPDReportsSingedURLs($bucketname,$key); if($id != null || $id != "" ) { @@ -2686,36 +2694,8 @@ class PD_Controller extends REST_Controller { } } - // } - // else - // { - // //get latest or same original version of pd_report_original_version - // $flag = 0; - // if($pd_master_details[0]['pd_report_latest_version'] != null || $pd_master_details[0]['pd_report_latest_version'] != "") - // { - // $flag = 1; - // } - - - // $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_master_details[0]['fk_lender_id']; - // //$bucketname = LENDER_BUCKET_NAME_PREFIX.'8'; - // $key = 'pd'.$pdid.'/'.'pd_report_original_version.pdf'; - // //$key = 'pd'.'4'.'/'.'11.pdf'; - // if($flag == 1) - // { - // $key = 'pd'.$pdid.'/'.'version'.$pd_master_details[0]['pd_report_latest_version'].'.pdf'; - // } - // //echo $key; - // $uri = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucketname,$key,$time = '3600 seconds'); - // if($uri != "" || $uri != null) - // { - // $data['dataStatus'] = true; - // $data['status'] = REST_Controller::HTTP_OK; - // $data['records'] = array('pd_report_uri' => $uri); - // $this->response($data,REST_Controller::HTTP_OK); - // } - - // } + } + } @@ -2736,16 +2716,18 @@ class PD_Controller extends REST_Controller { //print_r($pd_master_details); //update BLOB in pd trigger Table - $latest_version = $pd_master_details[0]['pd_report_latest_version'] + 1; + $latest_version = $pd_master_details[0]['pd_report_latest_version']; $where_condition_array = array('pd_id' => $pdid); - $temp_array = array('pd_report_latest_version' => $latest_version,'pd_report_latest_version_blob' => $blob); + $temp_array = array('pd_report_latest_version_blob' => $blob,'fk_updatedby' => $fk_updatedby); + $mas_id = $this->PD_Model->updateRecords($temp_array,PDTRIGGER,$where_condition_array); + //store BLOB in t_pd_reports_version_blob Table //$latest_version = $pd_master_details[0]['pd_report_latest_version'] + 1; //$where_condition_array = array('pd_id' => $pdid); - $temp_array_one = array('fk_pd_id'=>$pdid,'version_no' => $latest_version,'content' => $blob,'fk_createdby'=>$fk_createdby,'fk_updatedby'=>$fk_updatedby); - - $id = $this->PD_Model->saveRecords($temp_array_one,PDREPORTSVERSIONBLOB); + $temp_array_one = array('content' => $blob,'fk_updatedby'=>$fk_updatedby); + $where_condition_array = array('fk_pd_id' => ,'version_no' => $latest_version); + $id = $this->PD_Model->updateRecords($temp_array_one,PDREPORTSVERSIONBLOB,$where_condition_array); //convert BLOB as html then pdf then store it s3. $output_file = APPPATH."/docs/temp.html"; @@ -2813,9 +2795,10 @@ class PD_Controller extends REST_Controller { $lender_id = $pd_master_details[0]['fk_lender_id']; $bucket_name = LENDER_BUCKET_NAME_PREFIX.$lender_id; - $key = 'pd'.$pdid.'pd_reports'; + $key = 'pd'.$pdid.'/pd_reports'; //$key = 'pd'.$pdid; $urls = $this->getALLPDReportsSingedURLs($bucket_name,$key); + if(count($urls)) { @@ -2855,7 +2838,8 @@ class PD_Controller extends REST_Controller { foreach($uri as $uri_key => $url) { $uri[$uri_key]['doc_uri'] = $this->aws_s3->getSingleObjectInaBucketAsSignedURI($bucket_name,$url['doc_name'],$time = '3600 seconds'); - $uri[$uri_key]['doc_name'] = $uri[$uri_key]['doc_name']; + //echo $key; + $uri[$uri_key]['doc_name'] = str_replace($key.'/',"",$uri[$uri_key]['doc_name']); if($uri_key == (count($uri)-1)) { $uri[$uri_key]['is_latest'] = 1; @@ -2912,4 +2896,120 @@ class PD_Controller extends REST_Controller { } + + + /********************************************************************************************* + *********************************************************************************************/ + + public function swapOlderPDReporttoLatest_post() + { + $records = $this->post('records'); + + $pdid = $records['pd_id']; + $doc_name = $records['doc_name']; + $fk_createdby = $records['fk_createdby']; + //pd_report_version_blob_id, version_no, content, is_latest, createdon, updateon, fk_createdby, fk_updatedby, fk_pd_id + $version_no = substr($doc_name,-5,1); + + //Get Latest Version from PD Master Table + $pd_master_details = $this->PD_Model->getPDMasterDetails($pdid); + + //Get Blob from blob table + $fields = array('content'); + $where_condition_array = array('fk_pd_id'=>$pdid,'version_no'=>$version_no); + $result = $this->PD_Model->selectCustomRecords($fields,$where_condition_array,PDREPORTSVERSIONBLOB); + + if(count($result)) + { + $temp_array = array('content' => $result[0]['content'],'fk_pd_id'=> $pdid,'fk_createdby'=>$fk_createdby,'version_no' => ($pd_master_details[0]['pd_report_latest_version'] + 1)); + $id = $this->PD_Model->saveRecords($temp_array,PDREPORTSVERSIONBLOB); + + if($id != null || $id != "") + { + $temp_array = array('pd_report_latest_version_blob' => $result[0]['content'],'pd_report_latest_version' => ($pd_master_details[0]['pd_report_latest_version'] + 1)); + + $where_condition_array = array('pd_id'=>$pdid); + $master_result = $this->PD_Model->updateRecords($temp_array,$where_condition_array,PDTRIGGER); + + if($master_result != null || $master_result != "") + { + //do doc renegerate things here..... + + $output_file = APPPATH."/docs/temp.html"; + $ifp = fopen( $output_file, 'wb' ); + //fwrite( $ifp, $original_template ); + fwrite( $ifp, $result[0]['content'] ); + fclose( $ifp ); + //print_r($output_file); + $file= file_get_contents($output_file); + $pdf_doc = $this->pdfgenerator->generate($file, $filename='version', $stream=false, $paper = 'A4', $orientation = "portrait"); + //print_r($pdf_doc); + + + $output_file2 = APPPATH."/docs/sample.pdf"; + if(file_put_contents($output_file2, $pdf_doc)) + { + $bucketname = LENDER_BUCKET_NAME_PREFIX.$pd_master_details[0]['fk_lender_id']; + $key = 'pd'.$pdid.'/pd_reports/'.'version'.($pd_master_details[0]['pd_report_latest_version'] + 1).'.pdf'; + $sourcefile = $output_file2; + + $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) + { + + $urls = $this->getALLPDReportsSingedURLs($bucketname,$key); + if($id != null || $id != "" ) + { + $data['dataStatus'] = true; + $data['status'] = REST_Controller::HTTP_OK; + $data['records'] = $urls; + $this->response($data,REST_Controller::HTTP_OK); + } + else + { + $data['dataStatus'] = false; + $data['status'] = REST_Controller::HTTP_NOT_MODIFIED; + $data['msg'] = 'Something Went Wrong..!Try later'; + $this->response($data,REST_Controller::HTTP_OK); + } + } + } + + + + + + + + } + else + { + $data['dataStatus'] = false; + $data['status'] = REST_Controller::HTTP_NOT_MODIFIED; + $data['msg'] = 'Version Not Updated in Master Table! Contact System Admin'; + $this->response($data,REST_Controller::HTTP_OK); + } + } + else + { + $data['dataStatus'] = false; + $data['status'] = REST_Controller::HTTP_NOT_MODIFIED; + $data['msg'] = 'Version Not Updated!'; + $this->response($data,REST_Controller::HTTP_OK); + } + } + else + { + $data['dataStatus'] = false; + $data['status'] = REST_Controller::HTTP_NOT_MODIFIED; + $data['msg'] = 'No older Version Available for this PD!'; + $this->response($data,REST_Controller::HTTP_OK); + } + + + + } + } \ No newline at end of file