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

@@ -26,11 +26,11 @@ class AccountMove(models.Model):
Two defensive defaults so newly-created invoices come out
compliant out of the box:
1. **invoice_payment_term_id** pulled from the customer's
1. **invoice_payment_term_id** - pulled from the customer's
property_payment_term_id (Net-30, COD, etc.). Without this
the due date silently becomes "immediate", wrong for B2B.
2. **ref** (customer reference / PO#) pulled from the source
2. **ref** (customer reference / PO#) - pulled from the source
sale order's client_order_ref or x_fc_po_number. Customer
AP teams reject invoices that don't quote their PO# back.
We already populate this on the SO confirm path, but a
@@ -60,7 +60,7 @@ class AccountMove(models.Model):
"""Block post when:
• customer is on account hold (existing rule), or
• the invoice has no payment term (auto-fill missed it AND
partner had no default accountant must pick one).
partner had no default - accountant must pick one).
"""
for move in self:
if move.move_type in ('out_invoice', 'out_refund') and move.partner_id:
@@ -69,14 +69,14 @@ class AccountMove(models.Model):
is_manager = self.env['res.partner']._fp_user_can_override_account_hold()
if not is_manager:
raise UserError(_(
'Cannot post invoice customer "%s" is on account hold.\n'
'Cannot post invoice - customer "%s" is on account hold.\n'
'Reason: %s\n\n'
'Contact a manager to override.'
) % (hold_partner.name,
hold_partner.x_fc_account_hold_reason or 'No reason specified'))
if not move.invoice_payment_term_id:
raise UserError(_(
'Cannot post invoice "%s" no payment terms set.\n\n'
'Cannot post invoice "%s" - no payment terms set.\n\n'
'Pick payment terms (Net-30, COD, etc.) on the invoice, '
'or set a default on the customer "%s" so future '
'invoices inherit it automatically.'