summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoren Van Onder <jov@odoo.com>2016-06-01 13:39:58 +0200
committerJoren Van Onder <jov@odoo.com>2016-06-17 13:09:18 +0200
commit4e5815c1c3abdaaa70cdef3370d31312e52d5a80 (patch)
tree22f85379ac92301d591ed43182ce17cbdec0a065
parente3730cf1f29fc9df6eafb9022c74232c8028f73a (diff)
[IMP] payment: create and use an electronic account.payment.method
-rw-r--r--addons/payment/__openerp__.py1
-rw-r--r--addons/payment/data/account.xml8
-rw-r--r--addons/payment/models/account_payment.py12
-rw-r--r--addons/payment/views/account_payment.xml4
4 files changed, 22 insertions, 3 deletions
diff --git a/addons/payment/__openerp__.py b/addons/payment/__openerp__.py
index d547a2f5568..b22e9f560f2 100644
--- a/addons/payment/__openerp__.py
+++ b/addons/payment/__openerp__.py
@@ -9,6 +9,7 @@
'depends': ['account'],
'data': [
'data/payment_acquirer.xml',
+ 'data/account.xml',
'views/payment_acquirer.xml',
'views/assets.xml',
'views/res_config_view.xml',
diff --git a/addons/payment/data/account.xml b/addons/payment/data/account.xml
new file mode 100644
index 00000000000..2c9ad492b82
--- /dev/null
+++ b/addons/payment/data/account.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="account_payment_method_electronic_in" model="account.payment.method">
+ <field name="name">Electronic</field>
+ <field name="code">electronic</field>
+ <field name="payment_type">inbound</field>
+ </record>
+</odoo>
diff --git a/addons/payment/models/account_payment.py b/addons/payment/models/account_payment.py
index c9d3e610f5a..2b825b922e4 100644
--- a/addons/payment/models/account_payment.py
+++ b/addons/payment/models/account_payment.py
@@ -15,8 +15,17 @@ class AccountPayment(models.Model):
return res
+ @api.onchange('payment_method_id', 'journal_id')
+ def _clear_electronic_payment_token(self):
+ if self.payment_method_id.code == 'electronic':
+ self.payment_token_id = self.env['payment.token'].search([('partner_id', '=', self.partner_id.id)], limit=1)
+ else:
+ self.payment_token_id = False
+
payment_transaction_id = fields.Many2one('payment.transaction', string="Payment Transaction")
payment_token_id = fields.Many2one('payment.token', string="Saved payment token")
+ payment_type = fields.Selection(selection_add=[('electronic', 'Electronically receive money')])
+ payment_method_id_code = fields.Char(related='payment_method_id.code')
def _do_payment(self):
tx_obj = self.env['payment.transaction']
@@ -37,7 +46,7 @@ class AccountPayment(models.Model):
s2s_result = tx.s2s_do_transaction()
- if not s2s_result or tx.state != 'done': # todo jov: what about pending transactions
+ if not s2s_result or tx.state != 'done':
raise ValidationError(_("Payment transaction failed (%s)") % tx.state_message)
self.payment_transaction_id = tx
@@ -50,4 +59,3 @@ class AccountPayment(models.Model):
res._do_payment()
return res
-
diff --git a/addons/payment/views/account_payment.xml b/addons/payment/views/account_payment.xml
index 07fba1d644f..884241500e6 100644
--- a/addons/payment/views/account_payment.xml
+++ b/addons/payment/views/account_payment.xml
@@ -18,7 +18,9 @@
<field name="inherit_id" ref="account.view_account_payment_invoice_form"/>
<field name="arch" type="xml">
<field name="payment_method_id" position="after">
- <field name="payment_token_id"/>
+ <field name="payment_method_id_code" invisible="1"/>
+ <field name="payment_token_id" attrs="{'invisible': [('payment_method_id_code', '!=', 'electronic')],
+ 'required': [('payment_method_id_code', '=', 'electronic')]}"/>
</field>
</field>
</record>