diff --git a/account_payment_order/models/account_payment_line.py b/account_payment_order/models/account_payment_line.py
index 2ac4fbfac..5df4c2644 100644
--- a/account_payment_order/models/account_payment_line.py
+++ b/account_payment_order/models/account_payment_line.py
@@ -20,6 +20,9 @@ class AccountPaymentLine(models.Model):
related='order_id.company_currency_id', store=True, readonly=True)
payment_type = fields.Selection(
related='order_id.payment_type', store=True, readonly=True)
+ bank_account_required = fields.Boolean(
+ related='order_id.payment_method_id.bank_account_required',
+ readonly=True)
state = fields.Selection(
related='order_id.state', string='State',
readonly=True, store=True)
@@ -127,9 +130,8 @@ class AccountPaymentLine(models.Model):
return res
@api.multi
- def check_payment_line(self):
- for line in self:
- if not line.partner_bank_id:
- raise UserError(_(
- 'Missing Partner Bank Account on payment line %s')
- % line.name)
+ def draft2open_payment_line_check(self):
+ self.ensure_one()
+ if self.bank_account_required and not self.partner_bank_id:
+ raise UserError(_(
+ 'Missing Partner Bank Account on payment line %s') % self.name)
diff --git a/account_payment_order/models/account_payment_order.py b/account_payment_order/models/account_payment_order.py
index 37e7f4019..d5be6a1b3 100644
--- a/account_payment_order/models/account_payment_order.py
+++ b/account_payment_order/models/account_payment_order.py
@@ -25,6 +25,9 @@ class AccountPaymentOrder(models.Model):
('inbound', 'Inbound'),
('outbound', 'Outbound'),
], string='Payment Type', readonly=True, required=True)
+ payment_method_id = fields.Many2one(
+ 'account.payment.method', related='payment_mode_id.payment_method_id',
+ readonly=True, store=True)
company_id = fields.Many2one(
related='payment_mode_id.company_id', store=True, readonly=True)
company_currency_id = fields.Many2one(
@@ -210,7 +213,7 @@ class AccountPaymentOrder(models.Model):
# Create the bank payment lines from the payment lines
group_paylines = {} # key = hashcode
for payline in order.payment_line_ids:
- payline.check_payment_line()
+ payline.draft2open_payment_line_check()
# Compute requested payment date
if order.date_prefered == 'due':
requested_date = payline.ml_maturity_date or today
diff --git a/account_payment_order/views/account_payment_line.xml b/account_payment_order/views/account_payment_line.xml
index 152c119d4..c1155ac03 100644
--- a/account_payment_order/views/account_payment_line.xml
+++ b/account_payment_order/views/account_payment_line.xml
@@ -18,7 +18,10 @@
-
+
+