changes
This commit is contained in:
@@ -1054,54 +1054,7 @@ if env['fusion.plating.bake.window'].search_count([]) < 6:
|
||||
})
|
||||
LOG(" +3 additional bake windows (awaiting / in-progress)")
|
||||
|
||||
# First-piece inspection gates — seed 4 variants
|
||||
Gate = env['fusion.plating.first.piece.gate']
|
||||
if Gate.search_count([]) < 4:
|
||||
Gate.create({
|
||||
'bath_id': bath_en.id,
|
||||
'part_ref': 'HW-TOR-5501',
|
||||
'customer_ref': 'Honeywell Toronto',
|
||||
'routing_first_run': True,
|
||||
'first_piece_produced': datetime.now() - timedelta(minutes=35),
|
||||
'result': 'pending',
|
||||
})
|
||||
Gate.create({
|
||||
'bath_id': bath_en.id,
|
||||
'part_ref': 'AP-WGL-7200',
|
||||
'customer_ref': 'Amphenol Canada',
|
||||
'routing_first_run': False,
|
||||
'first_piece_produced': datetime.now() - timedelta(hours=2),
|
||||
'first_piece_inspected': datetime.now() - timedelta(hours=1, minutes=40),
|
||||
'inspector_id': env.user.id,
|
||||
'result': 'pass',
|
||||
'rest_of_lot_released': True,
|
||||
})
|
||||
Gate.create({
|
||||
'bath_id': bath_en.id,
|
||||
'part_ref': 'MG-WG-8801',
|
||||
'customer_ref': 'Magellan Aerospace',
|
||||
'routing_first_run': True,
|
||||
'first_piece_produced': datetime.now() - timedelta(hours=4),
|
||||
'first_piece_inspected': datetime.now() - timedelta(hours=3, minutes=30),
|
||||
'inspector_id': env.user.id,
|
||||
'result': 'pass',
|
||||
'rest_of_lot_released': False, # passed but awaiting release
|
||||
'notes': '<p>Thickness 1.95 mils — within tolerance. Lot released pending planner signoff.</p>',
|
||||
})
|
||||
Gate.create({
|
||||
'bath_id': bath_en.id,
|
||||
'part_ref': 'CY-STR-240',
|
||||
'customer_ref': 'Cyclone Manufacturing',
|
||||
'routing_first_run': True,
|
||||
'first_piece_produced': datetime.now() - timedelta(hours=6),
|
||||
'first_piece_inspected': datetime.now() - timedelta(hours=5, minutes=30),
|
||||
'inspector_id': env.user.id,
|
||||
'result': 'fail',
|
||||
'notes': '<p>Thickness 0.8 mils — below spec (min 1.2). Rework required.</p>',
|
||||
})
|
||||
LOG(" 4 first-piece gates: 1 pending / 1 passed+released / 1 passed-holding / 1 failed")
|
||||
else:
|
||||
LOG(f" Already has {Gate.search_count([])} first-piece gates — skipping")
|
||||
# First-piece-gate seeding retired with the model (19.0.33.2.0).
|
||||
|
||||
# Quality holds on active MOs — gives the Shop Floor quality-holds panel content
|
||||
Hold = env['fusion.plating.quality.hold']
|
||||
@@ -1374,7 +1327,6 @@ LOG(f" Bath logs: {env['fusion.plating.bath.log'].search_count([])}")
|
||||
LOG(f" Replenishments: {env['fusion.plating.bath.replenishment.suggestion'].search_count([])}")
|
||||
LOG(f" Bake windows: {env['fusion.plating.bake.window'].search_count([])}")
|
||||
LOG(f" Stations: {env['fusion.plating.shopfloor.station'].search_count([])}")
|
||||
LOG(f" First-piece: {env['fusion.plating.first.piece.gate'].search_count([])}")
|
||||
LOG(f" Quality holds: {env['fusion.plating.quality.hold'].search_count([])}")
|
||||
LOG(f" Racks: {env['fusion.plating.rack'].search_count([])}")
|
||||
LOG(f" Operator certs: {env['fp.operator.certification'].search_count([])}")
|
||||
|
||||
@@ -853,17 +853,7 @@ if BakeWin is not None and job:
|
||||
'bake window auto-created',
|
||||
f'{len(bw)} record(s) for {job.name}')
|
||||
|
||||
# First-piece gate auto-created?
|
||||
FPG = env.get('fusion.plating.first.piece.gate')
|
||||
if FPG is not None:
|
||||
# FPG model may not have production_id either; try common link fields
|
||||
fpg = FPG.search([]) # take any recent
|
||||
fpg_for_mo = fpg.filtered(
|
||||
lambda g: getattr(g, 'production_id', False) and g.production_id.id == mo.id
|
||||
) if 'production_id' in FPG._fields else fpg.browse([])
|
||||
finding('PASS' if fpg_for_mo else 'WARN',
|
||||
'first-piece gate',
|
||||
f'{len(fpg_for_mo)} for MO (coating-driven; OK if 0)')
|
||||
# First-piece-gate check retired with the model (19.0.33.2.0).
|
||||
|
||||
# Each operator can see their OWN assigned WOs via the tablet
|
||||
# (queue is a TransientModel; tablet calls build_for_user on load)
|
||||
|
||||
Reference in New Issue
Block a user