[FIX] account_bank_statement_import_txt_xlsx: handle empty currency

This commit is contained in:
Alexey Pelykh
2020-09-18 19:47:52 +03:00
parent 2dbdacb968
commit 34afe9ae05
4 changed files with 44 additions and 6 deletions

View File

@@ -206,22 +206,27 @@ class AccountBankStatementImportSheetParser(models.TransientModel):
)
amount = self._parse_decimal(amount, mapping)
if balance is not None:
if balance:
balance = self._parse_decimal(balance, mapping)
else:
balance = None
if debit_credit is not None:
if debit_credit:
amount = amount.copy_abs()
if debit_credit == mapping.debit_value:
amount = -amount
if original_currency is None:
if not original_currency:
original_currency = currency
original_amount = amount
elif original_currency == currency:
original_amount = amount
if original_amount is not None:
original_amount = self._parse_decimal(original_amount, mapping)
if original_amount:
original_amount = self._parse_decimal(
original_amount,
mapping
).copy_sign(amount)
else:
original_amount = 0.0

View File

@@ -1,2 +1,2 @@
"Date","Label","Currency","Amount","Amount Currency","Partner Name","Bank Account"
"12/15/2018","Your payment","EUR","1,525.00","1,000.00","Azure Interior",""
"12/15/2018","Your payment","EUR","1,525.00","-1,000.00","Azure Interior",""
1 Date Label Currency Amount Amount Currency Partner Name Bank Account
2 12/15/2018 Your payment EUR 1,525.00 1,000.00 -1,000.00 Azure Interior

View File

@@ -0,0 +1,2 @@
"Date","Label","Currency","Amount","Amount Currency","Partner Name","Bank Account"
"12/15/2018","Your payment",,"1,525.00",,"Azure Interior",""
1 Date Label Currency Amount Amount Currency Partner Name Bank Account
2 12/15/2018 Your payment 1,525.00 Azure Interior

View File

@@ -217,6 +217,37 @@ class TestAccountBankStatementImportTxtXlsx(common.TransactionCase):
self.assertEqual(line.currency_id, self.currency_eur)
self.assertEqual(line.amount_currency, 1000.0)
def test_original_currency_empty(self):
journal = self.AccountJournal.create({
'name': 'Bank',
'type': 'bank',
'code': 'BANK',
'currency_id': self.currency_usd.id,
})
wizard = self.AccountBankStatementImport.with_context({
'journal_id': journal.id,
}).create({
'filename': 'fixtures/original_currency_empty.csv',
'data_file': self._data_file(
'fixtures/original_currency_empty.csv',
'utf-8'
),
'sheet_mapping_id': self.sample_statement_map.id,
})
wizard.with_context({
'journal_id': journal.id,
'account_bank_statement_import_txt_xlsx_test': True,
}).import_file()
statement = self.AccountBankStatement.search([
('journal_id', '=', journal.id),
])
self.assertEqual(len(statement), 1)
self.assertEqual(len(statement.line_ids), 1)
line = statement.line_ids
self.assertFalse(line.currency_id)
self.assertEqual(line.amount_currency, 0.0)
def test_multi_currency(self):
journal = self.AccountJournal.create({
'name': 'Bank',