diff --git a/app/Exports/PermohonanExport.php b/app/Exports/PermohonanExport.php index c6ce0a2..4b8d74b 100644 --- a/app/Exports/PermohonanExport.php +++ b/app/Exports/PermohonanExport.php @@ -28,8 +28,8 @@ $row->branch->name, $row->tujuanPenilaian->name, $row->debiture->name, - $row->fasilitasKredit->name, - $row->plafond->name, + $row->jenisFasilitasKredit->name, + $row->nilaiPlafond->name, $row->status, $row->authorized_at, $row->authorized_status, diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index c24eee2..496f1b4 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -7,7 +7,11 @@ use Exception; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Modules\Lpj\Models\Permohonan; +use Modules\Lpj\Models\Penilaian; +use Modules\Lpj\Models\TeamsUsers; use Modules\Lpj\Models\StatusPermohonan; +use Modules\Lpj\Exports\PermohonanExport; +use Maatwebsite\Excel\Facades\Excel; class ActivityController extends Controller { @@ -25,6 +29,39 @@ class ActivityController extends Controller * Show the form for creating a new resource. */ + + public function progres_activity() + { + // Ambil user yang sedang login + $user = auth()->user(); + $roles = $user->load('roles'); + $regionId = null; + + // Cek apakah user memiliki role 'senior officer' + if ($roles->roles->pluck('name')->contains('senior officer')) { + $regionId = TeamsUsers::with('team.regions') + ->where('user_id', $user->id) + ->first()?->team->regions_id; + } + + $teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions']) + ->whereHas('team', function ($q) use ($regionId) { + if ($regionId) { + $q->where('regions_id', $regionId); + } + }) + ->where('user_id', '!=', $user->id) + ->get(); + + return view('lpj::activity.progres_activity.index', compact('teamsActivity')); + } + + + public function senior() + { + return view('lpj::activity.senior_officer.index'); + } + /** * Store a newly created resource in storage. */ @@ -39,7 +76,7 @@ class ActivityController extends Controller public function show($id) { - $status_permohonan = StatusPermohonan::orderBy('id')->get(); + $status_permohonan = StatusPermohonan::orderBy('id')->get()->reverse(); $permohonan = Permohonan::with( [ @@ -67,9 +104,9 @@ class ActivityController extends Controller /** * Update the specified resource in storage. - */ - public function dataForDatatables(Request $request) + */public function dataForDatatables(Request $request) { + // Check permissions if (is_null($this->user) || !$this->user->can('debitur.view')) { // abort(403, 'Sorry! You are not allowed to view users.'); } @@ -81,20 +118,19 @@ class ActivityController extends Controller 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 . '%'); - }); - } + $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%') + ->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%') + ->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); - // Apply status filter if provided - if ($request->has('status') && !empty($request->get('status'))) { - $status = $request->get('status'); - $query->where('status', '=', $status); + // Split search term by comma to allow multiple statuses + $statusKeywords = explode(',', $search); + foreach ($statusKeywords as $keyword) { + $q->orWhere('status', 'LIKE', '%' . trim($keyword) . '%'); + } + }); } // Default sorting if no sort provided @@ -103,32 +139,29 @@ class ActivityController extends Controller $column = $request->get('sortField'); $query->orderBy($column, $order); } else { - $query->orderBy('nomor_registrasi', 'asc'); // Default order by nomor_registrasi + $query->orderBy('nomor_registrasi', 'asc'); } - // Get the total count of records before paginating + // Get total count of records before pagination $totalRecords = $query->count(); - // Apply pagination if provided + // Pagination 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 + $page = (int) $request->get('page', 1); + $size = (int) $request->get('size', 10); + $offset = ($page - 1) * $size; $query->skip($offset)->take($size); } - // Get the filtered count of records (after search & filters applied) + // Get filtered count $filteredRecords = $query->count(); - // Get the data for the current page + // Get data $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - // Calculate the total number of pages + // Calculate total 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, @@ -141,6 +174,7 @@ class ActivityController extends Controller } + /** * Download the specified resource from storage. */ @@ -149,4 +183,64 @@ class ActivityController extends Controller $document = Permohonan::find($id); return response()->download(storage_path('app/public/' . $document->dokumen)); } + + public function export() + { + return Excel::download(new PermohonanExport(), 'activity.xlsx'); + } + + + + + public function dataTablesForActivity(Request $request, $id) + { + // Query Penilaian dengan relasi yang diperlukan + $query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian']) + ->where(function($q) use ($id) { + $q->where('surveyor_id', $id) + ->orWhere('penilaian_id', $id) + ->orWhere('penilai_surveyor_id', $id); + }); + + // Filter pencarian + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('nomor_registrasi', 'LIKE', "%$search%") + ->orWhere('status', 'LIKE', "%$search%"); + }); + } + + // Sorting + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Hitung total records + $totalRecords = $query->count(); + + // Pagination + $size = $request->get('size', 10); + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + // Ambil data dengan pagination + $data = $query->skip($offset)->take($size)->get(); + $filteredRecords = $data->count(); + $pageCount = ceil($totalRecords / $size); + + // Return data dalam bentuk JSON + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $page, + 'totalCount' => $totalRecords, + 'data' => $data + ]); + } + } diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 99a0c2f..4898ab5 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -35,7 +35,6 @@ class KJPPController extends Controller */ public function create() { - $branch = Branch::all(); $ijin_usaha = IjinUsaha::all(); $jenis_aset = JenisJaminan::all(); $provinces = Province::all(); @@ -48,7 +47,7 @@ class KJPPController extends Controller // Combine KJPP number with branch code $fullKjppNumber = $kjppNumber; - return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber')); + return view('lpj::kjpp.create', compact('ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber')); } /** @@ -98,13 +97,12 @@ class KJPPController extends Controller $ijin_usaha = IjinUsaha::where('code', $kjpp->nomor_ijin_usaha)->get(); $ijin_usahas = IjinUsaha::all(); $jenis_jaminan = JenisJaminan::all(); - $branches = Branch::where('name', $kjpp->jenis_kantor)->get(); $provinces = Province::where('code', $kjpp->province_code)->get(); $cities = City::where('code', $kjpp->city_code)->get(); $districts = District::where('code', $kjpp->district_code)->get(); $villages = Village::where('code', $kjpp->village_code)->get(); // dd($branches); - return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'branches', 'kjpp', 'provinces', 'cities', 'districts', 'villages')); + return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages')); } /** @@ -113,7 +111,6 @@ class KJPPController extends Controller public function edit($id) { $kjpp = KJPP::find($id); - $branch = Branch::all(); $ijin_usaha = IjinUsaha::all(); $jenis_aset = JenisJaminan::all(); $provinces = Province::all(); @@ -121,7 +118,7 @@ class KJPPController extends Controller $districts = District::where('city_code', $kjpp->city_code)->get(); $villages = Village::where('district_code', $kjpp->district_code)->get(); - return view('lpj::kjpp.create', compact('kjpp', 'branch', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages')); + return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages')); } /** diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 0576671..f273b0a 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -30,10 +30,11 @@ class PenilaianController extends Controller /** * Store a newly created resource in storage. */ + public function store(PenilaianRequest $request) { - //print_r($request->all());exit; $validatedData = $request->validated(); + if ($validatedData) { try { $penilaian = Penilaian::create($validatedData); @@ -98,12 +99,28 @@ class PenilaianController extends Controller ], )->findOrFail($id); - $jenisPenilaian = JenisPenilaian::all(); - $teamPenilai = Teams::with(['regions', 'teamsUsers'])->get(); + $idPenilaian = $permohonan->jenis_penilaian_id; + $idRegion = $permohonan->region_id; + + $jenisPenilaian = JenisPenilaian::find($idPenilaian); + + + $teamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user', ]) + ->whereHas('regions', function ($q) use ($idRegion) { + $q->where('id', $idRegion); + })->get(); + + + $regionName = null; + foreach ($teamPenilai as $item) { + $regionName = $item->regions; + } + + // dd($teamPenilai); $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian')); + return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName')); } /** @@ -128,15 +145,13 @@ class PenilaianController extends Controller '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()); + return redirect()->route('penilaian.index')->with('error', $e->getMessage()); } } } @@ -164,7 +179,7 @@ class PenilaianController extends Controller }); } - $query->whereRaw('LOWER(status) = ?', ['register']); + $query->whereRaw('LOWER(status) = ?', ['registered']); if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { $order = $request->get('sortOrder'); @@ -205,20 +220,132 @@ class PenilaianController extends Controller - public function getUserTeams($id) - { - $teamsUser = TeamsUsers::where('teams_id', $id)->get(); - $userIds = $teamsUser->pluck('user_id'); - $users = User::whereIn('id', $userIds) - ->with('roles') - ->get(); - if ($users->isNotEmpty()) { - return response()->json($users, 200); + public function otorisator(Request $request){ + + $type = $request->route('type'); + $header = ''; + + switch ($type) { + case 'pelaporan': + $header = 'Pelaporan'; + break; + case 'pembayaran': + $header = 'Pembayaran'; + break; + case 'pembatalan': + $header = 'Pembatalan'; + break; + case 'sla': + $header = 'SLA'; + break; + default: + $header = 'Pelaporan'; + break; } - return response()->json([], 200); + return view('lpj::penilaian.otorisator.index', compact('header')); + } + + public function show($id){ + + $permohonan = Permohonan::find($id); + + return view('lpj::penilaian.otorisator.show', compact('permohonan')); + } + + + + public function dataForAuthorization(Request $request, $otorisator) + { + + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + + $status = ''; + + switch ($otorisator) { + case 'Pelaporan': + $status = 'proses paparan'; + break; + case 'Pembayaran': + $status = 'proses pembayaran'; + break; + default: + $status = ''; + break; + } + + + $query = Permohonan::query(); + + // Pencarian berdasarkan parameter search + 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 . '%'); + }); + } + + + if (!empty($otorisator)) { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } + + // Sorting berdasarkan sortField dan sortOrder + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Hitung total records + $totalRecords = $query->count(); + + // Pagination (default page size 10) + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + // Filtered records + $filteredRecords = $query->count(); + + // Ambil data dengan relasi + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); + + // Hitung jumlah halaman + $pageCount = ceil($totalRecords / $size); + + // Ambil current page + $currentPage = max(1, $request->get('page', 1)); + + // Return JSON response + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); } diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index 7dacc41..14be728 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -4,7 +4,6 @@ namespace Modules\Lpj\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; -use Modules\Lpj\Models\Penawaran; use App\Http\Controllers\Controller; use Exception; use Maatwebsite\Excel\Facades\Excel; diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php new file mode 100644 index 0000000..b70a9b1 --- /dev/null +++ b/app/Http/Controllers/SurveyorController.php @@ -0,0 +1,140 @@ +findOrFail($id); + return view('lpj::surveyor.detail', compact('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 update(Request $request, $id): RedirectResponse + { + // + } + + 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.'); + } + + $query = Permohonan::query(); + + 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 . '%'); + }); + } + + $query->whereRaw('LOWER(status) = ?', ['assign']); + + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + $filteredRecords = $query->count(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'jenisFasilitasKredit'])->get(); + + $pageCount = ceil($totalRecords / $size); + + $currentPage = max(1, $request->get('page', 1)); + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } +} diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 6829346..22d6e1c 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -2,19 +2,20 @@ namespace Modules\Lpj\Http\Controllers; +use Exception; use Illuminate\Http\Request; -use Illuminate\Http\Response; -use Modules\Lpj\Models\Penawaran; +use Modules\Lpj\Models\KJPP; +use Illuminate\Support\Facades\DB; +use Modules\Lpj\Models\Permohonan; use App\Http\Controllers\Controller; use Maatwebsite\Excel\Facades\Excel; -use Modules\Lpj\Models\PenawaranTender; -use Modules\Lpj\Exports\PenawaranTenderExport; -use Modules\Lpj\Http\Requests\TenderPenawaranRequest; use Modules\Lpj\Models\JenisLaporan; -use Modules\Lpj\Models\KJPP; -use Modules\Lpj\Models\Permohonan; +use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\TujuanPenilaianKJPP; +use Modules\Lpj\Models\PenawaranDetailTender; +use Modules\Lpj\Exports\PenawaranTenderExport; +use Modules\Lpj\Http\Requests\TenderPenawaranRequest; class TenderController extends Controller { @@ -31,71 +32,218 @@ class TenderController extends Controller /** * Show the form for creating a new resource. */ - public function penawaran_create($id) + public function penawaran_create($noreg) { - $penawaran = PenawaranTender::find($id); + $penawaranExists = PenawaranTender::where('nomor_registrasi', '=', $noreg)->exists(); + + // Jika nomor_registrasi sudah ada, kembalikan respon 403 Forbidden + if ($penawaranExists) { + return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg]) + ->with('error', 'Penawaran dengan nomor registrasi ini sudah ada, Anda akan diarahkan ke halaman edit.'); + } + + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); $jenis_laporan = JenisLaporan::all(); + $kjpp = KJPP::all(); - return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id')); + return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'noreg', 'permohonan')); } /** * Store a newly created resource in storage. */ - public function penawaran_store(TenderPenawaranRequest $request, $id) + public function penawaran_store(TenderPenawaranRequest $request, $noreg) { $validated = $request->validated(); - if ($validated) { - $penawaran = PenawaranTender::find($id); + DB::beginTransaction(); - $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; + try { + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); - $validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya')); + // Add created_by/updated_by from the authenticated user + $userId = auth()->user()->id; - dd($validated); + $validated['nomor_registrasi'] = $permohonan->nomor_registrasi; - PenawaranTender::create($validated); + $validated['status'] = $request->input('status') ?? 'tender'; + $validated['updated_by'] = $userId; // Updating the record + $permohonan->update($validated); + + // Adding created_by for the new PenawaranTender record + $validated['created_by'] = $userId; + $penawaranId = PenawaranTender::create($validated); + + $kjpps = $request->input('kjpp', []); + + foreach ($kjpps as $kjpp) { + PenawaranDetailTender::create([ + 'penawaran_id' => $penawaranId->id, + 'kjpp_rekanan_id' => $kjpp, + 'created_by' => $userId, // Set created_by for details + 'updated_by' => $userId + ]); + } + + // Commit the transaction + DB::commit(); return redirect() ->route('tender.penawaran.index') ->with('success', 'Data Penawaran created successfully'); - } else { + } catch (Exception $e) { + DB::rollBack(); + return redirect() - ->route('tender.penawaran.createPenawaran', $id) - ->with('error', 'Validation failed'); + ->route('tender.penawaran.createPenawaran', $noreg) + ->with('error', 'Validation failed: ' . $e); } } /** * Show the specified resource. */ - public function penawaran_show($id) + public function penawaran_show($noreg) { - $penawaran = PenawaranTender::find($id); - return view('lpj::penawaran.show', compact('id', 'penawaran')); + $penawaran = null; + $kjpps = null; + $tujuan_penilaian_kjpp = null; + $jenis_laporan = null; + + $penawaranExists = PenawaranTender::where('nomor_registrasi', $noreg)->exists(); + + $penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + // dd($penawaran1->id); + if ($penawaran1) { + $penawaran = $penawaran1; + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran1->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray(); + $kjpps = KJPP::whereIn('id', $detail_penawaran)->get(); + $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get(); + $jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get(); + } else { + $penawaran2 = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + $penawaran = $penawaran2; + } + + // dd($kjpps); + + return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'penawaranExists')); } /** * Show the form for editing the specified resource. */ - public function edit($id) + public function penawaran_edit($noreg) { - return view('lpj::edit'); + // Find the specific penawaran by its ID + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + + $status = StatusPermohonan::all(); + $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); + $jenis_laporan = JenisLaporan::all(); + + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray(); + $kjpps = KJPP::whereIn('id', $detail_penawaran)->pluck('id')->toArray(); + + $kjpp = KJPP::all(); + + return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan')); } + /** * Update the specified resource in storage. */ - public function update(Request $request, $id) + public function penawaran_update(TenderPenawaranRequest $request, $noreg) { - // + $validated = $request->validated(); + + DB::beginTransaction(); + + try { + // Ambil data penawaran berdasarkan nomor registrasi + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + + // Ambil ID user yang sedang login + $userId = auth()->user()->id; + + // Jangan ubah created_by untuk data yang sudah ada + $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; + $validated['status'] = $request->input('status') ?? 'tender'; + $validated['created_by'] = $userId; + $validated['updated_by'] = $userId; // Hanya update 'updated_by' + + // Update data penawaran dan permohonan + $penawaran->update($validated); + $permohonan->update($validated); + + $kjpps = $request->input('kjpp', []); + + // Ubah status KJPP lama menjadi 0 jika tidak ada dalam request + foreach ($penawaran->penawaranKjpp as $kjpp) { + if (!in_array($kjpp->kjpp_rekanan_id, $kjpps)) { + // Ubah status KJPP lama menjadi 0 + $kjpp->status = 0; + $kjpp->created_by = $userId; + $kjpp->updated_by = $userId; // Set updated_by + $kjpp->save(); + } + } + + // Tangani penambahan atau perubahan KJPP baru + foreach ($kjpps as $kjpp) { + $existingDetail = PenawaranDetailTender::where('penawaran_id', $penawaran->id) + ->where('kjpp_rekanan_id', $kjpp) + ->first(); + + // dd($existingDetail); + + if ($existingDetail) { + // Jika KJPP sudah ada, pastikan statusnya aktif (1) + if ($existingDetail->status == 0) { + $existingDetail->status = 1; + $existingDetail->created_by = $userId; + $existingDetail->updated_by = $userId; // Set updated_by + $existingDetail->save(); + } + } else { + // Buat data baru jika tidak ada dalam database + PenawaranDetailTender::create([ + 'penawaran_id' => $penawaran->id, + 'kjpp_rekanan_id' => $kjpp, + 'status' => 1, // Default status untuk KJPP baru adalah 1 + 'created_by' => $userId, // Set created_by untuk data baru + 'updated_by' => $userId, // Set updated_by juga + ]); + } + } + + // Commit transaksi + DB::commit(); + + return redirect() + ->route('tender.penawaran.index') + ->with('success', 'Data Penawaran updated successfully'); + } catch (Exception $e) { + // Rollback jika ada kesalahan + DB::rollBack(); + + return redirect() + ->route('tender.penawaran.createPenawaran', $noreg) + ->with('error', 'Validation failed: ' . $e->getMessage()); + } } + + + + /** * Remove the specified resource from storage. */ @@ -111,15 +259,19 @@ class TenderController extends Controller } // Retrieve data from the database - $query = PenawaranTender::query(); + $query = Permohonan::query()->where('status', '=', 'registered')->where('jenis_penilaian_id', '=', 2); // 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('code', 'LIKE', "%$search%"); - $q->orWhere('nama_kjpp_sebelumnya', 'LIKE', "%$search%"); - $q->orWhere('tanggal_penilaian_sebelumnya', 'LIKE', "%$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 . '%'); }); } @@ -146,7 +298,7 @@ class TenderController extends Controller $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -168,7 +320,79 @@ class TenderController extends Controller public function exportPenawaran() { - return Excel::download(new PenawaranTenderExport, 'kjpp.xlsx'); + return Excel::download(new PenawaranTenderExport, 'penawarantender.xlsx'); + } + + // penawaran ulang + public function penawaran_ulang_index() + { + return view('lpj::penawaran_ulang/index'); + } + + public function datatablesPenawaranUlang(Request $request) + { + if (is_null($this->user) || !$this->user->can('penawaran_ulang.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = Permohonan::query()->where('status', '=', 'tender')->where('jenis_penilaian_id', '=', 2); + + // 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 sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = 0 + 1; + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); } public function proses_penawaran_index() @@ -176,8 +400,13 @@ class TenderController extends Controller return view('lpj::proses_penawaran/index'); } - public function penawaran_ulang_index() + // Tambahkan method untuk API di controller + public function checkPenawaranExistence($nomor_registrasi) { - return view('lpj::penawaran_ulang/index'); + // Cek apakah nomor_registrasi ada dalam tabel penawaran + $exists = PenawaranTender::where('nomor_registrasi', $nomor_registrasi)->exists(); + + // Kembalikan hasil pengecekan sebagai JSON + return response()->json(['exists' => $exists]); } } diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index 16ed5bc..6472638 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -12,21 +12,21 @@ class TenderPenawaranRequest extends FormRequest public function rules(): array { $rules = [ - 'nama_kjpp_sebelumnya' => 'required|array', - 'nama_kjpp_sebelumnya.*' => 'exists:kjpp,name', - 'biaya_kjpp_sebelumnya' => 'required|numeric', - 'tanggal_penilaian_sebelumnya' => 'required', + 'nama_kjpp_sebelumnya' => 'nullable', + 'biaya_kjpp_sebelumnya' => 'nullable|numeric', + 'tanggal_penilaian_sebelumnya' => 'nullable', 'nomor_registrasi' => 'required', + 'kjpp.*' => 'exists:kjpp,id', 'tujuan_penilaian_kjpp_id' => 'required', 'jenis_laporan_id' => 'required', 'start_date' => 'required', 'end_date' => 'required', 'catatan' => 'nullable', - 'status' => 'required' + 'status' => 'nullable' ]; if ($this->method() == 'PUT') { - $rules['code'] = 'required|max:50|unique:penawaran,code,' . $this->id; + $rules['code'] = 'required|max:50'; } else { $rules['code'] = 'required|max:50|unique:penawaran,code'; } @@ -48,16 +48,11 @@ class TenderPenawaranRequest extends FormRequest 'code.required' => 'Kode Penawaran Wajib diisi!', 'code.max' => 'Kode Penawaran maksimal 255 huruf!', 'code.unique' => 'Kode Penawaran tidak boleh sama!', - 'nama_kjpp_sebelumnya.required' => 'Nama KJPP Sebelumnya Wajib diisi!', - 'biaya_kjpp_sebelumnya.required' => 'Biaya KJPP Sebelumnya Wajib diisi!', - 'biaya_kjpp_sebelumnya.numeric' => 'Biaya KJPP Sebelumnya harus berupa angka!', - 'tanggal_penilaian_sebelumnya.required' => 'Tanggal Penilaian Sebelumnya Wajib diisi!', 'nomor_registrasi.required' => 'Nomor Registrasi Wajib diisi!', 'tujuan_penilaian_kjpp_id.required' => 'Tujuan Penilaian KJPP Wajib diisi!', 'jenis_laporan_id.required' => 'Jenis Laporan Wajib diisi!', 'start_date.required' => 'Tanggal Awal Wajib diisi!', 'end_date.required' => 'Tanggal Akhir Wajib diisi!', - 'status.required' => 'Status Wajib diisi!' ]; } @@ -66,10 +61,27 @@ class TenderPenawaranRequest extends FormRequest $validator->after(function ($validator) { $startDate = strtotime($this->input('start_date')); $endDate = strtotime($this->input('end_date')); + $today = strtotime(date('Y-m-d')); if ($endDate < $startDate) { $validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.'); } + + if ($startDate < $today) { + $validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.'); + } + + // Validasi minimal 3 pilihan pada nama_kjpp + $namaKjpp = $this->input('kjpp', []); + + // jika nama KJPP itu kosong + if (empty($namaKjpp)) { + $validator->errors()->add('kjpp', 'Nama KJPP wajib diisi.'); + } + // jika terisi kurang dari 3 item + elseif (is_array($namaKjpp) && count($namaKjpp) < 3) { + $validator->errors()->add('kjpp', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.'); + } }); } } diff --git a/app/Models/PenawaranDetailTender.php b/app/Models/PenawaranDetailTender.php index af7d73b..8b65a91 100644 --- a/app/Models/PenawaranDetailTender.php +++ b/app/Models/PenawaranDetailTender.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; +// use Modules\Lpj\Database\Factories\PenawaranDetailTenderFactory; class PenawaranDetailTender extends Model { diff --git a/app/Models/PenawaranTender.php b/app/Models/PenawaranTender.php index 405c751..dbf1c47 100644 --- a/app/Models/PenawaranTender.php +++ b/app/Models/PenawaranTender.php @@ -3,6 +3,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; +use Modules\Lpj\Models\PenawaranDetailTender; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; // andy add @@ -23,4 +24,9 @@ class PenawaranTender extends Model return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id', 'id')->where('status', '=', 1); } // andy add + + public function penawaranKjpp() + { + return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id'); + } } diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index 93bd3e8..cb2f44c 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -10,45 +10,50 @@ use Modules\Lpj\Models\Teams; use Modules\Lpj\Models\Permohonan; use Modules\Usermanagement\Models\User; - class Penilaian extends Model { - /** * The attributes that are mass assignable. */ protected $table = 'penilaian'; protected $fillable = [ - 'jenis_penilaian_id', 'teams_id', 'user_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id', + 'jenis_penilaian_id', 'teams_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; - public function jenis_penilaian(){ + public function jenis_penilaian() + { return $this->belongsTo(JenisPenilaian::class, 'jenis_penilaian_id', 'id'); } - public function teams(){ + public function teams() + { return $this->belongsTo(Teams::class, 'teams_id', 'id'); } - public function users(){ + public function users() + { return $this->belongsTo(User::class, 'user_id', 'id'); } - public function userPenilai(){ + public function userPenilai() + { return $this->belongsTo(User::class, 'penilaian_id', 'id'); } - public function userSurveyor(){ + public function userSurveyor() + { return $this->belongsTo(User::class, 'surveyor_id', 'id'); } - public function userPenilaiSurveyor(){ + public function userPenilaiSurveyor() + { return $this->belongsTo(User::class, 'penilai_surveyor_id', 'id'); } - public function permohonan(){ + public function permohonan() + { return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi'); } diff --git a/app/Models/TeamsUsers.php b/app/Models/TeamsUsers.php index a47cae9..b94df81 100644 --- a/app/Models/TeamsUsers.php +++ b/app/Models/TeamsUsers.php @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model; use Modules\Lpj\Database\Factories\TeamsUsersFactory; use Modules\Usermanagement\Models\User; use Modules\Lpj\Models\Teams; +use Modules\Lpj\Models\Penilaian; class TeamsUsers extends Model { @@ -30,4 +31,10 @@ class TeamsUsers extends Model { return $this->belongsTo(User::class, 'user_id', 'id'); } + + public function penilaian() + { + return $this->belongsTo(Penilaian::class, 'teams_id', 'id'); + } + } diff --git a/database/migrations/2024_10_03_073923_update_penawaran_table.php b/database/migrations/2024_10_03_073923_update_penawaran_table.php new file mode 100644 index 0000000..a22d315 --- /dev/null +++ b/database/migrations/2024_10_03_073923_update_penawaran_table.php @@ -0,0 +1,32 @@ +string('nama_kjpp_sebelumnya')->nullable()->change(); + $table->string('biaya_kjpp_sebelumnya')->nullable()->change(); + $table->datetime('tanggal_penilaian_sebelumnya')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->string('nama_kjpp_sebelumnya')->change(); + $table->string('biaya_kjpp_sebelumnya')->change(); + $table->datetime('tanggal_penilaian_sebelumnya')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_03_074430_update_penawaran_table.php b/database/migrations/2024_10_03_074430_update_penawaran_table.php new file mode 100644 index 0000000..9ceb263 --- /dev/null +++ b/database/migrations/2024_10_03_074430_update_penawaran_table.php @@ -0,0 +1,28 @@ +text('catatan')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->text('catatan')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_04_072406_update_penawaran_table.php b/database/migrations/2024_10_04_072406_update_penawaran_table.php new file mode 100644 index 0000000..543406b --- /dev/null +++ b/database/migrations/2024_10_04_072406_update_penawaran_table.php @@ -0,0 +1,28 @@ +string('status')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->string('status')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php b/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php new file mode 100644 index 0000000..25e6d73 --- /dev/null +++ b/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php @@ -0,0 +1,32 @@ +string('biaya_penawaran')->nullable()->change(); + $table->string('attachment')->nullable()->change(); + $table->string('dokumen_persetujuan')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran', function (Blueprint $table) { + $table->string('biaya_penawaran')->change(); + $table->string('attachment')->change(); + $table->string('dokumen_persetujuan')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_08_075401_update_penawaran_table.php b/database/migrations/2024_10_08_075401_update_penawaran_table.php new file mode 100644 index 0000000..34e6978 --- /dev/null +++ b/database/migrations/2024_10_08_075401_update_penawaran_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('created_by')->nullable()->after('created_at'); + $table->unsignedBigInteger('updated_by')->nullable()->after('updated_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->dropColumn('created_by'); + $table->dropColumn('updated_by'); + }); + } +}; diff --git a/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php b/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php new file mode 100644 index 0000000..f4ce896 --- /dev/null +++ b/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('created_by')->nullable()->after('created_at'); + $table->unsignedBigInteger('updated_by')->nullable()->after('updated_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran', function (Blueprint $table) { + $table->dropColumn('created_by'); + $table->dropColumn('updated_by'); + }); + } +}; diff --git a/module.json b/module.json index 69a36d2..0722d02 100644 --- a/module.json +++ b/module.json @@ -5,9 +5,7 @@ "description": "", "keywords": [], "priority": 0, - "providers": [ - "Modules\\Lpj\\Providers\\LpjServiceProvider" - ], + "providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"], "files": [], "menu": { "main": [ @@ -18,9 +16,16 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] + }, + { + "title": "Registrasi", + "path": "registrasi", + "icon": "ki-filled ki-file-added text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["Administrator", "admin"] }, { "title": "Tender", @@ -29,9 +34,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ], + "roles": ["Administrator", "admin"], "sub": [ { "title": "Data Penawaran", @@ -39,7 +42,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] }, { "title": "Data Proses Penawaran", @@ -47,15 +50,15 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] }, { "title": "Data Penawaran Ulang", - "path": "tender.penawaran_ulang", + "path": "tender.penawaran.ulang", "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] } ] }, @@ -66,9 +69,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Data Debitur", @@ -77,9 +78,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Authorization", @@ -88,20 +87,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] - }, - { - "title": "Registrasi", - "path": "registrasi", - "icon": "ki-filled ki-file-added text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-eo"] }, { "title": "Assignment", @@ -110,10 +96,61 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" + "roles": ["Administrator", "so"] + }, + { + "title": "Team Activity", + "path": "activity.progres", + "icon": "ki-filled ki-questionnaire-tablet text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"] + }, + { + "title": "Otorisator", + "path": "otorisator", + "icon": "ki-filled ki-security-user text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"], + "sub": [ + { + "title": "Pelaporan", + "path": "otorisator.pelaporan", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"] + }, + { + "title": "Pembayaran", + "path": "otorisator.pembayaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"] + }, + { + "title": "Pembatalan", + "path": "otorisator.pembatalan", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"] + }, + { + "title": "SLA", + "path": "otorisator.sla", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["so"] + } ] }, + { "title": "Activity", "path": "activity", @@ -121,9 +158,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo", "admin"] }, { "title": "Laporan", @@ -132,9 +167,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo", "admin", "so"] } ], "master": [ @@ -145,9 +178,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ], + "roles": ["Administrator", "pemohon-ao", "pemohon-eo", "admin"], "sub": [ { "title": "Cabang", @@ -155,7 +186,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Mata Uang", @@ -163,7 +194,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Jenis Fasilitas Kredit", @@ -171,7 +202,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Jenis Legalitas Jaminan", @@ -179,7 +210,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Jenis Aset", @@ -187,7 +218,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Jenis Dokumen", @@ -195,7 +226,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Tujuan Penilaian", @@ -203,7 +234,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Nilai Plafond", @@ -211,7 +242,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Hubungan Pemilik Jaminan", @@ -219,7 +250,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Hubungan Penghuni Jaminan", @@ -227,7 +258,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "pemohon-ao", "pemohon-eo"] }, { "title": "Arah Mata Angin", @@ -235,7 +266,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator"] }, { "title": "Status Permohonan", @@ -243,7 +274,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator"] }, { "title": "Region", @@ -251,7 +282,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin", "so"] }, { "title": "Staff Appraisal", @@ -259,7 +290,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "so"] }, { "title": "Jenis Penilaian", @@ -267,7 +298,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin", "so"] }, { "title": "KJPP", @@ -275,7 +306,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] }, { "title": "Tujuan Penilaian KJPP", @@ -283,7 +314,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] }, { "title": "Ijin Usaha", @@ -291,7 +322,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": ["Administrator", "admin"] } ] } diff --git a/resources/views/activity/activitydetail.blade.php b/resources/views/activity/activitydetail.blade.php index ec335f0..097fd25 100644 --- a/resources/views/activity/activitydetail.blade.php +++ b/resources/views/activity/activitydetail.blade.php @@ -13,108 +13,118 @@ @endpush
Penilai:
- {{ $penilai }} -Surveyor:
- {{ $surveyor }} -Penilai Surveyor:
- {{ $penilaiSurveyor }} -- @foreach ($branches as $branch) - {{ $branch->name }} - @endforeach + {{ $kjpp->jenis_kantor }}