<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
心有猛虎,细嗅蔷薇