Všetky balíky
Requests for Laravel
Pravidlá schvaľovania
Pravidlo — a kde treba, aj kvórum — zvolíte v builderi:
use RoundlyConsulting\Approvals\Enums\ApprovalRule;
// Any 2 of 3 managers (first-past-the-post quorum):
Requests::make()
->requireApprovalsFrom([$a, $b, $c])
->rule(ApprovalRule::Quorum)
->quorum(2)
->create();
// First approver wins:
Requests::make()->requireApprovalsFrom([$a, $b])->rule(ApprovalRule::Any)->create();
// Weighted — a senior approver (ProvidesApprovalWeight) clears the threshold alone:
Requests::make()
->requireApprovalsFrom([$senior, $junior])
->rule(ApprovalRule::Weighted)
->quorum(3)
->create();| Pravidlo | Žiadosť je schválená, keď |
|---|---|
ApprovalRule::Unanimous | schválili všetci deklarovaní schvaľovatelia. Predvolené. |
ApprovalRule::Quorum | je k dispozícii quorum() schválení — ešte predtým, ako rozhodnú všetci. |
ApprovalRule::Any | príde prvé schválenie. |
ApprovalRule::Weighted | súčet váh schválení dosiahne quorum(). Každý schvaľovateľ má váhu 1, pokiaľ neimplementuje ProvidesApprovalWeight. |
Vážení schvaľovatelia
Pri váženom pravidle implementujte na aktérovi ProvidesApprovalWeight. Parameter $approvable je práve posudzovaná žiadosť, takže váha môže závisieť od jej typu či meta údajov:
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Approvals\Interfaces\GivesApprovalsInterface;
use RoundlyConsulting\Approvals\Interfaces\ProvidesApprovalWeight;
use RoundlyConsulting\Approvals\Traits\GivesApprovals;
class User extends Model implements GivesApprovalsInterface, ProvidesApprovalWeight
{
use GivesApprovals;
// $approvable is the request being decided — weigh by role, amount, type…
public function approvalWeight(?Model $approvable = null): int
{
return $this->is_director ? 3 : 1;
}
}Pri quorum(3) prekročí hranicu riaditeľ s váhou 3 sám; traja bežní schvaľovatelia s váhou 1 ju dosiahnu spoločne.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.