[IMP] account_banking_sepa_credit_transfer: 3 things

* Small API changes
* Updated two additional imports to new API
* A payment mode type needs a suitable bank type
This commit is contained in:
Stefan Rijnhart
2013-06-28 21:39:37 +02:00
committed by Dũng (Trần Đình)
parent cf94ae8373
commit 40a8ea5d3f
6 changed files with 21 additions and 31 deletions

View File

@@ -25,15 +25,13 @@
'author': 'Akretion',
'website': 'http://www.akretion.com',
'category': 'Banking addons',
'depends': ['account_banking'],
'init_xml': [],
'update_xml': [
'depends': ['account_banking_payment'],
'data': [
'account_banking_sepa_view.xml',
'wizard/export_sepa_view.xml',
'data/payment_type_sepa_sct.xml',
'security/ir.model.access.csv',
],
'demo_xml': [],
'description': '''
Module to export payment orders in SEPA XML file format.

View File

@@ -19,13 +19,13 @@
#
##############################################################################
from osv import osv, fields
from openerp.osv import orm, fields
import time
from tools.translate import _
import decimal_precision as dp
from openerp.tools.translate import _
from openerp.addons.decimal_precision import decimal_precision as dp
class banking_export_sepa(osv.osv):
class banking_export_sepa(orm.Model):
'''SEPA export'''
_name = 'banking.export.sepa'
_description = __doc__
@@ -72,9 +72,6 @@ class banking_export_sepa(osv.osv):
}
_defaults = {
'generation_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'generation_date': fields.date.context_today,
'state': 'draft',
}
banking_export_sepa()

View File

@@ -10,7 +10,6 @@
<record id="view_banking_export_sepa_form" model="ir.ui.view">
<field name="name">account.banking.export.sepa.form</field>
<field name="model">banking.export.sepa</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="SEPA Credit Transfer">
<notebook>
@@ -46,7 +45,6 @@
<record id="view_banking_export_sepa_tree" model="ir.ui.view">
<field name="name">account.banking.export.sepa.tree</field>
<field name="model">banking.export.sepa</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SEPA Credit Transfer">
<field name="msg_identification"/>

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<data noupdate="0">
<!-- TODO In the suitable_bank_types field, we should restrict to IBAN type and Rib+IBAN of l10n_fr_rib ? -->
<record id="export_sepa_sct_001_001_04" model="payment.mode.type">
<field name="name">SEPA Credit Transfer v04</field>
<field name="code">pain.001.001.04</field>
<field name="suitable_bank_types"></field>
<field name="suitable_bank_types"
eval="[(6,0,[ref('base_iban.bank_iban')])]" />
<field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
<field name="payment_order_type">payment</field>
</record>
@@ -15,7 +16,8 @@
<record id="export_sepa_sct_001_001_03" model="payment.mode.type">
<field name="name">SEPA Credit Transfer v03</field>
<field name="code">pain.001.001.03</field>
<field name="suitable_bank_types"></field>
<field name="suitable_bank_types"
eval="[(6,0,[ref('base_iban.bank_iban')])]" />
<field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
<field name="payment_order_type">payment</field>
</record>
@@ -23,7 +25,8 @@
<record id="export_sepa_sct_001_001_02" model="payment.mode.type">
<field name="name">SEPA Credit Transfer v02</field>
<field name="code">pain.001.001.02</field>
<field name="suitable_bank_types"></field>
<field name="suitable_bank_types"
eval="[(6,0,[ref('base_iban.bank_iban')])]" />
<field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
<field name="payment_order_type">payment</field>
</record>

View File

@@ -21,19 +21,18 @@
##############################################################################
from osv import osv, fields
from openerp.osv import orm, fields
import base64
from datetime import datetime, timedelta
from tools.translate import _
import tools
from openerp.tools.translate import _
from openerp import tools, netsvc
from lxml import etree
import logging
import netsvc
_logger = logging.getLogger(__name__)
class banking_export_sepa_wizard(osv.osv_memory):
class banking_export_sepa_wizard(orm.TransientModel):
_name = 'banking.export.sepa.wizard'
_description = 'Export SEPA Credit Transfer XML file'
_columns = {
@@ -87,7 +86,7 @@ class banking_export_sepa_wizard(osv.osv_memory):
if partner_bank_obj.is_iban_valid(cr, uid, iban, context=context):
return iban.replace(' ', '')
else:
raise osv.except_osv(_('Error :'), _("This IBAN is not valid : %s") % iban)
raise orm.except_orm(_('Error :'), _("This IBAN is not valid : %s") % iban)
def create(self, cr, uid, vals, context=None):
payment_order_ids = context.get('active_ids', [])
@@ -132,7 +131,7 @@ class banking_export_sepa_wizard(osv.osv_memory):
name_maxsize = 140
root_xml_tag = 'CstmrCdtTrfInitn'
else:
raise osv.except_osv(_('Error :'), _("Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' and 'pain.001.001.04'.") % pain_flavor)
raise orm.except_orm(_('Error :'), _("Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' and 'pain.001.001.04'.") % pain_flavor)
if sepa_export.batch_booking:
my_batch_booking = 'true'
else:
@@ -281,7 +280,7 @@ class banking_export_sepa_wizard(osv.osv_memory):
_logger.warning("The XML file is invalid against the XML Schema Definition")
_logger.warning(xml_string)
_logger.warning(e)
raise osv.except_osv(_('Error :'), _('The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s') % str(e))
raise orm.except_orm(_('Error :'), _('The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s') % str(e))
# CREATE the banking.export.sepa record
file_id = self.pool.get('banking.export.sepa').create(cr, uid,
@@ -335,7 +334,3 @@ class banking_export_sepa_wizard(osv.osv_memory):
for order in sepa_export.payment_order_ids:
wf_service.trg_validate(uid, 'payment.order', order.id, 'sent', cr)
return {'type': 'ir.actions.act_window_close'}
banking_export_sepa_wizard()

View File

@@ -10,7 +10,6 @@
<record id="banking_export_sepa_wizard_view" model="ir.ui.view">
<field name="name">banking.export.sepa.wizard.view</field>
<field name="model">banking.export.sepa.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="SEPA XML file generation">
<field name="state" invisible="True"/>