diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index ed09be5..c42bd71 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -5,6 +5,7 @@ use Modules\Lpj\Models\HolidayCalendar; use Modules\Lpj\Models\PenawaranDetailTender; use Modules\Lpj\Models\PenawaranTender; + use Modules\Lpj\Models\Penilaian; function formatTanggalIndonesia($date, $time = false) { @@ -118,22 +119,33 @@ $noUrutAkhirString = sprintf("%04s", 1); if($penawaran) { - $code_penawaran_last = substr ($maxCode, -4); - $year_penawaran_last = Carbon::parse($penawaran->created_at)->year; - $year_now = Carbon::now()->year; - if ($year_now == $year_penawaran_last) { - $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); + $isNum = substr($maxCode, 2); // memastikan string ke 3 s/d 8 adalan numiric + $isNP = substr($maxCode, 0, 2); + if((8 == strlen($maxCode)) && ("NP"==$isNP) && (isNumeric($isNum))) + { + $code_penawaran_last = substr ($maxCode, -4); + $year_penawaran_last = Carbon::parse($penawaran->created_at)->year; + $year_now = Carbon::now()->year; + if ($year_now == $year_penawaran_last) { + $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); + } + // jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001 } - // jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001 + } return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString; } - // generate last penawaran.no_spk + function isNumeric($str) + { + return ctype_digit($str); + } + + // generate last penawaran.no_spk function onLastnumberCodePenawaranSPK($jenis_laporan_code): string { - + // 20241124_001 ==> spk_no_core // XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024 // 001 / PJ / JKT / XI / FR / 2024 @@ -148,18 +160,18 @@ { $no_spk_penawaran_last = substr ($maxCode, -3); $year_penawaran_last = substr ($maxCode, 0, 4); - + if($year_now == $year_penawaran_last) { - $noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1)); + $noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1)); } // jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001 } - + $month = onRomawi(Carbon::now()->month); - + $lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now; - return $lastSPK; + return $lastSPK; } function onRomawi(int $bln): string @@ -203,7 +215,7 @@ break; } - + } function penyebut($nilai) { @@ -230,16 +242,16 @@ $temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000)); } else if ($nilai < 1000000000000000) { $temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000)); - } + } return $temp; } - + function terbilang($nilai) { if($nilai<0) { $hasil = "minus ". trim(penyebut($nilai)); } else { $hasil = trim(penyebut($nilai)); - } + } return $hasil; } // andy add @@ -272,3 +284,10 @@ }, )->toArray(); } + + function countPermohonanForUser($userId) + { + return Penilaian::whereHas('userPenilai', function ($query) use ($userId) { + $query->where('user_id', $userId); + })->count(); + } diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index 9d9474c..f1d79d8 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -33,42 +33,27 @@ class ActivityController extends Controller public function progres_activity() { - // Ambil user yang sedang login - $user = auth()->user(); - $roles = $user->load('roles'); + // Ambil user yang sedang login dengan roles + $user = auth()->user()->load('roles'); - // Inisialisasi regionId dan teamId sebagai null agar bisa dinamis - $regionId = null; - $teamId = null; + // Inisialisasi regionId dan teamId + $regionId = $teamId = null; - if ($roles->roles->pluck('name')->contains('senior-officer')) { - $userTeam = TeamsUsers::with('team') - ->where('user_id', $user->id) - ->first(); + if ($user->roles->pluck('name')->contains('senior-officer')) { + $userTeam = TeamsUsers::with('team')->firstWhere('user_id', $user->id); $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 - } + $q->when($regionId, fn($q) => $q->where('regions_id', $regionId)) + ->when($teamId, fn($q) => $q->where('id', $teamId)); }) ->where('user_id', '!=', $user->id) - ->whereHas('user.roles', function ($query) { - // Filter hanya peran 'surveyor' atau 'surveyor-penilai' - $query->whereIn('name', ['surveyor', 'surveyor-penilai']); - }) + ->whereHas('user.roles', fn($q) => $q->whereIn('name', ['surveyor', 'surveyor-penilai'])) ->get(); - - - return view('lpj::activity.progres_activity.index', compact('teamsActivity')); } diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 54a05f0..29cbb0a 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -73,14 +73,7 @@ - @php - $totalTasks = $item->team->regions->penilaiTeam - ->filter(function ($penilaiTeam) use ($item) { - return $penilaiTeam->user_id == $item->user->id; - }) - ->count(); - @endphp -

Total Task: {{ $totalTasks }}

+

Total Task: {{ countPermohonanForUser($item->user->id) }}