II. Administative Position
@php
$total = count($flows) + 1;
$currentIndex = 0;
foreach ($flows as $index => $flow) {
if ($flow->flow_status == 'Success') {
$currentIndex = $index + 1;
} elseif (in_array($flow->flow_status, ['Pending','Waiting'])) {
$currentIndex = $index + 1;
break;
}
}
// 🔥 กันหาร 0
if(($total - 1) > 0){
$progressPercent = ($currentIndex / ($total - 1)) * 100;
}else{
$progressPercent = 0;
}
@endphp
{{-- 🔵 STEP 1: Requested --}}
01
Requested
{{ $faculty->faculty_title }} {{ $faculty->faculty_firstname }} {{ $faculty->faculty_lastname }}
(Faculty)
@php
$foundActive = false;
@endphp
@foreach ($flows as $key => $flow)
@php
$statusClass = 'default';
if($flow->flow_status == 'Success'){
$statusClass = 'success';
}
elseif($flow->flow_status == 'Rejected'){
$statusClass = 'reject';
}
elseif($flow->flow_status == 'Waiting'){
$statusClass = 'waiting';
$foundActive = true;
}
elseif($flow->flow_status == 'Pending'){
$statusClass = 'waiting';
$foundActive = true;
}
else{
// 🔥 step ที่ยังไม่ถึง → ให้เป็น Waiting (เหลือง)
if(!$foundActive){
$statusClass = 'waiting';
}
}
@endphp
{{ str_pad($flow->flow_order + 1, 2, '0', STR_PAD_LEFT) }}
@php
$displayStatus = 'Waiting';
if($flow->flow_status == 'Success'){
$displayStatus = 'Approve';
}elseif($flow->flow_status == 'Rejected'){
$displayStatus = 'Reject';
}elseif($flow->flow_status == 'Pending' || $flow->flow_status == 'Waiting'){
$displayStatus = 'Waiting';
}else{
$displayStatus = 'Waiting';
}
@endphp
{{ $displayStatus }}
{{ $flow->flow_actor }}
@php
$user = DB::table('faculty')
->where('faculty_userid', $flow->flow_actor_id)
->first();
@endphp
@if($user)
({{ $user->faculty_title }} {{ $user->faculty_firstname }} {{ $user->faculty_lastname }})
@endif
@endforeach
A. Position
Administrative Position :
{{ $adcontract->admin_position_name }}
Appointment No. :
{{ $adcontract->adcontract_no }}
B. Workload Arrangement for Administrative Position Type
Academic Year :
{{ $adcontract->adcontract_value_year }}
Semester :
{{ $adcontract->adcontract_value_semester }}
Administrative Position Type :
{{ $adcontract->adposition_type_name }}
C. Period
Start Date :
{{ $adcontract->adcontract_start_date }}
End Date :
{{ $adcontract->adcontract_end_date }}
{{-- 🔥 STEP 0: Requested --}}
{{ date('d M Y H:i', strtotime($adcontract->raw_created_at)) }}
Requested
by {{ $faculty->faculty_title }} {{ $faculty->faculty_firstname }} {{ $faculty->faculty_lastname }}
{{-- 🔥 FLOW STEP --}}
@foreach($flows as $flow)
@if($flow->flow_status == 'Pending')
@continue
@endif
@php
$user = DB::table('faculty')
->where('faculty_userid', $flow->flow_actor_id)
->first();
$name = $user
? $user->faculty_title.' '.$user->faculty_firstname.' '.$user->faculty_lastname
: $flow->flow_actor;
// ใช้ updated ถ้ามี ไม่งั้นใช้ created
$date = $flow->flow_updated ?? $flow->flow_created;
if($flow->flow_status == 'Success'){
$statusText = 'Approved';
$badge = 'bg-success';
}elseif($flow->flow_status == 'Rejected'){
$statusText = 'Rejected';
$badge = 'bg-danger';
}elseif($flow->flow_status == 'Waiting'){
$statusText = 'Waiting';
$badge = 'bg-warning';
}
elseif($flow->flow_status == 'Pending'){
$statusText = 'Pending';
$badge = 'bg-info';
}
else{
$statusText = 'Waiting';
$badge = 'bg-secondary';
}
@endphp
@if($date)
{{ \Carbon\Carbon::parse($date)->format('d M Y H:i') }}
{{ $statusText }}
by {{ $name }}
@if($flow->flow_comment)
// Comment : {{ $flow->flow_comment }}
@endif
@endif
@endforeach
@if($currentFlow)
{{-- Approve --}}
{{-- Disapprove --}}
@endif