182 lines
12 KiB
XML
182 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
<record id="custom_mrp_production_tree_view" model="ir.ui.view">
|
|
<field name="name">custom.mrp.production.tree</field>
|
|
<field name="model">mrp.production</field>
|
|
<field name="inherit_id" ref="mrp.mrp_production_tree_view"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='product_id']" position="replace"/>
|
|
<xpath expr="//field[@name='product_qty']" position="replace"/>
|
|
<xpath expr="//field[@name='product_uom_id']" position="replace"/>
|
|
<xpath expr="//field[@name='reservation_state']" position="replace"/>
|
|
<xpath expr="//field[@name='date_deadline']" position="replace"/>
|
|
<xpath expr="//field[@name='name']" position="after">
|
|
<field name="product_id" readonly="1" optional="show"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='product_id']" position="after">
|
|
<field name="product_qty" sum="Total Qty" string="数量" readonly="1" optional="show"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='product_qty']" position="after">
|
|
<field name="product_uom_id" string="计量单位" options="{'no_open':True,'no_create':True}" groups="uom.group_uom" optional="show"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='date_planned_start']" position="replace">
|
|
<field name="date_planned_start" optional="show"/>
|
|
<field name="date_planned_finished" string="计划结束时间"/>
|
|
<!-- <field name="date_deadline" widget="remaining_days" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])]}" optional="show"/> -->
|
|
</xpath>
|
|
<xpath expr="//field[@name='production_real_duration']" position="after">
|
|
<field name="reservation_state" optional="hide" decoration-danger="reservation_state == 'confirmed'" decoration-success="reservation_state == 'assigned'"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='state']" position="before">
|
|
<field name="schedule_state" optional="show"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='activity_ids']" position="replace">
|
|
<field name="activity_ids" string="下一个活动" widget="list_activity" optional="hide"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='origin']" position="replace">
|
|
<field name="origin" optional="hide"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='components_availability']" position="replace">
|
|
<field name="components_availability" options='{"lazy": true}'
|
|
attrs="{'invisible': [('state', 'not in', ['confirmed', 'progress'])]}"
|
|
optional="hide"
|
|
decoration-success="reservation_state == 'assigned' or components_availability_state == 'available'"
|
|
decoration-warning="reservation_state != 'assigned' and components_availability_state in ('expected', 'available')"
|
|
decoration-danger="reservation_state != 'assigned' and components_availability_state == 'late'"/>
|
|
</xpath>
|
|
<!-- <xpath expr="//field[@name='state']" position="after"> -->
|
|
<!-- <button name="action_view_production_schedule" string="生产排程" type="object" attrs="{'invisible': [('state', 'in', ['draft', 'cancel','已排程','progress','done','to_close'])]}"/> -->
|
|
<!-- <button name="cancel_plan" string="取消排程" type="object" attrs="{'invisible': [('state', 'in', ['draft', 'cancel','progress','done','to_close','confirmed'])]}"/> -->
|
|
<!-- </xpath> -->
|
|
</field>
|
|
</record>
|
|
|
|
<!-- 增加权限相关的按钮 -->
|
|
<record id="custom_mrp_production_form_view" model="ir.ui.view">
|
|
<field name="name">custom.mrp.production.form</field>
|
|
<field name="model">mrp.production</field>
|
|
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//form//header//button[@name='action_confirm']" position="after">
|
|
<field name="active" invisible="1"/>
|
|
<field name="check_status" invisible="1"/>
|
|
<!-- <button name="archive" type="object" string="归档" icon="fa-archive" class="oe_highlight" attrs="{'invisible': [('active', '=', False)]}"/> -->
|
|
<!-- <button name="unarchive" type="object" string="取消归档" icon="fa-archive" class="oe_highlight" attrs="{'invisible': [('active', '=', True)]}"/> -->
|
|
<button name="action_check" string="审核" type="object" class="oe_highlight" attrs="{'invisible': [('check_status', '=', True)]}" groups="sf_base.group_plan_director"/>
|
|
<!-- <button name="action_uncheck" string="禁用" type="object" class="oe_highlight" attrs="{'invisible': [('check_status', '=', False)]}" groups="sf_base.group_plan_director"/> -->
|
|
</xpath>
|
|
<xpath expr="//field[@name='user_id']" position="after">
|
|
<field name="programming_no"/>
|
|
<field name="work_state" invisible="1"/>
|
|
<field name="programming_state"/>
|
|
</xpath>
|
|
|
|
</field>
|
|
</record>
|
|
|
|
<!-- <record id="custom_mrp_production_form_view" model="ir.ui.view"> -->
|
|
<!-- <field name="name">custom.mrp.production.form</field> -->
|
|
<!-- <field name="model">mrp.production</field> -->
|
|
<!-- <field name="inherit_id" ref="mrp.mrp_production_form_view"/> -->
|
|
<!-- <field name="arch" type="xml"> -->
|
|
<!-- <xpath expr="//header//field[@name='state']" position="replace"> -->
|
|
<!-- <field name="state" widget="statusbar" statusbar_visible="draft,confirmed,已排程,progress,done"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//header" position="inside"> -->
|
|
<!-- <button name="action_view_production_schedule" string="生产排程" type="object" attrs="{'invisible': [('state', 'in', ['draft', 'cancel','已排程','progress','done','to_close'])]}"/> -->
|
|
<!-- <button name="cancel_plan" string="取消排程" type="object" attrs="{'invisible': [('state', 'in', ['draft', 'cancel','progress','done','to_close','confirmed'])]}"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//sheet//group//group//field[@name='product_id']" position="after"> -->
|
|
<!-- <field name="production_line_id"/> -->
|
|
<!-- <field name="date_planned_finished" string="计划结束时间"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//sheet//group//group//field[@name='date_planned_start']" position="after"> -->
|
|
<!-- <field name="date_planned_finished"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- </field> -->
|
|
<!-- </record> -->
|
|
|
|
<record id="custom_view_mrp_production_filter" model="ir.ui.view">
|
|
<field name="name">custom.mrp.production.select</field>
|
|
<field name="model">mrp.production</field>
|
|
<field name="inherit_id" ref="mrp.view_mrp_production_filter"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//search" position="inside">
|
|
<searchpanel class="account_root">
|
|
<field name="state" icon="fa-filter"/>
|
|
</searchpanel>
|
|
</xpath>
|
|
<filter name='todo' position="replace"/>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- <xpath expr="//filter[@name='filter_draft']" position="after"> -->
|
|
<!-- <filter string="已完成" name="filter_done" domain="[('state', '=', 'done')]"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//filter[@name='filter_draft']" position="after"> -->
|
|
<!-- <filter string="已取消" name="filter_cancel" domain="[('state', '=', 'cancel')]"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//filter[@name='filter_draft']" position="after"> -->
|
|
<!-- <filter string="进行中" name="filter_progress" domain="[('state', '=', 'progress')]"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//filter[@name='filter_draft']" position="after"> -->
|
|
<!-- <filter string="已确认" name="filter_confirmed" domain="[('state', '=', 'confirmed')]"/> -->
|
|
<!-- </xpath> -->
|
|
<!-- <xpath expr="//filter[@name='filter_draft']" position="after"> -->
|
|
<!-- <filter string="草稿" name="filter_draft" domain="[('state', '=', 'draft')]"/> -->
|
|
<!-- </xpath> -->
|
|
|
|
|
|
<!-- 产品模板修改>>>增加“规格”字段specification_id -->
|
|
<record id="custom_product_template_kanban_view" model="ir.ui.view">
|
|
<field name="name">custom.Product.template.product.kanban</field>
|
|
<field name="model">product.template</field>
|
|
<field name="inherit_id" ref="product.product_template_kanban_view"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//kanban" position="replace">
|
|
<kanban sample="1" class="o_kanban_product_template">
|
|
<field name="id"/>
|
|
<field name="product_variant_count"/>
|
|
<field name="currency_id"/>
|
|
<field name="activity_state"/>
|
|
<progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div class="oe_kanban_card oe_kanban_global_click">
|
|
<div class="o_kanban_image me-1">
|
|
<img t-att-src="kanban_image('product.template', 'image_128', record.id.raw_value)" alt="Product" class="o_image_64_contain"/>
|
|
</div>
|
|
<div class="oe_kanban_details">
|
|
<div class="o_kanban_record_top mb-0">
|
|
<div class="o_kanban_record_headings">
|
|
<strong class="o_kanban_record_title">
|
|
<field name="name"/>
|
|
</strong>
|
|
</div>
|
|
<field name="priority" widget="priority"/>
|
|
</div>
|
|
|
|
<div name="product_specification_id" class="mt-1">
|
|
规格: <field name="specification_id"></field>
|
|
</div>
|
|
<t t-if="record.default_code.value">[<field name="default_code"/>]</t>
|
|
<div t-if="record.product_variant_count.value > 1" groups="product.group_product_variant">
|
|
<strong>
|
|
<t t-esc="record.product_variant_count.value"/> Variants
|
|
</strong>
|
|
</div>
|
|
<div name="product_lst_price" class="mt-1">
|
|
价格: <field name="list_price" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': True}"></field>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo> |