diff --git a/account_banking_pain_base/models/account_payment_line.py b/account_banking_pain_base/models/account_payment_line.py
index 9ecf53d86..f599860e9 100644
--- a/account_banking_pain_base/models/account_payment_line.py
+++ b/account_banking_pain_base/models/account_payment_line.py
@@ -15,6 +15,10 @@ class AccountPaymentLine(models.Model):
string='Priority', default='NORM',
help="This field will be used as 'Instruction Priority' in "
"the generated PAIN file.")
+ # local_instrument is used in some countries, for example
+ # switzerland, cf l10n_ch_sepa that adds some entries in
+ # the selection field
+ local_instrument = fields.Selection([], string='Local Instrument')
# PAIN allows 140 characters
communication = fields.Char(size=140)
# The field struct_communication_type has been dropped in v9
diff --git a/account_banking_pain_base/models/bank_payment_line.py b/account_banking_pain_base/models/bank_payment_line.py
index 7885d701a..bf802ce6e 100644
--- a/account_banking_pain_base/models/bank_payment_line.py
+++ b/account_banking_pain_base/models/bank_payment_line.py
@@ -10,10 +10,13 @@ class BankPaymentLine(models.Model):
priority = fields.Selection(
related='payment_line_ids.priority', string='Priority')
+ local_instrument = fields.Selection(
+ related='payment_line_ids.local_instrument',
+ string='Local Instrument')
@api.model
def same_fields_payment_line_and_bank_payment_line(self):
res = super(BankPaymentLine, self).\
same_fields_payment_line_and_bank_payment_line()
- res += ['priority']
+ res += ['priority', 'local_instrument']
return res
diff --git a/account_banking_pain_base/views/account_payment_line.xml b/account_banking_pain_base/views/account_payment_line.xml
index 6adab6916..640175857 100644
--- a/account_banking_pain_base/views/account_payment_line.xml
+++ b/account_banking_pain_base/views/account_payment_line.xml
@@ -14,6 +14,7 @@
+
diff --git a/account_banking_pain_base/views/bank_payment_line_view.xml b/account_banking_pain_base/views/bank_payment_line_view.xml
index 17d4e3049..672e4bbbe 100644
--- a/account_banking_pain_base/views/bank_payment_line_view.xml
+++ b/account_banking_pain_base/views/bank_payment_line_view.xml
@@ -14,6 +14,7 @@
+
diff --git a/account_banking_sepa_credit_transfer/models/account_payment_order.py b/account_banking_sepa_credit_transfer/models/account_payment_order.py
index 5f6579a3a..790f73d6a 100644
--- a/account_banking_sepa_credit_transfer/models/account_payment_order.py
+++ b/account_banking_sepa_credit_transfer/models/account_payment_order.py
@@ -81,27 +81,29 @@ class AccountPaymentOrder(models.Model):
transactions_count_1_6 = 0
amount_control_sum_1_7 = 0.0
lines_per_group = {}
- # key = (requested_date, priority)
+ # key = (requested_date, priority, local_instrument)
# values = list of lines as object
for line in self.bank_line_ids:
priority = line.priority
+ local_instrument = line.local_instrument
# The field line.date is the requested payment date
# taking into account the 'date_prefered' setting
# cf account_banking_payment_export/models/account_payment.py
# in the inherit of action_open()
- key = (line.date, priority)
+ key = (line.date, priority, local_instrument)
if key in lines_per_group:
lines_per_group[key].append(line)
else:
lines_per_group[key] = [line]
- for (requested_date, priority), lines in lines_per_group.items():
+ for (requested_date, priority, local_instrument), lines in\
+ lines_per_group.items():
# B. Payment info
payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5 = \
self.generate_start_payment_info_block(
pain_root,
"self.name + '-' "
"+ requested_date.replace('-', '') + '-' + priority",
- priority, False, False, requested_date, {
+ priority, local_instrument, False, requested_date, {
'self': self,
'priority': priority,
'requested_date': requested_date,