From c9e132ea43a3afcfb52e58f72eaf362637c4e0cb Mon Sep 17 00:00:00 2001 From: Sanjay Jamod Date: Fri, 23 Jun 2017 18:53:50 +0530 Subject: [PATCH] [TEST] puchase: complete test case - If ordered quantity is less than what supplier/vendor supplies then the price unit should be set to 0 - If vendor does not supply the ordered product then the unit price should still the same TASK-34233 --- .../tests/test_onchange_product.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/addons/purchase_stock/tests/test_onchange_product.py b/addons/purchase_stock/tests/test_onchange_product.py index 82e359c7625..39c2621d2c3 100644 --- a/addons/purchase_stock/tests/test_onchange_product.py +++ b/addons/purchase_stock/tests/test_onchange_product.py @@ -2,6 +2,8 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from datetime import datetime + +from odoo import fields from odoo.tests.common import TransactionCase from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT @@ -71,3 +73,25 @@ class TestOnchangeProductId(TransactionCase): po_line = po.order_line[0] po_line.onchange_product_id() self.assertEquals(100, po_line.price_unit, "The included tax must be subtracted to the price") + + supplierinfo.write({'min_qty': 24}) + po_line.write({'product_qty': 20}) + po_line._onchange_quantity() + self.assertEquals(0, po_line.price_unit, "Unit price should be reset to 0 since the supplier supplies minimum of 24 quantities") + + po_line.write({'product_qty': 3, 'product_uom': self.ref("uom.product_uom_dozen")}) + po_line._onchange_quantity() + self.assertEquals(1200, po_line.price_unit, "Unit price should be 1200 for one Dozen") + + product_ipad = self.env.ref('product.product_product_4') + po_line2 = self.po_line_model.create({ + 'name': product_ipad.name, + 'product_id': product_ipad.id, + 'order_id': po.id, + 'product_qty': 5, + 'product_uom': uom_id.id, + 'price_unit': 100.0, + 'date_planned': fields.Date().today() + }) + po_line2.onchange_product_id() + self.assertEquals(0, po_line2.price_unit, "No vendor supplies this product, hence unit price should be set to 0")