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:
gsinghpal
2026-06-05 00:16:19 -04:00
parent c9eb61ee0c
commit 8c76a16366
789 changed files with 4692 additions and 4692 deletions

View File

@@ -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'])