mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
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
This commit is contained in:
@@ -40,7 +40,8 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
'importing. It has be be manually chosen for statement formats which '
|
||||
'doesn\'t allow automatic journal detection (QIF for example).')
|
||||
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(
|
||||
'Bank Statement File', required=True,
|
||||
help='Get you bank statements in electronic format from your bank '
|
||||
@@ -170,11 +171,10 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
|
||||
@api.model
|
||||
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']
|
||||
|
||||
# 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:
|
||||
bank_account = bank_model.browse(bank_account_id)
|
||||
if journal_id:
|
||||
@@ -188,7 +188,6 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
else:
|
||||
if bank_account.journal_id.id:
|
||||
journal_id = bank_account.journal_id.id
|
||||
|
||||
# If importing into an existing journal, its currency must be the same
|
||||
# as the bank statement
|
||||
if journal_id:
|
||||
@@ -197,12 +196,10 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
if currency_id and currency_id != journal_currency_id:
|
||||
raise Warning(_('The currency of the bank statement is not '
|
||||
'the same as the currency of the journal !'))
|
||||
|
||||
# If we couldn't find/create a journal, everything is lost
|
||||
if not journal_id:
|
||||
raise Warning(_('Cannot find in which journal import this '
|
||||
'statement. Please manually select a journal.'))
|
||||
|
||||
return journal_id
|
||||
|
||||
@api.model
|
||||
|
||||
@@ -15,21 +15,6 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
def _get_hide_journal_field(self):
|
||||
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
|
||||
def _check_qif(self, data_file):
|
||||
return data_file.strip().startswith('!Type:')
|
||||
|
||||
Reference in New Issue
Block a user