feat(jobs): persist deadlines + planned start + notes on fp.job

Tier 2 of the SO->fp.job persistence audit. Four operational metadata
fields mirrored from sale.order:

- x_fc_internal_deadline (Date) - shop's internal target finish date,
  ahead of the customer-facing deadline. Kept separate from
  date_deadline (which scheduling code may adjust).
- x_fc_planned_start_date (Date) - customer-quoted planned start date.
  Kept separate from date_planned_start (Datetime, capacity-adjusted).
- x_fc_internal_note (Text) - shop-internal notes from the order.
- x_fc_external_note (Text) - customer-facing notes, printed on
  traveller / BoL / cert.

All four populate at SO confirm via _fp_auto_create_job, and surface
on sale.order.line as stored related fields for per-line visibility.
fp.job form view gets a Notes group alongside the Customer References
group from Tier 1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-12 08:37:19 -04:00
parent 7d37f5713c
commit 15eac309ee
7 changed files with 81 additions and 3 deletions

View File

@@ -5,7 +5,7 @@
{
'name': 'Fusion Plating — Configurator',
'version': '19.0.18.10.0',
'version': '19.0.18.10.1',
'category': 'Manufacturing/Plating',
'summary': 'Quotation configurator with part catalog, coating configs, and formula-based pricing engine.',
'description': """

View File

@@ -659,3 +659,28 @@ class SaleOrderLine(models.Model):
readonly=True,
store=True,
)
x_fc_internal_deadline = fields.Date(
related='order_id.x_fc_internal_deadline',
string='Internal Deadline',
readonly=True,
store=True,
)
x_fc_planned_start_date = fields.Date(
related='order_id.x_fc_planned_start_date',
string='Planned Start',
readonly=True,
store=True,
)
x_fc_internal_note = fields.Text(
related='order_id.x_fc_internal_note',
string='Internal Note',
readonly=True,
store=True,
)
x_fc_external_note = fields.Text(
related='order_id.x_fc_external_note',
string='External Note',
readonly=True,
store=True,
)