---
title: "Expenses"
description: "Notes de frais et approbations. Chaque application est un module sur un même modèle de données."
canonical: "https://obop-platform.sliplane.app/fr/apps/expenses/"
lang: "fr"
---

# Expenses

## À quoi elle sert

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.

## Ce que fait et ne fait pas le paquet

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.

## Modèles

### `expenses_expense`

An amount an employee spent for the business and wants reimbursed

Groupe de lecture: `expenses.user`. Groupe d'écriture: `expenses.user`.

| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
| `description` | text | `none` | non | `expenses.user` | en clair | What the money was spent on |
| `employee` | text | `internal` | oui | `expenses.user` | masqué | Name of the person claiming the expense |
| `spent_on` | date | `none` | non | `expenses.user` | en clair | Date of the purchase (YYYY-MM-DD) |
| `category` | select (travel, meals, lodging, supplies, software, other) | `none` | non | `expenses.user` | en clair | Expense category: travel, meals, lodging, supplies, software, other |
| `amount` | money | `financial` | oui | `expenses.user` | non communiqué | Amount owed to the employee (minor currency units, e.g. cents) |
| `currency` | text | `none` | non | `expenses.user` | en clair | ISO 4217 currency code, for example EUR |
| `receipt_note` | longtext | `none` | non | `expenses.user` | en clair | Where the receipt is kept and what it shows |
| `paid_on` | date | `financial` | oui | `expenses.finance` | non communiqué | Date the employee was reimbursed (YYYY-MM-DD) |
| `payment_reference` | text | `financial` | oui | `expenses.finance` | non communiqué | Bank transfer reference of the reimbursement |
| `state` | select (draft, submitted, approved, paid, refused) | `none` | non | `expenses.user` | en clair | Claim status: draft, submitted, approved, paid, refused |

## Flux de travail

### `expenses_expense`

| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
| `expenses_expense.submit` | state: draft → submitted | `expenses.user` | non |
| `expenses_expense.approve` | state: submitted → approved | `expenses.manager` | non |
| `expenses_expense.pay` | state: approved → paid | `expenses.finance` | oui |
| `expenses_expense.refuse` | state: submitted → refused | `expenses.manager` | non |

## Groupes de permissions

Groupes utilisés par cette application :

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

## Étapes d'approbation

Étapes qu'un agent ne peut que proposer :

- `expenses_expense.pay`

## Ce que les agents peuvent et ne peuvent pas faire

Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.

Il ne peut que proposer ces étapes, qu'une personne doit approuver : `expenses_expense.pay`, `expenses_expense.delete`.

Les données personnelles sont masquées sous forme de jetons de substitution : `expenses_expense.employee`.

Ces champs ne sont pas communiqués aux agents : `expenses_expense.amount`, `expenses_expense.paid_on`, `expenses_expense.payment_reference`.

## Dépendances

Aucune.

## Installation

Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :

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

Nécessite une base de données et des droits d'administrateur.

## Créer la vôtre

[Le guide des modules montre comment sont écrites les applications de ce type](/fr/docs/reference/module-manifest/)
