---
title: "Timesheets"
description: "Czas pracy i rozliczenia. Każda aplikacja jest modułem na jednym modelu danych."
canonical: "https://obop-platform.sliplane.app/pl/apps/timesheets/"
lang: "pl"
---

# Timesheets

## Do czego służy

Record time spent on project tasks in minutes, mark it billable and run it through an approval step. Needs the Projects package.

## Co pakiet robi, a czego nie robi

Time spent on project tasks, entered in minutes, with a billable flag and an approval step. Needs the Projects package.

## Modele

### `timesheets_entry`

Time one person spent on one task on one day

Grupa odczytu: `timesheets.user`. Grupa zapisu: `timesheets.user`.

| Pole | Rodzaj | Klasa danych | Dane osobowe | Grupa | Agenci widzą | Opis |
|---|---|---|---|---|---|---|
| `task_id` | ref → projects_task | `none` | nie | `timesheets.user` | jawnie | The task worked on |
| `worker` | text | `internal` | tak | `timesheets.user` | zamaskowane | Name of the person who did the work |
| `worked_on` | date | `none` | nie | `timesheets.user` | jawnie | Day the work was done (YYYY-MM-DD) |
| `minutes` | number | `none` | nie | `timesheets.user` | jawnie | Time spent, in minutes |
| `billable` | bool | `none` | nie | `timesheets.user` | jawnie | Whether the time can be charged to the customer |
| `description` | text | `none` | nie | `timesheets.user` | jawnie | What was done |
| `cost_rate` | money | `financial` | tak | `timesheets.cost_viewer` | wstrzymane | Internal hourly cost of the worker at the time of entry (minor currency units, e.g. cents) |
| `state` | select (draft, submitted, approved) | `none` | nie | `timesheets.user` | jawnie | Entry status: draft, submitted, approved |

## Przepływy pracy

### `timesheets_entry`

| Akcja | Przenosi | Kto może uruchomić | Zatwierdzenie |
|---|---|---|---|
| `timesheets_entry.submit` | state: draft → submitted | `timesheets.user` | nie |
| `timesheets_entry.approve` | state: submitted → approved | `timesheets.manager` | nie |
| `timesheets_entry.reject` | state: submitted → draft | `timesheets.manager` | nie |

## Grupy uprawnień

Grupy używane przez tę aplikację:

- `timesheets.cost_viewer`
- `timesheets.manager`
- `timesheets.user`

## Kroki zatwierdzania

Żaden krok w tej aplikacji nie wymaga zatwierdzenia, poza usuwaniem rekordów.

## 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ć: `timesheets_entry.delete`.

Dane osobowe są maskowane jako tokeny zastępcze: `timesheets_entry.worker`.

Te pola są całkowicie wstrzymane i niedostępne dla agentów: `timesheets_entry.cost_rate`.

## Zależności

- `projects`

## Instalacja

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

```bash
obop modules install-from timesheets
```

Wymaga bazy danych i uprawnień administratora.

## Zbuduj własną

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