Dreh
zettel

Kimai plugin for employed film crew. Track the shooting day once in Kimai, and get the timesheet the production office asks for, with TV FFS overtime, night and weekend surcharges.

Kimai-Plugin für angestellte Filmschaffende. Den Drehtag einmal in Kimai erfassen und den Arbeitszeitnachweis bekommen, den die Produktion verlangt, mit TV-FFS-Überstunden sowie Nacht- und Wochenendzuschlägen.

git clone https://github.com/shrippen/kimai-drehzettel-bundle.git var/plugins/DrehzettelBundle && bin/console kimai:reload -n && bin/console kimai:bundle:drehzettel:install

Needs Kimai 2.67 or newer and PHP 8.1 or newer. In Docker, run the two bin/console commands as docker exec -it CONTAINER /opt/kimai/bin/console …. To update: git pull in the plugin folder, then run the same two commands.

Braucht Kimai 2.67 oder neuer und PHP 8.1 oder neuer. In Docker führst du die beiden bin/console-Befehle als docker exec -it CONTAINER /opt/kimai/bin/console … aus. Zum Aktualisieren: git pull im Plugin-Ordner, danach dieselben zwei Befehle.

Example timesheet, A4 landscape: one row per shooting day with begin, end, break, work time, overtime, night work and catering, signature lines at the bottom
TV FFSBuilt-in ruleset, copy it to adapt every valueRegelwerk eingebaut, als Kopie in jedem Wert anpassbar
4Rounding units: minute, quarter hour, half hour, hourRundungseinheiten: Minute, Viertelstunde, halbe Stunde, Stunde
1Kimai entry per shooting dayKimai-Eintrag pro Drehtag
GPL-3Open sourceOpen Source

TV FFS rules built in

TV-FFS-Regeln eingebaut

Daily and weekly overtime, the 6th and 7th day, night work from 22:00 to 06:00, Saturday, Sunday and holiday surcharges, and the 45 minute break rule. Every value can be changed.

Tages- und Wochenmehrarbeit, 6. und 7. Tag, Nachtarbeit von 22 bis 6 Uhr, Zuschläge für Samstag, Sonntag und Feiertag sowie die 45-Minuten-Pausenregel. Jeder Wert lässt sich ändern.

Own terms per person

Eigene Bedingungen pro Person

An engagement ties one user to one project, with pay, dates and a snapshot of the ruleset. Two people on the same film can have different rules, and later edits never change past results.

Ein Engagement verbindet eine Person mit einem Projekt, mit Gage, Zeitraum und einer Kopie des Regelwerks. Zwei Personen im selben Film können unterschiedliche Regeln haben, und spätere Änderungen verändern keine alten Ergebnisse.

Your rounding

Deine Rundung

Begin and end are rounded on the clock first, so every row adds up. Work time and surcharges are rounded separately: to the minute, quarter hour, half hour or hour, up, down or to the nearest. TV FFS counts begun hours, your old app may not.

Beginn und Ende werden zuerst auf der Uhr gerundet, damit jede Zeile aufgeht. Arbeitszeit und Zuschläge werden getrennt gerundet: auf Minute, Viertelstunde, halbe Stunde oder Stunde, auf-, ab- oder kaufmännisch. Der TV FFS zählt begonnene Stunden, deine alte App vielleicht nicht.

Right in the Kimai form

Direkt im Kimai-Formular

Begin and end come from your normal Kimai entries. When a project has an engagement, the entry form gets a film day switch with break, catering, day type and note.

Beginn und Ende kommen aus deinen normalen Kimai-Einträgen. Hat ein Projekt ein Engagement, bekommt das Eintragsformular einen Drehtag-Schalter mit Pause, Catering, Tagestyp und Anmerkung.

Week view

Wochenansicht

One page per week: edit break, catering, day type, category, extra pay and note per day, and see work time, surcharges and pay update as you type.

Eine Seite pro Woche: Pause, Catering, Tagestyp, Kategorie, Zusatzgage und Anmerkung pro Tag bearbeiten und sehen, wie sich Arbeitszeit, Zuschläge und Gage beim Tippen ändern.

