Saltar al contenido principal
Los detalles del producto se muestran en inglés. Próximamente traducciones.
Employee Documents Expiry Tracker — A build-to-order Odoo module that stores every employee document with an expiry date and  — 1/1Vista previa ilustrativa

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é es 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.

Características clave

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

Hecho a medida, listo para ti

Sin configuración por tu cuenta: una app funcional creada, instalada y con soporte de ECOSIRE.

  1. 1

    Haces el pedido

    Empieza con un precio único de desarrollo. Definimos el alcance contigo en el arranque.

  2. 2

    Creamos e instalamos

    ECOSIRE la crea, la configura y la instala en tu Odoo.

  3. 3

    En marcha + soporte

    Sales en vivo en aproximadamente una semana laboral, con dos semanas de soporte tras la puesta en marcha. Los defectos en el código que entregamos se corrigen sin coste.

Especificaciones técnicas

Compatibilidad con Odoo
Odoo 17, Odoo 18, Odoo 19
Ediciones
Enterprise y Community
Licencia
La licencia requiere confirmación
Requisito de Python
Python 3.10+
Base de datos
PostgreSQL 12+

Sobre este producto

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.

lo que obtienes

  • 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

¿Para quién es esto?

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.

Cómo se compara Employee Documents Expiry Tracker

CriterioECOSIREConstrucción personalizadaCompetidorNativo de 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

Preguntas frecuentes sobre 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.

Solicitar presupuesto

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

Solicitar presupuesto

Cuéntanos tus necesidades de Employee Documents Expiry Tracker y te enviaremos precios, opciones de licencia y una propuesta a medida, normalmente en un día hábil.

Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.