[MIG] Adapt partner search criteria to new model

[ADD] Restore Journal Entries tab on bank statement
[FIX] Create partners either as supplier or customer based on amount sign
[FIX] Delete transaction data if bank statement is deleted
This commit is contained in:
Stefan Rijnhart
2013-04-09 17:19:30 +02:00
parent 80c2228c6d
commit 3732171e48
3 changed files with 25 additions and 12 deletions

View File

@@ -200,7 +200,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<data>
<page string="Transactions" position="after">
<page string="Journal Entries" name="move_live_ids">
<field colspan="4" name="move_line_ids" nolabel="1"/>
</page>
</page>
<field name="period_id" position="replace"/>
<xpath expr="//page[@string='Transactions']/field/tree"

View File

@@ -1066,7 +1066,10 @@ class banking_import_transaction(orm.Model):
transaction.remote_owner_address,
transaction.remote_owner_postalcode,
transaction.remote_owner_city,
country_code, results['log'], context=context)
country_code, results['log'],
customer=transaction.transferred_amount > 0,
supplier=transaction.transferred_amount < 0,
context=context)
if transaction.remote_account:
partner_bank_id = create_bank_account(
self.pool, cr, uid, partner_id,
@@ -1345,7 +1348,8 @@ class banking_import_transaction(orm.Model):
'account.bank.statement.line', 'Statement line',
ondelete='CASCADE'),
'statement_id': fields.many2one(
'account.bank.statement', 'Statement'),
'account.bank.statement', 'Statement',
ondelete='CASCADE'),
'parent_id': fields.many2one(
'banking.import.transaction', 'Split off from this transaction'),
# match fields

View File

@@ -119,7 +119,8 @@ def _has_attr(obj, attr):
return False
def get_or_create_partner(pool, cr, uid, name, address, postal_code, city,
country_code, log, context=None):
country_code, log, supplier=False, customer=False,
context=None):
'''
Get or create the partner belonging to the account holders name <name>
@@ -141,11 +142,11 @@ def get_or_create_partner(pool, cr, uid, name, address, postal_code, city,
cr, uid, [('code', '=', country_code.upper())],
context=context)
country_id = country_ids and country_ids[0] or False
criteria.append(('address.country_id', '=', country_id))
criteria.append(('country_id', '=', country_id))
if city:
criteria.append(('address.city', 'ilike', city))
criteria.append(('city', 'ilike', city))
if postal_code:
criteria.append(('address.zip', 'ilike', postal_code))
criteria.append(('zip', 'ilike', postal_code))
partner_search_ids = partner_obj.search(
cr, uid, criteria, context=context)
key = name.lower()
@@ -164,16 +165,20 @@ def get_or_create_partner(pool, cr, uid, name, address, postal_code, city,
user.company_id.partner_id.country.id or
False
)
partner_id = partner_obj.create(cr, uid, dict(
name=name, active=True,
comment='Generated from Bank Statements Import',
address=[(0,0,{
partner_id = partner_obj.create(
cr, uid, {
'name': name,
'active': True,
'comment': 'Generated from Bank Statements Import',
'street': address and address[0] or '',
'street2': len(address) > 1 and address[1] or '',
'city': city,
'zip': postal_code or '',
'country_id': country_id,
})]), context=context)
'is_company': True,
'supplier': supplier,
'customer': customer,
}, context=context)
else:
if len(partner_ids) > 1:
log.append(