mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[FIX] account_bank_statement_import_txt_xlsx: handle empty currency
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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",""
|
||||
|
||||
|
2
account_bank_statement_import_txt_xlsx/tests/fixtures/original_currency_empty.csv
vendored
Normal file
2
account_bank_statement_import_txt_xlsx/tests/fixtures/original_currency_empty.csv
vendored
Normal 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",""
|
||||
|
@@ -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(
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user