From 37bfc5161b70537a23eecbb4ab9720161d16a400 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 11 Nov 2013 11:56:49 +0100 Subject: [PATCH] Add constraint in payment line to check that the mandate is linked to the bank account Fix in mandate views Move mandate and partner views in dedicated files --- .../__openerp__.py | 2 + .../account_banking_sdd.py | 23 +++ .../account_banking_sdd_view.xml | 174 ------------------ .../account_payment_view.xml | 2 +- .../res_partner_bank_view.xml | 48 +++++ .../sdd_mandate_view.xml | 147 +++++++++++++++ 6 files changed, 221 insertions(+), 175 deletions(-) create mode 100644 account_banking_sepa_direct_debit/res_partner_bank_view.xml create mode 100644 account_banking_sepa_direct_debit/sdd_mandate_view.xml diff --git a/account_banking_sepa_direct_debit/__openerp__.py b/account_banking_sepa_direct_debit/__openerp__.py index 30aef6211..1a05f730f 100644 --- a/account_banking_sepa_direct_debit/__openerp__.py +++ b/account_banking_sepa_direct_debit/__openerp__.py @@ -32,6 +32,8 @@ }, 'data': [ 'account_banking_sdd_view.xml', + 'sdd_mandate_view.xml', + 'res_partner_bank_view.xml', 'account_payment_view.xml', 'company_view.xml', 'mandate_expire_cron.xml', diff --git a/account_banking_sepa_direct_debit/account_banking_sdd.py b/account_banking_sepa_direct_debit/account_banking_sdd.py index 56eb7097a..14c01a6c4 100644 --- a/account_banking_sepa_direct_debit/account_banking_sdd.py +++ b/account_banking_sepa_direct_debit/account_banking_sdd.py @@ -327,6 +327,29 @@ class payment_line(orm.Model): vals['sdd_mandate_id'] = mandate_ids[0] return super(payment_line, self).create(cr, uid, vals, context=context) + def _check_mandate_bank_link(self, cr, uid, ids): + for payline in self.browse(cr, uid, ids): + if (payline.sdd_mandate_id and payline.bank_id + and payline.sdd_mandate_id.partner_bank_id.id != + payline.bank_id.id): + raise orm.except_orm( + _('Error:'), + _("The payment line with reference '%s' has a bank account '%s' which is not attached to the mandate '%s' (this mandate is attached to the bank account '%s').") + % (payline.name, + self.pool['res.partner.bank'].name_get( + cr, uid, [payline.bank_id.id])[0][1], + payline.sdd_mandate_id.unique_mandate_reference, + self.pool['res.partner.bank'].name_get( + cr, uid, + [payline.sdd_mandate_id.partner_bank_id.id])[0][1], + )) + return True + + _constraints = [ + (_check_mandate_bank_link, 'Error msg in raise', + ['sdd_mandate_id', 'bank_id']), + ] + class account_invoice(orm.Model): _inherit = 'account.invoice' diff --git a/account_banking_sepa_direct_debit/account_banking_sdd_view.xml b/account_banking_sepa_direct_debit/account_banking_sdd_view.xml index cf6c98fb5..079e2023b 100644 --- a/account_banking_sepa_direct_debit/account_banking_sdd_view.xml +++ b/account_banking_sepa_direct_debit/account_banking_sdd_view.xml @@ -78,179 +78,5 @@ view_mode="tree,form" /> - - sdd.mandate.form - sdd.mandate - -
-
-
- -
-

- -

-
- - - - - - - - - - - - - -
-
- - -
-
-
-
- - - sdd.mandate.tree - sdd.mandate - - - - - - - - - - - - - - - sdd.mandate.search - sdd.mandate - - - - - - - - - - - - - - - SEPA Direct Debit Mandates - sdd.mandate - form - tree,form - {'sdd_mandate_main_view': True} - -

- Click to create a new SEPA Direct Debit Mandate. -

- The SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account. -

-
-
- - - - - - Mandate Validated - sdd.mandate - - SEPA Direct Debit Mandate Validated - - - - Mandate Expired - sdd.mandate - - SEPA Direct Debit Mandate has Expired - - - - Mandate Cancelled - sdd.mandate - - SEPA Direct Debit Mandate Cancelled - - - - Sequence Type set to First - sdd.mandate - - Sequence Type set to First - - - - Sequence Type set to Recurring - sdd.mandate - - Sequence Type set to Recurring - - - - Sequence Type set to Final - sdd.mandate - - Sequence Type set to Final - - - - - sdd.mandate.res.partner.bank.form - res.partner.bank - - - - - - - - - - - - sdd.mandate.res.partner.bank.tree - res.partner.bank - - - - - - - - - - - sdd.mandate.partner.form - res.partner - - - - - - - - diff --git a/account_banking_sepa_direct_debit/account_payment_view.xml b/account_banking_sepa_direct_debit/account_payment_view.xml index 795f30222..74098c44e 100644 --- a/account_banking_sepa_direct_debit/account_payment_view.xml +++ b/account_banking_sepa_direct_debit/account_payment_view.xml @@ -13,7 +13,7 @@ - + diff --git a/account_banking_sepa_direct_debit/res_partner_bank_view.xml b/account_banking_sepa_direct_debit/res_partner_bank_view.xml new file mode 100644 index 000000000..0b32e9f1c --- /dev/null +++ b/account_banking_sepa_direct_debit/res_partner_bank_view.xml @@ -0,0 +1,48 @@ + + + + + + + sdd.mandate.res.partner.bank.form + res.partner.bank + + + + + + + + + + + + sdd.mandate.res.partner.bank.tree + res.partner.bank + + + + + + + + + + + sdd.mandate.partner.form + res.partner + + + + + + + + + + diff --git a/account_banking_sepa_direct_debit/sdd_mandate_view.xml b/account_banking_sepa_direct_debit/sdd_mandate_view.xml new file mode 100644 index 000000000..0d73d00f3 --- /dev/null +++ b/account_banking_sepa_direct_debit/sdd_mandate_view.xml @@ -0,0 +1,147 @@ + + + + + + + sdd.mandate.form + sdd.mandate + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + +
+
+ + +
+
+
+
+ + + sdd.mandate.tree + sdd.mandate + + + + + + + + + + + + + + + sdd.mandate.search + sdd.mandate + + + + + + + + + + + + + + + SEPA Direct Debit Mandates + sdd.mandate + form + tree,form + +

+ Click to create a new SEPA Direct Debit Mandate. +

+ The SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account. +

+
+
+ + + + + + Mandate Validated + sdd.mandate + + SEPA Direct Debit Mandate Validated + + + + Mandate Expired + sdd.mandate + + SEPA Direct Debit Mandate has Expired + + + + Mandate Cancelled + sdd.mandate + + SEPA Direct Debit Mandate Cancelled + + + + Sequence Type set to First + sdd.mandate + + Sequence Type set to First + + + + Sequence Type set to Recurring + sdd.mandate + + Sequence Type set to Recurring + + + + Sequence Type set to Final + sdd.mandate + + Sequence Type set to Final + + +
+