mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[IMP] add support for selecting faster payment mode
This commit is contained in:
committed by
Dmitrijs Ledkovs
parent
4d7ad7ede9
commit
c643b61a9e
@@ -1,13 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="payment.mode.type" id="export_hsbc">
|
||||
<field name="name">HSBC</field>
|
||||
<field name="code">HSBC</field>
|
||||
<record model="payment.mode.type" id="export_acm_or_ezone">
|
||||
<field name="name">ACH or EZONE</field>
|
||||
<field name="code">not used</field>
|
||||
<field name="suitable_bank_types"
|
||||
eval="[(6,0,[ref('base_iban.bank_iban'),ref('base.bank_normal'),])]" />
|
||||
<field name="ir_model_id"
|
||||
ref="account_banking_uk_hsbc.model_banking_export_hsbc_wizard"/>
|
||||
</record>
|
||||
<record model="payment.mode.type" id="export_faster_payment">
|
||||
<field name="name">Faster Payment</field>
|
||||
<field name="code">not used</field>
|
||||
<field name="suitable_bank_types"
|
||||
eval="[(6,0,[ref('base.bank_normal'),])]" />
|
||||
<field name="ir_model_id"
|
||||
ref="account_banking_uk_hsbc.model_banking_export_hsbc_wizard"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -149,11 +149,15 @@ class banking_export_hsbc_wizard(osv.osv_memory):
|
||||
)
|
||||
transaction_kwargs = {
|
||||
'charges': paymul.CHARGES_EACH_OWN,
|
||||
'means': paymul.MEANS_EZONE,
|
||||
}
|
||||
elif oe_account.country_id.code == 'GB':
|
||||
sortcode, accountno = oe_account.acc_number.split(" ", 2)
|
||||
|
||||
split = oe_account.acc_number.split(" ", 2)
|
||||
if len(split) == 2:
|
||||
sortcode, accountno = split
|
||||
else:
|
||||
raise osv.except_osv(
|
||||
_('Error'),
|
||||
"Invalid GB acccount number '%s'" % oe_account.acc_number)
|
||||
paymul_account = paymul.UKAccount(
|
||||
number=accountno,
|
||||
sortcode=sortcode,
|
||||
@@ -162,7 +166,6 @@ class banking_export_hsbc_wizard(osv.osv_memory):
|
||||
)
|
||||
transaction_kwargs = {
|
||||
'charges': paymul.CHARGES_PAYEE,
|
||||
'means': paymul.MEANS_ACH,
|
||||
}
|
||||
else:
|
||||
raise osv.except_osv(
|
||||
@@ -183,20 +186,19 @@ class banking_export_hsbc_wizard(osv.osv_memory):
|
||||
)
|
||||
)
|
||||
|
||||
try:
|
||||
dest_account, transaction_kwargs = self._create_account(
|
||||
line.bank_id)
|
||||
except ValueError as exc:
|
||||
raise osv.except_osv(
|
||||
_('Error'),
|
||||
_('Destination account invalid: ') + str(exc)
|
||||
)
|
||||
dest_account, transaction_kwargs = self._create_account(line.bank_id)
|
||||
|
||||
means = {'ACH or EZONE': paymul.MEANS_ACH_OR_EZONE,
|
||||
'Faster Payment': paymul.MEANS_FASTER_PAYMENT}.get(line.order_id.mode.type.name)
|
||||
if means is None:
|
||||
raise osv.except_osv('Error', "Invalid payment type mode for HSBC '%s'" % line.order_id.mode.type.name)
|
||||
|
||||
try:
|
||||
return paymul.Transaction(
|
||||
amount=Decimal(str(line.amount_currency)),
|
||||
currency=line.currency.name,
|
||||
account=dest_account,
|
||||
means=means,
|
||||
name_address=line.info_partner,
|
||||
customer_reference=line.name,
|
||||
payment_reference=line.name,
|
||||
|
||||
@@ -354,9 +354,10 @@ CHARGES_PAYEE = 13
|
||||
CHARGES_EACH_OWN = 14
|
||||
CHARGES_PAYER = 15
|
||||
|
||||
MEANS_ACH = 2
|
||||
MEANS_EZONE = 2
|
||||
# values per section 2.8.5 "PAI, Payment Instructions" of "HSBC - CRG Paymul Message Implementation Guide"
|
||||
MEANS_ACH_OR_EZONE = 2
|
||||
MEANS_PRIORITY_PAYMENT = 52
|
||||
MEANS_FASTER_PAYMENT = 'FPS'
|
||||
|
||||
CHANNEL_INTRA_COMPANY = 'Z24'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user