SALE: Fix cancel invoice and recreate invoice, now cancel also the order lines
bzr revid: ced-e09fb4592600b11962596b17ad97ecebc0f1a514
This commit is contained in:
parent
84a75ad1e0
commit
a2c7489ebc
|
@ -264,6 +264,20 @@ class sale_order(osv.osv):
|
|||
cr.execute('insert into sale_order_invoice_rel (order_id,invoice_id) values (%d,%d)', (o.id, res))
|
||||
return res
|
||||
|
||||
def action_invoice_cancel(self, cr, uid, ids, context={}):
|
||||
for sale in self.browse(cr, uid, ids):
|
||||
for line in sale.order_line:
|
||||
invoiced=False
|
||||
for iline in line.invoice_lines:
|
||||
if iline.invoice_id and iline.invoice_id.state == 'cancel':
|
||||
continue
|
||||
else:
|
||||
invoiced=True
|
||||
self.pool.get('sale.order.line').write(cr, uid, [line.id], {'invoiced': invoiced})
|
||||
self.write(cr, uid, ids, {'state':'invoice_except', 'invoice_id':False})
|
||||
return True
|
||||
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context={}):
|
||||
ok = True
|
||||
for sale in self.browse(cr, uid, ids):
|
||||
|
@ -508,7 +522,7 @@ class sale_order_line(osv.osv):
|
|||
'delay': fields.float('Delivery Delay', required=True),
|
||||
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], change_default=True, relate=True),
|
||||
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id','invoice_id', 'Invoice Lines', readonly=True),
|
||||
'invoiced': fields.boolean('Paid', readonly=True, select=True),
|
||||
'invoiced': fields.boolean('Invoiced', readonly=True, select=True),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Procurement'),
|
||||
'price_unit': fields.float('Unit Price', required=True, digits=(16, int(config['price_accuracy']))),
|
||||
'price_net': fields.function(_amount_line_net, method=True, string='Net Price', digits=(16, int(config['price_accuracy']))),
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<field name="wkf_id" ref="wkf_sale"/>
|
||||
<field name="name">invoice_except</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'state':'invoice_except', 'invoice_id':False})</field>
|
||||
<field name="action">action_invoice_cancel()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="act_invoice_end">
|
||||
<field name="wkf_id" ref="wkf_sale"/>
|
||||
|
|
Loading…
Reference in New Issue