2021-11-14 03:10:44 +00:00
|
|
|
# Copyright 2018 ForgeFlow, S.L. (https://www.forgeflow.com)
|
|
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
|
|
|
|
|
|
from flectra.tests.common import TransactionCase
|
|
|
|
|
|
|
|
|
|
|
|
class TestOutstandingStatement(TransactionCase):
|
|
|
|
""" Tests for Outstanding Statement."""
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
super().setUp()
|
|
|
|
|
|
|
|
self.res_users_model = self.env["res.users"]
|
|
|
|
self.company = self.env.ref("base.main_company")
|
|
|
|
self.company.external_report_layout_id = self.env.ref(
|
|
|
|
"web.external_layout_standard"
|
|
|
|
)
|
|
|
|
self.partner1 = self.env.ref("base.res_partner_2")
|
|
|
|
self.partner2 = self.env.ref("base.res_partner_3")
|
|
|
|
self.g_account_user = self.env.ref("account.group_account_user")
|
|
|
|
|
|
|
|
self.user = self._create_user("user_1", [self.g_account_user], self.company).id
|
|
|
|
|
|
|
|
self.statement_model = self.env[
|
|
|
|
"report.partner_statement.outstanding_statement"
|
|
|
|
]
|
|
|
|
self.wiz = self.env["outstanding.statement.wizard"]
|
|
|
|
self.report_name = "partner_statement.outstanding_statement"
|
2021-12-19 03:11:29 +00:00
|
|
|
self.report_name_xlsx = "p_s.report_outstanding_statement_xlsx"
|
2021-11-14 03:10:44 +00:00
|
|
|
self.report_title = "Outstanding Statement"
|
|
|
|
|
|
|
|
def _create_user(self, login, groups, company):
|
|
|
|
group_ids = [group.id for group in groups]
|
|
|
|
user = self.res_users_model.create(
|
|
|
|
{
|
|
|
|
"name": login,
|
|
|
|
"login": login,
|
|
|
|
"email": "example@yourcompany.com",
|
|
|
|
"company_id": company.id,
|
|
|
|
"company_ids": [(4, company.id)],
|
|
|
|
"groups_id": [(6, 0, group_ids)],
|
|
|
|
}
|
|
|
|
)
|
|
|
|
return user
|
|
|
|
|
|
|
|
def test_customer_outstanding_statement(self):
|
|
|
|
|
|
|
|
wiz_id = self.wiz.with_context(
|
|
|
|
active_ids=[self.partner1.id, self.partner2.id]
|
|
|
|
).create({})
|
|
|
|
wiz_id.aging_type = "months"
|
|
|
|
|
|
|
|
statement = wiz_id.button_export_pdf()
|
|
|
|
|
|
|
|
self.assertDictContainsSubset(
|
|
|
|
{
|
|
|
|
"type": "ir.actions.report",
|
|
|
|
"report_name": self.report_name,
|
|
|
|
"report_type": "qweb-pdf",
|
|
|
|
},
|
|
|
|
statement,
|
|
|
|
"There was an error and the PDF report was not generated.",
|
|
|
|
)
|
|
|
|
|
2021-12-19 03:11:29 +00:00
|
|
|
statement_xlsx = wiz_id.button_export_xlsx()
|
|
|
|
|
|
|
|
self.assertDictContainsSubset(
|
|
|
|
{
|
|
|
|
"type": "ir.actions.report",
|
|
|
|
"report_name": self.report_name_xlsx,
|
|
|
|
"report_type": "xlsx",
|
|
|
|
},
|
|
|
|
statement_xlsx,
|
|
|
|
"There was an error and the PDF report was not generated.",
|
|
|
|
)
|
|
|
|
|
2021-11-14 03:10:44 +00:00
|
|
|
data = wiz_id._prepare_statement()
|
|
|
|
docids = data["partner_ids"]
|
|
|
|
report = self.statement_model._get_report_values(docids, data)
|
|
|
|
self.assertIsInstance(
|
|
|
|
report, dict, "There was an error while compiling the report."
|
|
|
|
)
|
|
|
|
self.assertIn(
|
|
|
|
"bucket_labels", report, "There was an error while compiling the report."
|
|
|
|
)
|
|
|
|
|
|
|
|
def test_customer_outstanding_report_no_wizard(self):
|
|
|
|
docids = [self.partner1.id]
|
|
|
|
report = self.statement_model._get_report_values(docids, False)
|
|
|
|
self.assertIsInstance(
|
|
|
|
report, dict, "There was an error while compiling the report."
|
|
|
|
)
|
|
|
|
self.assertIn(
|
|
|
|
"bucket_labels", report, "There was an error while compiling the report."
|
|
|
|
)
|