PMIS HR
This addon provides Time Analytics from attendance and validated time off. It stores attendance snapshots and separate leave-day snapshots in pmis.time.line, with list and pivot views. It does not calculate payroll or replace attendance and leave records.
Requirements and access
Dependencies are hr_attendance, hr_holidays, hr_holidays_attendance, and hr_timesheet_attendance.
Attendance and time-off officers have read access to analytics; the corresponding managers have create, write, and delete access. The analytics list itself disables manual creation, editing, and deletion. Company rules restrict records to allowed companies.
Usage
Maintain employee attendances and validate time-off requests normally.
Open Attendances > Time Analytics.
Use list filters and pivot measures to analyze employees, departments, managers, dates, companies, attendance, and leave categories.
As a manager, use Attendances > Rebuild Time Accounting Lines to reconcile the complete source date range when a full rebuild is required.
Opening the dashboard refreshes the selected period. Both pmis_date_from and pmis_date_to context values are required for a custom period; otherwise it defaults to the start of the current month through today. Reversed date bounds are normalized.
Snapshot calculation
Each attendance produces a separate line on its check-in date, with worked, overtime, and extra hours. An attendance crossing midnight is not split between days.
Validated leave with time type leave produces one line per calendar day. Total leave hours are divided evenly across the inclusive calendar date range, including weekends, rather than distributed according to a work schedule.
Leave categories are selected in this order:
Unpaid leave.
Sick leave, identified by the sick-leave flag, subtype, or matching name. The duration buckets are up to 30 days, 31-90 days, and over 90 days.
Extraordinary leave, identified by its name.
Other paid time off.
Synchronization
Attendance and leave creation, updates, and deletion refresh affected dates, including both old and new ranges when dates change. A period refresh creates missing snapshots, updates existing ones, and removes stale lines.
Source reads and snapshot reconciliation use elevated access limited to the allowed companies. A full rebuild derives its period from existing source records and returns without work when no companies or source dates exist. Changes to related configuration may require a refresh or rebuild; these snapshots are not live computed payroll balances.
Bug Tracker
Bugs are tracked on PMISuite Repository Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
Credits
Contributors
Matjaz Mozetic
Maintainers
Current maintainer:
This module is maintained by Luxim d.o.o., a company dedicated to the development of program management tools and solutions, as a part of PMISuite.com project.
Luxim is an active member of OCA (Odoo Community Association).






