penambahan menu activity dan perbaikan menu assingment

This commit is contained in:
majid
2024-09-25 09:44:35 +07:00
parent 00f568fb6d
commit 91d70c9e2e
14 changed files with 805 additions and 88 deletions

View File

@@ -0,0 +1,152 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\StatusPermohonan;
class ActivityController extends Controller
{
public $user;
/**
* Display a listing of the resource.
*/
public function index()
{
$status_permohonan = StatusPermohonan::all();
return view('lpj::activity.index', compact('status_permohonan'));
}
/**
* Show the form for creating a new resource.
*/
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): RedirectResponse
{
//
}
/**
* Show the specified resource.
*/
public function show($id)
{
$status_permohonan = StatusPermohonan::orderBy('id')->get();
$permohonan = Permohonan::with(
[
'user',
'debiture.province',
'debiture.city',
'debiture.district',
'debiture.village',
'branch',
'tujuanPenilaian',
'penilaian'
],
)->findOrFail($id);
return view('lpj::activity.activitydetail', compact('id', 'status_permohonan', 'permohonan'));
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
return view('lpj::edit');
}
/**
* Update the specified resource in storage.
*/
public function dataForDatatables(Request $request)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {
// abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = Permohonan::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%');
});
}
// Apply status filter if provided
if ($request->has('status') && !empty($request->get('status'))) {
$status = $request->get('status');
$query->where('status', '=', $status);
}
// Default sorting if no sort provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
} else {
$query->orderBy('nomor_registrasi', 'asc'); // Default order by nomor_registrasi
}
// Get the total count of records before paginating
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = (int) $request->get('page', 1); // Default page is 1
$size = (int) $request->get('size', 10); // Default size is 10
$offset = ($page - 1) * $size; // Calculate the offset
// Limit results based on pagination
$query->skip($offset)->take($size);
}
// Get the filtered count of records (after search & filters applied)
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
// Calculate the total number of pages
$pageCount = ceil($totalRecords / $request->get('size', 10));
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $request->get('page', 1),
'totalCount' => $totalRecords,
'data' => $data,
]);
}
/**
* Download the specified resource from storage.
*/
public function download($id)
{
$document = Permohonan::find($id);
return response()->download(storage_path('app/public/' . $document->dokumen));
}
}

View File

@@ -32,6 +32,7 @@ class PenilaianController extends Controller
*/
public function store(PenilaianRequest $request)
{
//print_r($request->all());exit;
$validatedData = $request->validated();
if ($validatedData) {
try {
@@ -80,14 +81,6 @@ class PenilaianController extends Controller
}
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('lpj::show');
}
/**
* Show the form for editing the specified resource.
*/
@@ -116,21 +109,40 @@ class PenilaianController extends Controller
/**
* Remove the specified resource from storage.
*/
public function revisi(Request $request, $nomor_registrasi)
public function revisi(PenilaianRequest $request, $nomor_registrasi)
{
$validate = $request->validate([
'keterangan_revisi' => 'required',
'dokumen_revisi' => 'required|file',
]);
if ($validate) {
$permohonan = Permohonan::where('nomor_registrasi',
$nomor_registrasi);
$validatedData = $request->validated();
if ($validatedData) {
$permohonan->update($validate);
try {
if (isset($validatedData['dokumen']) && $request->hasFile('dokumen')) {
$file_name = $validatedData['dokumen']->getClientOriginalName();
$validatedData['dokumen']->storeAs('public/dokumen_revisi', $file_name);
}
$dataToUpdate = [
'keterangan' => $validatedData['keterangan'],
'dokumen' => 'dokumen_revisi/' . $file_name,
'status' => 'revisi',
];
// dump($dataToUpdate);
$permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first();
$permohonan->update($dataToUpdate);
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi');
} catch (Exception $e) {
dump($e->getMessage());
// return redirect()->route('penilaian.index')->with('error', $e->getMessage());
}
}
}
public function dataForDatatables(Request $request)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {