Passer au contenu principal
Les détails du produit sont affichés en anglais. Traductions à venir.
Employee Documents Expiry Tracker — A build-to-order Odoo module that stores every employee document with an expiry date and  — 1/1Aperçu illustratif

A build-to-order Odoo module that stores every employee document with an expiry date and fires automatic

reminders before passports, visas, contracts and certifications lapse.

ECOSIRE builds, installs, and supports it for your database.

Qu'est-ce que Employee Documents Expiry Tracker ?

A build-to-order Odoo module that stores every employee document with an expiry date and fires automatic reminders before passports, visas, contracts and certifications lapse. ECOSIRE builds, installs, and supports it for your database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Fonctionnalités clés

Dedicated `hr.employee.document` model with `Many2one` link to `hr.employee`, document number, issuing authority, issue and expiry dates, and attached scan via `ir.attachment`
Configurable document-type records (passport, visa/work permit, national ID, labor contract, license, certification, medical card, plus custom types) each with its own reminder lead-time
Computed `state` field (Valid / Expiring Soon / Expired) via `@api.depends` on expiry date evaluated against the document type's threshold
`days_to_expiry` computed field driving colour-coded kanban decorations and list-view highlighting
Daily `ir.cron` scheduled action that scans active documents and dispatches renewal reminders on a per-type window
Email reminders built from QWeb `mail.template` to the employee, their manager, and the HR mailbox
In-app `mail.activity` scheduled on the document so renewals appear in the responsible user's To-Do list, not just email
Full chatter integration — every reminder, state transition, and re-upload logged on the record for audit trail
Kanban, list, form, pivot, and calendar views with search filters and group-by for department, document type, and 'expiring this month'
Security via `ir.model.access.csv` plus record rules — employees see only their own documents, HR sees the company-wide view
Multi-company record rules so documents stay isolated per company when several run in one database
Renewal workflow: superseding an expired document keeps history while updating the active state, with optional re-notify
XML-RPC / JSON-RPC API surface so onboarding portals or external identity systems can create and update documents programmatically
Configurable settings for global default lead-time, escalation recipients, and whether expired documents block related HR actions
Built and tested against Odoo 17.0, 18.0, and 19.0 on Community or Enterprise

Fait sur commande, clé en main

Aucune configuration à faire vous-même — une app fonctionnelle conçue, installée et prise en charge par ECOSIRE.

  1. 1

    Vous commandez

    Commencez par un prix de développement unique. Nous cadrons le projet avec vous au lancement.

  2. 2

    Nous développons et installons

    ECOSIRE la développe, la configure et l'installe sur votre Odoo.

  3. 3

    Mise en ligne + assistance

    Vous êtes en ligne en une semaine ouvrée environ, avec deux semaines d’assistance après la mise en production. Les défauts du code que nous livrons sont corrigés gratuitement.

Spécifications techniques

Compatibilité Odoo
Odoo 17, Odoo 18, Odoo 19
Éditions
Enterprise et Community
Licence
Licence à confirmer
Version Python requise
Python 3.10+
Base de données
PostgreSQL 12+

À propos de ce produit

Every HR team eventually gets burned by an expired document. A work visa that lapsed while the employee kept working, a first-aid certification that ran out the week before an audit, an ID or medical fitness card that expired unnoticed until a border or a compliance officer flagged it. Out of the box, Odoo's hr.employee model gives you a handful of identification fields and a place to attach files, but it has no concept of a document's validity window, no owner-facing dashboard of what is about to lapse, and no reminder engine. You end up tracking renewals in a spreadsheet that nobody updates, and the ERP that holds every other HR fact stays silent on the one thing that carries legal and financial risk.

We build a dedicated document-tracking layer on top of your existing HR app. A new hr.employee.document model (a proper models.Model, not a free-text note) links each record to its employee via Many2one, carries a document type, issue and expiry dates, issuing authority, document number, the attached scan through ir.attachment, and a state computed with @api.depends on the expiry date that resolves to Valid, Expiring Soon, or Expired against a per-type lead-time threshold. Document types are configurable records — passport, national ID, visa/work permit, labor contract, driving license, professional certification, medical/insurance card, or any custom type you define — each with its own reminder window so a visa can warn 60 days out while a fire-safety certificate warns at 30. A days_to_expiry computed field drives colour-coded kanban and list views, a pivot for reporting by department or document type, and search filters/group-bys for "expiring this month" so managers see exposure at a glance.

The reminder engine is the core of the build. A scheduled action (ir.cron) runs daily, evaluates each active document against its type's threshold, and dispatches notifications — an email built from a QWeb/mail.template to the employee, their manager, and the HR mailbox, plus an in-app Odoo activity (mail.activity) scheduled on the document so the renewal shows up in the responsible user's To-Do list rather than only an inbox. We wire the whole thing into the chatter so every reminder, state change, and re-upload is logged on the record for audit. Access is enforced properly: ir.model.access.csv grants plus record rules so an ordinary employee sees only their own documents while HR officers see the company-wide picture, with multi-company record rules when you run more than one company in the same database. Everything is exposed over the standard XML-RPC/JSON-RPC API so an onboarding portal or an external identity system can create and update documents programmatically. The build targets Odoo 17.0, 18.0 or 19.0 and runs on Community or Enterprise — we confirm your edition during scoping because the notification and activity surfaces differ slightly between them.

Because this is build-to-order, nothing ships until we agree on scope. After a short scoping call we send a fixed quotation and a written spec — document types, reminder windows, who gets notified, report layouts, and any API touchpoints. We then build on a branch, hand you a UAT build on a staging copy of your database, iterate on your feedback, and only deploy to production once you sign off, with a rollback plan in hand. Typical delivery is one working week from confirmed scope depending on how many document types and integrations are in play. Pricing starts from $999 (indicative, single-company base scope); multi-company record rules, additional integrations (onboarding portals, identity providers, or SMS/WhatsApp reminder channels), and data migration of a large existing document backlog increase the quoted scope. The firm number lands in your quotation after the scoping call.

