GoodERP
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

119 行
6.1KB

  1. # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  3. from odoo.tests.common import TransactionCase
  4. from odoo.exceptions import UserError
  5. from datetime import datetime
  6. class TestReport(TransactionCase):
  7. def test_bank_report(self):
  8. ''' 测试银行对账单报表 '''
  9. # 生成收款单记录
  10. self.env.ref('money.get_40000').money_order_done()
  11. # 生成其他收支单记录
  12. last_balance = self.env.ref('core.comm').balance
  13. self.env.ref('money.other_get_60').other_money_done()
  14. # tax_rate = self.env.ref('base.main_company').import_tax_rates
  15. self.assertAlmostEqual(self.env.ref(
  16. 'core.comm').balance, last_balance + 60.0)
  17. # 生成转账单记录
  18. self.env.ref('money.transfer_300').money_transfer_done()
  19. # 执行向导
  20. self.env.ref('core.comm').init_balance = 10000
  21. statement = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
  22. 'from_date': '2016-11-01', 'to_date': '2016-11-03'})
  23. # 输出报表
  24. statement.confirm_bank_statements()
  25. # 测试现金银行对账单向导:'结束日期不能小于开始日期!'
  26. statement_date_error = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
  27. 'from_date': '2016-11-03', 'to_date': '2016-11-02'})
  28. with self.assertRaises(UserError):
  29. statement_date_error.confirm_bank_statements()
  30. # 测试现金银行对账单向导:from_date的默认值是否是公司启用日期
  31. statement_date = self.env['bank.statements.report.wizard'].create({'bank_id': self.env.ref('core.comm').id,
  32. 'to_date': '2016-11-03'})
  33. self.assertEqual(statement_date.from_date,
  34. self.env.user.company_id.start_date)
  35. # 查看对账单明细; 同时执行_compute_balance
  36. statement_money = self.env['bank.statements.report'].search([])
  37. for money in statement_money:
  38. self.assertNotEqual(str(money.balance), 'zxy')
  39. money.find_source_order()
  40. def test_bank_report_compute_init(self):
  41. ''' 测试 银行对账单报表 _compute_balance name 为 期初'''
  42. self.env.ref('money.other_get_60').other_money_done()
  43. self.env.ref('money.get_40000').money_order_done()
  44. self.env.ref('core.comm').init_balance = 10000
  45. statement = self.env['bank.statements.report.wizard'].create(
  46. {'bank_id': self.env.ref('core.comm').id})
  47. statement.confirm_bank_statements()
  48. statement_money = self.env['bank.statements.report'].search([])
  49. for money in statement_money:
  50. self.assertNotEqual(str(money.balance), 'kaihe')
  51. money.find_source_order()
  52. def test_other_money_report(self):
  53. ''' 测试其他收支单明细表'''
  54. # 执行向导
  55. statement = self.env['other.money.statements.report.wizard'].create({'from_date': '2016-11-01',
  56. 'to_date': '2016-11-03'})
  57. # 输出报表
  58. statement.confirm_other_money_statements()
  59. # 测试其他收支单明细表向导:'结束日期不能小于开始日期!'
  60. statement_error_date = self.env['other.money.statements.report.wizard'].create({'from_date': '2016-11-03',
  61. 'to_date': '2016-11-01'})
  62. with self.assertRaises(UserError):
  63. statement_error_date.confirm_other_money_statements()
  64. # 测试其他收支单明细表向导:from_date的默认值
  65. statement_date = self.env['other.money.statements.report.wizard'].create(
  66. {'to_date': '2016-11-03'})
  67. # 判断from_date的值是否是公司启用日期
  68. self.assertEqual(statement_date.from_date,
  69. self.env.user.company_id.start_date)
  70. def test_partner_statements_report(self):
  71. ''' 测试业务伙伴对账单报表'''
  72. # onchange_from_date 业务伙伴先改为供应商,再改为客户
  73. self.partner_id = self.env.ref('core.lenovo').id
  74. self.env['partner.statements.report.wizard'].onchange_from_date()
  75. self.assertEqual(self.partner_id, self.env.ref('core.lenovo').id)
  76. self.partner_id = self.env.ref('core.jd').id
  77. self.env['partner.statements.report.wizard'].with_context(
  78. {'default_customer': True}).onchange_from_date()
  79. self.assertEqual(self.partner_id, self.env.ref('core.jd').id)
  80. def test_money_get_pay_wizard(self):
  81. """资金收支报表"""
  82. # 创建向导
  83. wizard = self.env['money.get.pay.wizard'].create({})
  84. # 判断date_start的值是否是公司启用日期
  85. self.assertEqual(wizard.date_start,
  86. self.env.user.company_id.start_date)
  87. # 结束日期不能小于开始日期
  88. wizard_error = self.env['money.get.pay.wizard'].create({
  89. 'date_start': '2017-04-14',
  90. 'date_end': '2017-04-12',
  91. })
  92. with self.assertRaises(UserError):
  93. wizard_error.button_confirm()
  94. # 按全部筛选
  95. wizard.button_confirm()
  96. # 按其他收入筛选
  97. wizard.type = 'other_get'
  98. wizard.button_confirm()
  99. def test_cash_flow_wizard(self):
  100. """现金流量表"""
  101. # 创建向导
  102. wizard = self.env['cash.flow.wizard'].create({})
  103. # 判断 period_id 是否是当前月的会计期间
  104. datetime_str = datetime.now().strftime("%Y-%m-%d")
  105. datetime_str_list = datetime_str.split('-')
  106. period_row = self.env['finance.period'].search(
  107. [('year', '=', datetime_str_list[0]), ('month', '=', str(int(datetime_str_list[1])))])
  108. current_period = period_row and period_row[0]
  109. self.assertEqual(wizard.period_id, current_period)
  110. wizard.show()
上海开阖软件有限公司 沪ICP备12045867号-1