296 lines
18 KiB
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']), '|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&','&',('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']), '|','&',
|
|
('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&','&',('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': ['|','&',('check_status', '!=', 'approved'),('state', 'in', ['draft','cancel']),'&',('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', '>', 1)]}"/>
|
|
<field name="barcode" attrs="{'invisible': [('product_variant_count', '>', 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> |