Merge PR #513 into 14.0

Signed-off-by JordiBForgeFlow
This commit is contained in:
OCA-git-bot
2023-06-21 12:36:12 +00:00

View File

@@ -194,30 +194,8 @@ class AccountStatementImportSheetParser(models.TransientModel):
return " ".join(content_l)
return content_l[0]
def _parse_rows(self, mapping, currency_code, csv_or_xlsx, columns): # noqa: C901
if isinstance(csv_or_xlsx, tuple):
rows = range(1, csv_or_xlsx[1].nrows)
else:
rows = csv_or_xlsx
lines = []
for row in rows:
if isinstance(csv_or_xlsx, tuple):
book = csv_or_xlsx[0]
sheet = csv_or_xlsx[1]
values = []
for col_index in range(sheet.row_len(row)):
cell_type = sheet.cell_type(row, col_index)
cell_value = sheet.cell_value(row, col_index)
if cell_type == xlrd.XL_CELL_DATE:
cell_value = xldate_as_datetime(cell_value, book.datemode)
values.append(cell_value)
else:
values = list(row)
timestamp = self._get_values_from_column(
values, columns, "timestamp_column"
)
def _parse_row(self, mapping, currency_code, values, columns): # noqa: C901
timestamp = self._get_values_from_column(values, columns, "timestamp_column")
currency = (
self._get_values_from_column(values, columns, "currency_column")
if columns["currency_column"]
@@ -243,9 +221,7 @@ class AccountStatementImportSheetParser(models.TransientModel):
else None
)
original_currency = (
self._get_values_from_column(
values, columns, "original_currency_column"
)
self._get_values_from_column(values, columns, "original_currency_column")
if columns["original_currency_column"]
else None
)
@@ -296,7 +272,7 @@ class AccountStatementImportSheetParser(models.TransientModel):
)
if currency != currency_code:
continue
return {}
if isinstance(timestamp, str):
timestamp = datetime.strptime(timestamp, mapping.timestamp_format)
@@ -312,9 +288,9 @@ class AccountStatementImportSheetParser(models.TransientModel):
amount = -amount
if original_amount:
original_amount = self._parse_decimal(
original_amount, mapping
).copy_sign(amount)
original_amount = self._parse_decimal(original_amount, mapping).copy_sign(
amount
)
else:
original_amount = 0.0
@@ -341,6 +317,30 @@ class AccountStatementImportSheetParser(models.TransientModel):
line["bank_name"] = bank_name
if bank_account is not None:
line["bank_account"] = bank_account
return line
def _parse_rows(self, mapping, currency_code, csv_or_xlsx, columns): # noqa: C901
if isinstance(csv_or_xlsx, tuple):
rows = range(1, csv_or_xlsx[1].nrows)
else:
rows = csv_or_xlsx
lines = []
for row in rows:
if isinstance(csv_or_xlsx, tuple):
book = csv_or_xlsx[0]
sheet = csv_or_xlsx[1]
values = []
for col_index in range(sheet.row_len(row)):
cell_type = sheet.cell_type(row, col_index)
cell_value = sheet.cell_value(row, col_index)
if cell_type == xlrd.XL_CELL_DATE:
cell_value = xldate_as_datetime(cell_value, book.datemode)
values.append(cell_value)
else:
values = list(row)
line = self._parse_row(mapping, currency_code, values, columns)
if line:
lines.append(line)
return lines