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

387 行
17KB

  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 TestDetailWizard(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(TestDetailWizard, self).setUp()
  15. # 给wh_in_whin0修改时间,使其凭证在demo会计期间内
  16. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  17. # 因同一个业务伙伴不能存在两张未审核的收付款单,把系统里已有的相关业务伙伴未审核的收付款单审核
  18. self.env.ref('money.get_40000').money_order_done()
  19. self.env.ref('money.pay_2000').money_order_done()
  20. # 给buy_order_1中的商品“键盘”的分类设置科目
  21. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  22. 'finance.account_goods').id
  23. warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
  24. warehouse_obj.approve_order()
  25. self.order = self.env.ref('buy.buy_order_1')
  26. self.order.bank_account_id = False
  27. self.order.buy_order_done()
  28. self.receipt = self.env['buy.receipt'].search(
  29. [('order_id', '=', self.order.id)])
  30. self.receipt.bank_account_id = self.env.ref('core.comm')
  31. self.receipt.payment = 2.0
  32. self.receipt.buy_receipt_done()
  33. self.receipt_return = self.browse_ref('buy.buy_receipt_return_1')
  34. self.receipt_return.buy_receipt_done()
  35. self.detail_obj = self.env['buy.order.detail.wizard']
  36. self.detail = self.detail_obj.create({})
  37. # 退货订单审核生成退货单,退货单审核
  38. return_order = self.env.ref('buy.buy_return_order_1')
  39. return_order.bank_account_id = False
  40. return_order.buy_order_done()
  41. return_receipt = self.env['buy.receipt'].search(
  42. [('order_id', '=', return_order.id)])
  43. return_receipt.buy_receipt_done()
  44. def test_button_ok(self):
  45. '''测试采购入库明细表确认按钮'''
  46. # 日期报错
  47. detail = self.detail_obj.create({
  48. 'date_start': '2016-11-01',
  49. 'date_end': '2016-1-01',
  50. })
  51. with self.assertRaises(UserError):
  52. detail.button_ok()
  53. # 按日期搜索
  54. self.detail.button_ok()
  55. # 按商品、供应商、单据编号、仓库搜索
  56. self.detail.goods_id = self.env.ref('goods.mouse').id
  57. self.detail.partner_id = self.env.ref('core.lenovo').id
  58. self.detail.order_id = self.receipt.id
  59. self.detail.warehouse_dest_id = self.env.ref('warehouse.hd_stock').id
  60. self.detail.button_ok()
  61. def test_view_detail(self):
  62. '''查看明细按钮'''
  63. self.detail.button_ok()
  64. goods_id = self.env.ref('goods.keyboard').id
  65. detail_line = self.env['buy.order.detail'].search(
  66. [('goods_id', '=', goods_id)])
  67. for line in detail_line:
  68. line.view_detail()
  69. class TestTrackWizard(TransactionCase):
  70. '''测试采购订单跟踪表向导'''
  71. def setUp(self):
  72. ''' 准备报表数据 '''
  73. super(TestTrackWizard, self).setUp()
  74. return
  75. # 因同一个业务伙伴不能存在两张未审核的收付款单,把系统里已有的相关业务伙伴未审核的收付款单审核
  76. self.env.ref('money.get_40000').money_order_done()
  77. self.env.ref('money.pay_2000').money_order_done()
  78. # 给商品的分类设置科目
  79. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  80. 'finance.account_goods').id
  81. warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
  82. # 给wh_in_whin0修改时间,使其凭证在demo会计期间内
  83. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  84. warehouse_obj.approve_order()
  85. self.order = self.env.ref('buy.buy_order_1')
  86. order_2 = self.env.ref('buy.buy_order_1_same')
  87. order_2.quantity = 1
  88. for line in order_2.line_ids:
  89. line.goods_id = self.env.ref('goods.mouse').id
  90. line.lot = 'mouse001'
  91. order_2.bank_account_id = False
  92. order_2.buy_order_done()
  93. receipt_2 = self.env['buy.receipt'].search(
  94. [('order_id', '=', order_2.id)])
  95. line_lists = []
  96. for line in receipt_2.line_in_ids:
  97. if line.id not in line_lists:
  98. line.lot = 'mouse_lot_' + str(line.id)
  99. line.goods_qty = 1
  100. line_lists.append(line.id)
  101. receipt_2.buy_receipt_done()
  102. receipt_3 = self.env['buy.receipt'].search(
  103. [('order_id', '=', order_2.id), ('state', '=', 'draft')])
  104. receipt_3.buy_receipt_done()
  105. self.order.bank_account_id = False
  106. self.order.buy_order_done()
  107. self.receipt = self.env['buy.receipt'].search(
  108. [('order_id', '=', self.order.id)])
  109. self.receipt.bank_account_id = self.env.ref('core.comm')
  110. self.receipt.payment = 2.0
  111. self.receipt.buy_receipt_done()
  112. self.receipt_return = self.browse_ref('buy.buy_receipt_return_1')
  113. self.receipt_return.buy_receipt_done()
  114. self.track_obj = self.env['buy.order.track.wizard']
  115. self.track = self.track_obj.create({})
  116. def test_button_ok(self):
  117. '''测试采购订单跟踪表确认按钮'''
  118. return
  119. # 日期报错
  120. track = self.track_obj.create({
  121. 'date_start': '2016-11-01',
  122. 'date_end': '2016-1-01',
  123. })
  124. with self.assertRaises(UserError):
  125. track.button_ok()
  126. # 按日期搜索
  127. self.track.button_ok()
  128. # 按商品、供应商、订单号、仓库搜索
  129. self.track.goods_id = self.env.ref('goods.mouse').id
  130. self.track.partner_id = self.env.ref('core.lenovo').id
  131. self.track.order_id = self.order.id
  132. self.track.warehouse_dest_id = self.env.ref('warehouse.hd_stock').id
  133. self.track.button_ok()
  134. def test_view_detail(self):
  135. '''查看明细按钮'''
  136. return
  137. self.track.button_ok()
  138. goods_id = self.env.ref('goods.cable').id
  139. track_line = self.env['buy.order.track'].search(
  140. [('goods_id', '=', goods_id)])
  141. track_line[0].view_detail()
  142. class TestPaymentWizard(TransactionCase):
  143. @classmethod
  144. def setUpClass(cls):
  145. super().setUpClass()
  146. # Declare the business roles required by the original order workflow.
  147. cls.env.user.groups_id |= cls.env.ref('buy.group_buy')
  148. '''测试采购付款一览表向导'''
  149. def setUp(self):
  150. ''' 准备报表数据 '''
  151. super(TestPaymentWizard, self).setUp()
  152. # 因同一个业务伙伴不能存在两张未审核的收付款单,把系统里已有的相关业务伙伴未审核的收付款单审核
  153. self.env.ref('money.get_40000').money_order_done()
  154. self.env.ref('money.pay_2000').money_order_done()
  155. # 给buy_order_1中的商品“键盘”的分类设置科目
  156. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  157. 'finance.account_goods').id
  158. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  159. warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
  160. warehouse_obj.approve_order()
  161. self.order = self.env.ref('buy.buy_order_1')
  162. self.order.bank_account_id = False
  163. self.order.buy_order_done()
  164. self.receipt = self.env['buy.receipt'].search(
  165. [('order_id', '=', self.order.id)])
  166. self.receipt.bank_account_id = self.env.ref('core.comm')
  167. self.receipt.payment = 2.0
  168. new_receipt = self.receipt.copy()
  169. new_receipt.payment = 0
  170. new_receipt.bank_account_id = False
  171. new_receipt.buy_receipt_done()
  172. self.receipt.buy_receipt_done()
  173. # 查找产生的付款单,并审核
  174. source_line = self.env['source.order.line'].search(
  175. [('name', '=', self.receipt.invoice_id.id)])
  176. for line in source_line:
  177. line.money_id.money_order_done()
  178. self.receipt_return = self.browse_ref('buy.buy_receipt_return_1')
  179. self.receipt_return.buy_receipt_done()
  180. self.payment_obj = self.env['buy.payment.wizard']
  181. self.payment = self.payment_obj.create({})
  182. def test_button_ok(self):
  183. '''测试采购付款一览表确认按钮'''
  184. # 日期报错
  185. payment = self.payment_obj.create({
  186. 'date_start': '2016-11-01',
  187. 'date_end': '2016-1-01',
  188. })
  189. with self.assertRaises(UserError):
  190. payment.button_ok()
  191. # 按日期搜索
  192. self.payment.button_ok()
  193. # 按供应商类别,供应商,采购单号搜索
  194. s_category_id = self.env.ref('core.supplier_category_1').id
  195. self.payment.s_category_id = s_category_id
  196. self.payment.partner_id = self.env.ref('core.lenovo').id
  197. self.payment.order_id = self.env.ref('buy.buy_order_1').id
  198. self.payment.warehouse_dest_id = self.env.ref('warehouse.hd_stock').id
  199. self.payment.button_ok()
  200. def test_view_detail(self):
  201. '''查看明细按钮'''
  202. self.payment.button_ok()
  203. payment_line = self.env['buy.payment'].search(
  204. [('order_name', '=', self.receipt.name)])
  205. for line in payment_line:
  206. line.view_detail()
  207. payment_line2 = self.env['buy.payment'].search(
  208. [('order_name', '=', self.receipt_return.name)])
  209. for line in payment_line2:
  210. line.view_detail()
  211. class TestGoodsWizard(TransactionCase):
  212. @classmethod
  213. def setUpClass(cls):
  214. super().setUpClass()
  215. # Declare the business roles required by the original order workflow.
  216. cls.env.user.groups_id |= cls.env.ref('buy.group_buy')
  217. '''测试采购汇总表(按商品)向导'''
  218. def setUp(self):
  219. ''' 准备报表数据 '''
  220. super(TestGoodsWizard, self).setUp()
  221. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  222. 'finance.account_goods').id
  223. # 因同一个业务伙伴不能存在两张未审核的收付款单,把系统里已有的相关业务伙伴未审核的收付款单审核
  224. self.env.ref('money.get_40000').money_order_done()
  225. self.env.ref('money.pay_2000').money_order_done()
  226. # 给wh_in_whin0修改时间,使其凭证在demo会计期间内
  227. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  228. warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
  229. warehouse_obj.approve_order()
  230. self.order = self.env.ref('buy.buy_order_1')
  231. self.order.bank_account_id = False
  232. self.order.buy_order_done()
  233. self.receipt = self.env['buy.receipt'].search(
  234. [('order_id', '=', self.order.id)])
  235. self.receipt.bank_account_id = self.env.ref('core.comm')
  236. self.receipt.payment = 2.0
  237. self.receipt.buy_receipt_done()
  238. self.receipt_return = self.browse_ref('buy.buy_receipt_return_1')
  239. self.receipt_return.buy_receipt_done()
  240. self.goods_wizard_obj = self.env['buy.summary.goods.wizard']
  241. self.goods_wizard = self.goods_wizard_obj.create({})
  242. self.goods_mouse = self.env.ref('goods.mouse')
  243. self.core_lenovo = self.env.ref('core.lenovo')
  244. self.goods_categ = self.env.ref('core.goods_category_1')
  245. self.hd_stock = self.env.ref('warehouse.hd_stock')
  246. def test_button_ok(self):
  247. '''采购汇总表(按商品)向导确认按钮'''
  248. # 日期报错
  249. goods_wizard = self.goods_wizard_obj.create({
  250. 'date_start': '2016-11-01',
  251. 'date_end': '2016-1-01',
  252. })
  253. with self.assertRaises(UserError):
  254. goods_wizard.button_ok()
  255. # 按日期搜索
  256. self.goods_wizard.button_ok()
  257. def test_goods_report(self):
  258. '''测试采购汇总表(按商品)报表'''
  259. summary_goods = self.env['buy.summary.goods'].create({})
  260. context = self.goods_wizard.button_ok().get('context')
  261. results = summary_goods.with_context(context).search_read(domain=[])
  262. new_wizard = self.goods_wizard.copy()
  263. new_wizard.goods_id = self.goods_mouse.id
  264. new_wizard.partner_id = self.core_lenovo.id
  265. new_wizard.goods_categ_id = self.goods_categ.id
  266. new_wizard.warehouse_dest_id = self.hd_stock.id
  267. new_context = new_wizard.button_ok().get('context')
  268. new_results = summary_goods.with_context(new_context).search_read(
  269. domain=[])
  270. def test_view_detail(self):
  271. '''采购汇总表(按商品) 查看明细按钮'''
  272. # 先创建采购明细表
  273. detail_obj = self.env['buy.order.detail.wizard']
  274. detail = detail_obj.create({})
  275. detail.button_ok()
  276. summary_goods = self.env['buy.summary.goods'].create({})
  277. context = self.goods_wizard.button_ok().get('context')
  278. results = summary_goods.with_context(context).search_read(domain=[])
  279. for line in results:
  280. summary_line = summary_goods.browse(line['id'])
  281. summary_line.with_context(context).view_detail()
  282. class TestPartnerWizard(TransactionCase):
  283. @classmethod
  284. def setUpClass(cls):
  285. super().setUpClass()
  286. # Declare the business roles required by the original order workflow.
  287. cls.env.user.groups_id |= cls.env.ref('buy.group_buy')
  288. '''测试采购汇总表(按供应商)向导'''
  289. def setUp(self):
  290. ''' 准备报表数据 '''
  291. super(TestPartnerWizard, self).setUp()
  292. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  293. 'finance.account_goods').id
  294. # 因同一个业务伙伴不能存在两张未审核的收付款单,把系统里已有的相关业务伙伴未审核的收付款单审核
  295. self.env.ref('money.get_40000').money_order_done()
  296. self.env.ref('money.pay_2000').money_order_done()
  297. # 给wh_in_whin0修改时间,使其凭证在demo会计期间内
  298. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  299. warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
  300. warehouse_obj.approve_order()
  301. self.order = self.env.ref('buy.buy_order_1')
  302. self.order.bank_account_id = False
  303. self.order.buy_order_done()
  304. self.receipt = self.env['buy.receipt'].search(
  305. [('order_id', '=', self.order.id)])
  306. self.receipt.bank_account_id = self.env.ref('core.comm')
  307. self.receipt.payment = 2.0
  308. self.receipt.buy_receipt_done()
  309. self.receipt_return = self.browse_ref('buy.buy_receipt_return_1')
  310. self.receipt_return.buy_receipt_done()
  311. self.partner_obj = self.env['buy.summary.partner.wizard']
  312. self.partner = self.partner_obj.create({})
  313. def test_button_ok(self):
  314. '''采购汇总表(按供应商)向导确认按钮'''
  315. # 日期报错
  316. partner = self.partner_obj.create({
  317. 'date_start': '2016-11-01',
  318. 'date_end': '2016-1-01',
  319. })
  320. with self.assertRaises(UserError):
  321. partner.button_ok()
  322. def test_partner_report(self):
  323. '''采购汇总表(按供应商)报表'''
  324. summary_partner = self.env['buy.summary.partner'].create({})
  325. context = self.partner.button_ok().get('context')
  326. results = summary_partner.with_context(context).search_read(domain=[])
  327. new_wizard = self.partner.copy()
  328. new_wizard.goods_id = self.env.ref('goods.mouse').id
  329. new_wizard.partner_id = self.env.ref('core.lenovo').id
  330. new_wizard.s_category_id = \
  331. self.env.ref('core.supplier_category_1').id
  332. new_wizard.warehouse_dest_id = \
  333. self.env.ref('warehouse.hd_stock').id
  334. new_context = new_wizard.button_ok().get('context')
  335. new_results = summary_partner.with_context(new_context).search_read(
  336. domain=[])
  337. def test_view_detail(self):
  338. '''采购汇总表(按供应商) 查看明细按钮'''
  339. # 先创建采购明细表
  340. detail_obj = self.env['buy.order.detail.wizard']
  341. detail = detail_obj.create({})
  342. detail.button_ok()
  343. summary_partner = self.env['buy.summary.partner'].create({})
  344. context = self.partner.button_ok().get('context')
  345. results = summary_partner.with_context(context).search_read(domain=[])
  346. for line in results:
  347. summary_line = summary_partner.browse(line['id'])
  348. summary_line.with_context(context).view_detail()
上海开阖软件有限公司 沪ICP备12045867号-1