Skip to main content
Pending validationOdoo 20.0Community and Enterprise

How to organise shift rotas and pay the shift allowance

What is it for?​

It sets who works which shift and keeps the record the law requires, with a map to print. fiscaldoo refuses rotas and records that exceed the limits of the Labour Code (Código do Trabalho): shifts that are too long, shift changes without rest, weeks without rest and minors at night.

The rota and the record do not change the payslip. The shift allowance reaches the payslip another way: a shift allowance record and a pay item that pays it (see Put the shift allowance on the payslip).

When to use it?​

  • When the company works in shifts, for example one week mornings and the next afternoons.
  • When an employee joins a rota or changes rota.
  • Every day or week, to record who worked each shift and have the map ready for an inspection.
  • Do not use the rota to set the contract's schedule: the payslip still reads the contract's schedule.

Where to find it?​

  • Rotas: People › Work time › Scales of shifts.
  • Hours of each shift: People › Configure › Time Management › Working Schedules.
  • Assignment, record and allowance: Payroll › Prepare › What is there to do this month?, in the Workers in a scale of shifts, Record of the shifts and Shift allowances links, at the bottom of the screen.
  • Allowance pay item: Payroll › Configure › Pay item setup › Pay items.

Before you start​

  • Your profile is Payroll Administrator or HR. Both create rotas and records. The Payroll Processor sees the rota and the record, but does not change them.
  • The employee has their Birthday filled in on the Personal tab of the file, if they could be a minor: fiscaldoo calculates the age from this date. Fill it in before writing the employee's lines: lines already written are not checked again. The date does not appear in the record or on the map.

How to use it​

  1. Open People › Work time › Scales of shifts and click New. With no rotas, the list says “The scales of shifts appear here; create one with “New”.”
  2. In Scale, write the name, for example Manhã e Tarde. Tick Continuous operation if the company works without interruption. Fill in the Collective agreement (IRCT), if there is one.
  3. Click Add a line. Fill in Week of the cycle (1 for the first) and Shift (Manhã).
  4. In Schedule of the shift, choose the schedule with that shift's hours. If it does not exist yet, type the name and click Create and edit...: on each day, fill in Work from and Work to (in the example, from 07:00 to 15:00). On the last line, do not leave with the Tab key: it opens an empty line and Save gives the error “The attendance should have a duration between 0 and 24 hours”. Create without editing saves a schedule with 8 hours a day, without the shift's hours.
  5. Repeat for week 2, Tarde, with the schedule from 14:00 to 22:00. fiscaldoo fills in Working days a week and Night shift.
  6. Save. If the shift exceeds a legal limit, the corresponding message appears (see Common problems).
  7. Open Payroll › Prepare › What is there to do this month? and click Workers in a scale of shifts, at the bottom of the screen.
  8. Click New. On the new line, fill in Worker, Scale, From, Up to (empty if it has no end) and Position in the cycle at the start (the week of the cycle in which the employee starts). Click Save.
  9. Go back to the month screen and click Record of the shifts. The list opens grouped by Shift: remove that grouping in the search bar and click New. Fill in Day, Worker and Shift, in that order, one line per employee and per day: the Shift list is empty until there is an employee. Click Save. The list shows Night shift, Minor and Origin (“Typed by HR”).
  10. To print, select the lines for the period, click Print and choose Map of shifts. “Mapa de turnos.pdf” is downloaded.

Example. The Manhã e Tarde rota has week 1 from 07:00 to 15:00 and week 2 from 14:00 to 22:00, Monday to Friday. Each shift has 8 hours a day and 40 a week. A schedule from 15:00 to 23:00 gets Night shift ticked, because it has hours after 22:00.

The map from 02/11/2026 to 07/11/2026 has the columns Day, Shift, Workers and Minors and the text “Record of the workers of each shift (Labour Code, article 221.(6)).” A minor appears by name in both columns, without the date of birth.

Pending validation by a certified accountant: the legal limits fiscaldoo applies to each shift and to every rota, even outside continuous operation (Labour Code, arts. 76.º and 221.º).

Put the shift allowance on the payslip​

  1. In Payroll › Prepare › What is there to do this month?, click Shift allowances, at the bottom of the screen, and New. Fill in Worker, Value set by, IRCT clause or decision, How it is worth (Monthly value, Percentage of the base pay or Amount per day worked), Value and From. Save.
  2. In Payroll › Configure › Pay item setup › Pay items, click New, fill in Name and Code and save. Only then click Add a line. In the window, fill in Valid from, Source type, Category and, in Quantity source, choose Shift allowance (IRCT or company). Click Save & Close and save the pay item.
  3. On the payslip, click Calculate. The pay item's line is added by itself, with the amount from the record.

