37 lines
1.1 KiB
Python
37 lines
1.1 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.
|
|
#
|
|
# Sub 12 Phase B — quality reason (root-cause classification library).
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class FpQualityReason(models.Model):
|
|
_name = 'fp.quality.reason'
|
|
_description = 'Fusion Plating — Quality Reason'
|
|
_order = 'category, name'
|
|
|
|
name = fields.Char(required=True, translate=True)
|
|
description = fields.Text(translate=True)
|
|
category = fields.Selection(
|
|
[
|
|
('process', 'Process'),
|
|
('supplier', 'Supplier / Material Inbound'),
|
|
('equipment', 'Equipment / Calibration'),
|
|
('human', 'Human Error / Training'),
|
|
('material', 'Material Defect'),
|
|
('other', 'Other'),
|
|
],
|
|
string='Category',
|
|
default='process',
|
|
required=True,
|
|
)
|
|
active = fields.Boolean(default=True)
|
|
|
|
_sql_constraints = [
|
|
('name_category_uniq', 'unique(name, category)',
|
|
'A reason with that name + category combination already exists.'),
|
|
]
|