Skip to content

Commit

Permalink
Merge PR #754 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed Dec 31, 2024
2 parents 5e151fc + 44cf0c5 commit 8b2f56d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -298,6 +303,8 @@ def _statement_create_or_write(self, statement_values):
"""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,
Expand All @@ -319,6 +326,17 @@ def _statement_create_or_write(self, statement_values):
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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,15 @@ def test_dont_create_empty_statements(self):
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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
</group>
<group name="configuration" string="Configuration">
<field name="statement_creation_mode" />
<field name="create_statement" />
<field name="tz" />
</group>
</group>
Expand Down

0 comments on commit 8b2f56d

Please sign in to comment.