Merge PR #754 into 16.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2024-12-31 12:49:54 +00:00
3 changed files with 31 additions and 3 deletions

View File

@@ -26,6 +26,10 @@ class OnlineBankStatementProvider(models.Model):
company_id = fields.Many2one(related="journal_id.company_id", store=True)
active = fields.Boolean(default=True)
create_statement = fields.Boolean(
default=True,
help="Create statements for the downloaded transactions automatically or not.",
)
name = fields.Char(compute="_compute_name", store=True)
journal_id = fields.Many2one(
comodel_name="account.journal",
@@ -76,11 +80,12 @@ class OnlineBankStatementProvider(models.Model):
)
statement_creation_mode = fields.Selection(
selection=[
("daily", "Daily statements"),
("weekly", "Weekly statements"),
("monthly", "Monthly statements"),
("daily", "Day"),
("weekly", "Week"),
("monthly", "Month"),
],
default="daily",
string="Transactions interval to obtain",
required=True,
)
api_base = fields.Char()
@@ -298,6 +303,8 @@ class OnlineBankStatementProvider(models.Model):
"""Final creation of statement if new, else write."""
AccountBankStatement = self.env["account.bank.statement"]
is_scheduled = self.env.context.get("scheduled")
if not self.create_statement:
return self._online_create_statement_lines(statement_values)
if is_scheduled:
AccountBankStatement = AccountBankStatement.with_context(
tracking_disable=True,
@@ -319,6 +326,17 @@ class OnlineBankStatementProvider(models.Model):
statement.write(statement_values)
return statement
def _online_create_statement_lines(self, statement_values):
AccountBankStatementLine = self.env["account.bank.statement.line"]
is_scheduled = self.env.context.get("scheduled")
if is_scheduled:
AccountBankStatementLine = AccountBankStatementLine.with_context(
tracking_disable=True,
)
lines = [line[2] for line in statement_values.get("line_ids", [])]
AccountBankStatementLine.create(lines)
return self.env["account.bank.statement"] # Return empty statement
def _get_statement_filtered_lines(
self,
unfiltered_lines,

View File

@@ -385,6 +385,15 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
self.assertEqual(statements[1].balance_end, 200)
self.assertEqual(len(statements[1].line_ids), 1)
def test_dont_create_statement(self):
self.provider.statement_creation_mode = "monthly"
self.provider.create_statement = False
date_since = datetime(2024, 12, 1)
date_until = datetime(2024, 12, 31, 23, 59, 59)
self.provider.with_context(step={"days": 1})._pull(date_since, date_until)
self._getExpectedStatements(0)
self._getExpectedLines(31)
def test_unlink_provider(self):
"""Unlink provider should clear fields on journal."""
self.provider.unlink()

View File

@@ -83,6 +83,7 @@
</group>
<group name="configuration" string="Configuration">
<field name="statement_creation_mode" />
<field name="create_statement" />
<field name="tz" />
</group>
</group>