---
title: "Expenses"
description: "Rozliczenia wydatków i zatwierdzenia. Każda aplikacja jest modułem na jednym modelu danych."
canonical: "https://obop.dev/pl/apps/expenses/"
lang: "pl"
---

# Expenses

## Do czego służy

Employees file expense claims that move through draft, submitted, approved and paid. Paying needs its own permission and a human approval; receipts are referenced by note, not stored.

## Co pakiet robi, a czego nie robi

Employee expense claims with a draft, submitted, approved and paid flow. Paying is a separate permission and needs a human approval; receipts are referenced by note, not stored.

## Modele

### `expenses_expense`

An amount an employee spent for the business and wants reimbursed

Grupa odczytu: `expenses.user`. Grupa zapisu: `expenses.user`.

| Pole | Rodzaj | Klasa danych | Dane osobowe | Grupa | Agenci widzą | Opis |
|---|---|---|---|---|---|---|
| `description` | text | `none` | nie | `expenses.user` | jawnie | What the money was spent on |
| `employee` | text | `internal` | tak | `expenses.user` | zamaskowane | Name of the person claiming the expense |
| `spent_on` | date | `none` | nie | `expenses.user` | jawnie | Date of the purchase (YYYY-MM-DD) |
| `category` | select (travel, meals, lodging, supplies, software, other) | `none` | nie | `expenses.user` | jawnie | Expense category: travel, meals, lodging, supplies, software, other |
| `amount` | money | `financial` | tak | `expenses.user` | wstrzymane | Amount owed to the employee (minor currency units, e.g. cents) |
| `currency` | text | `none` | nie | `expenses.user` | jawnie | ISO 4217 currency code, for example EUR |
| `receipt_note` | longtext | `none` | nie | `expenses.user` | jawnie | Where the receipt is kept and what it shows |
| `paid_on` | date | `financial` | tak | `expenses.finance` | wstrzymane | Date the employee was reimbursed (YYYY-MM-DD) |
| `payment_reference` | text | `financial` | tak | `expenses.finance` | wstrzymane | Bank transfer reference of the reimbursement |
| `state` | select (draft, submitted, approved, paid, refused) | `none` | nie | `expenses.user` | jawnie | Claim status: draft, submitted, approved, paid, refused |

## Przepływy pracy

### `expenses_expense`

| Akcja | Przenosi | Kto może uruchomić | Zatwierdzenie |
|---|---|---|---|
| `expenses_expense.submit` | state: draft → submitted | `expenses.user` | nie |
| `expenses_expense.approve` | state: submitted → approved | `expenses.manager` | nie |
| `expenses_expense.pay` | state: approved → paid | `expenses.finance` | tak |
| `expenses_expense.refuse` | state: submitted → refused | `expenses.manager` | nie |

## Grupy uprawnień

Grupy używane przez tę aplikację:

- `expenses.finance`
- `expenses.manager`
- `expenses.user`

## Kroki zatwierdzania

Kroki, które agent może tylko zaproponować:

- `expenses_expense.pay`

## Co agenci mogą, a czego nie mogą

Agent może odczytywać, wyszukiwać, tworzyć i aktualizować rekordy tej aplikacji oraz uruchamiać akcje niewymagające zatwierdzenia, w ramach grup uprawnień swojego tokenu.

Te kroki może tylko zaproponować, a człowiek musi je zatwierdzić: `expenses_expense.pay`, `expenses_expense.delete`.

Dane osobowe są maskowane jako tokeny zastępcze: `expenses_expense.employee`.

Te pola są całkowicie wstrzymane i niedostępne dla agentów: `expenses_expense.amount`, `expenses_expense.paid_on`, `expenses_expense.payment_reference`.

## Zależności

Brak.

## Instalacja

Zainstaluj ją w aplikacji Customize (Marketplace) lub z wiersza poleceń:

```bash
obop modules install-from expenses
```

Wymaga bazy danych i uprawnień administratora.

## Zbuduj własną

[Przewodnik po modułach pokazuje, jak pisze się takie aplikacje](/pl/docs/reference/module-manifest/)
