You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
3.9 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. Copyright 2018 ACSONE SA/NV.
  4. License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  5. -->
  6. <odoo>
  7. <record id="view_order_form" model="ir.ui.view">
  8. <field name="name">sale.order.form (in product_contract)</field>
  9. <field name="model">sale.order</field>
  10. <field name="inherit_id" ref="sale.view_order_form"/>
  11. <field name="arch" type="xml">
  12. <xpath expr="//div[@name='button_box']" position="inside">
  13. <button name="action_show_contracts"
  14. type="object" icon="fa-book"
  15. class="oe_stat_button"
  16. attrs="{'invisible': ['|', ('is_contract', '!=', True), ('state', 'not in', ['sale', 'done'])]}">
  17. <field string="Contracts"
  18. name="contract_count"
  19. widget="statinfo"/>
  20. </button>
  21. </xpath>
  22. <xpath expr="//field[@name='order_line']" position="before">
  23. <field name="is_contract" invisible="1"/>
  24. </xpath>
  25. <xpath expr="//field[@name='order_line']/form//field[@name='product_id']"
  26. position="after">
  27. <field name="contract_template_id" invisible="1"/>
  28. <field name="contract_id"
  29. attrs="{'invisible': [('is_contract', '=', False)]}"
  30. domain="[('partner_id','=',parent.partner_id),('contract_template_id','=',contract_template_id)]"/>
  31. <field name="contract_line_id"
  32. attrs="{'invisible': [('is_contract', '=', False)]}"
  33. domain="[('contract_id','=',contract_id)]"/>
  34. </xpath>
  35. <xpath expr="//field[@name='order_line']/form//field[@name='tax_id']/parent::group"
  36. position="after">
  37. <separator colspan="4" string="Recurrence Invoicing"
  38. attrs="{'invisible': [('is_contract', '=', False)]}"/>
  39. <group attrs="{'invisible': [('is_contract', '=', False)]}">
  40. <field name="is_contract" invisible="1"/>
  41. <field name="recurring_invoicing_type"
  42. attrs="{'invisible': [('is_contract', '=', False)],
  43. 'required':[('is_contract', '=', True)]}"/>
  44. </group>
  45. <group attrs="{'invisible': [('is_contract', '=', False)]}">
  46. <label for="recurring_interval"/>
  47. <div>
  48. <field name="recurring_interval"
  49. class="oe_inline" nolabel="1"
  50. attrs="{'required':[('is_contract', '=', True)]}"/>
  51. <field name="recurring_rule_type"
  52. class="oe_inline" nolabel="1"
  53. attrs="{'required':[('is_contract', '=', True)]}"/>
  54. </div>
  55. </group>
  56. <group attrs="{'invisible': [('is_contract', '=', False)]}">
  57. <field name="date_start"/>
  58. </group>
  59. <group attrs="{'invisible': [('is_contract', '=', False)]}">
  60. <field name="date_end"/>
  61. </group>
  62. </xpath>
  63. <xpath expr="//field[@name='order_line']/tree//field[@name='price_total']"
  64. position="after">
  65. <field name="date_start"
  66. attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
  67. <field name="date_end"
  68. attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
  69. </xpath>
  70. <xpath expr="//field[@name='order_line']/tree"
  71. position="attributes">
  72. <attribute name="editable"/>
  73. </xpath>
  74. </field>
  75. </record>
  76. </odoo>