Timesheets
Zeiterfassung und Abrechnung
Wofür sie gedacht ist
Record time spent on project tasks in minutes, mark it billable and run it through an approval step. Needs the Projects package.
Was das Paket leistet und was nicht
Time spent on project tasks, entered in minutes, with a billable flag and an approval step. Needs the Projects package.
Modelle
timesheets_entry
Time one person spent on one task on one day
Lesegruppe: timesheets.user. Schreibgruppe: timesheets.user.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
task_id | ref → projects_task | none | nein | timesheets.user | im Klartext | The task worked on |
worker | text | internal | ja | timesheets.user | maskiert | Name of the person who did the work |
worked_on | date | none | nein | timesheets.user | im Klartext | Day the work was done (YYYY-MM-DD) |
minutes | number | none | nein | timesheets.user | im Klartext | Time spent, in minutes |
billable | bool | none | nein | timesheets.user | im Klartext | Whether the time can be charged to the customer |
description | text | none | nein | timesheets.user | im Klartext | What was done |
cost_rate | money | financial | ja | timesheets.cost_viewer | zurückgehalten | Internal hourly cost of the worker at the time of entry (minor currency units, e.g. cents) |
state | select (draft, submitted, approved) | none | nein | timesheets.user | im Klartext | Entry status: draft, submitted, approved |
Workflows
timesheets_entry
| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
timesheets_entry.submit | state: draft → submitted | timesheets.user | nein |
timesheets_entry.approve | state: submitted → approved | timesheets.manager | nein |
timesheets_entry.reject | state: submitted → draft | timesheets.manager | nein |
Berechtigungsgruppen
Von dieser App verwendete Gruppen:
timesheets.cost_viewertimesheets.managertimesheets.user
Freigabeschritte
Kein Schritt dieser App braucht eine Freigabe, abgesehen vom Löschen von Datensätzen.
Was Agenten tun können und was nicht
Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.
Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: timesheets_entry.delete.
Personenbezogene Daten werden als Platzhalter maskiert: timesheets_entry.worker.
Diese Felder werden Agenten vollständig vorenthalten: timesheets_entry.cost_rate.
Abhängigkeiten
projects
Installation
Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:
obop modules install-from timesheetsErfordert eine Datenbank und Administratorrechte.
Selbst bauen
Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden