summaryrefslogtreecommitdiff
path: root/addons/payment_transfer
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-01-22 18:57:02 +0100
committerThibault Delavallée <tde@openerp.com>2014-01-22 18:57:02 +0100
commit0b69bad9968ce2650f6dffd7df703cd33e7f38af (patch)
tree947ae3933f8b4f382bf090031d1ea15e53e88155 /addons/payment_transfer
parentf70e54255641f4d3d61777501b20b0f8c7a1fb77 (diff)
[RENAME] payment_acquirer_* -> payment_ *
bzr revid: tde@openerp.com-20140122175702-1h1e51z4njt4s70w
Diffstat (limited to 'addons/payment_transfer')
-rw-r--r--addons/payment_transfer/__init__.py23
-rw-r--r--addons/payment_transfer/__openerp__.py17
-rw-r--r--addons/payment_transfer/controllers/__init__.py3
-rw-r--r--addons/payment_transfer/controllers/main.py21
-rw-r--r--addons/payment_transfer/data/transfer.xml16
-rw-r--r--addons/payment_transfer/doc/changelog.rst9
-rw-r--r--addons/payment_transfer/doc/index.rst14
-rw-r--r--addons/payment_transfer/models/__init__.py3
-rw-r--r--addons/payment_transfer/models/payment_acquirer.py53
-rw-r--r--addons/payment_transfer/static/description/icon.pngbin0 -> 13148 bytes
-rw-r--r--addons/payment_transfer/static/src/img/transfer_icon.pngbin0 -> 14605 bytes
-rw-r--r--addons/payment_transfer/views/transfer.xml23
12 files changed, 182 insertions, 0 deletions
diff --git a/addons/payment_transfer/__init__.py b/addons/payment_transfer/__init__.py
new file mode 100644
index 00000000000..dde6f25c728
--- /dev/null
+++ b/addons/payment_transfer/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013-Today OpenERP SA (<http://www.openerp.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import models
+import controllers
diff --git a/addons/payment_transfer/__openerp__.py b/addons/payment_transfer/__openerp__.py
new file mode 100644
index 00000000000..07b3f55b273
--- /dev/null
+++ b/addons/payment_transfer/__openerp__.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+
+{
+ 'name': 'Transfer Payment Acquirer',
+ 'category': 'Hidden',
+ 'summary': 'Payment Acquirer: Transfer Implementation',
+ 'version': '1.0',
+ 'description': """Transfer Payment Acquirer""",
+ 'author': 'OpenERP SA',
+ 'depends': ['payment_acquirer'],
+ 'data': [
+ 'views/transfer.xml',
+ 'data/transfer.xml',
+ ],
+ 'installable': True,
+ 'auto_install': True,
+}
diff --git a/addons/payment_transfer/controllers/__init__.py b/addons/payment_transfer/controllers/__init__.py
new file mode 100644
index 00000000000..bbd183e955b
--- /dev/null
+++ b/addons/payment_transfer/controllers/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+import main
diff --git a/addons/payment_transfer/controllers/main.py b/addons/payment_transfer/controllers/main.py
new file mode 100644
index 00000000000..2f1be63179e
--- /dev/null
+++ b/addons/payment_transfer/controllers/main.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+import logging
+import pprint
+
+from openerp.addons.web import http
+from openerp.addons.web.http import request
+
+_logger = logging.getLogger(__name__)
+
+
+class OgoneController(http.Controller):
+ _accept_url = '/payment/transfer/feedback'
+
+ @http.route([
+ '/payment/transfer/feedback',
+ ], type='http', auth='admin', website=True)
+ def transfer_form_feedback(self, **post):
+ cr, uid, context = request.cr, request.uid, request.context
+ _logger.info('Beginning form_feedback with post data %s', pprint.pformat(post)) # debug
+ request.registry['payment.transaction'].form_feedback(cr, uid, post, 'transfer', context)
+ return request.redirect(post.pop('return_url', '/'))
diff --git a/addons/payment_transfer/data/transfer.xml b/addons/payment_transfer/data/transfer.xml
new file mode 100644
index 00000000000..ec81cd82719
--- /dev/null
+++ b/addons/payment_transfer/data/transfer.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="1">
+
+ <record id="payment_acquirer_transfer" model="payment.acquirer">
+ <field name="name">transfer</field>
+ <field name="view_template_id" ref="transfer_acquirer_button"/>
+ <field name="env">test</field>
+ <field name="portal_published" eval="True"/>
+ <field name="message"><![CDATA[
+ <p>Please use the account 001-002-003 to make the payment.</p>]]>
+ </field>
+ </record>
+
+ </data>
+</openerp>
diff --git a/addons/payment_transfer/doc/changelog.rst b/addons/payment_transfer/doc/changelog.rst
new file mode 100644
index 00000000000..d0c24af384d
--- /dev/null
+++ b/addons/payment_transfer/doc/changelog.rst
@@ -0,0 +1,9 @@
+.. _changelog:
+
+Changelog
+=========
+
+`trunk (saas-3)`
+----------------
+
+- Module creation \ No newline at end of file
diff --git a/addons/payment_transfer/doc/index.rst b/addons/payment_transfer/doc/index.rst
new file mode 100644
index 00000000000..85028ed0d3e
--- /dev/null
+++ b/addons/payment_transfer/doc/index.rst
@@ -0,0 +1,14 @@
+Payment module documentation
+============================
+
+Payment documentation topics
+''''''''''''''''''''''''''''
+
+
+Changelog
+'''''''''
+
+.. toctree::
+ :maxdepth: 1
+
+ changelog.rst
diff --git a/addons/payment_transfer/models/__init__.py b/addons/payment_transfer/models/__init__.py
new file mode 100644
index 00000000000..da51c9c1854
--- /dev/null
+++ b/addons/payment_transfer/models/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+import payment_acquirer
diff --git a/addons/payment_transfer/models/payment_acquirer.py b/addons/payment_transfer/models/payment_acquirer.py
new file mode 100644
index 00000000000..01f0f25f740
--- /dev/null
+++ b/addons/payment_transfer/models/payment_acquirer.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-'8' "-*-"
+
+from openerp.addons.payment.models.payment_acquirer import ValidationError
+from openerp.osv import osv
+from openerp.tools.float_utils import float_compare
+
+import logging
+import pprint
+
+_logger = logging.getLogger(__name__)
+
+
+class TransferPaymentAcquirer(osv.Model):
+ _inherit = 'payment.acquirer'
+
+ def transfer_get_form_action_url(self, cr, uid, id, context=None):
+ return '/payment/transfer/feedback'
+
+
+class TransferPaymentTransaction(osv.Model):
+ _inherit = 'payment.transaction'
+
+ def _transfer_form_get_tx_from_data(self, cr, uid, data, context=None):
+ reference, amount, currency_name = data.get('reference'), data.get('amount'), data.get('currency_name')
+ tx_ids = self.search(
+ cr, uid, [
+ ('reference', '=', reference),
+ ], context=context)
+
+ if not tx_ids or len(tx_ids) > 1:
+ error_msg = 'received data for reference %s' % (pprint.pformat(reference))
+ if not tx_ids:
+ error_msg += '; no order found'
+ else:
+ error_msg += '; multiple order found'
+ _logger.error(error_msg)
+ raise ValidationError(error_msg)
+
+ return self.browse(cr, uid, tx_ids[0], context=context)
+
+ def _transfer_form_get_invalid_parameters(self, cr, uid, tx, data, context=None):
+ invalid_parameters = []
+
+ if float_compare(float(data.get('amount', '0.0')), tx.amount, 2) != 0:
+ invalid_parameters.append(('amount', data.get('amount'), '%.2f' % tx.amount))
+ if data.get('currency') != tx.currency_id.name:
+ invalid_parameters.append(('currency', data.get('currency'), tx.currency_id.name))
+
+ return invalid_parameters
+
+ def _transfer_form_validate(self, cr, uid, tx, data, context=None):
+ _logger.info('Validated transfer payment for tx %s: set as pending' % (tx.reference))
+ return tx.write({'state': 'pending'})
diff --git a/addons/payment_transfer/static/description/icon.png b/addons/payment_transfer/static/description/icon.png
new file mode 100644
index 00000000000..183937ed9ce
--- /dev/null
+++ b/addons/payment_transfer/static/description/icon.png
Binary files differ
diff --git a/addons/payment_transfer/static/src/img/transfer_icon.png b/addons/payment_transfer/static/src/img/transfer_icon.png
new file mode 100644
index 00000000000..63b10e383ec
--- /dev/null
+++ b/addons/payment_transfer/static/src/img/transfer_icon.png
Binary files differ
diff --git a/addons/payment_transfer/views/transfer.xml b/addons/payment_transfer/views/transfer.xml
new file mode 100644
index 00000000000..01de4a28934
--- /dev/null
+++ b/addons/payment_transfer/views/transfer.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data noupdate="0">
+
+ <template id="transfer_acquirer_button">
+ <form t-if="acquirer" t-att-action="tx_url" method="post" target="_self">
+ <t t-if="tx_values.get('return_url')">
+ <input type='hidden' name='return_url' t-att-value='tx_values["return_url"]'/>
+ </t>
+ <input type='hidden' name='reference' t-att-value='reference'/>
+ <input type='hidden' name='amount' t-att-value='amount'/>
+ <input type='hidden' name='currency' t-att-value='currency.name'/>
+ <!-- submit -->
+ <button type="image" name="submit" width="100px"
+ t-att-class="submit_class">
+ <img t-if="not submit_txt" src="/payment_transfer/static/src/img/transfer_icon.png"/>
+ <span t-if="submit_txt"><t t-esc="submit_txt"/> <span class="fa fa-long-arrow-right"/></span>
+ </button>
+ </form>
+ </template>
+
+ </data>
+</openerp>