# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) # Part of the Fusion Plating product family. from odoo import fields, models class HrEmployee(models.Model): """Extend hr.employee with driver fields. Drivers are just employees with the `x_fc_is_driver` flag set. This avoids creating a parallel driver model and keeps time tracking, HR records, and payroll integrations working out of the box. Uses the `x_fc_` prefix per the Fusion Central field naming convention for extensions of base Odoo models. """ _inherit = 'hr.employee' x_fc_is_driver = fields.Boolean( string='Is Driver', help='Check if this employee is authorised to drive company vehicles ' 'for pickups and deliveries.', ) x_fc_driver_licence_class = fields.Char( string='Licence Class', help='Driver licence class — e.g. G, G2, AZ, DZ.', ) x_fc_licence_expiry = fields.Date( string='Licence Expiry', ) x_fc_tdg_certified = fields.Boolean( string='TDG Certified', help='Certified to transport Transportation of Dangerous Goods ' '(hazmat) loads.', ) x_fc_tdg_expiry = fields.Date( string='TDG Certificate Expiry', ) x_fc_pickup_request_ids = fields.One2many( 'fusion.plating.pickup.request', 'assigned_driver_id', string='Pickup Requests', ) x_fc_delivery_ids = fields.One2many( 'fusion.plating.delivery', 'assigned_driver_id', string='Deliveries', ) x_fc_pickup_request_count = fields.Integer( compute='_compute_logistics_counts', ) x_fc_delivery_count = fields.Integer( compute='_compute_logistics_counts', ) def _compute_logistics_counts(self): for rec in self: rec.x_fc_pickup_request_count = len(rec.x_fc_pickup_request_ids) rec.x_fc_delivery_count = len(rec.x_fc_delivery_ids)