main-backend/php_code/app/Http/Controllers/PermitsController.php
2026-06-23 09:32:42 +00:00

206 lines
8.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Utilities\ApiCalls;
use Session;
use Illuminate\Http\Request;
use Storage;
use Response;
class PermitsController extends Controller
{
public function index(){
// dd(session('current_user.district_id'));
$url = "permit/get_applications_by_district.php";
$data = json_encode([
'district_id' => session('current_user.district_id'),
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
// dd($result);
// { "id":163,"applicant_id":376,"client_generated_id":"7d707dc2-938f-47e7-8979-2def086d4a8d","application_code":"REQ-20260310-2ZK4","permit_type":"Development Permit","permit_form_type":"structural_alteration","project_description":"jkhghhjghjgh","project_location":"mbvmbnv","project_region_id":10,"project_district_id":122,"estimated_cost":0.00,"status":"submitted","property_size":null,"expected_completion_date":null,"is_paid":null,"submitted_at":"2026-03-10T09:18:04.224672","updated_at":"2026-03-10T09:18:04.224672"},
// {"id":313,"applicant_id":482,"client_generated_id":"34ceb996-c809-4dbe-ba27-df1527e75538","application_code":"REQ-20260312-22AL","permit_type":"Development Permit","permit_form_type":"erection_of_building","project_description":"Two floor residence","project_location":"Butumagyabu","project_region_id":10,"project_district_id":122,"estimated_cost":0.00,"status":"submitted","property_size":null,"expected_completion_date":null,"is_paid":null,"submitted_at":"2026-03-12T13:14:04.420739","updated_at":"2026-03-12T13:14:04.420739"}]}
$result = json_decode($result, true);
// dd(is_array($result['data']));
$data = [
'page_title' => 'Permits Dashboard',
'permits_arr' => $result
];
return view('permits.dashboard', $data);
}
public function settings(){
//pull email address, sms configs,
/*
$url = "permit/get_applications_by_district.php";
$data = json_encode([
'district_id' => session('current_user.district_id'),
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
*/
$data = [
'page_title' => 'Permits Settings',
// 'permits_arr' => $result
];
return view('permits.district-settings', $data);
}
public function statusIndex($status){
$url = "permit/get_applications_by_district.php";
$data = json_encode([
'district_id' => session('current_user.district_id'),
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
// dump($result);
if ($result['success'] && $result['data'] == null) {
Session::flash('error_message', 'Your request could not be handled at this time. Try again later');
return redirect()->back();
}
$data = [
'page_title' => 'Permits Page',
'permits_arr' => $result,
'status' => $status
];
return view('permits.index', $data);
}
public function show($id){
// dump(session('current_user'));
$url = "permit/get_applications_with_applicant_by_application_code.php";
$data = json_encode([
'application_code' => $id,
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
// dump($result);
$docs_url = "upload/get_all_files_per_application.php";
$doc_data = json_encode([
"application_code" => $result['data'][0]['application_code'],
"api_token" => "1c46538c712e9b5b"
]);
/*
$documents_retval = ApiCalls::CurlPost($doc_data, $docs_url);
dump($documents_retval);
$documents = json_decode($documents_retval, true);
dd($documents);
*/
$allowed_users_to_comment = ['PPD Head', 'Works Department Head', 'luspa-it-head'];
$data = [
'page_title' => 'Permits Details',
'permit_arr' => $result['data'][0],
// 'documents' => ($documents['data']) ? $result['data'][0] : '',
'allowed_users_to_comment' => $allowed_users_to_comment
];
// return view('permits.show_20-06-2026-6-56pm', $data);
return view('permits.show', $data);
}
public function statusUpdate($id){
}
public function settingsStore(Request $request){
// 'https://api.lupmis4luspa.org/api/'
//email and sms settings
$url = "sms/insert_sms_settings.php";
$data = json_encode([
"districtid" => session('current_user.district_id'),
"sender_id"=> $request->sender_id,
"balance" => 0,
"status" => "active",
"api_key" => $request->api_key,
"remarks" => $request->remarks,
"api_token" => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
$url = "sms/insert_sms_settings.php";
$data = json_encode([
"districtid" => session('current_user.district_id'),
"sender_id"=> $request->sender_id,
"mail_host" => $request->email_host,
"mail_from_address" => $request->mail_from_address,
"mail_from_encryption" => $request->mail_from_encryption,
"mail_from_name" => $request->mail_from_name,
"mail_port" => $request->mail_port,
"mail_host" => $request->email_host,
"mail_host" => $request->email_host,
"status" => "active",
"api_key" => $request->api_key,
"remarks" => $request->remarks,
"api_token" => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
return redirect('/permits/districtsettings');
}
public function reports(){
$data = [
'page_title' => 'Permit Reports'
];
return view('common.notready', $data);
}
public function addComment(Request $request){
$url = "permit_comments/insert_application_comment.php";
$data = json_encode([
"application_code" => $request->application_code,
"client_generated_id" => "CLIENT-001",
"app_comments" => $request->comment_body,
"created_by" => session('current_user.username'),
"created_by_id" => session('current_user.user_id'),
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
// dd($result);
return response()->json($result);
}
public function getComments(Request $request){
$url = "permit_comments/select_application_comments.php";
$data = json_encode([
"application_code" => $request->application_code,
"client_generated_id" => "CLIENT-001",
"app_comments" => $request->comment_body,
"created_by" => session('current_user.username'),
"created_by_id" => session('current_user.user_id'),
'api_token' => env('LUPMISAPIKEY')
]);
$result = ApiCalls::CurlPost($data, $url);
$result = json_decode($result, true);
return response()->json($result);
}
public function viewPdf($filename){
$path = storage_path('app/public/site_plans/' . $filename);
if (!Storage::disk('public')->exists('site_plans/' . $filename)) {
abort(404);
}
// Return the file with an inline content disposition to display in the browser
return Response::make(file_get_contents($path), 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="' . $filename . '"' // 'inline' displays it in the browser/iframe
]);
}
}