diff --git a/account_banking/account_banking_view.xml b/account_banking/account_banking_view.xml index 2f4b20d21..104f8d1c2 100644 --- a/account_banking/account_banking_view.xml +++ b/account_banking/account_banking_view.xml @@ -200,7 +200,11 @@ form - + + + + + 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 diff --git a/account_banking/wizard/banktools.py b/account_banking/wizard/banktools.py index f817f610a..cd191f8db 100644 --- a/account_banking/wizard/banktools.py +++ b/account_banking/wizard/banktools.py @@ -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 @@ -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(