@@ -24,7 +24,7 @@ class SupplierBankWorkflow
|
||||
public function propose(User $user, Supplier $supplier, array $data): SupplierBankDetail
|
||||
{
|
||||
$this->actor($user, $supplier);
|
||||
abort_unless($user->purchasing_role === PurchasingRole::Procurement, 403);
|
||||
abort_unless($user->hasFunctions([PurchasingRole::Procurement]), 403);
|
||||
|
||||
return DB::transaction(function () use ($user, $supplier, $data) {
|
||||
app(ConflictGuard::class)->lockCompany($user);
|
||||
@@ -44,7 +44,7 @@ class SupplierBankWorkflow
|
||||
|
||||
public function review(User $user, SupplierBankDetail $detail, string $decision, string $reason): void
|
||||
{
|
||||
abort_unless($user->purchasing_role === PurchasingRole::Finance && $detail->tenant_id === $user->tenant_id && $detail->created_by !== $user->id, 403);
|
||||
abort_unless($user->hasFunctions([PurchasingRole::Finance]) && $detail->tenant_id === $user->tenant_id && $detail->created_by !== $user->id, 403);
|
||||
if (! in_array($decision, ['approved', 'rejected']) || trim($reason) === '') {
|
||||
throw ValidationException::withMessages(['bank' => 'Decisão e fundamento obrigatórios.']);
|
||||
}
|
||||
@@ -92,7 +92,7 @@ class SupplierBankWorkflow
|
||||
}
|
||||
foreach ($reviews as $review) {
|
||||
$user = User::query()->where('tenant_id', $supplier->tenant_id)->find($review->reviewed_by);
|
||||
if (! $user || $user->purchasing_role !== PurchasingRole::Finance || $user->id === $detail->created_by || app(ConflictGuard::class)->hasConflict($user->id, $supplier->id, null)) {
|
||||
if (! $user || ! $user->hasFunctions([PurchasingRole::Finance]) || $user->id === $detail->created_by || app(ConflictGuard::class)->hasConflict($user->id, $supplier->id, null)) {
|
||||
return 'blocked';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user