diff --git a/fusion_plating/fusion_plating/__manifest__.py b/fusion_plating/fusion_plating/__manifest__.py index aaa933b4..fda72af4 100644 --- a/fusion_plating/fusion_plating/__manifest__.py +++ b/fusion_plating/fusion_plating/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating', - 'version': '19.0.5.2.0', + 'version': '19.0.5.3.0', 'category': 'Manufacturing/Plating', 'summary': 'Core plating / metal finishing ERP: facilities, processes, tanks, baths, jobs, operators.', 'description': """ diff --git a/fusion_plating/fusion_plating/models/fp_tank.py b/fusion_plating/fusion_plating/models/fp_tank.py index 80a0fde1..20d0b321 100644 --- a/fusion_plating/fusion_plating/models/fp_tank.py +++ b/fusion_plating/fusion_plating/models/fp_tank.py @@ -72,7 +72,13 @@ class FpTank(models.Model): ('m3', 'Cubic metres'), ], string='Volume Unit', - default='l', + default=lambda self: { + 'gal': 'gal_us', + 'L': 'l', + 'imp_gal': 'gal_imp', + }.get(self.env.company.x_fc_default_volume_uom or 'gal', 'gal_us'), + help='Inherited from company default (Settings → Fusion Plating → ' + 'Units of Measure). Overrideable per tank.', ) material = fields.Selection( [ diff --git a/fusion_plating/fusion_plating_configurator/__manifest__.py b/fusion_plating/fusion_plating_configurator/__manifest__.py index 9bea941c..b760c850 100644 --- a/fusion_plating/fusion_plating_configurator/__manifest__.py +++ b/fusion_plating/fusion_plating_configurator/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating — Configurator', - 'version': '19.0.5.1.0', + 'version': '19.0.5.2.0', 'category': 'Manufacturing/Plating', 'summary': 'Quotation configurator with part catalog, coating configs, and formula-based pricing engine.', 'description': """ diff --git a/fusion_plating/fusion_plating_configurator/models/fp_coating_config.py b/fusion_plating/fusion_plating_configurator/models/fp_coating_config.py index 65824425..d5b287f4 100644 --- a/fusion_plating/fusion_plating_configurator/models/fp_coating_config.py +++ b/fusion_plating/fusion_plating_configurator/models/fp_coating_config.py @@ -64,8 +64,14 @@ class FpCoatingConfig(models.Model): help='Maximum time between plate exit and bake start. Typically 4h per AMS 2759/9.', ) bake_temperature = fields.Float( - string='Bake Temperature (°F)', default=375.0, - help='Relief bake temperature. Typical: 375°F for steel ≥ HRC 40.', + string='Bake Temperature', default=375.0, + help='Relief bake temperature. Default 375 (°F per AMS 2759/9 for ' + 'steel ≥ HRC 40). Unit follows bake_temperature_uom.', + ) + bake_temperature_uom = fields.Selection( + [('F', '°F'), ('C', '°C')], + string='Temp Unit', + default=lambda self: self.env.company.x_fc_default_temp_uom or 'F', ) bake_duration_hours = fields.Float( string='Bake Duration (hours)', default=23.0, diff --git a/fusion_plating/fusion_plating_shopfloor/__manifest__.py b/fusion_plating/fusion_plating_shopfloor/__manifest__.py index dca99c57..1404e522 100644 --- a/fusion_plating/fusion_plating_shopfloor/__manifest__.py +++ b/fusion_plating/fusion_plating_shopfloor/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating — Shop Floor', - 'version': '19.0.14.2.0', + 'version': '19.0.14.3.0', 'category': 'Manufacturing/Plating', 'summary': 'Shop-floor tablet stations, QR scanning, bake window enforcer, ' 'first-piece inspection gates.', diff --git a/fusion_plating/fusion_plating_shopfloor/models/fp_bake_oven.py b/fusion_plating/fusion_plating_shopfloor/models/fp_bake_oven.py index 2355b7e4..089a50a9 100644 --- a/fusion_plating/fusion_plating_shopfloor/models/fp_bake_oven.py +++ b/fusion_plating/fusion_plating_shopfloor/models/fp_bake_oven.py @@ -50,6 +50,13 @@ class FpBakeOven(models.Model): string='Target Temp Max', help='Upper bound of target oven temperature.', ) + target_temp_uom = fields.Selection( + [('F', '°F'), ('C', '°C')], + string='Temp Unit', + default=lambda self: self.env.company.x_fc_default_temp_uom or 'F', + help='Unit for the target temp range. Defaults to the company ' + 'preference (Settings → Fusion Plating → Units of Measure).', + ) chart_recorder_ref = fields.Char( string='Chart Recorder Ref', help='Serial / asset reference of the chart recorder providing trace evidence.', diff --git a/fusion_plating/fusion_plating_shopfloor/models/fp_bake_window.py b/fusion_plating/fusion_plating_shopfloor/models/fp_bake_window.py index a1c1d4fe..3fdd4e80 100644 --- a/fusion_plating/fusion_plating_shopfloor/models/fp_bake_window.py +++ b/fusion_plating/fusion_plating_shopfloor/models/fp_bake_window.py @@ -110,6 +110,13 @@ class FpBakeWindow(models.Model): ) bake_temp = fields.Float( string='Bake Temp', + help='Setpoint temperature recorded for the relief bake. ' + 'Unit follows bake_temp_uom (defaults from company).', + ) + bake_temp_uom = fields.Selection( + [('F', '°F'), ('C', '°C')], + string='Temp Unit', + default=lambda self: self.env.company.x_fc_default_temp_uom or 'F', ) bake_duration_hours = fields.Float( string='Bake Duration (hours)', diff --git a/fusion_plating/fusion_plating_shopfloor/views/fp_bake_oven_views.xml b/fusion_plating/fusion_plating_shopfloor/views/fp_bake_oven_views.xml index d29f2398..0cd63f98 100644 --- a/fusion_plating/fusion_plating_shopfloor/views/fp_bake_oven_views.xml +++ b/fusion_plating/fusion_plating_shopfloor/views/fp_bake_oven_views.xml @@ -42,8 +42,14 @@ - - + diff --git a/fusion_plating/fusion_plating_shopfloor/views/fp_bake_window_views.xml b/fusion_plating/fusion_plating_shopfloor/views/fp_bake_window_views.xml index bca377e0..f9c1aab5 100644 --- a/fusion_plating/fusion_plating_shopfloor/views/fp_bake_window_views.xml +++ b/fusion_plating/fusion_plating_shopfloor/views/fp_bake_window_views.xml @@ -93,7 +93,8 @@