62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
# -*- 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)
|