---
title: "Fasáda Credits — Credits for Laravel | Roundly"
description: "Credits::for($owner) — nemenný scope na pripísanie, odpis, nastavenie a čítanie kreditov po skupinách, v celých číslach alebo Money, plus pomocníky."
url: https://roundly-consulting.com/sk/open-source/navody/credits-for-laravel/fasada
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)

# Fasáda Credits

RoundlyConsulting\\Credits\\Facades\\Credits (automaticky zaregistrovaná aj ako globálny alias Credits) je odporúčaný vstupný bod. Credits::for($owner) vráti nemenný scope: bucket() aj allowOverdraft() vrátia nový scope, takže si ho môžete odložiť a použiť opakovane:

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

Credits::for($user)->add(100, 'Welcome');                       // Credit row
Credits::for($user)->deduct(30, 'Order #42', ['order_id' => 42]); // InsufficientCreditsException below the floor
Credits::for($user)->modify(-5);                                 // a signed change
Credits::for($user)->allowOverdraft()->deduct(500);              // may go below the floor
Credits::for($user)->setTo(0, 'Reset');                          // one delta row; null when already there

Credits::for($user)->balance();                                  // int — the default bucket
Credits::for($user)->balance(now()->subWeek());                  // as of a point in time
Credits::for($user)->has(50);                                    // bool
Credits::for($user)->total();                                    // int — every bucket

$points = Credits::for($user)->bucket('points');
$points->add(100, 'Welcome');
$points->balance();                                              // 100

Credits::for($user)->buckets(['promotional', 'purchased'])->balance(); // summed, read-only
Credits::for($user)->buckets(['promotional', 'purchased'])->has(50);

// A currency-denominated bucket reads and writes Money:
$store = Credits::for($user)->bucket('store_credit');
$store->addMoney(Money::ofMajor('25.00', 'EUR'), 'Gift card');
$store->deductMoney(Money::ofMinor(1050, 'EUR'), 'Order #42');
$store->money();                                                 // Money EUR 14.50
$store->currency();                                              // Currency EUR
$store->format();                                                // "14.50"
$store->formatMoney('en');                                       // money's locale formatter (symbol + amount)

// Owner-free helpers:
Credits::format(1250, scale: 2);                                 // "1250.00" at credits.scale = 0
Credits::currency('store_credit');                               // ?Currency
```

add() a deduct() prijímajú nezápornú sumu, inak vyhodia InvalidArgumentException — na zmenu so znamienkom použite modify(). To isté platí pre addMoney(), deductMoney() a modifyMoney(). buckets(\[...\]) len číta, pretože každý zápis pomenúva práve jednu skupinu.

## Metódy scope

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `bucket($name) / allowOverdraft($allow = true)` | CreditsScope | Nový scope v danej skupine / s povoleným prečerpaním. |
| `buckets($names)` | CreditBuckets | Súčet viacerých skupín len na čítanie — balance($at) a has($amount, $at). |
| `add($amount, $description, $meta)` | Credit | Pripíše nezápornú sumu. |
| `deduct($amount, $description, $meta)` | Credit | Odpíše nezápornú sumu; stráži ju spodná hranica. |
| `modify($amount, $description, $meta)` | Credit | Zmena so znamienkom — kladná pripisuje, záporná odpisuje. |
| `setTo($amount, $description, $meta)` | ?Credit | Jeden rozdielový záznam k presnému zostatku; null, ak už sedí. |
| `balance($at) / has($amount = 1, $at)` | int / bool | Zostatok skupiny v scope, voliteľne k danému okamihu. |
| `total($at)` | int | Všetky skupiny vlastníka bez ohľadu na skupinu v scope. |
| `currency()` | ?Currency | Mena skupiny, alebo null pre bežné kredity. |
| `money($at)` | Money | Zostatok skupiny v mene ako Money. |
| `addMoney() / deductMoney() / modifyMoney()` | Credit | Varianty add(), deduct() a modify() pre Money. |
| `format($scale, $rounding, $at)` | string | Zostatok ako desatinný reťazec bez lokalizácie (skupina v mene v exponente meny). |
| `formatMoney($locale)` | string | Zostatok skupiny v mene cez lokalizovaný formátovač money. |

## Ploché metódy

Fasáda vystavuje aj ploché metódy, ktorými sa končí každý scope — hodia sa jobom, ktoré už majú CreditChangeData:

| Metóda fasády / manažéra | Vracia | Akcia | Poznámka |
| --- | --- | --- | --- |
| `for($owner)` | CreditsScope | — | Vstupný bod pre jedného vlastníka. |
| `format($amount, $scale, $rounding, $storedScale)` | string | `FormatCreditsAction` | Nepotrebuje model. |
| `currency($bucket)` | ?Currency | `ResolveBucketCurrencyAction` | null = bežné kredity. |
| `balance($owner, $bucket, $at)` | int | `GetCreditsBalanceAction` | Jedna skupina. |
| `total($owner, $buckets, $at)` | int | `GetCreditsTotalAction` | null = všetky skupiny; zoznam bez duplicít; \[\] je 0. |
| `modify($owner, CreditChangeData $data)` | Credit | `ModifyCreditsAction` | So znamienkom; stráži prečerpanie; spúšťa CreditsModified. |
| `setTo($owner, $amount, $description, $meta, $allowOverdraft, $bucket)` | ?Credit | `SetCreditsAction` | Jeden rozdielový záznam; null, ak už sedí. |
| `fake()` | CreditsFake | — | Statická, na fasáde — pozrite Testovanie. |

Metódy modelu z HasCredits ($user->modifyCredits(), $user->creditsBalance(), …) sú skratkou pre tie isté volania — každá ide cez Credits::for($user), takže sa správajú presne ako fasáda a fake ich zaznamená.

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