Timesheets

Zeiterfassung und Abrechnung

MarktplatzPersonal und ProjekteVersion 0.1.0manifest

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.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
task_idref → projects_tasknoneneintimesheets.userim KlartextThe task worked on
workertextinternaljatimesheets.usermaskiertName of the person who did the work
worked_ondatenoneneintimesheets.userim KlartextDay the work was done (YYYY-MM-DD)
minutesnumbernoneneintimesheets.userim KlartextTime spent, in minutes
billableboolnoneneintimesheets.userim KlartextWhether the time can be charged to the customer
descriptiontextnoneneintimesheets.userim KlartextWhat was done
cost_ratemoneyfinancialjatimesheets.cost_viewerzurückgehaltenInternal hourly cost of the worker at the time of entry (minor currency units, e.g. cents)
stateselect (draft, submitted, approved)noneneintimesheets.userim KlartextEntry status: draft, submitted, approved

Workflows ​

timesheets_entry ​

AktionBewegtWer sie ausführen darfFreigabe
timesheets_entry.submitstate: draft → submittedtimesheets.usernein
timesheets_entry.approvestate: submitted → approvedtimesheets.managernein
timesheets_entry.rejectstate: submitted → drafttimesheets.managernein

Berechtigungsgruppen ​

Von dieser App verwendete Gruppen:

  • timesheets.cost_viewer
  • timesheets.manager
  • timesheets.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:

bash
obop modules install-from timesheets

Erfordert eine Datenbank und Administratorrechte.

Selbst bauen ​

Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden