This commit is contained in:
gsinghpal
2026-04-26 15:05:17 -04:00
parent 160198edb1
commit d9f58b9851
110 changed files with 6210 additions and 1182 deletions

View File

@@ -35,6 +35,12 @@
action="action_fp_direct_order_wizard"
sequence="5"/>
<menuitem id="menu_fp_direct_order_drafts"
name="Direct Order Drafts"
parent="menu_fp_sales"
action="action_fp_direct_order_drafts"
sequence="6"/>
<menuitem id="menu_fp_quotations"
name="Quotations"
parent="menu_fp_sales"

View File

@@ -167,20 +167,30 @@
<page string="Process" name="process">
<group>
<field name="default_process_id" readonly="1"
help="Use the Compose button to set up this part's process tree."/>
help="The variant used by default when an order line does not pick another."/>
<field name="process_variant_count" readonly="1"/>
</group>
<div class="mt-2">
<button name="action_open_part_composer" type="object"
string="Compose"
icon="fa-wrench"
class="btn-primary"
help="Open the Process Composer to load a template and edit this part's tree."/>
help="Open the Process Composer to manage this part's process variants."/>
</div>
<p class="text-muted mt-3">
The <strong>Compose</strong> button opens the Process Composer where you can
load a shared template and customise it for this part. When a job runs for
this part, work orders are generated from the composed tree.
The <strong>Compose</strong> button opens the Process Composer where you can add
multiple process <em>variants</em> for this part — for example "Standard ENP",
"Selective Masking", "Rework". One variant is flagged as default; estimators
may pick a different variant on a per-order basis.
</p>
<field name="process_variant_ids" readonly="1">
<list>
<field name="is_default_variant" widget="boolean_toggle" readonly="1"/>
<field name="variant_label"/>
<field name="name"/>
<field name="estimated_duration" optional="hide"/>
</list>
</field>
</page>
<page string="Dimensions &amp; Complexity" name="dimensions">
<group>

View File

@@ -13,12 +13,12 @@
<field name="arch" type="xml">
<form string="Quote Configurator">
<header>
<button name="action_create_quotation"
string="Create Quotation"
<button name="action_promote_to_direct_order"
string="Add to Direct Order"
type="object"
class="btn-primary"
confirm="This will create a Sale Order from this configurator session. Continue?"
invisible="state != 'draft'"/>
invisible="state != 'draft'"
help="Add this quote as a line on a Direct Order draft. Multiple quotes can land on the same draft so one PO covers them all."/>
<button name="action_recalculate_price"
string="Recalculate"
type="object"

View File

@@ -62,10 +62,9 @@
<button name="action_view_workorders"
type="object"
class="oe_stat_button"
icon="fa-cogs"
invisible="x_fc_workorder_count == 0">
icon="fa-cogs">
<field name="x_fc_workorder_count" widget="statinfo"
string="Active WOs"/>
string="Work Orders"/>
</button>
<button name="action_view_ncrs"
type="object"
@@ -93,6 +92,7 @@
<field name="x_fc_configurator_id" readonly="1"/>
<field name="x_fc_part_catalog_id"/>
<field name="x_fc_coating_config_id"/>
<field name="x_fc_process_summary" readonly="1"/>
</group>
<group string="RFQ / PO">
<field name="x_fc_po_number"/>
@@ -182,17 +182,29 @@
</group>
</page>
</xpath>
<!-- Make the standard customer-facing description column togglable.
The base sale.order line view shows `name` always; flipping it
to optional lets estimators hide/show it like the other columns. -->
<xpath expr="//field[@name='order_line']/list/field[@name='name']" position="attributes">
<attribute name="string">Customer-Facing</attribute>
<attribute name="optional">show</attribute>
</xpath>
<xpath expr="//field[@name='order_line']/list/field[@name='product_uom_qty']" position="before">
<field name="x_fc_part_catalog_id" optional="show"/>
<field name="x_fc_description_template_id"
domain="[('part_catalog_id', '=', x_fc_part_catalog_id)]"
options="{'no_create': True}"
context="{'default_part_catalog_id': x_fc_part_catalog_id}"
invisible="not x_fc_part_catalog_id"
optional="show"/>
<field name="x_fc_internal_description"
placeholder="Shop-floor workflow instructions (prints on WO / traveler)"
optional="hide"/>
<field name="x_fc_coating_config_id" optional="show"/>
<field name="x_fc_process_variant_id"
string="Variant"
options="{'no_create': True}"
invisible="not x_fc_part_catalog_id"
optional="show"/>
<field name="x_fc_thickness_id"
options="{'no_create': True}"
invisible="not x_fc_coating_config_id"