add dashboard, fix get data scraping, fix table

This commit is contained in:
arifal
2025-01-24 01:58:06 +07:00
parent 4de7067487
commit 5f93a18f60
53 changed files with 2671 additions and 58 deletions

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Models\PbgTask;
use App\Models\PbgTaskRetributions;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller
{
public function businnessDocument(Request $request){
$businessData = DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
)
->where(function ($query) {
$query->where("pbg_task.function_type", "NOT LIKE", "sebagai tempat usaha%")
->orWhereNull("pbg_task.function_type");
})
->first();
$taskCount = $businessData->task_count;
$taskTotal = $businessData->total_retribution;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return ApiResponse::successResponse($result, "Successfully count businness doucument");
}
public function nonBusinnessDocument(Request $request){
$businessData = DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
)
->where(function ($query) {
$query->where("pbg_task.function_type", "LIKE", "sebagai tempat usaha%");
})
->first();
$taskCount = $businessData->task_count;
$taskTotal = $businessData->total_retribution;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return ApiResponse::successResponse($result, "Successfully count not businness doucument");
}
public function allTaskDocuments(){
$query = DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
)
->first();
$taskCount = $query->task_count;
$taskTotal = $query->total_retribution;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return ApiResponse::successResponse($result, "Successfully count all tasks documents");
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Models\User;
use Hash;
use Illuminate\Http\Request;
class UsersController extends Controller
{
public function login(LoginRequest $request){
$user = User::where('email', $request->email)->first();
if(!$user || !Hash::check($request->password, $user->password)){
return response(['message' => 'Invalid credentials'], 401);
}
$token = $user->createToken($_ENV['APP_KEY'])->plainTextToken;
return response(['user' => $user, 'token' => $token], 200);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Dashboards;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BigDataController extends Controller
{
public function index(){
return view('dashboards.bigdata');
}
}

View File

@@ -10,7 +10,7 @@ class HomeController extends Controller
{
public function index(Request $request){
if(Auth::check()){
return view('index');
return view('home.index');
}else{
return view('auth.signin');
}

View File

@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Validation\Rules;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use Illuminate\Auth\Events\Registered;
class UsersController extends Controller
{
public function index(){
$users = User::paginate(20);
return view('master.users.index', compact('users'));
}
public function create(){
return view('master.users.create');
}
public function store(Request $request){
$request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
'firstname' => ['required', 'string', 'max:255'],
'lastname' => ['required', 'string', 'max:255'],
'position' => ['required', 'string', 'max:255']
]);
dd($request);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
'firstname' => $request->firstname,
'lastname' => $request->lastname,
'position' => $request->position
]);
return redirect()->route('master.users')->with('success','Successfully registered');
}
public function show($id){
$user = User::find($id);
return view('master.users.show', compact('user'));
}
public function edit($id){
$user = User::find($id);
return view('master.users.edit', compact('user'));
}
public function update(Request $request, $id){
$user = User::find($id);
$validate = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
'firstname' => ['required', 'string', 'max:255'],
'lastname' => ['required', 'string', 'max:255'],
'position' => ['required', 'string', 'max:255']
]);
$user->update($validate);
return redirect()->route('master.users')->with('success', 'Successfully');
}
public function destroy($id){
$user = User::find($id);
$user->delete();
return redirect()->route('master.users')->with('success','Successfully deleted');
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SettingsController extends Controller
{
public function index(){
return view('settings.general.index');
}
public function create(){
return view('settings.general.create');
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\ServiceSIMBG;
use Illuminate\Http\Request;
use Exception;
class SyncronizeController extends Controller
{
public function index(Request $request){
return view('settings.syncronize.index');
}
public function syncPbgTask(){
$res = (new ServiceSIMBG())->syncTaskList();
return $res;
}
public function syncronizeTask(Request $request){
$res = (new ServiceSIMBG())->syncTaskList();
return redirect()->back()->with('success', 'Processing completed successfully');
}
public function getUserToken(){
$res = (new ServiceSIMBG())->getToken();
return $res;
}
public function syncIndexIntegration($uuid){
$res = (new ServiceSIMBG())->syncIndexIntegration($uuid);
return $res;
}
public function syncTaskDetailSubmit($uuid){
$res = (new ServiceSIMBG())->syncTaskDetailSubmit($uuid);
return $res;
}
}