---
title: "Timesheets"
description: "Tid och debitering. Varje app är en modul i en gemensam datamodell."
canonical: "https://obop.dev/sv/apps/timesheets/"
lang: "sv"
---

# Timesheets

## Vad den är till för

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

## Vad paketet gör och inte gör

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

## Modeller

### `timesheets_entry`

Time one person spent on one task on one day

Läsgrupp: `timesheets.user`. Skrivgrupp: `timesheets.user`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `task_id` | ref → projects_task | `none` | nej | `timesheets.user` | i klartext | The task worked on |
| `worker` | text | `internal` | ja | `timesheets.user` | maskerad | Name of the person who did the work |
| `worked_on` | date | `none` | nej | `timesheets.user` | i klartext | Day the work was done (YYYY-MM-DD) |
| `minutes` | number | `none` | nej | `timesheets.user` | i klartext | Time spent, in minutes |
| `billable` | bool | `none` | nej | `timesheets.user` | i klartext | Whether the time can be charged to the customer |
| `description` | text | `none` | nej | `timesheets.user` | i klartext | What was done |
| `cost_rate` | money | `financial` | ja | `timesheets.cost_viewer` | undanhållen | Internal hourly cost of the worker at the time of entry (minor currency units, e.g. cents) |
| `state` | select (draft, submitted, approved) | `none` | nej | `timesheets.user` | i klartext | Entry status: draft, submitted, approved |

## Arbetsflöden

### `timesheets_entry`

| Åtgärd | Flyttar | Vem får köra den | Godkännande |
|---|---|---|---|
| `timesheets_entry.submit` | state: draft → submitted | `timesheets.user` | nej |
| `timesheets_entry.approve` | state: submitted → approved | `timesheets.manager` | nej |
| `timesheets_entry.reject` | state: submitted → draft | `timesheets.manager` | nej |

## Behörighetsgrupper

Grupper som den här appen använder:

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

## Steg som kräver godkännande

Inget steg i den här appen kräver godkännande, förutom att ta bort poster.

## Vad agenter kan och inte kan göra

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: `timesheets_entry.delete`.

Personuppgifter maskeras som platshållare: `timesheets_entry.worker`.

De här fälten undanhålls helt från agenter: `timesheets_entry.cost_rate`.

## Beroenden

- `projects`

## Installera

Installera den från appen Customize (Marknadsplats), eller från kommandoraden:

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

Kräver en databas och administratörsbehörighet.

## Bygg din egen

[Modulguiden visar hur appar som den här skrivs](/sv/docs/reference/module-manifest/)
