@@ -68,11 +68,11 @@ class Requisition extends Model
|
||||
/** @param Builder<Requisition> $query */
|
||||
public function scopeVisibleTo(Builder $query, User $user): void
|
||||
{
|
||||
match ($user->purchasing_role) {
|
||||
PurchasingRole::Admin, PurchasingRole::Procurement, PurchasingRole::Finance => null,
|
||||
PurchasingRole::DepartmentHead => $query->where('department_id', $user->department_id),
|
||||
default => $query->where('requester_id', $user->id),
|
||||
};
|
||||
if ($user->departmentScoped()) {
|
||||
$query->where('department_id', $user->department_id);
|
||||
} elseif (! $user->hasFunctions([PurchasingRole::Admin, PurchasingRole::Procurement, PurchasingRole::Finance])) {
|
||||
$query->where('requester_id', $user->id);
|
||||
}
|
||||
}
|
||||
|
||||
public function canDecide(User $user): bool
|
||||
@@ -87,7 +87,7 @@ class Requisition extends Model
|
||||
|
||||
$next = $this->steps->firstWhere('decision', 'pending');
|
||||
|
||||
return $next !== null && $next->role === $user->purchasing_role->value
|
||||
return $next !== null && $user->hasFunctions([$next->role])
|
||||
&& ($next->role !== 'department_head' || $this->department_id === $user->department_id)
|
||||
&& ! app(ConflictGuard::class)->participationBlocked($user, $this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user