GoodERP
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

103 lines
4.8KB

  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. class TestSupplierStatements(TransactionCase):
  6. '''测试供应商对账单'''
  7. def setUp(self):
  8. '''供应商对账单向导及数据'''
  9. super(TestSupplierStatements, self).setUp()
  10. # 业务伙伴对账单向导: else self._context.get('default_supplier')
  11. objStatements = self.env['partner.statements.report.wizard']
  12. self.statement = objStatements.create({
  13. 'partner_id': self.env.ref('core.lenovo').id,
  14. 'from_date': '2016-01-01',
  15. 'to_date': '2016-11-01'}).with_context({'default_supplier': True})
  16. # 供应商期初余额,查看原始单据应报错
  17. self.env.ref('core.lenovo').payable_init = 1000
  18. partner = self.env['partner'].search(
  19. [('id', '=', self.env.ref('core.lenovo').id)])
  20. # 创建付款记录
  21. money_get = self.env.ref('money.get_40000')
  22. money_get.money_order_done()
  23. money_order = self.env.ref('money.pay_2000')
  24. money_order.money_order_done()
  25. # 给buy_order_1中的商品“键盘”的分类设置科目
  26. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  27. 'finance.account_goods').id
  28. # 创建采购入库单记录
  29. buy_order = self.env.ref('buy.buy_order_1')
  30. buy_order.bank_account_id = False
  31. buy_order.buy_order_done()
  32. objReceipt = self.env['buy.receipt']
  33. receipt = objReceipt.search([('order_id', '=', buy_order.id)])
  34. receipt.buy_receipt_done()
  35. # 创建采购退货单记录
  36. buy_return = self.env.ref('buy.buy_return_order_1')
  37. buy_return.bank_account_id = False
  38. buy_return.buy_order_done()
  39. receipt_return = objReceipt.search([('order_id', '=', buy_return.id)])
  40. receipt_return.buy_receipt_done()
  41. def test_supplier_statements_wizard(self):
  42. '''供应商对账单向导'''
  43. # 测试'结束日期不能小于开始日期!'
  44. self.statement.from_date = '2016-11-03'
  45. with self.assertRaises(UserError):
  46. self.statement.partner_statements_without_goods()
  47. with self.assertRaises(UserError):
  48. self.statement.partner_statements_with_goods()
  49. # 测试from_date的默认值是否是公司启用日期
  50. objStatements = self.env['partner.statements.report.wizard']
  51. statement_date = objStatements.create({
  52. 'partner_id': self.env.ref('core.lenovo').id,
  53. 'to_date': '2016-11-03'}).with_context({'default_supplier': True})
  54. self.assertEqual(
  55. statement_date.from_date,
  56. self.env.user.company_id.start_date
  57. )
  58. def test_supplier_statements_find_source(self):
  59. '''查看供应商对账单明细'''
  60. # 查看不带商品明细源单
  61. self.statement.partner_statements_without_goods()
  62. supplier_statement = self.env['supplier.statements.report'].search([])
  63. supplier_statement_init = self.env['supplier.statements.report'].search([('move_id', '=', False),
  64. ('amount', '!=', 0)])
  65. # 如果对账单中是期初余额行,点击查看按钮应报错
  66. with self.assertRaises(UserError):
  67. supplier_statement_init.find_source_order()
  68. for report in list(set(supplier_statement) - set(supplier_statement_init)):
  69. report.find_source_order()
  70. # 查看带商品明细源单
  71. self.statement.partner_statements_with_goods()
  72. objGoods = self.env['supplier.statements.report.with.goods']
  73. supplier_statement_goods = objGoods.search([('name', '!=', False)])
  74. supplier_statement_goods_init = objGoods.search([('move_id', '=', False),
  75. ('amount', '!=', 0)])
  76. if supplier_statement_goods_init:
  77. # 如果对账单中是期初余额行,点击查看按钮应报错
  78. with self.assertRaises(UserError):
  79. supplier_statement_goods_init.find_source_order()
  80. for report in list(set(supplier_statement_goods) - set(supplier_statement_goods_init)):
  81. self.assertNotEqual(str(report.balance_amount), 'kaihe11')
  82. report.find_source_order()
  83. class TestPartner(TransactionCase):
  84. def test_action_view_buy_history(self):
  85. """ 测试 供应商采购记录(最近一年)"""
  86. supplier_lenovo = self.env.ref('core.lenovo')
  87. supplier_lenovo.action_view_buy_history()
  88. # 测试 时间间隔大于1年的 if
  89. self.env.user.company_id.start_date = '2016-01-01'
  90. supplier_lenovo.action_view_buy_history()
上海开阖软件有限公司 沪ICP备12045867号-1