From bd5f1bc0e0765732703f1e654963af1342ce94c5 Mon Sep 17 00:00:00 2001 From: duongtq Date: Thu, 23 May 2024 17:11:17 +0700 Subject: [PATCH] [IMP] sale_order_import: push errored lines to chatter and ignore them when importing --- sale_order_import/tests/test_order_import.py | 35 +++++++++++++++++++ sale_order_import/wizard/sale_order_import.py | 32 ++++++++++++----- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/sale_order_import/tests/test_order_import.py b/sale_order_import/tests/test_order_import.py index 7df861200c..d44b58f775 100644 --- a/sale_order_import/tests/test_order_import.py +++ b/sale_order_import/tests/test_order_import.py @@ -87,6 +87,41 @@ def test_order_import(self): parsed_order_up_no_price_unit, order, "order" ) + def test_order_import_log_errored_line(self): + parsed_order = dict( + self.parsed_order, + partner={"email": "agrolait@yourcompany.example.com"}, + lines=[ + { + "product": {"code": "errored"}, # No product exists with this code + "qty": 3, + "uom": {"unece_code": "C62"}, + "price_unit": 12.42, + }, + { + "product": {"code": "FURN_9999"}, + "qty": 1, + "uom": {"unece_code": "C62"}, + "price_unit": 1.42, + }, + ], + ) + order = self.wiz_model.create_order(parsed_order, "pricelist") + self.assertEqual(order.client_order_ref, parsed_order["order_ref"]) + self.assertEqual(len(order.order_line), 1) + self.assertEqual( + order.order_line.product_id.default_code, + parsed_order["lines"][1]["product"]["code"], + ) + msg = ( + "Errored lines on import:
" + + "{'product': {'code': 'errored'}, 'qty': 3, 'uom':" + + " {'unece_code': 'C62'}, 'price_unit': 12.42}" + + "