我想从“更多”按钮更改某些发票的状态。因此,当我从树视图中选择一些发票并从“更多”按钮下方选择“全部取消”按钮时。
请帮助
答案 0 :(得分:5)
您必须使用服务器操作来执行此操作。将下一个代码添加到自定义模块中的XML文件中:
<record id="change_state_action" model="ir.actions.server">
<field name="name">Change invoice state</field>
<field name="model_id" ref="model_account_invoice"/>
<field name="state">code</field>
<field name="code">
action = self.your_method_to_change_state(cr, user.id, context.get('active_ids', []), context=context)
</field>
</record>
<record id="change_state_option" model="ir.values">
<field name="name">Change invoice state</field>
<field name="key2" eval="'client_action_multi'"/>
<field name="model" eval="'account.invoice'"/>
<field name="value" eval="'ir.actions.server,%d'%change_state_action"/>
</record>
在code
字段中,您必须写action = whatever python code you want
。您必须考虑到Python代码的行为必须与您在account.invoice
模型中工作一样。
因此,您必须将此代码放在模块中的Python文件中:
class account_invoice(models.Model):
_inherit = 'account.invoice'
@api.multi
def your_method_to_change_state(self):
self.write({'state': 'XXXXX'})