diff --git a/addons/sale/models/sale_order_line.py b/addons/sale/models/sale_order_line.py index 272e05a475c..4746d074bb5 100644 --- a/addons/sale/models/sale_order_line.py +++ b/addons/sale/models/sale_order_line.py @@ -207,6 +207,7 @@ class SaleOrderLine(models.Model): qty_delivered = fields.Float( string="Delivery Quantity", compute='_compute_qty_delivered', + default=0.0, digits='Product Unit of Measure', store=True, readonly=False, copy=False) diff --git a/addons/sale/tests/test_sale_order.py b/addons/sale/tests/test_sale_order.py index 8648e9c88bf..c28b6fa2be2 100644 --- a/addons/sale/tests/test_sale_order.py +++ b/addons/sale/tests/test_sale_order.py @@ -746,3 +746,16 @@ class TestSalesTeam(SaleCommon): self.assertEqual(sale_order.team_id, crm_team0, "Sales team should change to partner's") sale_order.with_user(self.user_not_in_team).write({'partner_id': partner_b.id}) self.assertEqual(sale_order.team_id, crm_team1, "Sales team should change to partner's") + + def test_qty_delivered_on_creation(self): + """Checks that the qty delivered of sol is automatically set to 0.0 when an so is created""" + sale_order = self.env['sale.order'].create({ + 'partner_id': self.partner.id, + 'order_line': [ + Command.create({ + 'product_id': self.product.id, + })], + }) + # As we want to determine if the value is set in the DB we need to perform a search + self.assertFalse(self.env['sale.order.line'].search(['&', ('order_id', '=', sale_order.id), ('qty_delivered', '=', False)])) + self.assertEqual(self.env['sale.order.line'].search(['&', ('order_id', '=', sale_order.id), ('qty_delivered', '=', 0.0)]), sale_order.order_line)