PDF and mail

PDF und Mail

Weekly, monthly or any range, with the columns you choose and your signature on the sheet. Send the week straight to the production office; the last address is remembered.

Woche, Monat oder freier Zeitraum, mit den Spalten, die du wählst, und deiner Unterschrift auf dem Zettel. Die Woche direkt an die Produktion schicken; die letzte Adresse bleibt gespeichert.

Night shoots and Sundays

Nachtdreh und Sonntage

A night shoot that ends by 04:00 stays one working day. Sunday and holiday work across midnight is split by calendar day, and a staggered shoot waives the surcharge where the tariff says so.

Ein Nachtdreh, der bis 4 Uhr endet, bleibt ein Arbeitstag. Sonntags- und Feiertagsarbeit über Mitternacht wird nach Kalendertag geteilt, und beim versetzten Dreh entfällt der Zuschlag, wo der Tarif es vorsieht.

AZV credit

AZV-Gutschrift

From five shooting days in a row, the working time reduction of TV FFS TZ 6 is credited: shown on the week page, in the PDF and on the overview.

Ab fünf Drehtagen in Folge wird die Arbeitszeitverkürzung nach TV FFS TZ 6 gutgeschrieben: auf der Wochenseite, im PDF und in der Übersicht.

Warnings

Warnungen

A heads-up for more than 12 hours a day, more than 60 hours a week, too little rest between two days, a waived surcharge or a night shoot past 04:00. Warnings never change a figure.

Ein Hinweis bei mehr als 12 Stunden am Tag, mehr als 60 Stunden in der Woche, zu wenig Ruhezeit zwischen zwei Tagen, einem entfallenen Zuschlag oder einem Nachtdreh über 4 Uhr hinaus. Warnungen ändern keine Zahl.

TimesheetArbeitszeitnachweis

What the production office gets

Was die Produktion bekommt

One row per shooting day: begin, end, break and work time, then the surcharge time per tier, night work, catering and day type. Below the table are a field for remarks and two signature lines, one for the production management and one for you.

Eine Zeile pro Drehtag: Beginn, Ende, Pause und Arbeitszeit, dann die Zuschlagszeit je Stufe, Nachtarbeit, Catering und Tagestyp. Unter der Tabelle stehen ein Feld für Anmerkungen und zwei Unterschriftsfelder, eines für die Produktionsleitung und eines für dich.

  • A4 landscape, black on white, prints cleanly
  • Columns are optional, pay can be hidden
  • Week, month or any range, split by calendar week so weekly overtime stays correct
  • The rounding rules are printed on the sheet, so the production can check the numbers
  • A4 quer, schwarz auf weiß, druckt sauber
  • Spalten sind optional, die Gage lässt sich ausblenden
  • Woche, Monat oder freier Zeitraum, nach Kalenderwochen geteilt, damit die Wochenmehrarbeit stimmt
  • Die Rundungsregeln stehen auf dem Zettel, die Produktion kann die Zahlen also nachprüfen
Example timesheet with four shooting days, totals and signature lines
Mockup with made-up data: four shooting days, TV FFS rounding of begun hoursEntwurf mit ausgedachten Daten: vier Drehtage, TV-FFS-Rundung auf begonnene Stunden
WeekWoche

One page per week

Eine Seite pro Woche

Every shooting day of the week in one table: begin and end from Kimai, then break, catering, day type and extra pay to fill in. Work time, surcharge tiers, night work and pay update as you type, and warnings show next to the day they concern.

Alle Drehtage der Woche in einer Tabelle: Beginn und Ende aus Kimai, dazu Pause, Catering, Tagestyp und Zusatzgage zum Ausfüllen. Arbeitszeit, Zuschlagsstufen, Nachtarbeit und Gage rechnen beim Tippen mit, Warnungen stehen neben dem Tag, den sie betreffen.

