|
- # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
- from odoo.tests.common import TransactionCase
- from odoo.exceptions import UserError
- from datetime import datetime
-
-
- class TestReport(TransactionCase):
- def test_bank_report(self):
- ''' 测试银行对账单报表 '''
- # 生成收款单记录
- self.env.ref('money.get_40000').money_order_done()
- # 生成其他收支单记录
- last_balance = self.env.ref('core.comm').balance
- self.env.ref('money.other_get_60').other_money_done()
- # tax_rate = self.env.ref('base.main_company').import_tax_rates
- self.assertAlmostEqual(self.env.ref(
- 'core.comm').balance, last_balance + 60.0)
- # 生成转账单记录
- self.env.ref('money.transfer_300').money_transfer_done()
- # 执行向导
- self.env.ref('core.comm').init_balance = 10000
- statement = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
- 'from_date': '2016-11-01', 'to_date': '2016-11-03'})
- # 输出报表
- statement.confirm_bank_statements()
- # 测试现金银行对账单向导:'结束日期不能小于开始日期!'
- statement_date_error = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
- 'from_date': '2016-11-03', 'to_date': '2016-11-02'})
- with self.assertRaises(UserError):
- statement_date_error.confirm_bank_statements()
- # 测试现金银行对账单向导:from_date的默认值是否是公司启用日期
- statement_date = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
- 'to_date': '2016-11-03'})
- self.assertEqual(statement_date.from_date,
- self.env.user.company_id.start_date)
- # 查看对账单明细; 同时执行_compute_balance
- statement_money = self.env['bank.statements.report'].search([])
- for money in statement_money:
- self.assertNotEqual(str(money.balance), 'zxy')
- money.find_source_order()
-
- def test_bank_report_compute_init(self):
- ''' 测试 银行对账单报表 _compute_balance name 为 期初'''
- self.env.ref('money.other_get_60').other_money_done()
- self.env.ref('money.get_40000').money_order_done()
- self.env.ref('core.comm').init_balance = 10000
- statement = self.env['bank.statements.report.wizard'].create(
- {'bank_id': self.env.ref('core.comm').id})
- statement.confirm_bank_statements()
- statement_money = self.env['bank.statements.report'].search([])
- for money in statement_money:
- self.assertNotEqual(str(money.balance), 'kaihe')
- money.find_source_order()
-
- def test_other_money_report(self):
- ''' 测试其他收支单明细表'''
- # 执行向导
- statement = self.env['other.money.statements.report.wizard'].create({'from_date': '2016-11-01',
- 'to_date': '2016-11-03'})
- # 输出报表
- statement.confirm_other_money_statements()
- # 测试其他收支单明细表向导:'结束日期不能小于开始日期!'
- statement_error_date = self.env['other.money.statements.report.wizard'].create({'from_date': '2016-11-03',
- 'to_date': '2016-11-01'})
- with self.assertRaises(UserError):
- statement_error_date.confirm_other_money_statements()
- # 测试其他收支单明细表向导:from_date的默认值
- statement_date = self.env['other.money.statements.report.wizard'].create(
- {'to_date': '2016-11-03'})
- # 判断from_date的值是否是公司启用日期
- self.assertEqual(statement_date.from_date,
- self.env.user.company_id.start_date)
-
- def test_partner_statements_report(self):
- ''' 测试业务伙伴对账单报表'''
- # onchange_from_date 业务伙伴先改为供应商,再改为客户
- self.partner_id = self.env.ref('core.lenovo').id
- self.env['partner.statements.report.wizard'].onchange_from_date()
- self.assertEqual(self.partner_id, self.env.ref('core.lenovo').id)
- self.partner_id = self.env.ref('core.jd').id
- self.env['partner.statements.report.wizard'].with_context(
- {'default_customer': True}).onchange_from_date()
- self.assertEqual(self.partner_id, self.env.ref('core.jd').id)
-
- def test_money_get_pay_wizard(self):
- """资金收支报表"""
- # 创建向导
- wizard = self.env['money.get.pay.wizard'].create({})
- # 判断date_start的值是否是公司启用日期
- self.assertEqual(wizard.date_start,
- self.env.user.company_id.start_date)
- # 结束日期不能小于开始日期
- wizard_error = self.env['money.get.pay.wizard'].create({
- 'date_start': '2017-04-14',
- 'date_end': '2017-04-12',
- })
- with self.assertRaises(UserError):
- wizard_error.button_confirm()
- # 按全部筛选
- wizard.button_confirm()
- # 按其他收入筛选
- wizard.type = 'other_get'
- wizard.button_confirm()
-
- def test_cash_flow_wizard(self):
- """现金流量表"""
- # 创建向导
- wizard = self.env['cash.flow.wizard'].create({})
- # 判断 period_id 是否是当前月的会计期间
- datetime_str = datetime.now().strftime("%Y-%m-%d")
- datetime_str_list = datetime_str.split('-')
- period_row = self.env['finance.period'].search(
- [('year', '=', datetime_str_list[0]), ('month', '=', str(int(datetime_str_list[1])))])
- current_period = period_row and period_row[0]
- self.assertEqual(wizard.period_id, current_period)
- wizard.show()
|