Files
test/sf_sale/views/sale_order_view.xml

296 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<record model="ir.ui.view" id="view_sale_order_form_inherit_sf">
<field name="name">sale.order.form.inherit.sf</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='action_view_delivery']" position="attributes">
<attribute name="groups">sf_base.group_sale_salemanager,sf_base.group_sale_director</attribute>
</xpath>
<xpath expr="//button[@name='action_view_mrp_production']" position="attributes">
<attribute name="groups">
mrp.group_mrp_user,sf_base.group_sale_salemanager,sf_base.group_sale_director
</attribute>
</xpath>
<xpath expr="//field[@name='user_id']" position="replace">
<field name="user_id" widget="many2one_avatar_user" context="{'is_sale': True }"/>
</xpath>
<xpath expr="//form/header/button[@name='action_confirm']" position="after">
<button name="submit" string="提交" type="object"
context="{'default_order_id':active_id}"
attrs="{'invisible': [('check_status','!=', False)]}"
class="oe_highlight"/>
</xpath>
<xpath expr="//form/header/button[@name='action_confirm']" position="after">
<field name="check_status" invisible="1"/>
<button name="sf_sale.action_sale_order_check_wizard" string="审核" type="action"
context="{'default_order_id':active_id}" groups="sf_base.group_sale_director"
attrs="{'invisible': ['|',('check_status','in', ['approved',False,'fail']),('state', 'in', ['cancel'])]}"
class="oe_highlight"/>
</xpath>
<!-- <xpath expr="//form/header/button[@name='action_confirm'][1]" position="attributes">-->
<!-- <attribute name="attrs">{'invisible': [('check_status', '!=', 'approved'),('state', 'not in',-->
<!-- ['sent'])]}-->
<!-- </attribute>-->
<!-- </xpath>-->
<xpath expr="//form/header/button[@name='action_confirm'][2]" position="replace">
<button name="action_confirm" data-hotkey="v"
string="确认接单" type="object" context="{'validate_analytic': True}"
attrs="{'invisible': ['|', ('state', 'in', ['cancel']), '|','&amp;',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;','&amp;',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel']),('delivery_status', '!=', False)]}"/>
</xpath>
<xpath expr="//form/header/button[@name='action_cancel']" position="attributes">
<attribute name="attrs">{'invisible': ['|', ('state', 'in', ['cancel']), '|','&amp;',
('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;','&amp;',('check_status',
'=', 'approved'),('state', 'in', ['sale','cancel']),('delivery_status', '!=', False)]}
</attribute>
<attribute name="string">拒绝接单</attribute>
</xpath>
<!-- ======================= 销售订单按钮顺序优化 start ======================= -->
<xpath expr="//form/header/button[@name='action_quotation_send'][1]" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//form/header/button[@name='action_quotation_send'][4]" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//form/header/button[@id='create_invoice']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//form/header/button[@id='create_invoice_percentage']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//form/header/button[@name='action_cancel']" position="after">
<button id="create_invoice" name="%(sale.action_view_sale_advance_payment_inv)d"
string="创建结算单"
type="action" class="btn-primary" data-hotkey="q"
attrs="{'invisible': [('invoice_status', '!=', 'to invoice')]}"/>
<button id="create_invoice_percentage" name="%(sale.action_view_sale_advance_payment_inv)d"
string="创建结算单"
type="action" context="{'default_advance_payment_method': 'percentage'}" data-hotkey="q"
attrs="{'invisible': ['|',('invoice_status', '!=', 'no'), ('state', '!=', 'sale')]}"/>
<button name="action_quotation_send" string="通过EMAIL发送" type="object"
class="btn-primary" data-hotkey="g" context="{'validate_analytic': True}"
attrs="{'invisible': ['|','&amp;',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&amp;',('check_status', '=', 'approved'),('state', 'in', ['sale','cancel'])]}"/>
<button name="action_quotation_send" string="通过EMAIL发送" type="object" states="sent,sale"
data-hotkey="g" context="{'validate_analytic': True}"/>
</xpath>
<!-- ====================== 销售订单按钮顺序优化 end======================== -->
<xpath expr="//form/header/button[@name='action_draft']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<!-- <xpath expr="//form/header/button[@name='action_draft']" position="replace">-->
<!-- <button name="action_draft" states="cancel" type="object" string="设为报价" data-hotkey="w"-->
<!-- invisible="1"/>-->
<!-- </xpath>-->
<field name="partner_id" position="replace">
<field name="partner_id" widget="res_partner_many2one" context="{'is_customer': True }"
options='{"always_reload": True,"no_create": True}'/>
</field>
<field name="payment_term_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="payment_term_id" position="after">
<field name="deadline_of_delivery" readonly="0"/>
<field name="payments_way" invisible="1"/>
<field name="pay_way" invisible="1"/>
<!-- <field name="schedule_status" readonly="1"/> -->
</field>
<xpath expr="//field[@name='order_line']/tree/field[@name='name']" position="before">
<field name="model_glb_file" widget="Viewer3D" optional="show"
string="模型文件" attrs="{'readonly': [('state', 'in', ['draft'])]}"/>
</xpath>
<xpath expr="//field[@name='order_line']/tree/field[@name='price_subtotal']" position="after">
<field name="remark"/>
</xpath>
<xpath expr="//field[@name='order_line']/tree/field[@name='product_template_id']" position="attributes">
<attribute name="options">{'no_create': True}</attribute>
<attribute name="context">{'is_sale_order_line': True }</attribute>
</xpath>
<xpath expr="//field[@name='order_line']" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</xpath>
<xpath expr="//field[@name='order_line']/tree/field[@name='name']" position="replace">
<field name="name" widget="section_and_note_text" optional="show"
string="参数说明(长/宽/高/体积/精度/材质)"/>
<field name="is_incoming_material"/>
</xpath>
<field name="user_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="team_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="fiscal_position_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="client_order_ref" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="tag_ids" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="commitment_date" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="origin" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="campaign_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="medium_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="source_id" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="signed_by" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="signed_on" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<field name="signature" position="attributes">
<attribute name="attrs">{'readonly': [('state', 'in', ['cancel','sale'])]}</attribute>
</field>
<xpath expr="//button[@name='action_cancel']" position="attributes">
<attribute name="string">拒绝接单</attribute>
</xpath>
<!--新增带料字段-->
<xpath expr="//field[@name='order_line']/form//group//group//field[@name='analytic_distribution']" position="after">
<field name="is_incoming_material"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="view_sale_management_order_form_quote_inherit_sf">
<field name="name">sale.management.order.form.quote.inherit.sf</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale_management.sale_order_form_quote"/>
<field name="arch" type="xml">
<field name="date_order" position="attributes">
<attribute name="string">下单日期</attribute>
</field>
<field name="sale_order_template_id" position="after">
<field name="remark" attrs="{'readonly': [('state', 'in', ('sale','cancel'))]}"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="view_order_form_inherit_sale_stock_sf">
<field name="name">view_order_form_inherit_sale_stock.sf</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale_stock.view_order_form_inherit_sale_stock"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='picking_policy']" position="before">
<field name="person_of_delivery" string="收货人"
attrs="{'readonly': [('state', 'in', ('sale','cancel'))]}"/>
<field name="telephone_of_delivery" string="电话号码"
attrs="{'readonly': [('state', 'in', ('sale','cancel'))]}"/>
<field name="address_of_delivery" string="联系地址"
attrs="{'readonly': [('state', 'in', ('sale','cancel'))]}"/>
</xpath>
</field>
</record>
<record id="view_quotation_with_onboarding_tree_inherit_sf" model="ir.ui.view">
<field name="name">sale.order.quotation.tree.inherit.sf</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_quotation_tree_with_onboarding"/>
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="default_order">create_date desc</attribute>
<attribute name="delete">False</attribute>
</tree>
<field name="name" position="attributes">
<attribute name="string">订单号</attribute>
</field>
<field name="create_date" position="attributes">
<attribute name="string">下单时间</attribute>
</field>
<!-- <field name="state" position="after">
<field name="check_status" widget="badge"
decoration-success="check_status == 'approved'"
decoration-warning="check_status == 'pending'"
decoration-danger="check_status == 'fail'"/>
</field> -->
</field>
</record>
<record id="sale_order_view_search_inherit_sale_message" model="ir.ui.view">
<field name="name">sale.order.message.search.view</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.sale_order_view_search_inherit_sale"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//filter[@name='upselling']" position="after">
<separator/>
<filter string="预警" name="filter_order_warning" domain="[('delivery_warning', '=', 'warning')]"/>
<filter string="逾期" name="filter_order_overdue" domain="[('delivery_warning', '=', 'overdue')]"/>
</xpath>
</field>
</record>
<record id="view_order_tree_inherit_sf" model="ir.ui.view">
<field name="name">sale.order.tree</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_tree"/>
<field name="arch" type="xml">
<tree position="attributes">
<!-- <attribute name="default_order">schedule_status desc,date_order asc</attribute> -->
<attribute name="default_order">create_date desc</attribute>
<attribute name="create">False</attribute>
<attribute name="decoration-warning">delivery_warning == 'warning'</attribute>
<attribute name="decoration-danger">delivery_warning == 'overdue'</attribute>
</tree>
<field name="name" position="attributes">
<attribute name="string">订单号</attribute>
</field>
<field name="amount_total" position="after">
<field name="delivery_warning" invisible="1"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="view_product_template_form_inherit_sf">
<field name="name">product.template.form.inherit.sf</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="sale.product_template_form_view"/>
<field name="arch" type="xml">
<form position="attributes">
<attribute name="delete">False</attribute>
</form>
<field name="name" position="replace">
<field name='name' placeholder="例如:奶酪汉堡" attrs="{'readonly': [('id', '!=', False)]}"/>
</field>
<field name="categ_id" position="replace">
<field name='categ_id' invisible="1"/>
</field>
<field name="product_tag_ids" position="after">
<field name="default_code" attrs="{'invisible': [('product_variant_count', '&gt;', 1)]}"/>
<field name="barcode" attrs="{'invisible': [('product_variant_count', '&gt;', 1)]}"/>
</field>
</field>
</record>
<record id="sale.product_template_action" model="ir.actions.act_window">
<field name="context">{"search_default_categ_id":1,
"search_default_filter_to_sell":1,"sale_multi_pricelist_product_template": 1}
</field>
</record>
<record id="sale.action_orders" model="ir.actions.act_window">
<field name="search_view_id" ref="sale_order_view_search_inherit_sale_message"/>
<field name="context">{ 'search_default_filter_order_warning':1,'search_default_filter_order_overdue':1}
</field>
</record>
</data>
</odoo>