| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Time Off (hr_holidays) • Discuss (mail) • Calendar (calendar) |
| Lines of code | 834 |
| Technical Name |
statutory_leave_pack_de |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Time Off (hr_holidays) • Discuss (mail) • Calendar (calendar) |
| Lines of code | 834 |
| Technical Name |
statutory_leave_pack_de |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Germany Statutory Leave (Bundesurlaubsgesetz)
BUrlG minimum entitlement, six-month waiting period, pro-rata Teilurlaub and § 7 (3) carry-over for the Odoo Time Off engine
Germany Leave BUrlG is an add-on rule pack that teaches the Odoo Time Off engine the statutory minimum annual-leave rules of the German Federal Leave Act (Bundesurlaubsgesetz, BUrlG). It computes each employee's lawful minimum entitlement, applies the six-month waiting period and the partial-leave rules, evaluates the 31 March carry-over deadline, and generates the corresponding Time Off allocation â so HR never hand-calculates a German leave entitlement again. Built on the Community Human Resources and Time Off apps, no Enterprise payroll required. Compatible with Odoo 18 and Odoo 19.
§ 3 Minimum entitlement & weekly conversion
The statutory minimum is 24 Werktage on a six-day week. The pack
converts it to the employee's own weekly distribution
(24 / 6 Ã working days per week), so a normal
five-day week yields the familiar 20 working days, a four-day week
16 days, and so on.
§ 4 Six-month waiting period
The full entitlement first arises after six months of continuous employment (Wartezeit). The pack tracks the hire date and tells you, per employee and year, whether the waiting period is met.
§ 5 Partial leave (Teilurlaub)
When the waiting period cannot be met, or an employee joins or leaves during the year, the entitlement is pro-rated at one twelfth per full month. Fractions of at least half a day are rounded up to whole days (§ 5 (2)).
§ 7 (3) Carry-over & expiry
Unused leave carried into the next year stays valid only until 31 March; thereafter it lapses (Verfall). The pack computes the deadline, the still-valid balance and the expired days, and the batch wizard rolls last year's remaining balance forward automatically.
§ 208 SGB IX disability supplement
Severely disabled employees (degree of disability ⥠50) receive five additional Werktage of paid leave per year, likewise converted to the employee's weekly distribution.
§ 19 JArbSchG youth minima
Young employees enjoy higher minima â 30 Werktage under 16, 27 under 17 and 25 under 18 â applied automatically from the employee's date of birth and the leave year.
What it does
| Provision | Implemented behaviour |
|---|---|
| § 3 (1) BUrlG | 24 Werktage minimum, pro-rata conversion to the employee's weekly distribution. |
| § 4 BUrlG | Six-month waiting period evaluated per employee and year. |
| § 5 (1) BUrlG | Teilurlaub: one twelfth per full month for joiners, leavers and pre-waiting-period cases. |
| § 5 (2) BUrlG | Half-day rounding of fractional leave days up to whole days. |
| § 7 (3) BUrlG | 31 March carry-over deadline, valid/expired split, automatic roll-forward. |
| § 7 (4) BUrlG | Termination payout figure (remaining bookable balance in days). |
| § 208 SGB IX | Five extra Werktage for severely disabled employees. |
| § 19 JArbSchG | Youth minima (30 / 27 / 25 Werktage). |
How it works
Set each employee's working days per week, hire date and â where relevant â contractual leave, disability status or date of birth on the German Leave (BUrlG) tab of the employee form. Run German Leave ⸠Generate Statutory Leave for a year and a set of employees; the pack creates one entitlement record per employee, shows the full breakdown (full-year figure, qualifying months, waiting-period status, basis, rounded entitlement, carry-over and balance) and â on request â generates the matching Time Off allocation against the leave type you configured in Settings. The whole computation lives in a pure-Python engine that is fully unit tested.
Disclosure: this module computes statutory leave figures locally inside Odoo and creates Time Off allocations; it sends no data to any third party. The figures implement the published BUrlG / SGB IX / JArbSchG minima â always confirm against current law and any applicable collective agreement (Tarifvertrag) before relying on them for payroll.
Screenshots
Generate Statutory Leave
Statutory Leave
Settings
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module