# 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" self.report_name_xlsx = "p_s.report_outstanding_statement_xlsx" 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.", ) 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.", ) 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." )