Files
Odoo-Modules/fusion_plating/fusion_plating_logistics/models/hr_employee.py
gsinghpal 8c76a16366 chore(plating): de-dash shipped code + intake-neutral customer emails
Replace em-dashes and en-dashes with hyphens across 789 shipped source
files (py/xml/js/scss) so the delivered module reads as human-written;
em-dashes had become a recognizable AI-generated tell. Internal .md dev
notes are excluded. The WO-sticker mojibake strippers keep their dash
search targets (now written — / –). No logic changes: comments
and display strings only; validated with py_compile + lxml parse.

Rewrite the 7 customer notification emails to be intake-neutral
(ship-in / drop-off / pickup) and repair-aware, and fix the Shipped
email documents line (packing slip vs bill of lading; certificate only
when issued). Subjects use a hyphen separator.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 00:16:19 -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)