Browse Source

Merge pull request #30 from pedrobaeza/8.0-account_bank_statement_import-journal

[FIX] account_bank_statement_import: Handle correctly the selection of the journal
pull/32/head
Pedro M. Baeza 10 years ago
parent
commit
38bacf9c9f
  1. 13
      account_bank_statement_import/account_bank_statement_import.py
  2. 15
      account_bank_statement_import_qif/account_bank_statement_import_qif.py

13
account_bank_statement_import/account_bank_statement_import.py

@ -40,7 +40,8 @@ class AccountBankStatementImport(models.TransientModel):
'importing. It has be be manually chosen for statement formats which ' 'importing. It has be be manually chosen for statement formats which '
'doesn\'t allow automatic journal detection (QIF for example).') 'doesn\'t allow automatic journal detection (QIF for example).')
hide_journal_field = fields.Boolean( hide_journal_field = fields.Boolean(
'Hide the journal field in the view', default=_get_hide_journal_field)
string='Hide the journal field in the view',
compute='_get_hide_journal_field')
data_file = fields.Binary( data_file = fields.Binary(
'Bank Statement File', required=True, 'Bank Statement File', required=True,
help='Get you bank statements in electronic format from your bank ' help='Get you bank statements in electronic format from your bank '
@ -170,11 +171,10 @@ class AccountBankStatementImport(models.TransientModel):
@api.model @api.model
def _get_journal(self, currency_id, bank_account_id, account_number): def _get_journal(self, currency_id, bank_account_id, account_number):
""" Find or create the journal """
""" Find the journal """
bank_model = self.env['res.partner.bank'] bank_model = self.env['res.partner.bank']
# Find the journal from context or bank account
journal_id = self.env.context.get('journal_id')
# Find the journal from context, wizard or bank account
journal_id = self.env.context.get('journal_id') or self.journal_id.id
if bank_account_id: if bank_account_id:
bank_account = bank_model.browse(bank_account_id) bank_account = bank_model.browse(bank_account_id)
if journal_id: if journal_id:
@ -188,7 +188,6 @@ class AccountBankStatementImport(models.TransientModel):
else: else:
if bank_account.journal_id.id: if bank_account.journal_id.id:
journal_id = bank_account.journal_id.id journal_id = bank_account.journal_id.id
# If importing into an existing journal, its currency must be the same # If importing into an existing journal, its currency must be the same
# as the bank statement # as the bank statement
if journal_id: if journal_id:
@ -197,12 +196,10 @@ class AccountBankStatementImport(models.TransientModel):
if currency_id and currency_id != journal_currency_id: if currency_id and currency_id != journal_currency_id:
raise Warning(_('The currency of the bank statement is not ' raise Warning(_('The currency of the bank statement is not '
'the same as the currency of the journal !')) 'the same as the currency of the journal !'))
# If we couldn't find/create a journal, everything is lost # If we couldn't find/create a journal, everything is lost
if not journal_id: if not journal_id:
raise Warning(_('Cannot find in which journal import this ' raise Warning(_('Cannot find in which journal import this '
'statement. Please manually select a journal.')) 'statement. Please manually select a journal.'))
return journal_id return journal_id
@api.model @api.model

15
account_bank_statement_import_qif/account_bank_statement_import_qif.py

@ -15,21 +15,6 @@ class AccountBankStatementImport(models.TransientModel):
def _get_hide_journal_field(self): def _get_hide_journal_field(self):
return self.env.context.get('journal_id') and True return self.env.context.get('journal_id') and True
@api.model
def _get_journal(self, currency_id, bank_account_id, account_number):
""" As .QIF format does not allow us to detect the journal, we need to
let the user choose it.
We set it in context before to call super so it's the same as
calling the widget from a journal """
record = self
active_id = self.env.context.get('active_id')
if active_id:
record = self.browse(active_id)
if record.journal_id:
record = record.with_context(journal_id=record.journal_id.id)
return super(AccountBankStatementImport, record)._get_journal(
currency_id, bank_account_id, account_number)
@api.model @api.model
def _check_qif(self, data_file): def _check_qif(self, data_file):
return data_file.strip().startswith('!Type:') return data_file.strip().startswith('!Type:')

Loading…
Cancel
Save