Example. With €50.00 a month recorded from 01/12/2026 and the pay item TURNO, with Source type Company rule and Category Allowances / Shift allowance, the December 2026 payslip got the Shift allowance line, of €50.00, next to the Base remuneration of €1,000.00.

Pending validation by a certified accountant: the category of the pay item, the Social Security code it carries and whether the allowance counts towards holiday pay and the holiday and Christmas allowances.

Expected result​

  • The rota appears in Scales of shifts, with Weeks of the cycle counting the lines.
  • The employee appears in Workers in a scale of shifts, with the rota, the date and the position.
  • The Record of the shifts has one line per day and the Map of shifts prints without errors.
  • The payslip of an employee with a recorded allowance has the pay item's line, with the amount from the record.

Important notes​

  • The amount of the allowance does not come from the law. The Labour Code does not set the amount: it comes from the collective agreement (IRCT), the contract or a company decision.
  • The record lines are written by hand. There is no button to generate them from the rota's rotation.

Common problems​

The shift is refused when saving the rota​

  • Symptom: “The shift “Longo” has 10.0 hours in a day and the law allows up to 8.0. What happened: art. 221.º/3 says the duration of each shift cannot pass the maximum normal period. How to fix it: shorten the hours of the schedule of the shift.”
  • Cause: the shift's schedule exceeds the daily limit.
  • What to do: shorten the schedule's hours.

The assignment to the rota is refused​

  • Symptom: one of these messages:
    • “The position 3 is not a week of the cycle of the scale “Manhã e Tarde” (it has 2). How to fix it: choose a position between 1 and 2.”
    • “Novo Colaborador is already in a scale of shifts in that period. What happened: a worker is in one rotation at a time. How to fix it: end the other scale before the start of this one.”
    • “The scale of Novo Colaborador ends before it starts. How to fix it: correct the dates.”
  • Cause: the position does not exist in the cycle, the employee already has an open rota on those dates, or Up to is earlier than From.
  • What to do: choose a position in the cycle, end the previous rota before the start of the new one, or correct the dates.

The record line is refused​

  • Symptom: one of these messages:
    • “The operation cannot be completed: The worker already has a shift on that day.”
    • “Novo Colaborador changes from the shift “Manhã” to “Tarde” on 07/11/2026 with no rest day in between. What happened: art. 221.º/4 only allows the worker to change shift after the weekly rest day. How to fix it: leave a rest day before the change of shift.”
    • “Novo Colaborador 2 would work 7 days in the seven days from 02/11/2026. What happened: art. 221.º/5 asks for at least 1 rest day in every seven. How to fix it: leave a day without a shift.”
  • Cause: there is only one shift per day, a shift change requires a rest day before it and there must be at least one rest day in every seven. The change is checked in both directions: writing an earlier day after the later one gives the same refusal.
  • What to do: correct the repeated line or leave the rest day.

A minor is refused on a shift​

  • Symptom: “Novo Colaborador 3 is a minor and cannot be placed on the shift “Tarde até às 23” on 05/11/2026. What happened: art. 76.º forbids work by minors under 16 between 20:00 and 07:00, and by minors aged 16 or over between 22:00 and 07:00 (except for an activity under an IRCT, never between 0:00 and 5:00). …”
  • Cause: the employee is a minor and the shift has hours the law forbids for their age.
  • What to do: choose a day shift. For a minor aged 16 or over, if an IRCT allows it, show the optional column Exception of art. 76.º/3 (IRCT) and fill it in with the IRCT reference (the line is accepted if the shift has no hours between 0:00 and 5:00). For a minor under 16, the reference does not change the refusal. Pending validation by a certified accountant: the application of the exception in art. 76.º, no. 3.

The payslip with the shift allowance cannot be validated​

  • Symptom: one of these messages, on Validate:
    • “The payslip “Novo Colaborador (01/12/2026 — 31/12/2026)” cannot be validated: there is a shift allowance recorded for the worker and it would stay unpaid. What happened: there is no pay item in force that pays it. How to fix it: create the pay item in Payroll › Configure › Pay item setup › Pay items with the source “Shift allowance (IRCT or company)” and calculate the payslip again.”
    • “The payslip “Novo Colaborador (01/12/2026 — 31/12/2026)” cannot be closed: the pay items “TURNO” are subject to Social Security, have an amount and have no Social Security code. What happened: the Social Security return would be wrong. …”
  • Cause: the allowance is recorded, but the pay item is missing, or the pay item has no Social Security code.
  • What to do: create the pay item as in Put the shift allowance on the payslip, ask the accountant for the Social Security code, or whether the pay item is not subject (the other way out the message gives), and click Calculate again.
Versions: Odoo 20.0Community and Enterprisefiscaldoo 20.0 (master 8a4c14b63)ID DOC-0193
Was this page helpful?