2015-11-30 3 views
1

Я хотел бы изменить состояние некоторых счетов-фактур с помощью кнопки «больше». Поэтому, когда я выбираю некоторые счета из дерева и выбираю кнопку «отменить все» из-под кнопки «больше».Очередное изменение рабочего процесса из кнопки «больше»

Любая помощь, пожалуйста,

ответ

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'}) 
+0

Большое спасибо, это именно то, что мне нужно! Вы знаете, как перебирать все проверенные записи в древовидной структуре? Поэтому я могу написать что-то вроде для i в «всех выбранных записях»: i.write ({'state': 'draft'}) – Jesse

+1

Вы будете получать все выбранные записи в переменной 'self' в Метод Python. Вы можете применять запись ко всем записям одновременно с тем, что я написал вам (это если вы хотите изменить каждую запись таким же образом). Но если нет, вы сможете сделать: 'для selected_record в self: selected_record.do_whatever_you_want' – forvas