Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2025-01-14 09:53:19 +07:00
7 changed files with 67 additions and 47 deletions

View File

@@ -16,7 +16,7 @@ use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\StatusPermohonan;
use Modules\Lpj\Models\Teams;
use Modules\Lpj\Models\Inspeksi;
use Modules\Lpj\Models\Penilai ;
use Modules\Lpj\Models\Penilai;
use Modules\Location\Models\Province;
use Modules\Location\Models\City;
use Modules\Location\Models\District;
@@ -351,7 +351,7 @@ class PenilaianController extends Controller
$filteredRecords = $query->count();
$data = $query->with(
['user', 'debiture', 'branch', 'tujuanPenilaian','jenisPenilaian', 'region.teams.teamsUsers.user'],
['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisPenilaian', 'region.teams.teamsUsers.user'],
)->get();
$pageCount = ceil($totalRecords / $size);
@@ -416,7 +416,7 @@ class PenilaianController extends Controller
$authorization = Authorization::with(['user'])->find($id);
if (!$authorization) {
return response()->json([
'message' => 'Data authorization SLA tidak ditemukan.',
'message' => 'Data authorization SLA tidak ditemukan.',
], 404);
}
$permohonan = Permohonan::find($authorization->permohonan_id);
@@ -482,7 +482,7 @@ class PenilaianController extends Controller
]);
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal' || Auth::user()->roles[0]->name === 'administrator') {
$status = '2';
if (!in_array($permohonan->nulai_plafond_id, [1,4])) {
if (!in_array($permohonan->nulai_plafond_id, [1, 4])) {
$status = '1';
$permohonan->update([
'status' => $authorization->request
@@ -604,7 +604,19 @@ class PenilaianController extends Controller
$filteredRecords = $query->count();
// Ambil data dengan relasi
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo', 'approveEo', 'approveDd'])->get();
$data = $query->with([
'user',
'debiture',
'branch',
'tujuanPenilaian',
'penilaian.userPenilai' => function ($q) {
$q->where('role', 'penilai')->with(['user', 'team.regions'])->first();
},
'approveSo',
'approveEo',
'approveDd'
])->get();
// Hitung jumlah halaman
@@ -637,9 +649,9 @@ class PenilaianController extends Controller
$provinces = Province::all();
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first();
$lpj = Penilai::where('permohonan_id', $id)
->where('dokument_id', $documentId)
->where('inspeksi_id', $inspeksi->id)
->first();
->where('dokument_id', $documentId)
->where('inspeksi_id', $inspeksi->id)
->first();
$forminspeksi = null;
$lpjData = null;
@@ -664,7 +676,7 @@ class PenilaianController extends Controller
return redirect()->back()->with('error', 'Laporan belum dibuat');
}
return view('lpj::'. $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo'));
return view('lpj::' . $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo'));
}
private function getViewLaporan($tipe)
@@ -747,5 +759,4 @@ class PenilaianController extends Controller
'message' => 'Berhasil Revisi Laporan penilai',
], 200);
}
}

View File

@@ -15,7 +15,7 @@ class PenilaianTeam extends Model
/**
* The attributes that are mass assignable.
*/
protected $fillable = ['penilaian_id', 'team_id', 'user_id','role'];
protected $fillable = ['penilaian_id', 'team_id', 'user_id', 'role'];
public function userPenilaiTeam()
@@ -23,12 +23,19 @@ class PenilaianTeam extends Model
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function team(){
public function team()
{
return $this->belongsTo(Teams::class, 'team_id', 'id');
}
public function penilaian(){
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function penilaian()
{
return $this->belongsTo(Penilaian::class, 'penilaian_id', 'id');
}

View File

@@ -100,6 +100,7 @@
<tr>
<th class="min-w-[100px]">Nama Debitur</th>
<th class="min-w-[100px]">Tujuan Penilaian</th>
<th class="min-w-[100px]">Status Bayar</th>
<th class="min-w-[100px]">Jenis Asset</th>
<th class="min-w-[100px]">Jenis Report</th>
<th class="min-w-[100px]">Tgl Register</th>
@@ -178,6 +179,18 @@
return `${data.permohonan.tujuan_penilaian?.name || ''}`;
},
},
status_bayar: {
title: 'Status Bayar',
render: (item, data) => {
const status = data.permohonan.status_bayar.replace(/_/g,
' ');
const statusClass = data.permohonan.status_bayar === 'belum_bayar' ? 'text-red-600' :
'text-green-600';
return `<span class="badge badge-sm badge-default font-bold ${statusClass} uppercase">
${status}
</span>`;
},
},
jenis_asset: {
title: 'Jenis Asset',
render: (item, data) =>
@@ -208,7 +221,7 @@
progress: {
title: 'Progress',
render: (item, data) => {
return `<span class="badge badge-xs badge-default uppercase flex justify-center ">${data.permohonan.status}</span>`;
return `<span class="badge badge-sm badge-default uppercase flex justify-center ">${data.permohonan.status}</span>`;
}
},
// tanggal kunjungan h+2 jika plafon di

View File

@@ -67,15 +67,6 @@
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai NJOP:
</h3>
<span class="text-md font-bold uppercase">
{{ formatRupiah($permohonan->niilai_njop) }}
</span>
</div>
</div>
</div>

View File

@@ -7,10 +7,10 @@
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card border border-agi-100 pb-2.5">
<div class=" card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="min-w-full card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="permohonan-table"
data-api-url="{{ route('otorisator.datatables', ['otorisator' => $header]) }}">
<div class="card-header bg-agi-50 py-5 flex-wrap">
<div class="flex-wrap py-5 card-header bg-agi-50">
<h3 class="card-title">
Daftar {{ $header }}
</h3>
@@ -29,7 +29,7 @@
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border"
data-datatable-table="true">
<thead>
<tr>
@@ -61,6 +61,11 @@
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="penilai">
<span class="sort"> <span class="sort-label"> Penilai </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
<span class="sort"> <span class="sort-label"> Status Bayar </span>
<span class="sort-icon"> </span> </span>
@@ -87,10 +92,10 @@
</table>
</div>
<div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
class="flex-col justify-center gap-3 font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
@@ -195,6 +200,17 @@
return `${data.tujuan_penilaian.name}`;
},
},
penilai: {
title: 'Penilai',
render: (item, data) => {
if(data.penilaian.user_penilai[0]){
console.log(data.penilaian.user_penilai[0]);
return `${data.penilaian.user_penilai[0].user.name} | ${data.penilaian.user_penilai[0].team.name} | ${data.penilaian.user_penilai[0].team.regions.name}`;
}
return '';
},
},
status_bayar: {
title: 'Status Bayar',
render: (item, data) => {
@@ -241,7 +257,7 @@
const isAdmin = userRoles.includes('administrator');
let buttons = `
<div class="flex flex-nowrap justify-center">
<div class="flex justify-center flex-nowrap">
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="otorisator/show/${data.id}/${dataHeader}">
<i class="ki-outline ki-eye"></i>
</a>

View File

@@ -89,15 +89,6 @@
: {{ $permohonan->nilaiPlafond->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Nilai NJOP
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $permohonan->nilai_njop }}
</span>
</div>
</div>
</div>

View File

@@ -66,15 +66,6 @@
{{ str_replace('_',' ',$permohonan->status_bayar) }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai NJOP:
</h3>
<span class="text-md font-bold uppercase">
{{ formatRupiah($permohonan->niilai_njop) }}
</span>
</div>
</div>
</div>