Merge PR #551 into 14.0

Signed-off-by JordiBForgeFlow
This commit is contained in:
OCA-git-bot
2023-06-09 10:07:47 +00:00
2 changed files with 34 additions and 31 deletions

View File

@@ -37,6 +37,32 @@ class TestScenarioReconcile(TestAccountReconciliationCommon):
default_vals.update(values) default_vals.update(values)
acs_ids = cls.acs_model.create(default_vals) acs_ids = cls.acs_model.create(default_vals)
def create_currency_rate(self, name, currency, company, rate):
currency_rate = (
self.env["res.currency.rate"]
.sudo()
.search(
[
("currency_id", "=", currency),
("company_id", "=", company),
]
)
.filtered(lambda r: r.name == name)
)
if not currency_rate:
# create currency rate
self.env["res.currency.rate"].sudo().create(
{
"name": name,
"currency_id": currency,
"rate": rate,
"company_id": company,
}
)
else:
currency_rate = fields.first(currency_rate)
currency_rate.rate = rate
def test_scenario_reconcile(self): def test_scenario_reconcile(self):
invoice = self.create_invoice() invoice = self.create_invoice()
self.assertEqual("posted", invoice.state) self.assertEqual("posted", invoice.state)
@@ -68,29 +94,10 @@ class TestScenarioReconcile(TestAccountReconciliationCommon):
self.assertEqual("paid", invoice.payment_state) self.assertEqual("paid", invoice.payment_state)
def test_scenario_reconcile_currency(self): def test_scenario_reconcile_currency(self):
currency_rate = ( rate_date = fields.Date.today()
self.env["res.currency.rate"] self.create_currency_rate(
.sudo() rate_date, self.ref("base.USD"), self.ref("base.main_company"), 1.5
.search(
[
("currency_id", "=", self.ref("base.USD")),
("company_id", "=", self.ref("base.main_company")),
]
) )
.filtered(lambda r: r.name == fields.Date.today())
)
if not currency_rate:
# create currency rate
self.env["res.currency.rate"].create(
{
"name": fields.Date.today(),
"currency_id": self.ref("base.USD"),
"rate": 1.5,
}
)
else:
currency_rate = fields.first(currency_rate)
currency_rate.rate = 1.5
# create invoice # create invoice
invoice = self._create_invoice( invoice = self._create_invoice(
currency_id=self.ref("base.USD"), currency_id=self.ref("base.USD"),
@@ -98,13 +105,9 @@ class TestScenarioReconcile(TestAccountReconciliationCommon):
auto_validate=True, auto_validate=True,
) )
self.assertEqual("posted", invoice.state) self.assertEqual("posted", invoice.state)
rate_date = fields.Date.today() - timedelta(days=3)
self.env["res.currency.rate"].create( self.create_currency_rate(
{ rate_date, self.ref("base.USD"), self.ref("base.main_company"), 2
"name": fields.Date.today() - timedelta(days=3),
"currency_id": self.ref("base.USD"),
"rate": 2,
}
) )
receivable_account_id = invoice.partner_id.property_account_receivable_id.id receivable_account_id = invoice.partner_id.property_account_receivable_id.id
# create payment # create payment

View File

@@ -44,7 +44,7 @@ class TestScenarioReconcileAsJob(TestScenarioReconcile):
mass_rec.run_reconcile() mass_rec.run_reconcile()
trap.assert_jobs_count(1) trap.assert_jobs_count(1)
trap.assert_enqueued_job( trap.assert_enqueued_job(
self.env["account.mass.reconcile"].reconcile_as_job, mass_rec.reconcile_as_job,
args=(), args=(),
) )
job = trap.enqueued_jobs[0] job = trap.enqueued_jobs[0]
@@ -90,7 +90,7 @@ class TestScenarioReconcileAsJob(TestScenarioReconcile):
mass_rec.run_reconcile() mass_rec.run_reconcile()
trap.assert_jobs_count(1) trap.assert_jobs_count(1)
trap.assert_enqueued_job( trap.assert_enqueued_job(
self.env["account.mass.reconcile"].reconcile_as_job, mass_rec.reconcile_as_job,
args=(), args=(),
) )
job = trap.enqueued_jobs[0] job = trap.enqueued_jobs[0]