[FIX] Adapt sizes of partner fields on link partner wizard

[IMP] Show transaction info in partner link wizard
[IMP] Show message on transaction wizard
[FIX] Properly handle stringified address list in link partner wizard
[FIX] Transfer city from transaction in link partner wizard
[FIX] Allow user to set is_company in link partner wizard
[FIX] Remove void statement to get partner's columns
This commit is contained in:
Stefan Rijnhart
2013-06-05 14:34:24 +02:00
parent 21c1b90ea4
commit 219f9c8603
5 changed files with 53 additions and 14 deletions

View File

@@ -1314,9 +1314,9 @@ class banking_import_transaction(orm.Model):
'exchange_rate': fields.float('exchange_rate'),
'transferred_amount': fields.float('transferred_amount'),
'message': fields.char('message', size=1024),
'remote_owner': fields.char('remote_owner', size=24),
'remote_owner_address': fields.char('remote_owner_address', size=24),
'remote_owner_city': fields.char('remote_owner_city', size=24),
'remote_owner': fields.char('remote_owner', size=128),
'remote_owner_address': fields.char('remote_owner_address', size=256),
'remote_owner_city': fields.char('remote_owner_city', size=128),
'remote_owner_postalcode': fields.char('remote_owner_postalcode', size=24),
'remote_owner_country_code': fields.char('remote_owner_country_code', size=24),
'remote_owner_custno': fields.char('remote_owner_custno', size=24),

View File

@@ -352,6 +352,10 @@ class banking_transaction_wizard(orm.TransientModel):
'ref': fields.related(
'statement_line_id', 'ref', type='char', size=32,
string="Reference", readonly=True),
'message': fields.related(
'statement_line_id', 'import_transaction_id', 'message',
type='char', size=1024,
string="Message", readonly=True),
'partner_id': fields.related(
'statement_line_id', 'partner_id',
type='many2one', relation='res.partner',

View File

@@ -18,8 +18,9 @@
<separator string="Transaction data" colspan="4"/>
<field name="partner_id"/>
<field name="date"/>
<field name="ref"/>
<field name="amount"/>
<field name="ref"/>
<field name="message" colspan="4"/>
</group>
<!-- (semi-) automatic matching and selection -->

View File

@@ -22,6 +22,7 @@
from openerp.osv import orm, fields
from openerp.tools.translate import _
from openerp.addons.account_banking.wizard import banktools
import ast
class link_partner(orm.TransientModel):
_name = 'banking.link_partner'
@@ -37,6 +38,16 @@ class link_partner(orm.TransientModel):
'statement_line_id': fields.many2one(
'account.bank.statement.line',
'Statement line', required=True),
'amount': fields.related(
'statement_line_id', 'amount', type='float',
string="Amount", readonly=True),
'ref': fields.related(
'statement_line_id', 'ref', type='char', size=32,
string="Reference", readonly=True),
'message': fields.related(
'statement_line_id', 'import_transaction_id', 'message',
type='char', size=1024,
string="Message", readonly=True),
'remote_account': fields.char(
'Account number', size=24, readonly=True),
# Partner values
@@ -50,6 +61,11 @@ class link_partner(orm.TransientModel):
'phone': fields.char('Phone', size=64),
'fax': fields.char('Fax', size=64),
'mobile': fields.char('Mobile', size=64),
'is_company': fields.boolean('Is a Company'),
}
_defaults = {
'is_company': True,
}
def create(self, cr, uid, vals, context=None):
@@ -79,9 +95,19 @@ class link_partner(orm.TransientModel):
if 'customer' not in vals and statement_line.amount > 0:
vals['customer'] = True
if not vals.get('street'):
vals['street'] = transaction.remote_owner_address
if not vals.get('street'):
address_list = []
try:
address_list = ast.literal_eval(
transaction.remote_owner_address or [])
except ValueError:
pass
if address_list and not vals.get('street'):
vals['street'] = address_list.pop(0)
if address_list and not vals.get('street2'):
vals['street2'] = address_list.pop(0)
if transaction.remote_owner_postalcode and not vals.get('zip'):
vals['zip'] = transaction.remote_owner_postalcode
if transaction.remote_owner_city and not vals.get('city'):
vals['city'] = transaction.remote_owner_city
if not vals.get('country_id'):
vals['country_id'] = banktools.get_country_id(
@@ -101,10 +127,12 @@ class link_partner(orm.TransientModel):
:param wizard: read record of wizard (with load='_classic_write')
:param values: the dictionary of partner values that will be updated
"""
for field in ['name',
for field in ['is_company',
'name',
'street',
'street2',
'zip',
'city',
'country_id',
'state_id',
'phone',
@@ -126,10 +154,7 @@ class link_partner(orm.TransientModel):
else:
wiz_read = self.read(
cr, uid, ids[0], context=context, load='_classic_write')
partner_fields = self.pool.get(
'res.partner')._columns.keys()
partner_vals = {
'is_company': True,
'type': 'default',
}
self.update_partner_values(

View File

@@ -7,15 +7,24 @@
<field name="model">banking.link_partner</field>
<field name="arch" type="xml">
<form string="Link partner">
<group colspan="4" col="6">
<group colspan="4" col="6" string="Transaction data">
<field name="ref" />
<field name="amount" />
<field name="remote_account" />
<field name="message" colspan="6"/>
</group>
<group colspan="4" col="4" string="Create or link partner">
<field name="name"
attrs="{'readonly': [('partner_id', '!=', False)]}" />
<field name="partner_id"/>
<field name="remote_account" />
</group>
<group colspan="2">
<field name="is_company" />
</group>
<group colspan="4"
string="Address"
attrs="{'invisible': [('partner_id', '!=', False)]}">
attrs="{'invisible': [('partner_id', '!=', False)]}"
col="4">
<group colspan="2" col="2">
<field name="street"/>
<field name="street2"/>