更多里面添加 按钮


 <record id="action_purchase_order_done" model="ir.actions.server">
            <field name="name">取消按钮</field>
            <field name="model_id" ref="model_purchase_origin"/>
            <field name="state">code</field>
            <field name="code">
                if context.get('active_model') == 'purchase.origin' and context.get('active_ids'):
                self.action_done_order_one(cr, uid, context['active_ids'], context=context)
            </field>
      </record>

      <record model="ir.values" id="ir_purchase_order_done">
            <field name="model_id" ref="model_purchase_origin" />
            <field name="name">取消按钮</field>
            <field name="key2">client_action_multi</field>
            <field eval="'ir.actions.server,%d'%action_purchase_order_done" name="value"/>
            <field name="key">action</field>
            <field name="model">purchase.origin</field>
      </record>
"执行完结功能,所调用的方法self.done()      

              所选择的数据id列表会通过上下文参数context中的active_ids带入


 #w取消按钮
    def action_done_order_one(self,cr,uid,ids,context=None):
        for lead in self.browse(cr, uid, ids, context=context):
            lead.state='done'
        purchase_origin_obj=self.browse(cr,uid,ids,context)
        a=purchase_origin_obj.name
        #单据明细也需要取消
        for line in purchase_origin_obj.line_id:
            line.state='done'
        #查询出销售订单的源单据是本外部订单的所有单据
        sql2=" UPDATE stock_picking SET state='cancel' where state='draft' and origin='%s'"%(str(a))
        cr.execute(sql2)
        self.message_post(cr, uid, ids, body=u"订单已取消", context=context)
        return True

原文地址:https://www.cnblogs.com/1314520xh/p/7793188.html