[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 e780dd696f
commit f8361e40ac
4 changed files with 47 additions and 6 deletions

View File

@@ -252,22 +252,26 @@ class AccountBankStatementImportSheetParser(models.TransientModel):
timestamp = datetime.strptime(timestamp, mapping.timestamp_format)
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

@@ -223,6 +223,41 @@ 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,
}
)
data = self._data_file("fixtures/original_currency_empty.csv", "utf-8")
wizard = self.AccountBankStatementImport.with_context(
journal_id=journal.id
).create(
{
"attachment_ids": [
(
0,
0,
{"name": "fixtures/original_currency_empty.csv", "datas": data},
)
],
"sheet_mapping_id": self.sample_statement_map.id,
}
)
wizard.with_context(
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(
{