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.

107 lines
5.2 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <odoo>
  3. <record id="account_analytic_contract_view_form" model="ir.ui.view">
  4. <field name="name">Contract Template Variable Qty</field>
  5. <field name="model">account.analytic.contract</field>
  6. <field name="inherit_id" ref="contract.account_analytic_contract_view_form"/>
  7. <field name="arch" type="xml">
  8. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="before">
  9. <field name="qty_type"/>
  10. </xpath>
  11. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="after">
  12. <field name="qty_formula_id"
  13. attrs="{'required': [('qty_type', '=', 'variable')], 'invisible': [('qty_type', '!=', 'variable')]}"
  14. />
  15. </xpath>
  16. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="attributes">
  17. <attribute name="attrs">{'required': [('qty_type', '=', 'fixed')], 'invisible': [('qty_type', '!=', 'fixed')]}</attribute>
  18. </xpath>
  19. </field>
  20. </record>
  21. <record id="account_analytic_account_recurring_form_form" model="ir.ui.view">
  22. <field name="model">account.analytic.account</field>
  23. <field name="inherit_id" ref="contract.account_analytic_account_recurring_form_form"/>
  24. <field name="arch" type="xml">
  25. <field name="recurring_next_date" position="after">
  26. <field name="skip_zero_qty"/>
  27. </field>
  28. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="before">
  29. <field name="qty_type"/>
  30. </xpath>
  31. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="after">
  32. <field name="qty_formula_id"
  33. attrs="{'required': [('qty_type', '=', 'variable')], 'invisible': [('qty_type', '!=', 'variable')]}"
  34. />
  35. </xpath>
  36. <xpath expr="//field[@name='recurring_invoice_line_ids']//field[@name='quantity']" position="attributes">
  37. <attribute name="attrs">{'required': [('qty_type', '=', 'fixed')], 'invisible': [('qty_type', '!=', 'fixed')]}</attribute>
  38. </xpath>
  39. </field>
  40. </record>
  41. <record id="view_contract_line_qty_formula_tree" model="ir.ui.view">
  42. <field name="model">contract.line.qty.formula</field>
  43. <field name="arch" type="xml">
  44. <tree>
  45. <field name="name"/>
  46. </tree>
  47. </field>
  48. </record>
  49. <record id="view_contract_line_qty_formula_form" model="ir.ui.view">
  50. <field name="model">contract.line.qty.formula</field>
  51. <field name="arch" type="xml">
  52. <form >
  53. <sheet>
  54. <div class="oe_title">
  55. <h1>
  56. <field name="name" placeholder="Name"/>
  57. </h1>
  58. </div>
  59. <group string="Code">
  60. <div style="margin-top: 4px;">
  61. <field name="code" nolabel="1"/>
  62. <h3>Help with Python expressions.</h3>
  63. <p>You have to insert valid Python code block that stores at some moment a float/integer value of the quantity to invoice in the variable 'result'.</p>
  64. <p>You can use these variables to compute your formula:</p>
  65. <ul>
  66. <li><i>env</i>: Environment variable for getting other models.</li>
  67. <li><i>context</i>: Current context dictionary.</li>
  68. <li><i>user</i>: Current user.</li>
  69. <li><i>line</i>: Contract recurring invoice line that triggers this formula.</li>
  70. <li><i>contract</i>: Contract whose line belongs to.</li>
  71. <li><i>invoice</i>: Invoice (header) being created.</li>
  72. </ul>
  73. <div>
  74. <p>Example of Python code</p>
  75. <code>
  76. result = env['product.product'].search_count([('sale_ok', '=', True)])
  77. </code>
  78. </div>
  79. </div>
  80. </group>
  81. </sheet>
  82. </form>
  83. </field>
  84. </record>
  85. <record id="action_contract_quantity_formula" model="ir.actions.act_window">
  86. <field name="name">Formulas (quantity)</field>
  87. <field name="res_model">contract.line.qty.formula</field>
  88. <field name="view_type">form</field>
  89. <field name="view_mode">tree,form</field>
  90. <field name="help" type="html">
  91. <p class="oe_view_nocontent_create">
  92. Click to create a new formula for variable quantities.
  93. </p>
  94. </field>
  95. </record>
  96. <menuitem id="menu_contract_quantity_formula"
  97. action="action_contract_quantity_formula"
  98. parent="contract.menu_config_contract"
  99. />
  100. </odoo>