From dd022faafbc273ad025a0df4e9004b5b5b22acd3 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 12 Jun 2014 00:03:21 +0200 Subject: [PATCH 1/2] Add back2draft on SEPA Direct Debit mandates (in case it was cancelled by mistake). --- .../account_banking_sdd.py | 10 ++++++++++ account_banking_sepa_direct_debit/sdd_mandate_view.xml | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/account_banking_sepa_direct_debit/account_banking_sdd.py b/account_banking_sepa_direct_debit/account_banking_sdd.py index d0edb5e90..a7683d534 100644 --- a/account_banking_sepa_direct_debit/account_banking_sdd.py +++ b/account_banking_sepa_direct_debit/account_banking_sdd.py @@ -314,6 +314,16 @@ class sdd_mandate(orm.Model): cr, uid, to_cancel_ids, {'state': 'cancel'}, context=context) return True + def back2draft(self, cr, uid, ids, context=None): + to_draft_ids = [] + for mandate in self.browse(cr, uid, ids, context=context): + assert mandate.state == 'cancel',\ + 'Mandate should be in cancel state' + to_draft_ids.append(mandate.id) + self.write( + cr, uid, to_draft_ids, {'state': 'draft'}, context=context) + return True + def _sdd_mandate_set_state_to_expired(self, cr, uid, context=None): logger.info('Searching for SDD Mandates that must be set to Expired') expire_limit_date = datetime.today() + \ diff --git a/account_banking_sepa_direct_debit/sdd_mandate_view.xml b/account_banking_sepa_direct_debit/sdd_mandate_view.xml index 409919dc5..bd1dd6e79 100644 --- a/account_banking_sepa_direct_debit/sdd_mandate_view.xml +++ b/account_banking_sepa_direct_debit/sdd_mandate_view.xml @@ -13,8 +13,11 @@
-
From 1dcf306df2033dac064fccb64f45e29705a15ce6 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 12 Jun 2014 18:05:52 +0200 Subject: [PATCH 2/2] ir.sequence : Replace deprecated get() by next_by_code() Avoid double increment of sequence when creating an SDD mandate. --- .../account_banking_sdd.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/account_banking_sepa_direct_debit/account_banking_sdd.py b/account_banking_sepa_direct_debit/account_banking_sdd.py index a7683d534..321c6b9a2 100644 --- a/account_banking_sepa_direct_debit/account_banking_sdd.py +++ b/account_banking_sepa_direct_debit/account_banking_sdd.py @@ -191,8 +191,7 @@ class sdd_mandate(orm.Model): 'company_id': lambda self, cr, uid, context: self.pool['res.company']._company_default_get( cr, uid, 'sdd.mandate', context=context), - 'unique_mandate_reference': lambda self, cr, uid, ctx: - self.pool['ir.sequence'].get(cr, uid, 'sdd.mandate.reference'), + 'unique_mandate_reference': '/', 'state': 'draft', 'sepa_migrated': True, } @@ -203,6 +202,13 @@ class sdd_mandate(orm.Model): 'A Mandate with the same reference already exists for this company !' )] + def create(self, cr, uid, vals, context=None): + if vals.get('unique_mandate_reference', '/') == '/': + vals['unique_mandate_reference'] = \ + self.pool['ir.sequence'].next_by_code( + cr, uid, 'sdd.mandate.reference', context=context) + return super(sdd_mandate, self).create(cr, uid, vals, context=context) + def _check_sdd_mandate(self, cr, uid, ids): for mandate in self.browse(cr, uid, ids): if (mandate.signature_date and