---
title: "Pripísanie a odpis kreditov — Credits for Laravel | Roundly"
description: "Pripisujte a odpisujte kredity cez modifyCredits(), pridajte popis a metadáta a nastavte presný zostatok cez setCreditsTo()."
url: https://roundly-consulting.com/sk/open-source/navody/credits-for-laravel/pripisanie-a-odpis
language: sk
---

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

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

# Pripísanie a odpis kreditov

Každá zmena pridá do knihy pohybov jeden záznam. Pripisujte cez add(), odpisujte cez deduct() — obe prijímajú kladnú sumu — alebo odovzdajte sumu so znamienkom do modify(); voliteľný popis a pole meta sa uložia na záznam:

```php
use RoundlyConsulting\Credits\Facades\Credits;

Credits::for($user)->add(100, 'signup bonus');                   // a grant — returns the Credit row
Credits::for($user)->deduct(30, 'purchase', ['order_id' => 42]); // a deduction, passed as a positive amount

Credits::for($user)->balance(); // 70

Credits::for($user)->modify(-5, 'correction');                   // a signed change
```

Na modeli s traitom HasCredits je skratkou modifyCredits() — kladná suma pripisuje, záporná odpisuje:

```php
$user->modifyCredits(100, 'signup bonus');
$user->modifyCredits(-30, 'purchase', ['order_id' => 42]);

$user->creditsBalance(); // 70
```

Metóda vráti zaznamenaný riadok Credit:

```php
$credit = $user->modifyCredits(25, 'referral reward', ['referrer_id' => 7]);

$credit->amount;       // 25
$credit->description;  // 'referral reward'
$credit->meta;         // ['referrer_id' => 7]
$credit->bucket;       // 'default'
$credit->created_at;   // when the change was recorded
```

Pri dlhších volaniach pomôžu pomenované argumenty — celá signatúra je modifyCredits(int $amount, ?string $description = null, ?array $meta = null, bool $allowOverdraft = false, ?string $bucket = null):

```php
$user->modifyCredits(
    amount: -30,
    description: 'order #42',
    meta: ['order_id' => 42],
    allowOverdraft: false,
    bucket: 'purchased',
);
```

## Nastavenie presného zostatku

setTo() vypočíta rozdiel oproti aktuálnemu zostatku a zaznamená jeden vyrovnávací riadok. Ak zostatok už sedí, nezaznamená nič, vráti null a nespustí žiadnu udalosť. Vezme zámok vlastníka a zostatok načíta pod zámkom riadkov v jednej transakcii so zápisom, takže dve súbežné volania sa zoradia za sebou — druhé vypočíta rozdiel zo zostatku, ktorý po sebe nechalo prvé:

```php
Credits::for($user)->setTo(500, 'manual adjustment');     // one delta row; null when already there
Credits::for($user)->bucket('promotional')->setTo(200);   // per bucket, like every other call
```

V traite je to setCreditsTo():

```php
$user->creditsBalance();                         // 70

$user->setCreditsTo(500, 'manual adjustment');   // records +430, returns the Credit row
$user->setCreditsTo(500);                        // already 500: records nothing, returns null

$user->setCreditsTo(200, bucket: 'promotional'); // per bucket, like every other method
```

Úprava smerom nadol sa zaznamená ako odpis, takže sa na ňu vzťahuje ochrana pred prečerpaním — nastaviť zostatok pod hranicu je možné len s allowOverdraft: true.

## História, ktorá sa len dopĺňa

Nič sa nikdy neprepisuje: sumy sú celé čísla so znamienkom, každá zmena je samostatný záznam s časom a zostatok je ich súčet. Ak chcete zmenu vrátiť, zaznamenajte vyrovnávací záznam — v histórii potom uvidíte zmenu aj jej opravu.

## 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/credits-for-laravel.md)
