mirror of
https://github.com/bringout/oca-ocb-mrp.git
synced 2026-04-26 21:32:01 +02:00
19.0 vanilla
This commit is contained in:
parent
accf5918df
commit
6e65e8c877
688 changed files with 225434 additions and 199401 deletions
|
|
@ -6,9 +6,11 @@
|
|||
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='type']" position="after">
|
||||
<field name="subcontractor_ids" widget="many2many_tags" attrs="{'invisible': [('type', '!=', 'subcontract')], 'required': [('type', '=', 'subcontract')]}"/>
|
||||
<field name="subcontractor_ids" widget="many2many_tags" invisible="type != 'subcontract'" required="type == 'subcontract'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='consumption']" position="attributes">
|
||||
<attribute name="invisible">type == 'phantom' or type == 'subcontract'</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,50 +6,45 @@
|
|||
<field name="mode">primary</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="inherit_id" ref="mrp.mrp_production_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="arch" type="xml" >
|
||||
<xpath expr="//form" position="attributes">
|
||||
<attribute name="js_class">subcontracting_production_form</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//header" position="replace">
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='button_box']" position="replace"/>
|
||||
<xpath expr="//div[hasclass('oe_title')]" position="replace"/>
|
||||
<xpath expr="//group[@name='group_extra_info']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
<xpath expr="//div[@name='qty']" position="replace">
|
||||
<div class="o_row g-0 d-flex" name="qty">
|
||||
<field name="product_qty" readonly="state == 'done'"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_generate_bom']" position="replace"/>
|
||||
<xpath expr="//field[@name='is_outdated_bom']" position="replace"/>
|
||||
<xpath expr="//button[@name='action_update_bom']" position="replace"/>
|
||||
<xpath expr="//div[@name='date_start']" position="replace"/>
|
||||
<xpath expr="//label[@name='start_date']" position="replace"/>
|
||||
<xpath expr="//label[@name='scheduled_date']" position="replace"/>
|
||||
<xpath expr="//field[@name='date_deadline']" position="replace"/>
|
||||
<xpath expr="//field[@name='components_availability']" position="replace"/>
|
||||
<xpath expr="//field[@name='user_id']" position="replace"/>
|
||||
<xpath expr="//page[@name='operations']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='lot_producing_id']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('product_tracking', 'in', ('none', False))], 'required': [('product_tracking', 'not in', ('none', False))]}</attribute>
|
||||
<xpath expr="//field[@name='lot_producing_ids']" position="attributes">
|
||||
<attribute name="invisible">product_tracking in ('none', False)</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='miscellaneous']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//label[@name='bom_label']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='bom_div']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//field[@name='move_byproduct_ids']" position="replace"/>
|
||||
<xpath expr="//field[@name='forecast_availability']" position="replace"/>
|
||||
<xpath expr="//field[@name='workorder_ids']" position="replace"/>
|
||||
<xpath expr="//button[@name='action_generate_serial']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//field[@name='move_finished_ids']" position="replace"/>
|
||||
<xpath expr="//field[@name='move_raw_ids']" position="replace">
|
||||
<field name="bom_product_ids" invisible="1"/>
|
||||
<field name="move_line_raw_ids" force_save="1"
|
||||
context="{'tree_view_ref': 'mrp_subcontracting.mrp_subcontracting_stock_move_line_tree_view', 'default_company_id': company_id, 'default_location_id': location_src_id, 'default_location_dest_id': production_location_id, 'bom_product_ids': bom_product_ids}"
|
||||
/>
|
||||
</xpath>
|
||||
<xpath expr="//sheet" position="inside">
|
||||
<footer>
|
||||
<button name="subcontracting_record_component" attrs="{'invisible': ['|', ('state', '=', 'to_close'), ('qty_producing', '<', 0.001)]}" string="Continue" type="object" class="oe_highlight" data-hotkey="q"/>
|
||||
<button name="subcontracting_record_component" attrs="{'invisible': [('state', '!=', 'to_close')]}" string="Record Production" type="object" class="oe_highlight" data-hotkey="q"/>
|
||||
<button string="Discard" special="cancel" data-hotkey="z" />
|
||||
</footer>
|
||||
</xpath>
|
||||
<xpath expr="//div[hasclass('oe_chatter')]" position="replace"/>
|
||||
<xpath expr="//chatter" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -63,33 +58,36 @@
|
|||
<xpath expr="//field[@name='product_id']" position="attributes">
|
||||
<attribute name="options">{'no_create_edit': True, 'no_open': True}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='product_qty']" position="attributes">
|
||||
<attribute name="attrs">{'readonly': True}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='lot_producing_id']" position="attributes">
|
||||
<xpath expr="//field[@name='lot_producing_ids']" position="attributes">
|
||||
<attribute name="domain">[('id', '=', False)]</attribute>
|
||||
<attribute name="options">{'no_create_edit': True, 'no_open': True}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='move_line_raw_ids']" position="attributes">
|
||||
<attribute name="context">{'tree_view_ref': 'mrp_subcontracting.mrp_subcontracting_portal_stock_move_line_tree_view', 'default_company_id': company_id, 'default_location_id': location_src_id, 'default_location_dest_id': production_location_id, 'bom_product_ids': bom_product_ids}</attribute>
|
||||
<xpath expr="//field[@name='move_raw_ids']" position="replace">
|
||||
<field name="bom_product_ids" invisible="1"/>
|
||||
<field name="move_line_raw_ids" force_save="1"
|
||||
context="{'list_view_ref': 'mrp_subcontracting.mrp_subcontracting_portal_stock_move_line_tree_view', 'default_company_id': company_id, 'default_location_id': location_src_id, 'default_location_dest_id': production_location_id, 'bom_product_ids': bom_product_ids}"
|
||||
/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='forecasted_issue']" position="replace"/>
|
||||
<xpath expr="//button[@name='%(mrp.action_change_production_qty)d']" position="replace"/>
|
||||
<xpath expr="//button[@name='action_product_forecast_report']" position="replace"/>
|
||||
<xpath expr="//button[@name='action_product_forecast_report']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_production_subcontracting_tree_view" model="ir.ui.view">
|
||||
<field name="name">mrp.production.subcontracting.tree</field>
|
||||
<field name="name">mrp.production.subcontracting.list</field>
|
||||
<field name="model">mrp.production</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="inherit_id" ref="mrp.mrp_production_tree_view" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="replace"/>
|
||||
<xpath expr="//list" position="attributes">
|
||||
<attribute name="create">0</attribute>
|
||||
<attribute name="js_class">subcontracting_production_list</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="incoming_picking"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='activity_exception_decoration']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -106,4 +104,3 @@
|
|||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="mrp_subcontracting_product_template_search_view" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.product.template.search</field>
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit_id" ref="product.product_template_search_view" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='filter_to_purchase']" position="after">
|
||||
<filter string="Can be Subcontracted" name="filter_can_be_subcontracted" domain="[('bom_ids.type', '=', 'subcontract')]" groups="mrp.group_mrp_user"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="view_location_form" model="ir.ui.view">
|
||||
<field name="name">stock.location.form</field>
|
||||
<field name="model">stock.location</field>
|
||||
<field name="inherit_id" ref="stock.view_location_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='return_location']" position='after'>
|
||||
<field name="is_subcontracting_location" groups="base.group_no_one" attrs="{'invisible': [('usage', '!=', 'internal')]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -2,37 +2,33 @@
|
|||
<odoo>
|
||||
|
||||
<record id="mrp_subcontracting_stock_move_line_tree_view" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.stock.move.line.tree.view</field>
|
||||
<field name="name">mrp.subcontracting.stock.move.line.list.view</field>
|
||||
<field name="model">stock.move.line</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="product_uom_category_id" invisible="1"/>
|
||||
<field name="owner_id" invisible="1"/>
|
||||
<field name="tracking" invisible="1"/>
|
||||
<field name="package_id" invisible="1"/>
|
||||
<field name="result_package_id" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<list editable="bottom">
|
||||
<field name="company_id" column_invisible="True"/>
|
||||
<field name="owner_id" column_invisible="True"/>
|
||||
<field name="tracking" column_invisible="True"/>
|
||||
<field name="package_id" column_invisible="True"/>
|
||||
<field name="result_package_id" column_invisible="True"/>
|
||||
<field name="location_id" column_invisible="True"/>
|
||||
<field name="location_dest_id" column_invisible="True"/>
|
||||
<field name="state" column_invisible="True"/>
|
||||
<!-- Don't put move_id here to avoid that the framework send falsy move_id -->
|
||||
<field name="id" invisible="1"/>
|
||||
<field name="id" column_invisible="True"/>
|
||||
<field name="product_id" required="1" domain="[('id', 'in', context.get('bom_product_ids'))] if context.get('is_subcontracting_portal') else []"/>
|
||||
<field name="lot_id" groups="stock.group_production_lot"
|
||||
attrs="{'invisible': [('tracking', 'not in', ('serial', 'lot'))], 'required': [('tracking', 'in', ('serial', 'lot'))]}"
|
||||
context="{'default_product_id': product_id, 'default_company_id': company_id}"/>
|
||||
<field name="reserved_uom_qty" readonly="1" force_save="1"/>
|
||||
<field name="qty_done"
|
||||
decoration-warning="reserved_uom_qty < qty_done"
|
||||
decoration-success="reserved_uom_qty == qty_done"/>
|
||||
<field name="product_uom_id" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="uom.group_uom"
|
||||
attrs="{'readonly': ['|', ('reserved_uom_qty', '!=', 0.0), '&', ('state', '=', 'done'), ('id', '!=', False)]}"/>
|
||||
</tree>
|
||||
invisible="tracking not in ('serial', 'lot')"
|
||||
required="tracking in ('serial', 'lot')"
|
||||
context="{'default_product_id': product_id}"/>
|
||||
<field name="quantity"/>
|
||||
<field name="product_uom_id" groups="uom.group_uom" widget="many2one_uom"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="mrp_subcontracting_portal_stock_move_line_tree_view" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.portal.stock.move.line.tree.view</field>
|
||||
<field name="name">mrp.subcontracting.portal.stock.move.line.list.view</field>
|
||||
<field name="model">stock.move.line</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">1000</field>
|
||||
|
|
@ -47,7 +43,7 @@
|
|||
</field>
|
||||
</record>
|
||||
<record id="mrp_subcontracting_view_stock_move_line_operation_tree" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.stock.move.line.operations.tree</field>
|
||||
<field name="name">mrp.subcontracting.stock.move.line.operations.list</field>
|
||||
<field name="model">stock.move.line</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">1000</field>
|
||||
|
|
@ -66,22 +62,11 @@
|
|||
<field name="inherit_id" ref="stock.view_stock_move_operations" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='move_line_ids']" position="attributes">
|
||||
<attribute name="context">{'tree_view_ref': 'mrp_subcontracting.mrp_subcontracting_view_stock_move_line_operation_tree', 'default_product_uom_id': product_uom, 'default_picking_id': picking_id, 'default_move_id': id, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id, 'default_company_id': company_id}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="mrp_subcontracting_view_stock_move_nosuggest_operations" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.stock.move.operations.nosuggest.form</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="inherit_id" ref="stock.view_stock_move_nosuggest_operations" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='move_line_nosuggest_ids']" position="attributes">
|
||||
<attribute name="context">{'tree_view_ref': 'mrp_subcontracting.mrp_subcontracting_view_stock_move_line_operation_tree','default_picking_id': picking_id, 'default_move_id': id, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id, 'default_company_id': company_id}</attribute>
|
||||
<attribute name="context">{'list_view_ref': 'mrp_subcontracting.mrp_subcontracting_view_stock_move_line_operation_tree', 'default_product_uom_id': product_uom, 'default_picking_id': picking_id, 'default_move_id': id, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id, 'default_company_id': company_id}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_subcontracting_move_form_view" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.move.form.view</field>
|
||||
<field name="model">stock.move</field>
|
||||
|
|
@ -92,38 +77,36 @@
|
|||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="product_uom_category_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="product_id" invisible="1"/>
|
||||
<field name="product_id" invisible="1" readonly="state == 'done'"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="picking_id" invisible="1"/>
|
||||
<field name="picking_id" invisible="1" readonly="state == 'done'"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<field name="has_tracking" invisible="1"/>
|
||||
<field name="product_uom" invisible="1"/>
|
||||
<field name="product_uom_qty" invisible="1"/>
|
||||
<field name="product_uom_qty" invisible="1" readonly="state == 'done'"/>
|
||||
<group>
|
||||
<field name="order_finished_lot_id"/>
|
||||
<field name="product_uom" groups="uom.group_uom"/>
|
||||
<field name="quantity_done" string="Total Consumed" readonly="1"/>
|
||||
<field name="order_finished_lot_ids"/>
|
||||
<field name="product_uom" groups="uom.group_uom" widget="many2one_uom"/>
|
||||
<field name="quantity" string="Total Consumed" readonly="1"/>
|
||||
</group>
|
||||
<field name="move_line_ids"
|
||||
attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"
|
||||
readonly="state in ['done', 'cancel']"
|
||||
context="{'default_product_uom_id': product_uom, 'default_picking_id': picking_id, 'default_move_id': id, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id, 'default_company_id': company_id}">
|
||||
<tree editable="bottom" decoration-muted="state in ('done', 'cancel')">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="tracking" invisible="1"/>
|
||||
<field name="product_uom_id" invisible="1"/>
|
||||
<field name="product_uom_category_id" invisible="1"/>
|
||||
<field name="picking_id" invisible="1"/>
|
||||
<field name="move_id" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<list editable="bottom" decoration-muted="state in ('done', 'cancel')">
|
||||
<field name="company_id" column_invisible="True"/>
|
||||
<field name="state" column_invisible="True"/>
|
||||
<field name="tracking" column_invisible="True"/>
|
||||
<field name="product_uom_id" column_invisible="True"/>
|
||||
<field name="picking_id" column_invisible="True"/>
|
||||
<field name="move_id" column_invisible="True"/>
|
||||
<field name="location_id" column_invisible="True"/>
|
||||
<field name="location_dest_id" column_invisible="True"/>
|
||||
<field name="product_id" readonly="1" force_save="1"/>
|
||||
<field name="qty_done"/>
|
||||
<field name="lot_id" attrs="{'column_invisible':[('parent.has_tracking', 'not in', ('serial', 'lot'))], 'required': [('tracking', 'in', ('serial', 'lot'))]}" context="{'default_product_id': product_id, 'default_company_id': company_id}" groups="stock.group_production_lot"/>
|
||||
</tree>
|
||||
<field name="quantity"/>
|
||||
<field name="lot_id" column_invisible="parent.has_tracking not in ('serial', 'lot')" required="tracking in ('serial', 'lot')" context="{'default_product_id': product_id}" groups="stock.group_production_lot"/>
|
||||
</list>
|
||||
</field>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
@ -136,46 +119,42 @@
|
|||
<field name="priority">1000</field>
|
||||
<field name="inherit_id" ref="mrp_subcontracting_move_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='order_finished_lot_id']" position="attributes">
|
||||
<xpath expr="//field[@name='order_finished_lot_ids']" position="attributes">
|
||||
<attribute name="options">{'no_open': True}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//tree" position="attributes">
|
||||
<xpath expr="//list" position="attributes">
|
||||
<attribute name="no_open">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//tree/field[@name='lot_id']" position="attributes">
|
||||
<xpath expr="//list/field[@name='lot_id']" position="attributes">
|
||||
<attribute name="options">{'no_create_edit': True, 'no_open': True}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="mrp_subcontracting_move_tree_view" model="ir.ui.view">
|
||||
<field name="name">mrp.subcontracting.move.tree.view</field>
|
||||
<field name="name">mrp.subcontracting.move.list.view</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree delete="0" create="0" decoration-muted="is_done" decoration-warning="quantity_done - product_uom_qty > 0.0001" decoration-success="not is_done and quantity_done - product_uom_qty < 0.0001" js_class="subcontracting_portal_move_list_view">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="product_uom_category_id" invisible="1"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="unit_factor" invisible="1"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="picking_type_id" invisible="1"/>
|
||||
<field name="has_tracking" invisible="1"/>
|
||||
<field name="operation_id" invisible="1"/>
|
||||
<field name="is_done" invisible="1"/>
|
||||
<field name="bom_line_id" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="warehouse_id" invisible="1"/>
|
||||
<field name="product_uom_qty" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<field name="state" invisible="1" force_save="1"/>
|
||||
<field name="raw_material_production_id" invisible="1"/>
|
||||
<field name="product_id" required="1"/>
|
||||
<field name="order_finished_lot_id"/>
|
||||
<field name="reserved_availability" attrs="{'invisible': [('is_done', '=', True)]}" string="Reserved"/>
|
||||
<field name="quantity_done" string="Consumed" readonly="1"/>
|
||||
<field name="product_uom" groups="uom.group_uom"/>
|
||||
</tree>
|
||||
<list delete="0" create="0" decoration-muted="state in ['done', 'cancel']" decoration-warning="quantity - product_uom_qty > 0.0001" decoration-success="state not in ['done', 'cancel'] and quantity - product_uom_qty < 0.0001" js_class="subcontracting_portal_move_list_view">
|
||||
<field name="company_id" column_invisible="True"/>
|
||||
<field name="sequence" column_invisible="True"/>
|
||||
<field name="unit_factor" column_invisible="True"/>
|
||||
<field name="date" column_invisible="True"/>
|
||||
<field name="picking_type_id" column_invisible="True"/>
|
||||
<field name="has_tracking" column_invisible="True"/>
|
||||
<field name="operation_id" column_invisible="True"/>
|
||||
<field name="bom_line_id" column_invisible="True"/>
|
||||
<field name="location_id" column_invisible="True"/>
|
||||
<field name="warehouse_id" column_invisible="True"/>
|
||||
<field name="product_uom_qty" column_invisible="True" readonly="state == 'done'"/>
|
||||
<field name="location_dest_id" column_invisible="True"/>
|
||||
<field name="state" column_invisible="True" force_save="1"/>
|
||||
<field name="raw_material_production_id" column_invisible="True"/>
|
||||
<field name="product_id" required="1" readonly="state == 'done'"/>
|
||||
<field name="order_finished_lot_ids"/>
|
||||
<field name="quantity" string="Consumed" readonly="1"/>
|
||||
<field name="product_uom" groups="uom.group_uom" widget="many2one_uom"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_move_search" model="ir.ui.view">
|
||||
|
|
@ -184,7 +163,7 @@
|
|||
<field name="inherit_id" ref="stock.view_move_search" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="order_finished_lot_id"/>
|
||||
<field name="order_finished_lot_ids"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -5,17 +5,12 @@
|
|||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='button_validate'][hasclass('o_btn_validate')]" position="before">
|
||||
<field name="display_action_record_components" invisible="1"/>
|
||||
<button name="action_record_components" class="oe_highlight" attrs="{'invisible': [('display_action_record_components', '!=', 'mandatory')]}" string="Record components" type="object" data-hotkey="shift+x"/>
|
||||
<button name="action_record_components" attrs="{'invisible': [('display_action_record_components', '!=', 'facultative')]}" string="Record components" type="object" data-hotkey="shift+x"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='move_ids_without_package']//tree//button[@name='action_show_details']" position="after">
|
||||
<field name="show_subcontracting_details_visible" invisible="1"/>
|
||||
<button name="action_show_subcontract_details" string="Register components for subcontracted product" type="object" icon="fa-sitemap"
|
||||
width="0.1" attrs="{'invisible': [('show_subcontracting_details_visible', '=', False)]}"/>
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<field invisible="True" name="show_subcontracting_details_visible"/>
|
||||
<button name="action_show_subcontract_details" string="Subcontracting Productions"
|
||||
type="object" class="oe_stat_button" icon="fa-sitemap"
|
||||
invisible="not show_subcontracting_details_visible"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,20 +2,31 @@
|
|||
<odoo>
|
||||
|
||||
<template id="portal_my_home_productions" name="Productions" customize_show="True" inherit_id="portal.portal_my_home" priority="20">
|
||||
<xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
|
||||
<xpath expr="//div[hasclass('o_portal_docs')]" position="before">
|
||||
<t t-set="portal_vendor_category_enable" t-value="True"/>
|
||||
</xpath>
|
||||
<div id="portal_vendor_category" position="inside">
|
||||
<t t-call="portal.portal_docs_entry">
|
||||
<t t-set="title">Productions</t>
|
||||
<t t-set="icon" t-value="'/mrp_subcontracting/static/src/img/manufacturing.svg'"/>
|
||||
<t t-set="title">Manufacturing Orders</t>
|
||||
<t t-set="text">Follow manufacturing orders you have to fulfill</t>
|
||||
<t t-set="url" t-value="'/my/productions'"/>
|
||||
<t t-set="placeholder_count" t-value="'production_count'"/>
|
||||
</t>
|
||||
</xpath>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template id="portal_my_home_menu_production" name="Portal layout : production menu entries" inherit_id="portal.portal_breadcrumbs" priority="25">
|
||||
<xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
|
||||
<li t-if="page_name == 'production' or production" t-attf-class="breadcrumb-item #{'active' if not pickings else ''}">
|
||||
<t>Productions</t>
|
||||
</li>
|
||||
<t t-if="title">
|
||||
<li t-if="page_name == 'production' or picking" t-attf-class="breadcrumb-item #{'active' if breadcrumbs_url else ''}">
|
||||
<a t-if="breadcrumbs_url" t-attf-href="/my/productions{{ keep_query() }}">Productions</a>
|
||||
<t t-else="" t-esc="title"></t>
|
||||
</li>
|
||||
<li t-if="picking" class="breadcrumb-item active">
|
||||
<t t-out="picking.name"/>
|
||||
</li>
|
||||
</t>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
|
@ -28,7 +39,7 @@
|
|||
</t>
|
||||
|
||||
<t t-if="not pickings">
|
||||
<p>There are currently no productions for your account.</p>
|
||||
<p class="alert alert-warning">There are currently no productions for your account.</p>
|
||||
</t>
|
||||
|
||||
<t t-if="pickings" t-call="portal.portal_table">
|
||||
|
|
@ -56,13 +67,23 @@
|
|||
|
||||
<template id="subcontracting_portal" name="Subcontracting View in Portal">
|
||||
<t t-call="portal.frontend_layout">
|
||||
<t t-set="no_footer" t-value="true"/>
|
||||
<t t-call="mrp_subcontracting.subcontracting"/>
|
||||
<div class="o_portal container mt-3">
|
||||
<t t-call="mrp_subcontracting.portal_my_home_menu_production">
|
||||
<t t-set="title" t-value="picking.name"/>
|
||||
<t t-set="breadcrumbs_url">/my/productions</t>
|
||||
</t>
|
||||
</div>
|
||||
<div class="o_portal container mt-3 o_subcontracting_portal">
|
||||
<div class="o_subcontracting_portal">
|
||||
<t t-set="no_footer" t-value="true"/>
|
||||
<t t-call="mrp_subcontracting.subcontracting"/>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="subcontracting" name="Subcontracting Portal View">
|
||||
<iframe width="100%" height="100%" frameborder="0" t-attf-src="/my/productions/{{ picking_id }}/subcontracting_portal"/>
|
||||
<iframe width="100%" height="100%" frameborder="0" t-attf-src="/my/productions/{{ picking.id }}/subcontracting_portal" class="border rounded"/>
|
||||
</template>
|
||||
|
||||
<template id="subcontracting_portal_embed" name="Subcontracting Portal">
|
||||
|
|
@ -72,11 +93,7 @@
|
|||
odoo.__session_info__ = <t t-out="json.dumps(session_info)"/>;
|
||||
</script>
|
||||
<base target="_parent"/>
|
||||
<t t-call-assets="web.assets_common" t-js="false"/>
|
||||
<t t-call-assets="web.assets_backend" t-js="false"/>
|
||||
<t t-call-assets="web.assets_common" t-css="false"/>
|
||||
<t t-call-assets="mrp_subcontracting.webclient" t-css="false"/>
|
||||
<t t-call="web.conditional_assets_tests"/>
|
||||
<t t-call-assets="mrp_subcontracting.webclient"/>
|
||||
</t>
|
||||
<t t-set="head" t-value="head_subcontracting_portal + (head or '')"/>
|
||||
<t t-set="body_classname" t-value="'o_web_client o_subcontracting_portal'"/>
|
||||
|
|
|
|||
|
|
@ -15,31 +15,30 @@
|
|||
</div>
|
||||
<group>
|
||||
<field name="state" invisible='1'/>
|
||||
<field name="scheduled_date" attrs="{'required': [('id', '!=', False)]}" decoration-warning="state not in ('done', 'cancel') and scheduled_date < now" decoration-danger="state not in ('done', 'cancel') and scheduled_date < current_date" decoration-bf="state not in ('done', 'cancel') and (scheduled_date < current_date or scheduled_date < now)"/>
|
||||
<field name="date_deadline" attrs="{'invisible': ['|', ('state', 'in', ('done', 'cancel')), ('date_deadline', '=', False)]}" decoration-danger="date_deadline and date_deadline < current_date" decoration-bf="date_deadline and date_deadline < current_date"/>
|
||||
<field name="origin" placeholder="e.g. PO0032"/>
|
||||
<field name="scheduled_date" readonly="state in ['cancel', 'done']" required="id" decoration-warning="state not in ('done', 'cancel') and scheduled_date < now" decoration-danger="state not in ('done', 'cancel') and scheduled_date < current_date" decoration-bf="state not in ('done', 'cancel') and (scheduled_date < current_date or scheduled_date < now)"/>
|
||||
<field name="date_deadline" invisible="state in ('done', 'cancel') or not date_deadline" decoration-danger="date_deadline and date_deadline < current_date" decoration-bf="date_deadline and date_deadline < current_date"/>
|
||||
<field name="origin" placeholder="e.g. PO0032" readonly="state in ['cancel', 'done']"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Operations" name="operations">
|
||||
<field name="move_ids_without_package" mode="tree">
|
||||
<tree no_open="1">
|
||||
<field name="id" readonly="1" invisible="1"/>
|
||||
<field name="move_ids" mode="list" context="{'default_picking_id': id, 'default_picking_type_id': picking_type_id, 'default_company_id': company_id, 'default_date': scheduled_date}">
|
||||
<list no_open="1">
|
||||
<field name="id" readonly="1" column_invisible="True"/>
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="show_details_visible" invisible="1"/>
|
||||
<field name="show_details_visible" column_invisible="True"/>
|
||||
<field name="description_picking" string="Description" optional="hide"/>
|
||||
<field name="date" optional="hide"/>
|
||||
<field name="date_deadline" optional="hide"/>
|
||||
<field name="product_packaging_id" groups="product.group_stock_packaging"/>
|
||||
<field name="product_uom_qty" string="Demand" readonly="1"/>
|
||||
<field name="product_qty" invisible="1" readonly="1"/>
|
||||
<field name="quantity_done" string="Done"/>
|
||||
<field name="product_uom" groups="uom.group_uom"/>
|
||||
<button name="action_show_details" type="object" icon="fa-list" width="0.1" title="Details"
|
||||
attrs="{'invisible': [('show_details_visible', '=', False)]}" context="{'is_subcontracting_portal': 1}"/>
|
||||
<field name="show_subcontracting_details_visible" invisible="1"/>
|
||||
<field name="product_qty" readonly="1" column_invisible="True"/>
|
||||
<field name="quantity" string="Done"/>
|
||||
<field name="product_uom" groups="uom.group_uom" widget="many2one_uom"/>
|
||||
<button name="action_show_details" type="object" icon="fa-list" title="Details"
|
||||
invisible="not show_details_visible" context="{'is_subcontracting_portal': 1}"/>
|
||||
<field name="show_subcontracting_details_visible" column_invisible="True"/>
|
||||
<button name="action_show_subcontract_details" string="Register components for subcontracted product" type="object" icon="fa-sitemap"
|
||||
width="0.1" attrs="{'invisible': [('show_subcontracting_details_visible', '=', False)]}"/>
|
||||
</tree>
|
||||
invisible="not show_subcontracting_details_visible"/>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="product_supplierinfo_subcontractor_tree_view" model="ir.ui.view">
|
||||
<field name="name">product.supplierinfo.subcontractor.tree.view</field>
|
||||
<field name="name">product.supplierinfo.subcontractor.list.view</field>
|
||||
<field name="model">product.supplierinfo</field>
|
||||
<field name="inherit_id" ref="product.product_supplierinfo_tree_view"/>
|
||||
<field name="arch" type="xml">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue