update assigment lintas region

This commit is contained in:
majid
2024-11-05 08:29:27 +07:00
parent e466e5e7ff
commit 10c9567b4f
19 changed files with 699 additions and 252 deletions

View File

@@ -30,31 +30,44 @@ class ActivityController extends Controller
*/
public function progres_activity()
{
// Ambil user yang sedang login
$user = auth()->user();
$roles = $user->load('roles');
$regionId = null;
public function progres_activity()
{
// Ambil user yang sedang login
$user = auth()->user();
$roles = $user->load('roles');
// 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;
}
// Inisialisasi regionId dan teamId sebagai null agar bisa dinamis
$regionId = null;
$teamId = null;
$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();
if ($roles->roles->pluck('name')->contains('senior-officer')) {
$userTeam = TeamsUsers::with('team')
->where('user_id', $user->id)
->first();
$regionId = $userTeam?->team->regions_id;
$teamId = $userTeam?->teams_id;
}
$teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions', 'user.roles'])
->whereHas('team', function ($q) use ($regionId, $teamId) {
if ($regionId) {
$q->where('regions_id', $regionId);
}
if ($teamId) {
$q->where('id', $teamId); // Hanya tim yang sama
}
})
->where('user_id', '!=', $user->id)
->whereHas('user.roles', function ($query) {
// Filter hanya peran 'surveyor' atau 'surveyor-penilai'
$query->whereIn('name', ['surveyor', 'surveyor-penilai']);
})
->get();
return view('lpj::activity.progres_activity.index', compact('teamsActivity'));
}
return view('lpj::activity.progres_activity.index', compact('teamsActivity'));
}
public function senior()
@@ -194,13 +207,23 @@ class ActivityController extends Controller
public function dataTablesForActivity(Request $request, $id)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {
// abort(403, 'Sorry! You are not allowed to view users.');
}
// Query Penilaian dengan relasi yang diperlukan
$query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian', 'permohonan.debiture.documents.jenisJaminan'])
->where(function($q) use ($id) {
$q->where('surveyor_id', $id)
->orWhere('penilaian_id', $id)
->orWhere('penilai_surveyor_id', $id);
});
$query = Penilaian::with([
'permohonan',
'permohonan.debiture',
'permohonan.tujuanPenilaian',
'permohonan.debiture.documents.jenisJaminan',
'userPenilai'
])
->whereHas('userPenilai', function ($q) use ($id) {
$q->where('user_id', $id);
});
// Filter pencarian
if ($request->has('search') && !empty($request->get('search'))) {