Ce que vous obtenez

  • Installable module source code targeting your confirmed Odoo version (17.0 / 18.0 / 19.0) and edition
  • Installation and configuration on your environment, including document types and reminder windows set to your policy
  • Technical documentation: data model, `ir.cron` schedule, security rules, and API endpoints
  • End-user guide plus a live training session for HR and managers
  • Post-go-live support window for bug fixes and adjustments to the delivered scope
  • UAT build deployed on a staging copy of your database for sign-off before production
  • Rollback plan and a clean uninstall path documented before any production deployment
  • Git repository handover with tagged release and commit history

Pour qui c'est

HR Operations Manager

Owns the renewal calendar for the whole workforce and is accountable when a document lapses. Needs a single dashboard of what is expiring, automatic reminders that reach the right people, and an audit trail proving notice was given.

Compliance & Risk Officer

Must demonstrate to auditors and regulators that work permits, safety certifications, and licenses are current. Needs enforced record rules, chatter-logged notifications, and reporting by document type and department for evidence.

Odoo System Administrator

Runs the company's Odoo instance and wants a clean, upgrade-safe module — proper models, `ir.model.access.csv`, record rules, and a documented `ir.cron` — rather than brittle automated-action hacks bolted onto `hr.employee`.

Multi-Company HR Lead

Manages HR across several legal entities in one database and needs document visibility scoped correctly per company, with reminder windows and escalation recipients that differ by entity.

Comment Employee Documents Expiry Tracker se compare

CritèreÉCOSIREConstruction personnaliséeConcurrentNatif Odoo
Expiry remindersDaily `ir.cron` with per-document-type lead times, email + in-app activityWhatever you build; often a single fixed-window automated actionBasic reminder, usually one global windowNone — no concept of document validity
Document modelDedicated `hr.employee.document` model with types, dates, authority, numberDepends on developer; risk of overloading `hr.employee` fieldsOwn model, but fields fixed to the vendor's designA few ID fields plus generic file attachments
Notification targetsEmployee, manager, and HR mailbox, plus scheduled activitiesConfigurable but built from scratch each timeTypically employee and HR onlyNone
Security & multi-companyTailored record rules; per-company isolation confirmed in scopingOnly if the developer implements it correctlyGeneric access rules, multi-company support variesStandard HR access, no document-level rules
ReportingPivot, kanban, and filters by type, department, and expiry windowBuilt to order; extra costLimited list/kanban viewsNone for documents
Fit to your policyDocument types, windows, and recipients configured to your exact rulesFully bespoke but you own the full build costFit to the module's assumptions, not yoursN/A
Support & handoverSupport window, training, docs, and git repo handoverDepends on the contractorVendor ticket queue, shared codebaseCommunity forums
Odoo version coverageBuilt and tested for 17.0 / 18.0 / 19.0, Community or EnterpriseWhatever you target and maintainPer-version listing, may lag new releasesShips with your Odoo version

Foire aux questions sur Employee Documents Expiry Tracker

Is this an existing app I can download and install right now?

No. This is a build-to-order module that ECOSIRE builds, installs, and supports specifically for your Odoo database. There is no instant download — after you request a quotation and confirm scope, we build it and deploy it for you.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The exact timeline depends on how many document types, notification channels, and integrations are in play, and is stated in your quotation after the scoping call.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. After a short scoping call we send a fixed, written quotation covering your exact document types, reminder windows, recipients, and any integrations. The firm number is set at that point — no surprises.

Which Odoo versions and editions are supported?

We build for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. We confirm your version and edition during scoping because the notification and activity surfaces differ slightly, and we tailor the build accordingly.

What kind of support and updates do I get after go-live?

Every build includes a post-go-live support window for bug fixes and adjustments within the delivered scope. You also receive the git repository so your own team can maintain it, and we can quote a longer support or version-migration retainer separately.

Can employees see other people's documents?

No. We enforce access with `ir.model.access.csv` plus record rules so an ordinary employee sees only their own documents, while HR and compliance roles get the company-wide view. In multi-company databases, record rules keep each company's documents isolated.

Can it push data to or from another system?

Yes. The module is exposed over Odoo's standard XML-RPC/JSON-RPC API, so an onboarding portal, HRIS, or identity provider can create and update documents programmatically. We scope those integration touchpoints during the quotation stage.

Demander un devis

Employee Documents Expiry Tracker

A build-to-order Odoo module that stores every employee document with an expiry date and fires automatic reminders before passports, visas, contracts and certifications lapse. ECOSIRE builds, installs, and supports it for your database.

  • Dedicated `hr.employee.document` model with `Many2one` link to `hr.employee`, document number, issuing authority, issue and expiry dates, and attached scan via `ir.attachment`
  • Configurable document-type records (passport, visa/work permit, national ID, labor contract, license, certification, medical card, plus custom types) each with its own reminder lead-time
  • Computed `state` field (Valid / Expiring Soon / Expired) via `@api.depends` on expiry date evaluated against the document type's threshold
  • `days_to_expiry` computed field driving colour-coded kanban decorations and list-view highlighting

Demander un devis

Décrivez vos besoins pour Employee Documents Expiry Tracker et nous vous enverrons les tarifs, les options de licence et une proposition sur mesure, généralement sous un jour ouvré.

Aucun paiement maintenant. Ceci envoie une demande de devis à notre équipe — nous vous recontacterons par e-mail avec les tarifs et les prochaines étapes.