Drehzettel week page with shooting days, surcharge tiers and payDrehzettel-Wochenseite mit Drehtagen, Zuschlagsstufen und Gage
Week page (demo data)Wochenseite (Demodaten)
Drehzettel overview with engagements and totalsDrehzettel-Übersicht mit Engagements und Summen
Overview of your engagements (demo data)Übersicht der Engagements (Demodaten)
Ruleset list with the built-in TV FFS rulesetListe der Regelwerke mit dem eingebauten TV-FFS-Regelwerk
Rulesets: built-in ones are read-only, copy them to adapt (demo data)Regelwerke: eingebaute nur lesbar, als Kopie anpassbar (Demodaten)

How it works

So funktioniert es

You keep tracking in Kimai as you always do, one entry per shooting day. Drehzettel reads those entries, adds what Kimai does not know, and applies the terms of your engagement.

Du erfasst weiter wie gewohnt in Kimai, einen Eintrag pro Drehtag. Drehzettel liest diese Einträge, ergänzt, was Kimai nicht kennt, und wendet die Bedingungen deines Engagements an.

KimaiTimesheet entry with begin and endZeiteintrag mit Beginn und Ende
Film dayBreak, catering, day type, extra pay, notePause, Catering, Tagestyp, Zusatzgage, Anmerkung
EngagementPay and ruleset snapshot of this person on this projectGage und Regelwerk-Kopie dieser Person in diesem Projekt
CalculationWork time, tiers, night, surcharges, payArbeitszeit, Stufen, Nacht, Zuschläge, Gage
PDFWeekly or monthly timesheet, by mail if you likeWochen- oder Monatszettel, auf Wunsch per Mail

Default rules

Standardregeln

The built-in ruleset follows the TV FFS of 12 October 2024. It is a starting point: copy it and change any value for your contract. A second preset reproduces the settings of a popular timesheet app.

Das eingebaute Regelwerk folgt dem TV FFS vom 12. Oktober 2024. Es ist ein Ausgangspunkt: Kopiere es und ändere jeden Wert für deinen Vertrag. Ein zweites Preset bildet die Einstellungen einer verbreiteten Stundenzettel-App nach.

RuleRegelTV FFS 2024 defaultStandard nach TV FFS 2024
Daily overtimeTägliche Mehrarbeit11th hour +25 %, from the 11th full hour +50 %11. Stunde +25 %, ab der vollendeten 11. Stunde +50 %
Weekly overtimeWöchentliche MehrarbeitHours 51 to 55 +25 %, then +50 %; daily overtime is not counted twiceStunden 51 bis 55 +25 %, danach +50 %; tägliche Mehrarbeit zählt nicht doppelt
6th and 7th day6. und 7. TagThe n-th working day of the calendar week, counted as weekly overtime; a day off does not reset the count, travel days do not count (option)Der n-te Arbeitstag der Kalenderwoche, zählt als Wochenmehrarbeit; ein freier Tag setzt die Zählung nicht zurück, Reisetage zählen nicht (Option)
Night workNachtarbeit22:00 to 06:00 +25 %, on top of overtime22:00 bis 06:00 +25 %, zusätzlich zur Mehrarbeit
Saturday, Sunday, holidaySamstag, Sonntag, Feiertag+25 % per hour, +75 % and +100 % on the day rate+25 % je Stunde, +75 % und +100 % auf die Tagesgage
Night shootNachtdrehWork after midnight that ends by 04:00 belongs to the previous working day (TZ 5.2.4)Arbeit nach Mitternacht, die bis 4 Uhr endet, gehört zum vorigen Arbeitstag (TZ 5.2.4)
Sunday or holiday across midnightSonntag oder Feiertag über MitternachtSurcharge pro rata for the hours on that day, for the whole day only with more than four hours on it (TZ 5.6.1, 5.6.3)Zuschlag anteilig für die Stunden an diesem Tag, für den ganzen Tag nur bei mehr als vier Stunden daran (TZ 5.6.1, 5.6.3)
Staggered shootVersetzter DrehNo Sunday surcharge (and none for four listed holidays) on the 1st to 5th production day of the week (TZ 5.6.3)Kein Sonntagszuschlag (und keiner für vier genannte Feiertage) am 1. bis 5. Produktionstag der Woche (TZ 5.6.3)
BreakPause45 minutes are unpaid, a longer break counts as work time beyond that45 Minuten sind unbezahlt, eine längere Pause zählt darüber hinaus als Arbeitszeit
Hourly rateStundensatzWeekly gage / 50, or daily gage / 10Wochengage / 50 oder Tagesgage / 10
RoundingRundungWork time to the minute, surcharges up to the begun hourArbeitszeit auf die Minute, Zuschläge auf die begonnene Stunde
AZVAZV2.5 h after 5 shooting days in a row, 0.5 h for each further one; 10 h make one AZV day (TZ 6, for shoots from 1 May 2025). Taking AZV days is not modelled yet2,5 h nach 5 Drehtagen in Folge, 0,5 h für jeden weiteren; 10 h ergeben einen AZV-Tag (TZ 6, für Drehs ab 1. Mai 2025). Das Nehmen von AZV-Tagen ist noch nicht abgebildet

