|
- from odoo.tests.common import TransactionCase
- from odoo.exceptions import UserError
-
-
- class TestCustomerStatements(TransactionCase):
- '''测试客户对账单'''
-
- def setUp(self):
- '''客户账单向导及数据'''
- super(TestCustomerStatements, self).setUp()
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- # 业务伙伴对账单向导: self._context.get('default_customer')
- self.statement = self.env['partner.statements.report.wizard'].create(
- {'partner_id': self.env.ref('core.jd').id,
- 'to_date': '2016-11-01'}).with_context({'default_customer': True})
-
- # 客户期初余额,查看原始单据应报错
- self.env.ref('core.jd').receivable_init = 1000
- # 创建收款记录
- money_get = self.env.ref('money.get_40000')
- money_get.money_order_done()
- # 创建销售出货单记录
- self.env.ref('warehouse.wh_move_line_14').goods_uos_qty = 200
- self.env.ref(
- 'warehouse.wh_move_line_14').production_date = '2016-02-04'
- self.env.ref('warehouse.wh_move_line_14').action_done()
- sell_order = self.env.ref('sell.sell_order_2')
- sell_order.sell_order_done()
- # 因为下面要用到 商品在系统里面必须是有数量的 所以,找到一个简单的方式直接确认已有的盘点单
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
-
- receipt = self.env['sell.delivery'].search(
- [('order_id', '=', sell_order.id)])
- receipt.sell_delivery_done()
-
- # 创建销售退货单记录
- sell_return = self.env.ref('sell.sell_order_return')
- sell_return.sell_order_done()
- receipt_return = self.env['sell.delivery'].search(
- [('order_id', '=', sell_return.id)])
- receipt_return.sell_delivery_done()
- invoices = self.env['money.invoice'].search([('state', '=', 'draft')])
- for i in invoices:
- i.money_invoice_done()
-
- def test_customer_statements_wizard(self):
- '''客户对账单向导'''
- # 测试客户对账单方法中的'结束日期不能小于开始日期!'
- self.statement.from_date = '2016-11-03'
- with self.assertRaises(UserError):
- self.statement.partner_statements_without_goods()
- with self.assertRaises(UserError):
- self.statement.partner_statements_with_goods()
- # 测试客户对账单方法中的from_date的默认值是否是公司启用日期
- statement_date = self.env['partner.statements.report.wizard'].create({'partner_id': self.env.ref('sell.sell_order_1').partner_id.id,
- 'to_date': '2016-11-03'})
- self.assertEqual(statement_date.from_date,
- self.env.user.company_id.start_date)
-
- def test_customer_statements_find_source(self):
- '''查看客户对账单明细'''
- # 查看客户对账单明细不带商品明细
- self.statement.partner_statements_without_goods()
- customer_statement = self.env['customer.statements.report'].search([])
- customer_statement_init = self.env['customer.statements.report'].search([('move_id', '=', False),
- ('amount', '!=', 0)])
- # 如果对账单中是期初余额行,点击查看按钮应报错
- with self.assertRaises(UserError):
- customer_statement_init.find_source_order()
-
- for report in list(set(customer_statement) - set(customer_statement_init)):
- report.find_source_order()
-
- # 查看客户对账单带商品明细
- self.statement.partner_statements_with_goods()
- customer_statement_goods = self.env['customer.statements.report.with.goods'].search([
- ('name', '!=', False)])
- customer_statement_goods_init = self.env['customer.statements.report.with.goods'].search([('move_id', '=', False),
- ('amount', '!=', 0)])
-
- # 如果对账单中是期初余额行,点击查看按钮应报错
- with self.assertRaises(UserError):
- customer_statement_goods_init.find_source_order()
-
- for report in list(set(customer_statement_goods) - set(customer_statement_goods_init)):
- self.assertNotEqual(str(report.balance_amount), 'kaihe11')
- report.find_source_order()
-
-
- class TestTrackWizard(TransactionCase):
- '''测试销售订单跟踪表向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestTrackWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- # 补足商品网线的数量
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
-
- self.order = self.env.ref('sell.sell_order_2')
- order_2 = self.order.copy()
- order_2.sell_order_done()
- # 分批出库
- delivery_2 = self.env['sell.delivery'].search(
- [('order_id', '=', order_2.id)])
- for line in delivery_2.line_out_ids:
- line.goods_qty = 5
- delivery_2.sell_delivery_done()
- delivery_3 = self.env['sell.delivery'].search(
- [('order_id', '=', order_2.id), ('state', '=', 'draft')])
- delivery_3.sell_delivery_done()
-
- # 销售订单产生退货单
- sell_return = self.env.ref('sell.sell_order_return')
- sell_return.sell_order_done()
-
- self.track_obj = self.env['sell.order.track.wizard']
- self.track = self.track_obj.create({})
-
- def test_button_ok(self):
- '''测试销售订单跟踪表 确认按钮'''
- # 日期报错
- track = self.track_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- track.button_ok()
- # 按日期搜索
- self.track.button_ok()
- # 按商品、客户、销售员、仓库搜索
- self.track.goods_id = self.env.ref('goods.mouse').id
- self.track.partner_id = self.env.ref('core.yixun').id
- self.track.user_id = self.env.ref('base.user_demo').id
- self.track.warehouse_id = self.env.ref('warehouse.hd_stock').id
- self.track.button_ok()
-
- def test_view_detail(self):
- '''测试销售订单跟踪表 查看明细按钮'''
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
-
- self.track.button_ok()
- goods_id = self.env.ref('goods.cable').id
- track_line = self.env['sell.order.track'].search(
- [('goods_id', '=', goods_id)])
- track_line[0].view_detail()
-
-
- class TestDetailWizard(TransactionCase):
- '''测试销售订单明细表向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestDetailWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- # 补足商品网线的数量
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
- # 复制一张销售订单并审核
- self.order = self.env.ref('sell.sell_order_2')
- order_2 = self.order.copy()
- order_2.sell_order_done()
-
- # 审核出库单
- delivery_2 = self.env['sell.delivery'].search(
- [('order_id', '=', order_2.id)])
- delivery_2.sell_delivery_done()
-
- # 销售订单产生退货单,并审核退货单
- sell_return = self.env.ref('sell.sell_order_return')
- sell_return.sell_order_done()
- delivery_return = self.env['sell.delivery'].search(
- [('order_id', '=', sell_return.id)])
- delivery_return.sell_delivery_done()
-
- self.detail_obj = self.env['sell.order.detail.wizard']
- self.detail = self.detail_obj.create({})
-
- def test_button_ok(self):
- '''测试销售订单明细表 确认按钮'''
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
-
- detail = self.detail_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- detail.button_ok()
- # 按日期搜索
- self.detail.button_ok()
- # 按商品、客户、销售员、仓库搜索
- self.detail.goods_id = self.env.ref('goods.mouse').id
- self.detail.partner_id = self.env.ref('core.yixun').id
- self.detail.user_id = self.env.ref('base.user_demo').id
- self.detail.warehouse_id = self.env.ref('warehouse.hd_stock').id
- self.detail.button_ok()
-
- def test_view_detail(self):
- '''测试销售订单明细表 查看明细按钮'''
- self.detail.button_ok()
- goods_id = self.env.ref('goods.cable').id
- detail_line = self.env['sell.order.detail'].search(
- [('goods_id', '=', goods_id)])
- for line in detail_line:
- line.view_detail()
-
-
- class TestGoodsWizard(TransactionCase):
- '''测试销售汇总表(按商品)向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestGoodsWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.delivery.sell_delivery_done()
- self.goods_wizard_obj = self.env['sell.summary.goods.wizard']
- self.goods_wizard = self.goods_wizard_obj.create({})
-
- def test_button_ok(self):
- '''销售汇总表(按商品)向导确认按钮'''
- # 日期报错
- goods_wizard = self.goods_wizard_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- goods_wizard.button_ok()
- # 按日期搜索
- self.goods_wizard.button_ok()
-
- def test_goods_report(self):
- '''测试销售汇总表(按商品)报表'''
- summary_goods = self.env['sell.summary.goods']
- context = self.goods_wizard.button_ok().get('context')
- results = summary_goods.with_context(context).search_read(domain=[])
- new_goods_wizard = self.goods_wizard.copy()
- new_goods_wizard.goods_id = self.env.ref('goods.mouse').id
- new_goods_wizard.partner_id = self.env.ref('core.jd').id
- new_goods_wizard.goods_categ_id = \
- self.env.ref('core.goods_category_1').id
- new_goods_wizard.warehouse_id = self.env.ref('warehouse.hd_stock').id
- new_context = new_goods_wizard.button_ok().get('context')
- new_results = summary_goods.with_context(new_context).search_read(
- domain=[])
- self.assertEqual(len(results), 0)
- self.assertEqual(len(new_results), 0)
-
- def test_view_detail(self):
- '''销售汇总表(按商品) 查看明细按钮'''
- summary_goods = self.env['sell.summary.goods'].create({})
- context = self.goods_wizard.button_ok().get('context')
- results = summary_goods.with_context(context).search_read(domain=[])
- for line in results:
- summary_line = summary_goods.browse(line['id'])
- summary_line.with_context(context).view_detail()
-
-
- class TestPartnerWizard(TransactionCase):
- '''测试销售汇总表(按客户)向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestPartnerWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.delivery.sell_delivery_done()
- self.partner_wizard_obj = self.env['sell.summary.partner.wizard']
- self.partner_wizard = self.partner_wizard_obj.create({})
-
- def test_button_ok(self):
- '''销售汇总表(按客户)向导确认按钮'''
- # 日期报错
- partner_wizard = self.partner_wizard_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- partner_wizard.button_ok()
- # 按日期搜索
- self.partner_wizard.button_ok()
-
- def test_partner_report(self):
- '''测试销售汇总表(按客户)报表'''
- summary_partner = self.env['sell.summary.partner'].create({})
- context = self.partner_wizard.button_ok().get('context')
- results = summary_partner.with_context(context).search_read(domain=[])
- new_partner_wizard = self.partner_wizard.copy()
- new_partner_wizard.goods_id = self.env.ref('goods.mouse').id
- new_partner_wizard.partner_id = self.env.ref('core.jd').id
- c_category_id = self.env.ref('core.customer_category_1') # 客户类别:一级客户
- new_partner_wizard.c_category_id = c_category_id.id
- new_partner_wizard.warehouse_id = self.env.ref('warehouse.hd_stock').id
- new_context = new_partner_wizard.button_ok().get('context')
- new_results = summary_partner.with_context(new_context).search_read(
- domain=[])
-
- def test_view_detail(self):
- '''销售汇总表(按客户) 查看明细按钮'''
- summary_partner = self.env['sell.summary.partner'].create({})
- context = self.partner_wizard.button_ok().get('context')
- results = summary_partner.with_context(context).search_read(domain=[])
- for line in results:
- summary_line = summary_partner.browse(line['id'])
- summary_line.with_context(context).view_detail()
-
-
- class TestStaffWizard(TransactionCase):
- '''测试销售汇总表(按销售人员)向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestStaffWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.delivery.sell_delivery_done()
- self.staff_wizard_obj = self.env['sell.summary.staff.wizard']
- self.staff_wizard = self.staff_wizard_obj.create({})
-
- def test_button_ok(self):
- '''销售汇总表(按销售人员)向导确认按钮'''
- # 日期报错
- staff_wizard = self.staff_wizard_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- staff_wizard.button_ok()
- # 按日期搜索
- self.staff_wizard.button_ok()
-
- def test_staff_report(self):
- '''测试销售汇总表(按销售人员)报表'''
- summary_staff = self.env['sell.summary.staff'].create({})
- context = self.staff_wizard.button_ok().get('context')
- results = summary_staff.with_context(context).search_read(domain=[])
-
- new_staff_wizard = self.staff_wizard.copy()
- new_staff_wizard.user_id = self.env.ref('base.user_demo').id
- new_staff_wizard.goods_id = self.env.ref('goods.cable').id
- new_staff_wizard.goods_categ_id = \
- self.env.ref('core.goods_category_1').id
- new_staff_wizard.warehouse_id = self.env.ref('warehouse.hd_stock').id
- new_context = new_staff_wizard.button_ok().get('context')
- new_results = summary_staff.with_context(new_context).search_read(
- domain=[])
-
- def test_view_detail(self):
- '''销售汇总表(按销售人员) 查看明细按钮'''
- summary_staff = self.env['sell.summary.staff'].create({})
- context = self.staff_wizard.button_ok().get('context')
- results = summary_staff.with_context(context).search_read(domain=[])
- for line in results:
- summary_line = summary_staff.browse(line['id'])
- summary_line.with_context(context).view_detail()
-
-
- class TestReceiptWizard(TransactionCase):
- '''测试销售收款一览表向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestReceiptWizard, self).setUp()
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
-
- # 销售订单产生发货单,并审核发货单产生收款单
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.delivery.bank_account_id = self.env.ref('core.comm')
- self.env.ref('money.get_40000').money_order_done()
- self.delivery.receipt = 2.0
- self.delivery.sell_delivery_done()
-
- # 销售订单产生发货单,并审核发货单,成交金额和本次收款均为0
- new_delivery = self.delivery.copy()
- # new_delivery.discount_amount = (new_delivery.amount
- # + new_delivery.discount_amount)
- new_delivery.receipt = 0
- new_delivery.bank_account_id = False
- new_delivery.sell_delivery_done()
-
- # 销售订单产生退货单,并审核退货单
- self.order_return = self.env.ref('sell.sell_order_return')
- self.order_return.sell_order_done()
- self.delivery_return = self.env['sell.delivery'].search(
- [('order_id', '=', self.order_return.id)])
- for l in self.delivery_return.line_in_ids:
- l.read()
- self.delivery_return.sell_delivery_done()
- self.receipt_wizard_obj = self.env['sell.receipt.wizard']
- self.receipt_wizard = self.receipt_wizard_obj.create({})
-
- def test_button_ok(self):
- '''测试销售收款一览表 确认按钮'''
-
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
-
- # 日期报错
- receipt_wizard = self.receipt_wizard_obj.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- receipt_wizard.button_ok()
- # 按日期搜索
- self.receipt_wizard.button_ok()
- # 按客户类别、客户、销售员、仓库搜索
- self.receipt_wizard.c_category_id = \
- self.env.ref('core.customer_category_1').id
- self.receipt_wizard.partner_id = self.env.ref('core.jd').id
- self.receipt_wizard.user_id = self.env.ref('base.user_demo').id
- self.receipt_wizard.warehouse_id = self.env.ref(
- 'warehouse.hd_stock').id
- self.receipt_wizard.button_ok()
-
- def test_view_detail(self):
- '''测试销售收款一览表 查看明细按钮'''
- self.receipt_wizard.button_ok()
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
-
- receipt_line = self.env['sell.receipt'].search(
- [('order_name', '=', self.delivery.name)])
- for line in receipt_line:
- line.view_detail()
- receipt_line2 = self.env['sell.receipt'].search(
- [('order_name', '=', self.delivery_return.name)])
- for line in receipt_line2:
- line.view_detail()
-
- def test_generate_reconcile_order(self):
- '''新建核销单,应收冲预收,客户为所选行客户'''
- self.receipt_wizard.button_ok()
- for line in self.env['sell.receipt'].search([
- ('order_name', '=', '未核销预收款'), ('receipt', '!=', 0)]):
- line.generate_reconcile_order()
- # 查看生成的核销单
- line.generate_reconcile_order()
-
- class TestSellTopTenWizard(TransactionCase):
- '''测试销量前十商品向导'''
-
- def setUp(self):
- ''' 准备报表数据 '''
- super(TestSellTopTenWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.env.ref('core.goods_category_1').account_id = self.env.ref(
- 'finance.account_goods').id
- self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
-
- warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
- warehouse_obj.approve_order()
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.delivery.sell_delivery_done()
- self.wizard_obj = self.env['sell.top.ten.wizard']
- self.wizard = self.wizard_obj.create({
- 'date_start': '2016-1-01',
- 'date_end': '2016-12-12', })
-
- def test_button_ok(self):
- '''销量前十商品向导确认按钮'''
- # 日期报错
- wizard = self.wizard.create({
- 'date_start': '2016-11-01',
- 'date_end': '2016-1-01',
- })
- with self.assertRaises(UserError):
- wizard.button_ok()
- # 日期默认值
- self.wizard_obj.create({})
-
- def test_goods_report(self):
- '''测试销量前十商品报表'''
- summary_top_ten = self.env['sell.top.ten'].create({})
- context = self.wizard.button_ok().get('context')
- results = summary_top_ten.with_context(context).search_read(domain=[])
-
- new_wizard = self.wizard.copy()
- new_wizard.warehouse_id = self.env.ref('warehouse.hd_stock').id
- new_context = new_wizard.button_ok().get('context')
- new_results = summary_top_ten.with_context(new_context).search_read(
- domain=[])
-
- self.assertEqual(len(results), 0)
- self.assertEqual(len(new_results), 0)
-
-
- class TestPopupWizard(TransactionCase):
- '''发货单缺货向导'''
-
- def setUp(self):
- ''' 准备数据 '''
- super(TestPopupWizard, self).setUp()
- self.env.ref('core.jd').credit_limit = 100000
- self.order = self.env.ref('sell.sell_order_2')
- self.order.sell_order_done()
- self.delivery = self.env['sell.delivery'].search(
- [('order_id', '=', self.order.id)])
- self.hd_stock = self.env.ref('warehouse.hd_stock')
- self.warehouse_inventory = self.env.ref(
- 'warehouse.warehouse_inventory')
|