session('current_user.district_id'), 'api_token' => env('LUPMISAPIKEY') ]); $result = ApiCalls::CurlPost($data, $url); $result = json_decode($result, true); dd($result); $data = [ 'page_title' => 'Permits Dashboard', 'permits_arr' => $result ]; return view('permits.dashboard', $data); } public function index(Request $request) { $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); $response = json_decode($result, true); // dd($response); $permits = collect($response['data'] ?? []); $summaries = [ 'total' => $permits->count(), 'submitted' => $permits->filter(fn($p) => strtolower($p['status'] ?? '') === 'submitted')->count(), 'development' => $permits->filter(fn($p) => str_contains(strtolower($p['permit_type'] ?? ''), 'development'))->count(), 'planning' => $permits->filter(fn($p) => str_contains(strtolower($p['permit_type'] ?? ''), 'planning'))->count(), ]; if ($request->has('search') && $request->search != '') { $search = strtolower($request->search); $permits = $permits->filter(function($p) use ($search) { $code = strtolower($p['application_code'] ?? ''); $location = strtolower($p['project_location'] ?? ''); $type = strtolower($p['permit_type'] ?? ''); $form_type = strtolower($p['permit_form_type'] ?? ''); return str_contains($code, $search) || str_contains($location, $search) || str_contains($form_type, $search) || str_contains($type, $search); }); } $paginatedPermits = $this->paginateCollection($permits, 15, 'page'); return view('permits.dashboard', [ 'page_title' => 'Permits Management', 'permits' => $paginatedPermits, 'summaries' => $summaries ]); } private function paginateCollection(Collection $items, $perPage = 15, $pageName = 'page') { $page = LengthAwarePaginator::resolveCurrentPage($pageName); $currentPageItems = $items->slice(($page - 1) * $perPage, $perPage)->values(); $paginator = new LengthAwarePaginator( $currentPageItems, $items->count(), $perPage, $page, [ 'path' => LengthAwarePaginator::resolveCurrentPath(), 'pageName' => $pageName, ] ); return $paginator->withQueryString(); } 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){ // dd($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); return view('permits.show-tabbed', $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 ]); } }