---
title: "Vážené prahy — Approvals for Laravel | Roundly"
description: "Vyhodnocujte podľa súčtu váh schválení namiesto počtu hláv — pre aktéra cez ProvidesApprovalWeight alebo pre jedno rozhodnutie."
url: https://roundly-consulting.com/sk/open-source/navody/approvals-for-laravel/vazene-prahy
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Approvals for Laravel](https://roundly-consulting.com/sk/open-source/navody/approvals-for-laravel.md)

# Vážené prahy

ApprovalRule::Weighted (aj Quorum) sa vyhodnocuje podľa súčtu váh schválení, nie podľa počtu hláv; hodnota quorum je prahom váhy. Obyčajné kvórum funguje bez zmeny, pretože každé rozhodnutie má predvolenú váhu 1.

## Váha aktéra

Implementujte ProvidesApprovalWeight na modeli aktéra. approvalWeight() dostane schvaľovaný model, takže váha môže závisieť od toho, o čom sa rozhoduje:

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Approvals\Interfaces\ProvidesApprovalWeight;
use RoundlyConsulting\Approvals\Traits\GivesApprovals;

class User extends Model implements ProvidesApprovalWeight
{
    use GivesApprovals;

    public function approvalWeight(?Model $approvable = null): int
    {
        return $this->is_director ? 3 : 1;
    }
}
```

```php
use RoundlyConsulting\Approvals\Facades\Approvals;

Approvals::request($release)->from([$director, $analyst])->weighted(3)->open();

Approvals::for($release)->as($analyst)->approve();    // weight 1 — still pending: the director's 3 can still reach it
Approvals::for($release)->as($director)->approve();   // weight 3 meets the threshold -> approved
```

## Kedy sa prahová žiadosť zamietne

Prahová žiadosť sa zamietne, keď je prah nedosiahnuteľný: váha doterajších schválení spolu s váhou, ktorú mali pri otvorení žiadosti ešte nerozhodnutí menovaní schvaľovatelia, naň nestačí. Ľahší schvaľovateľ, ktorý rozhodne prvý, tak nikdy nezamietne žiadosť, ktorú ťažší ešte môže preniesť.

- Bez menovaných schvaľovateľov sa pri Quorum každý zostávajúci slot počíta s váhou 1.
- Žiadosť Weighted bez menovaných schvaľovateľov nemôže vedieť, akú váhu majú, preto sa zamietne až vtedy, keď rozhodnú všetky sloty.
- Unanimous a Any počítajú hlavy, nie váhy.

## Váha jedného rozhodnutia

Váhu jediného rozhodnutia prepíšete cez weight() v builderi — pri akcii tomu zodpovedá DecisionData::approved(weight: …):

```php
use RoundlyConsulting\Approvals\Facades\Approvals;

// This one approval counts double, whatever approvalWeight() returns.
Approvals::for($release)->as($analyst)->weight(2)->approve();
```

Pri kontrole dosiahnuteľnosti sa s takýmto prepísaním nepočíta — ak na váhe žiadosť závisí, dajte schvaľovateľom váhu cez ProvidesApprovalWeight.

## Poradie vyhodnotenia

- Explicitná váha pre dané rozhodnutie — orezaná na 0 a viac.
- approvalWeight() aktéra, ak implementuje ProvidesApprovalWeight — tiež orezaná na 0 a viac.
- Inak predvolená váha 1.

Výsledná váha sa uloží do stĺpca weight rozhodnutia, takže súčty sa už aktéra nepýtajú znova. Pri delegovanom rozhodnutí sa váha počíta z delegujúceho — z modelu, za ktorého sa rozhodnutie počíta. ApprovalRule::isWeighted() vráti true pre Weighted aj Quorum, ktoré zdieľajú prahovú logiku.

Skratka z RequiresApproval berie pravidlo ako argument: $release->requestApproval(\[$director, $analyst\], ApprovalRule::Weighted, quorum: 3).

## 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 kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/approvals-for-laravel.md)
