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>
This commit is contained in:
@@ -57,7 +57,7 @@ mo_done = env['mrp.production'].search([('state', '=', 'done')], order='id desc'
|
||||
mo_progress = env['mrp.production'].search([('state', 'in', ('confirmed', 'progress'))], limit=1)
|
||||
|
||||
# =====================================================================
|
||||
section('1. Sale Order — quote → confirmation')
|
||||
section('1. Sale Order - quote → confirmation')
|
||||
# =====================================================================
|
||||
|
||||
def t_so_no_partner():
|
||||
@@ -82,7 +82,7 @@ gate('SO confirm blocked when customer on Account Hold', t_so_confirm_account_ho
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('2. Manufacturing Order — confirm + done')
|
||||
section('2. Manufacturing Order - confirm + done')
|
||||
# =====================================================================
|
||||
|
||||
def t_mo_confirm_no_facility():
|
||||
@@ -107,7 +107,7 @@ gate('MO confirm blocked when no facility resolvable', t_mo_confirm_no_facility,
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('3. Work Order — start (per kind) + finish')
|
||||
section('3. Work Order - start (per kind) + finish')
|
||||
# =====================================================================
|
||||
|
||||
if mo_progress:
|
||||
@@ -201,7 +201,7 @@ if mask_wo:
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('4. Receiving — accept/discrepancy with damage')
|
||||
section('4. Receiving - accept/discrepancy with damage')
|
||||
# =====================================================================
|
||||
|
||||
if customer:
|
||||
@@ -218,14 +218,14 @@ if customer:
|
||||
'resolved': False,
|
||||
})
|
||||
r.action_start_inspection()
|
||||
r.action_accept() # should fail — unresolved damage
|
||||
r.action_accept() # should fail - unresolved damage
|
||||
gate('Receiving accept blocked when unresolved damage exists',
|
||||
t_recv_accept_with_unresolved_damage,
|
||||
['unresolved damage'])
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('5. Certificate — action_issue')
|
||||
section('5. Certificate - action_issue')
|
||||
# =====================================================================
|
||||
|
||||
if mo_done:
|
||||
@@ -242,7 +242,7 @@ if mo_done:
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('6. Delivery — schedule → en_route → delivered')
|
||||
section('6. Delivery - schedule → en_route → delivered')
|
||||
# =====================================================================
|
||||
|
||||
if customer:
|
||||
@@ -257,7 +257,7 @@ if customer:
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('7. Invoice — post')
|
||||
section('7. Invoice - post')
|
||||
# =====================================================================
|
||||
|
||||
if customer:
|
||||
@@ -294,7 +294,7 @@ if customer:
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('8. QMS — NCR / CAPA / Discharge sample close')
|
||||
section('8. QMS - NCR / CAPA / Discharge sample close')
|
||||
# =====================================================================
|
||||
|
||||
def t_ncr_close_missing():
|
||||
@@ -327,7 +327,7 @@ gate('Discharge sample close blocked without lab evidence', t_discharge_close_mi
|
||||
|
||||
|
||||
# =====================================================================
|
||||
section('9. SUSPECTED GAPS — these probably AREN\'T enforced today')
|
||||
section('9. SUSPECTED GAPS - these probably AREN\'T enforced today')
|
||||
# =====================================================================
|
||||
|
||||
# Each of these MIGHT slip through silently. If they do, we'll see GAP.
|
||||
@@ -364,8 +364,8 @@ if customer:
|
||||
['mismatch', 'short', 'discrepancy', 'qty', 'quantity'])
|
||||
|
||||
|
||||
# 9c. MO done without all WOs done — Odoo enforces this natively, so should PASS
|
||||
# Skip — Odoo handles it.
|
||||
# 9c. MO done without all WOs done - Odoo enforces this natively, so should PASS
|
||||
# Skip - Odoo handles it.
|
||||
|
||||
# 9d. Cert issue without thickness readings (only blocks when partner
|
||||
# is flagged aerospace via x_fc_strict_thickness_required)
|
||||
@@ -424,7 +424,7 @@ if bath:
|
||||
def t_bath_log_no_lines():
|
||||
env['fusion.plating.bath.log'].sudo().create({
|
||||
'bath_id': bath.id,
|
||||
}) # no line_ids — should this be allowed?
|
||||
}) # no line_ids - should this be allowed?
|
||||
gate('Bath log create blocked without any parameter readings',
|
||||
t_bath_log_no_lines,
|
||||
['line', 'reading', 'parameter'])
|
||||
|
||||
Reference in New Issue
Block a user