From aac0faafb824e53bd27e861c7808c88a5757dd77 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Mon, 14 Nov 2016 16:19:08 +0100 Subject: [PATCH] [FIX] membership: remove date_cancel for draft invoices In `action_cancel` method below, the date_cancel is set when the linked invoice is canceled. When the canceled invoiced was reset to draft, the date_cancel was not removed. This change makes sense as the state of the membership line is changed from `cancel` to `waiting` when the invoice is reset to draft. Closes #14313 --- addons/membership/membership.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/membership/membership.py b/addons/membership/membership.py index f25ac7f047e..8921cab52d3 100644 --- a/addons/membership/membership.py +++ b/addons/membership/membership.py @@ -477,6 +477,15 @@ class Invoice(osv.osv): '''Invoice''' _inherit = 'account.invoice' + def action_cancel_draft(self, cr, uid, ids, context=None): + member_line_obj = self.pool.get('membership.membership_line') + for invoice in self.browse(cr, uid, ids, context=context): + mlines = member_line_obj.search(cr, uid, + [('account_invoice_line', 'in', + [l.id for l in invoice.invoice_line])]) + member_line_obj.write(cr, uid, mlines, {'date_cancel': False}, context=context) + return super(Invoice, self).action_cancel_draft(cr, uid, ids, context=context) + def action_cancel(self, cr, uid, ids, context=None): '''Create a 'date_cancel' on the membership_line object''' member_line_obj = self.pool.get('membership.membership_line')