Install

Installation

  1. Clone the plugin into var/plugins/DrehzettelBundle; the folder name must stay DrehzettelBundle and contain DrehzettelBundle.php.
  2. Run bin/console kimai:reload -n and bin/console kimai:bundle:drehzettel:install. In the official Docker image use the full path /opt/kimai/bin/console with docker exec.
  3. Check that Kimai lists the plugin: bin/console kimai:plugins.
  4. Give your role the drehzettel permission (and drehzettel_manage to set up rulesets and engagements), then create an engagement for your film project under Drehzettel.
  1. Klone das Plugin nach var/plugins/DrehzettelBundle; der Ordnername muss DrehzettelBundle bleiben und DrehzettelBundle.php enthalten.
  2. Führe bin/console kimai:reload -n und bin/console kimai:bundle:drehzettel:install aus. Im offiziellen Docker-Image nutzt du mit docker exec den vollen Pfad /opt/kimai/bin/console.
  3. Prüfe, ob Kimai das Plugin auflistet: bin/console kimai:plugins.
  4. Gib deiner Rolle die Berechtigung drehzettel (und drehzettel_manage, um Regelwerke und Engagements anzulegen) und lege dann unter Drehzettel ein Engagement für dein Filmprojekt an.

Compatibility

Kompatibilität

Questions

Fragen

Is the result binding for my pay?Ist das Ergebnis für meine Gage verbindlich?

No. Drehzettel is a calculator and a timesheet generator, not payroll or legal advice. The defaults follow the TV FFS text, but your contract decides. Check the numbers before you hand the sheet in.

Nein. Drehzettel ist ein Rechner und Zettelgenerator, keine Lohnabrechnung und keine Rechtsberatung. Die Standardwerte folgen dem TV-FFS-Text, aber dein Vertrag entscheidet. Prüfe die Zahlen, bevor du den Zettel abgibst.

Why not keep using the timesheet app?Warum nicht bei der Stundenzettel-App bleiben?

Then you track twice: once in Kimai for your freelance work and once in the app for the production. With Drehzettel the shooting day is tracked once, in Kimai, and the sheet comes from the same data.

Dann erfasst du doppelt: einmal in Kimai für die freiberufliche Arbeit und einmal in der App für die Produktion. Mit Drehzettel wird der Drehtag einmal in Kimai erfasst, und der Zettel kommt aus denselben Daten.

Can two people on one film have different terms?Können zwei Personen im selben Film unterschiedliche Bedingungen haben?

Yes. Rules and pay belong to the engagement, which ties one user to one project. Each person gets a copy of a ruleset and can change it without affecting anyone else.

Ja. Regeln und Gage gehören zum Engagement, das eine Person mit einem Projekt verbindet. Jede Person bekommt eine Kopie eines Regelwerks und kann sie ändern, ohne andere zu beeinflussen.

Does it touch my freelance billing?Berührt es meine freiberufliche Abrechnung?

No. Projects without an engagement are ignored. Mark film projects as not billable so they stay out of your invoices and billing overviews.

Nein. Projekte ohne Engagement werden ignoriert. Markiere Filmprojekte als nicht abrechenbar, damit sie nicht in deinen Rechnungen und Abrechnungsübersichten landen.