[IMP] payment: renamed message in pre_msg, msg displayed before
payment. Added post_msg, message displayed after payment. [IMP] payment_transfer: added a default value (generated at create) for post_msg, that contains bank accounts details. bank accounts linked to the current company and used in report footer are shown. [FIX] payment_*: make the buttons noupdate. [IMP] payment: portal_published -> website_published + propagation [IMP] payment: added process selection field that will be used for some control in the website, telling w hether we want to refresh a payment validation page or not. bzr revid: tde@openerp.com-20140124134652-cc0nz08znnlmftw4
This commit is contained in:
parent
a21495916b
commit
cc793480fc
|
@ -55,13 +55,18 @@ class PaymentAcquirer(osv.Model):
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Name', required=True),
|
'name': fields.char('Name', required=True),
|
||||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||||
'message': fields.html('Message', help='Message displayed to help payment and validation'),
|
'pre_msg': fields.html('Message', help='Message displayed to explain and help the payment process.'),
|
||||||
|
'post_msg': fields.html('Thanks Message', help='Message displayed after having done the payment process.'),
|
||||||
|
'process': fields.selection(
|
||||||
|
[('static', 'Static'), ('dynamic', 'Dynamic')],
|
||||||
|
string='Process Method',
|
||||||
|
help='Static payments are payments like transfer, that require manual steps.'),
|
||||||
'view_template_id': fields.many2one('ir.ui.view', 'Form Button Template', required=True),
|
'view_template_id': fields.many2one('ir.ui.view', 'Form Button Template', required=True),
|
||||||
'env': fields.selection(
|
'env': fields.selection(
|
||||||
[('test', 'Test'), ('prod', 'Production')],
|
[('test', 'Test'), ('prod', 'Production')],
|
||||||
string='Environment'),
|
string='Environment'),
|
||||||
'portal_published': fields.boolean(
|
'website_published': fields.boolean(
|
||||||
'Visible in Portal',
|
'Visible in Portal / Website',
|
||||||
help="Make this payment acquirer available (Customer invoices, etc.)"),
|
help="Make this payment acquirer available (Customer invoices, etc.)"),
|
||||||
# Fees
|
# Fees
|
||||||
'fees_active': fields.boolean('Compute fees'),
|
'fees_active': fields.boolean('Compute fees'),
|
||||||
|
@ -74,7 +79,8 @@ class PaymentAcquirer(osv.Model):
|
||||||
_defaults = {
|
_defaults = {
|
||||||
'company_id': lambda self, cr, uid, obj, ctx=None: self.pool['res.users'].browse(cr, uid, uid).company_id.id,
|
'company_id': lambda self, cr, uid, obj, ctx=None: self.pool['res.users'].browse(cr, uid, uid).company_id.id,
|
||||||
'env': 'test',
|
'env': 'test',
|
||||||
'portal_published': True,
|
'process': 'dynamic',
|
||||||
|
'website_published': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
def _check_required_if_provider(self, cr, uid, ids, context=None):
|
def _check_required_if_provider(self, cr, uid, ids, context=None):
|
||||||
|
@ -272,7 +278,7 @@ class PaymentAcquirer(osv.Model):
|
||||||
def render_payment_block(self, cr, uid, reference, amount, currency_id, tx_id=None, partner_id=False, partner_values=None, tx_values=None, context=None):
|
def render_payment_block(self, cr, uid, reference, amount, currency_id, tx_id=None, partner_id=False, partner_values=None, tx_values=None, context=None):
|
||||||
html_forms = []
|
html_forms = []
|
||||||
# TDE FIXME: change this domain, see with CHM about 'dynamic/static' acquirer
|
# TDE FIXME: change this domain, see with CHM about 'dynamic/static' acquirer
|
||||||
acquirer_ids = self.search(cr, uid, [('portal_published', '=', True), ('name', '!=', 'transfer')], context=context)
|
acquirer_ids = self.search(cr, uid, [('website_published', '=', True), ('name', '!=', 'transfer')], context=context)
|
||||||
for acquirer_id in acquirer_ids:
|
for acquirer_id in acquirer_ids:
|
||||||
button = self.render(
|
button = self.render(
|
||||||
cr, uid, acquirer_id,
|
cr, uid, acquirer_id,
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<group>
|
<group>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="company_id"/>
|
<field name="company_id"/>
|
||||||
<field name="portal_published"/>
|
<field name="website_published"/>
|
||||||
<field name="env"/>
|
<field name="env"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
|
@ -33,7 +33,8 @@
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group name="acquirer_display">
|
<group name="acquirer_display">
|
||||||
<field name="message"/>
|
<field name="pre_msg"/>
|
||||||
|
<field name="post_msg"/>
|
||||||
<label for="view_template_id"/>
|
<label for="view_template_id"/>
|
||||||
<div>
|
<div>
|
||||||
<field name="view_template_id" nolabel="1"/>
|
<field name="view_template_id" nolabel="1"/>
|
||||||
|
@ -65,7 +66,7 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Payment Acquirers">
|
<tree string="Payment Acquirers">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="portal_published"/>
|
<field name="website_published"/>
|
||||||
<field name="env"/>
|
<field name="env"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="0">
|
<data noupdate="1">
|
||||||
|
|
||||||
<template id="adyen_acquirer_button">
|
<template id="adyen_acquirer_button">
|
||||||
<form t-if="acquirer.adyen_merchant_account" t-att-action="tx_url" method="post" target="_self">
|
<form t-if="acquirer.adyen_merchant_account" t-att-action="tx_url" method="post" target="_self">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="0">
|
<data noupdate="1">
|
||||||
|
|
||||||
<template id="ogone_acquirer_button">
|
<template id="ogone_acquirer_button">
|
||||||
<form t-if="acquirer" t-att-action="tx_url" method="post" target="_self">
|
<form t-if="acquirer" t-att-action="tx_url" method="post" target="_self">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<field name="company_id" ref="base.main_company"/>
|
<field name="company_id" ref="base.main_company"/>
|
||||||
<field name="view_template_id" ref="paypal_acquirer_button"/>
|
<field name="view_template_id" ref="paypal_acquirer_button"/>
|
||||||
<field name="env">test</field>
|
<field name="env">test</field>
|
||||||
<field name="message"><![CDATA[
|
<field name="pre_msg"><![CDATA[
|
||||||
<p>You will be redirected to the Paypal website after cliking on the payment button.</p>]]></field>
|
<p>You will be redirected to the Paypal website after cliking on the payment button.</p>]]></field>
|
||||||
<field name="paypal_email_account">dummy</field>
|
<field name="paypal_email_account">dummy</field>
|
||||||
<field name="paypal_seller_account">dummy</field>
|
<field name="paypal_seller_account">dummy</field>
|
||||||
|
|
|
@ -10,7 +10,7 @@ class ResCompany(osv.Model):
|
||||||
Acquirer = self.pool['payment.acquirer']
|
Acquirer = self.pool['payment.acquirer']
|
||||||
company_id = self.pool['res.users'].browse(cr, uid, uid, context=context).company_id.id
|
company_id = self.pool['res.users'].browse(cr, uid, uid, context=context).company_id.id
|
||||||
paypal_ids = Acquirer.search(cr, uid, [
|
paypal_ids = Acquirer.search(cr, uid, [
|
||||||
('portal_published', '=', True),
|
('website_published', '=', True),
|
||||||
('name', 'ilike', 'paypal'),
|
('name', 'ilike', 'paypal'),
|
||||||
('company_id', '=', company_id),
|
('company_id', '=', company_id),
|
||||||
], limit=1, context=context)
|
], limit=1, context=context)
|
||||||
|
@ -24,7 +24,7 @@ class ResCompany(osv.Model):
|
||||||
company_id = self.pool['res.users'].browse(cr, uid, uid, context=context).company_id.id
|
company_id = self.pool['res.users'].browse(cr, uid, uid, context=context).company_id.id
|
||||||
paypal_account = self.browse(cr, uid, id, context=context).paypal_account
|
paypal_account = self.browse(cr, uid, id, context=context).paypal_account
|
||||||
paypal_ids = Acquirer.search(cr, uid, [
|
paypal_ids = Acquirer.search(cr, uid, [
|
||||||
('portal_published', '=', True),
|
('website_published', '=', True),
|
||||||
('paypal_email_account', '=', paypal_account),
|
('paypal_email_account', '=', paypal_account),
|
||||||
('company_id', '=', company_id),
|
('company_id', '=', company_id),
|
||||||
], context=context)
|
], context=context)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="0">
|
<data noupdate="1">
|
||||||
|
|
||||||
<template id="paypal_acquirer_button">
|
<template id="paypal_acquirer_button">
|
||||||
<form t-if="acquirer.paypal_email_account" t-att-action="tx_url" method="post" target="_self">
|
<form t-if="acquirer.paypal_email_account" t-att-action="tx_url" method="post" target="_self">
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
<field name="name">transfer</field>
|
<field name="name">transfer</field>
|
||||||
<field name="view_template_id" ref="transfer_acquirer_button"/>
|
<field name="view_template_id" ref="transfer_acquirer_button"/>
|
||||||
<field name="env">test</field>
|
<field name="env">test</field>
|
||||||
<field name="portal_published" eval="True"/>
|
<field name="website_published" eval="True"/>
|
||||||
<field name="message"><![CDATA[
|
<field name="pre_msg"><![CDATA[
|
||||||
<p>Please use the account 001-002-003 to make the payment.</p>]]>
|
<p>Transfer information will be provided after choosing the payment mode.</p>]]>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
from openerp.addons.payment.models.payment_acquirer import ValidationError
|
from openerp.addons.payment.models.payment_acquirer import ValidationError
|
||||||
from openerp.osv import osv
|
from openerp.osv import osv
|
||||||
from openerp.tools.float_utils import float_compare
|
from openerp.tools.float_utils import float_compare
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import pprint
|
import pprint
|
||||||
|
@ -16,6 +17,33 @@ class TransferPaymentAcquirer(osv.Model):
|
||||||
def transfer_get_form_action_url(self, cr, uid, id, context=None):
|
def transfer_get_form_action_url(self, cr, uid, id, context=None):
|
||||||
return '/payment/transfer/feedback'
|
return '/payment/transfer/feedback'
|
||||||
|
|
||||||
|
def _format_transfer_data(self, cr, uid, context=None):
|
||||||
|
bank_ids = [bank.id for bank in self.pool['res.users'].browse(cr, uid, uid, context=context).company_id.bank_ids]
|
||||||
|
# filter only bank accounts marked as visible
|
||||||
|
bank_ids = self.pool['res.partner.bank'].search(cr, uid, [('id', 'in', bank_ids), ('footer', '=', True)], context=context)
|
||||||
|
accounts = self.pool['res.partner.bank'].name_get(cr, uid, bank_ids, context=context)
|
||||||
|
bank_title = _('Bank Accounts') if len(accounts) > 1 else _('Bank Account')
|
||||||
|
bank_accounts = ''.join(['<ul>'] + ['<li>%s</li>' % name for id, name in accounts] + ['</ul>'])
|
||||||
|
post_msg = '''<div>
|
||||||
|
<h3>Please use the following transfer details</h3>
|
||||||
|
<h4>%(bank_title)s</h4>
|
||||||
|
%(bank_accounts)s
|
||||||
|
<h4>Communication</h4>
|
||||||
|
<p>Please use the order name as communication reference.</p>
|
||||||
|
</div>''' % {
|
||||||
|
'bank_title': bank_title,
|
||||||
|
'bank_accounts': bank_accounts,
|
||||||
|
}
|
||||||
|
return post_msg
|
||||||
|
|
||||||
|
def create(self, cr, uid, values, context=None):
|
||||||
|
""" Hook in create to create a default post_msg. This is done in create
|
||||||
|
to have access to the name and other creation values. If no post_msg
|
||||||
|
or a void post_msg is given at creation, generate a default one. """
|
||||||
|
if values.get('name') == 'transfer' and not values.get('post_msg'):
|
||||||
|
values['post_msg'] = self._format_transfer_data(cr, uid, context=context)
|
||||||
|
return super(TransferPaymentAcquirer, self).create(cr, uid, values, context=context)
|
||||||
|
|
||||||
|
|
||||||
class TransferPaymentTransaction(osv.Model):
|
class TransferPaymentTransaction(osv.Model):
|
||||||
_inherit = 'payment.transaction'
|
_inherit = 'payment.transaction'
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="0">
|
<data noupdate="1">
|
||||||
|
|
||||||
<template id="transfer_acquirer_button">
|
<template id="transfer_acquirer_button">
|
||||||
<form t-if="acquirer" t-att-action="tx_url" method="post" target="_self">
|
<form t-if="acquirer" t-att-action="tx_url" method="post" target="_self">
|
||||||
|
|
|
@ -564,7 +564,7 @@ class Ecommerce(http.Controller):
|
||||||
if tx:
|
if tx:
|
||||||
acquirer_ids = [tx.acquirer_id.id]
|
acquirer_ids = [tx.acquirer_id.id]
|
||||||
else:
|
else:
|
||||||
acquirer_ids = payment_obj.search(cr, SUPERUSER_ID, [('portal_published', '=', True)], context=context)
|
acquirer_ids = payment_obj.search(cr, SUPERUSER_ID, [('website_published', '=', True)], context=context)
|
||||||
values['acquirers'] = payment_obj.browse(cr, uid, acquirer_ids, context=context)
|
values['acquirers'] = payment_obj.browse(cr, uid, acquirer_ids, context=context)
|
||||||
render_ctx = dict(context, submit_class='btn btn-primary', submit_txt='Pay Now')
|
render_ctx = dict(context, submit_class='btn btn-primary', submit_txt='Pay Now')
|
||||||
for acquirer in values['acquirers']:
|
for acquirer in values['acquirers']:
|
||||||
|
|
Loading…
Reference in New Issue