Files
Odoo-Modules/fusion-plating/fusion_plating_logistics/models/hr_employee.py
gsinghpal be611876ad changes
2026-04-12 09:09:50 -04:00

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)