You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
2.4 KiB

  1. # -*- coding: utf-8 -*-
  2. # © 2016 Carlos Dauden <carlos.dauden@tecnativa.com>
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  4. from openerp.tests.common import TransactionCase
  5. class TestPartnerSaleRisk(TransactionCase):
  6. def setUp(self):
  7. super(TestPartnerSaleRisk, self).setUp()
  8. self.env.user.groups_id |= self.env.ref('base.group_sale_manager')
  9. self.partner = self.env['res.partner'].create({
  10. 'name': 'Partner test',
  11. 'customer': True,
  12. })
  13. self.product = self.env.ref('product.product_product_2')
  14. self.product.invoice_policy = 'order'
  15. self.sale_order = self.env['sale.order'].create({
  16. 'partner_id': self.partner.id,
  17. 'pricelist_id': self.env.ref('product.list0').id,
  18. 'order_line': [(0, 0, {
  19. 'name': self.product.name,
  20. 'product_id': self.product.id,
  21. 'product_uom_qty': 1,
  22. 'product_uom': self.product.uom_id.id,
  23. 'price_unit': 100.0})],
  24. })
  25. def test_sale_order(self):
  26. self.sale_order.action_confirm()
  27. self.assertAlmostEqual(self.partner.risk_sale_order, 100.0)
  28. self.assertFalse(self.partner.risk_exception)
  29. self.partner.risk_sale_order_limit = 99.0
  30. self.assertTrue(self.partner.risk_exception)
  31. sale_order2 = self.sale_order.copy()
  32. wiz_dic = sale_order2.action_confirm()
  33. wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id'])
  34. self.assertEqual(wiz.exception_msg, "Financial risk exceeded.\n")
  35. self.partner.risk_sale_order_limit = 150.0
  36. wiz_dic = sale_order2.action_confirm()
  37. wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id'])
  38. self.assertEqual(wiz.exception_msg,
  39. "This sale order exceeds the sales orders risk.\n")
  40. self.partner.risk_sale_order_limit = 0.0
  41. self.partner.risk_sale_order_include = True
  42. self.partner.credit_limit = 100.0
  43. wiz_dic = sale_order2.action_confirm()
  44. wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id'])
  45. self.assertEqual(wiz.exception_msg,
  46. "This sale order exceeds the financial risk.\n")
  47. self.assertTrue(self.partner.risk_allow_edit)
  48. wiz.button_continue()
  49. self.assertAlmostEqual(self.partner.risk_sale_order, 200.0)