---
title: "Expirácia — Approvals for Laravel | Roundly"
description: "Dajte vyžiadaniam, schváleniam aj žiadostiam termín — po jeho uplynutí sa nepočítajú a expire() či approvals:expire vypršanie zapíše."
url: https://roundly-consulting.com/sk/open-source/navody/approvals-for-laravel/expiracia
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)

# Expirácia

Expiráciu nastavíte cez expiresIn() (sekundy) alebo expiringAt() (inštancia Carbon) — pri vyžiadaní, schválení aj celej žiadosti:

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

// A pending sign-off that lapses if legal has not decided within 48 hours.
Approvals::for($contract)->as($legal)->expiresIn(172800)->ask();

// An approval valid for a day.
Approvals::for($budget)->as($cfo)->expiresIn(86400)->approve();

// A request that must be decided within a week.
Approvals::request($budget)->from([$cfo, $ceo])->expiresIn(604800)->open();
```

## Čo expirácia spôsobí

Schválenie, vyžiadanie či žiadosť sa prestane počítať v momente, keď jej uplynie platnosť. Čítania ako isApproved(), hasApproved(), approvalCount() aj súčet žiadosti ju ignorujú a žiadosť po termíne už neprijme žiadne rozhodnutie: najbližšie ju vyhodnotí ako expirovanú a odmietne sa výnimkou ClosedApprovalRequestException. Expirované schválenie uvoľní aktérovi cestu schváliť znova.

Nastavte approvals.expiry.default a každé schválenie dostane platnosť, ak si rozhodnutie nenastaví vlastnú. Odpoveď na vyžiadanie nikdy nepreberá jeho termín. Zamietnutie expiráciu nemá — platí, kým ho nestiahnete alebo nenahradíte, preto ju reject() odmietne. Kolo otvorené zo šablóny workflow môže namiesto expiry šablóny dostať vlastný termín (pozri Šablóny workflow).

## Zápis vypršania

Approvals::expire() zapíše, čo vypršalo: rozhodnutia prejdú do expired (ApprovalExpired a ApprovalStatusChanged), žiadosti sa uzavrú ako expirované (ApprovalRequestResolved a ApprovalStatusChanged) a vráti počet oboch. S parametrom subjectType — triedou modelu alebo jej morph aliasom — nechá vypršať len rozhodnutia o danom type schvaľovaného modelu a žiadosti pre daný typ subjektu, takže balík, ktorý čistí vlastné schvaľovania, zvyšok aplikácie nechá na pokoji:

```php
Approvals::expire();                             // int — decisions and requests lapsed
Approvals::expire(subjectType: Budget::class);   // only those on budgets (class or morph alias)
Approvals::expire(now()->addHour());             // lapse everything due within the next hour
```

## Príkaz approvals:expire

Vypršanie pre celú aplikáciu ako Artisan príkaz — bez argumentov a prepínačov:

```bash
php artisan approvals:expire
# Expired 3 approval(s) and request(s).
```

Naplánujte ho, aby sa zmeškané rozhodnutia a žiadosti označili ako expirované samy:

```php
use Illuminate\Support\Facades\Schedule;

Schedule::command('approvals:expire')->hourly();
```

## Dopyty podľa expirácie

Scope inForce() na modeli Approval ponechá len rozhodnutia, ktorým ešte neuplynula platnosť; expiringBefore() nájde zmeškané:

```php
use RoundlyConsulting\Approvals\Models\Approval;

// Approvals that still count — none past its expiry.
Approval::query()->approved()->inForce()->whereMorphedTo('approvable', $budget)->count();

// Overdue asks and approvals the next sweep will lapse.
Approval::query()->active()->expiringBefore(now())->get();
```

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