GoodERP
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

109 rindas
5.0KB

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