---
title: "Invoicing"
description: "Wersje robocze, księgowanie, numeracja. Każda aplikacja jest modułem na jednym modelu danych."
canonical: "https://obop.dev/pl/apps/invoicing/"
lang: "pl"
---

# Invoicing

## Do czego służy

Prepare customer invoices as drafts and post them to give each one its gapless legal number. Posting is the one step in the built-in apps that always needs a person: an agent can prepare the draft and propose the posting, and a human with the right permission approves it.

## Co pakiet robi, a czego nie robi

Customer invoices: drafts, posting with a gapless legal number, cancellation.

## Modele

### `invoice`

A customer invoice; posted invoices are corrected only by credit notes

Grupa odczytu: `invoicing.user`. Grupa zapisu: `invoicing.user`.

| Pole | Rodzaj | Klasa danych | Dane osobowe | Grupa | Agenci widzą | Opis |
|---|---|---|---|---|---|---|
| `sale_order_id` | ref → sale_order | `none` | nie | `invoicing.user` | jawnie | Source sale order id |
| `state` | select (draft, posted, cancelled) | `none` | nie | `invoicing.user` | jawnie | Lifecycle: draft, posted or cancelled |
| `total_minor` | money | `none` | nie | `invoicing.user` | jawnie | Invoice total in minor units |
| `number` | text | `none` | nie | `invoicing.user` | jawnie | Gapless legal number, set when posted |

## Przepływy pracy

### `invoice`

| Akcja | Przenosi | Kto może uruchomić | Zatwierdzenie |
|---|---|---|---|
| `invoice.post` | state: draft → posted | `invoicing.manager` | tak |
| `invoice.cancel` | state: draft → cancelled | `invoicing.user` | nie |

## Grupy uprawnień

Grupy używane przez tę aplikację:

- `invoicing.manager`
- `invoicing.user`

## Kroki zatwierdzania

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

- `invoice.post`

## 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ć: `invoice.post`, `invoice.delete`.

## Zależności

- `base`
- `sales`

## Instalacja

Wbudowana. Jest dostępna w każdej instancji i nie można jej usunąć.

## Zbuduj własną

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