Four new fields on every sale.order.line, propagated through to MO, Delivery, and Invoice for end-to-end traceability: - fp.serial registry (new model in configurator) with smart-button traceability to Sale Order, MO, Delivery, Invoice, Part. M2O on SO line; optional; user types a customer serial or clicks Generate Serial for a sequence-backed one. Reverse O2M links split across configurator (invoice) / bridge_mrp (MO) / logistics (delivery) so module load order is respected. - x_fc_job_number on SO line, auto-sequenced FP-JOB-NNNNN on SO confirm. Editable — shops can override for customer/legacy schemes. - fp.coating.thickness (new child of fp.coating.config) with per- config discrete thickness options; x_fc_thickness_id on SO line domain-filtered to the line's coating. Auto-clears when coating changes. - x_fc_revision_snapshot Char on SO line, frozen from x_fc_part_catalog_id.revision at save. Protects historical SOs from later catalog edits. Secondary "Revision" picker on the tree view lets users switch between prior revisions of the same part number; the Part M2O still surfaces only is_latest_revision rows. Reports (CoC, packing slip, invoice, BoL) pick up all four via the Sub 2 customer_line_header macro — one macro edit, four reports. Smoke on entech: 11 assertions pass including revision snapshot, generate-serial button, typed-serial create-on-fly, coating→thickness domain reset, SO confirm auto job#, and MO traceability carry. Module version bumps: fusion_plating_configurator → 19.0.12.0.0 fusion_plating_bridge_mrp → 19.0.11.0.0 fusion_plating_logistics → 19.0.2.0.0 (+depends configurator) fusion_plating_reports → 19.0.5.1.0 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.4 KiB
6.4 KiB
| 1 | id | name | model_id:id | group_id:id | perm_read | perm_write | perm_create | perm_unlink |
|---|---|---|---|---|---|---|---|---|
| 2 | access_fp_treatment_operator | fp.treatment.operator | model_fp_treatment | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 3 | access_fp_treatment_supervisor | fp.treatment.supervisor | model_fp_treatment | fusion_plating.group_fusion_plating_supervisor | 1 | 1 | 0 | 0 |
| 4 | access_fp_treatment_manager | fp.treatment.manager | model_fp_treatment | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 5 | access_fp_part_catalog_operator | fp.part.catalog.operator | model_fp_part_catalog | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 6 | access_fp_part_catalog_estimator | fp.part.catalog.estimator | model_fp_part_catalog | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 7 | access_fp_part_catalog_manager | fp.part.catalog.manager | model_fp_part_catalog | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 8 | access_fp_coating_config_operator | fp.coating.config.operator | model_fp_coating_config | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 9 | access_fp_coating_config_estimator | fp.coating.config.estimator | model_fp_coating_config | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 10 | access_fp_coating_config_manager | fp.coating.config.manager | model_fp_coating_config | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 11 | access_fp_pricing_rule_operator | fp.pricing.rule.operator | model_fp_pricing_rule | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 12 | access_fp_pricing_rule_estimator | fp.pricing.rule.estimator | model_fp_pricing_rule | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 13 | access_fp_pricing_rule_manager | fp.pricing.rule.manager | model_fp_pricing_rule | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 14 | access_fp_pricing_surcharge_operator | fp.pricing.complexity.surcharge.operator | model_fp_pricing_complexity_surcharge | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 15 | access_fp_pricing_surcharge_estimator | fp.pricing.complexity.surcharge.estimator | model_fp_pricing_complexity_surcharge | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 16 | access_fp_pricing_surcharge_manager | fp.pricing.complexity.surcharge.manager | model_fp_pricing_complexity_surcharge | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 17 | access_fp_quote_configurator_operator | fp.quote.configurator.operator | model_fp_quote_configurator | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 18 | access_fp_quote_configurator_estimator | fp.quote.configurator.estimator | model_fp_quote_configurator | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 19 | access_fp_quote_configurator_manager | fp.quote.configurator.manager | model_fp_quote_configurator | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 20 | access_fp_direct_order_wizard_estimator | fp.direct.order.wizard.estimator | model_fp_direct_order_wizard | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 21 | access_fp_direct_order_wizard_manager | fp.direct.order.wizard.manager | model_fp_direct_order_wizard | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 22 | access_fp_direct_order_line_estimator | fp.direct.order.line.estimator | model_fp_direct_order_line | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 23 | access_fp_direct_order_line_manager | fp.direct.order.line.manager | model_fp_direct_order_line | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 24 | access_fp_add_from_so_wizard_estimator | fp.add.from.so.wizard.estimator | model_fp_add_from_so_wizard | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 25 | access_fp_add_from_so_wizard_manager | fp.add.from.so.wizard.manager | model_fp_add_from_so_wizard | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 26 | access_fp_add_from_quote_wizard_estimator | fp.add.from.quote.wizard.estimator | model_fp_add_from_quote_wizard | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 27 | access_fp_add_from_quote_wizard_manager | fp.add.from.quote.wizard.manager | model_fp_add_from_quote_wizard | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 28 | access_fp_sale_assembly_user | fp.sale.assembly.user | model_fp_sale_assembly | base.group_user | 1 | 0 | 0 | 0 |
| 29 | access_fp_sale_assembly_estimator | fp.sale.assembly.estimator | model_fp_sale_assembly | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 30 | access_fp_sale_assembly_manager | fp.sale.assembly.manager | model_fp_sale_assembly | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 31 | access_fp_sale_assembly_line_user | fp.sale.assembly.line.user | model_fp_sale_assembly_line | base.group_user | 1 | 0 | 0 | 0 |
| 32 | access_fp_sale_assembly_line_estimator | fp.sale.assembly.line.estimator | model_fp_sale_assembly_line | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 33 | access_fp_sale_assembly_line_manager | fp.sale.assembly.line.manager | model_fp_sale_assembly_line | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 34 | access_fp_part_import_wizard_estimator | fp.part.catalog.import.wizard.estimator | model_fp_part_catalog_import_wizard | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 1 |
| 35 | access_fp_part_import_wizard_manager | fp.part.catalog.import.wizard.manager | model_fp_part_catalog_import_wizard | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 36 | access_fp_customer_price_list_operator | fp.customer.price.list.operator | model_fp_customer_price_list | fusion_plating.group_fusion_plating_operator | 1 | 0 | 0 | 0 |
| 37 | access_fp_customer_price_list_estimator | fp.customer.price.list.estimator | model_fp_customer_price_list | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 38 | access_fp_customer_price_list_manager | fp.customer.price.list.manager | model_fp_customer_price_list | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 39 | access_fp_sale_desc_template_user | fp.sale.description.template.user | model_fp_sale_description_template | base.group_user | 1 | 0 | 0 | 0 |
| 40 | access_fp_sale_desc_template_estimator | fp.sale.description.template.estimator | model_fp_sale_description_template | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 41 | access_fp_sale_desc_template_manager | fp.sale.description.template.manager | model_fp_sale_description_template | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 42 | access_fp_serial_user | fp.serial.user | model_fp_serial | base.group_user | 1 | 0 | 0 | 0 |
| 43 | access_fp_serial_estimator | fp.serial.estimator | model_fp_serial | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 44 | access_fp_serial_manager | fp.serial.manager | model_fp_serial | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |
| 45 | access_fp_coating_thickness_user | fp.coating.thickness.user | model_fp_coating_thickness | base.group_user | 1 | 0 | 0 | 0 |
| 46 | access_fp_coating_thickness_estimator | fp.coating.thickness.estimator | model_fp_coating_thickness | fusion_plating_configurator.group_fp_estimator | 1 | 1 | 1 | 0 |
| 47 | access_fp_coating_thickness_manager | fp.coating.thickness.manager | model_fp_coating_thickness | fusion_plating.group_fusion_plating_manager | 1 | 1 | 1 | 1 |