From 9d436d6ea0685f3f91001202f91ea64c93d18ce9 Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Sun, 17 May 2026 15:45:54 +0200 Subject: [PATCH] Matching --- modules/purchase_trade/lot.py | 3 ++- modules/purchase_trade/tests/test_module.py | 20 ++++++++++++++++--- .../view/lot_matching_lot_tree.xml | 6 ++---- .../view/lot_matching_lot_tree2.xml | 6 ++---- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py index d07a150..177e2a4 100755 --- a/modules/purchase_trade/lot.py +++ b/modules/purchase_trade/lot.py @@ -2910,7 +2910,8 @@ class LotMatching(Wizard): 'lot_matched_qt': 0, 'lot_cp': cls._record_id(party), } - values.update(LotQt._matching_line_tolerance_info(line)) + trade_line = line if side == 'purchase' else sale_line + values.update(LotQt._matching_line_tolerance_info(trade_line)) return values @classmethod diff --git a/modules/purchase_trade/tests/test_module.py b/modules/purchase_trade/tests/test_module.py index f2a9b1f..c831d10 100644 --- a/modules/purchase_trade/tests/test_module.py +++ b/modules/purchase_trade/tests/test_module.py @@ -2768,13 +2768,23 @@ class PurchaseTradeTestCase(ModuleTestCase): sale = Mock(id=30, party=Mock(id=40)) product = Mock(id=50) purchase_lot = Mock( - id=101, line=Mock(purchase=purchase), sale_line=None, + id=101, + line=Mock( + purchase=purchase, inherit_tol=False, + quantity_theorical=Decimal('100'), tol_min=0, tol_max=0), + sale_line=None, lot_type='virtual', lot_product=product) sale_lot = Mock( - id=102, line=None, sale_line=Mock(sale=sale), + id=102, line=None, + sale_line=Mock( + sale=sale, inherit_tol=False, + quantity_theorical=Decimal('80'), tol_min=0, tol_max=0), lot_type='virtual', lot_product=product) matched_sale_lot = Mock( - id=103, line=None, sale_line=Mock(sale=sale), + id=103, line=None, + sale_line=Mock( + sale=sale, inherit_tol=False, + quantity_theorical=Decimal('20'), tol_min=0, tol_max=0), lot_type='virtual', lot_product=product) lot_qts = { 1: Mock( @@ -2816,9 +2826,13 @@ class PurchaseTradeTestCase(ModuleTestCase): self.assertEqual(len(result['lot_s']), 1) self.assertEqual(result['lot_p'][0]['lot_r_id'], 1) self.assertEqual(result['lot_p'][0]['lot_quantity'], Decimal('100')) + self.assertEqual(result['lot_p'][0]['lot_qt_min'], Decimal('100.00000')) + self.assertEqual(result['lot_p'][0]['lot_qt_max'], Decimal('100.00000')) self.assertEqual(result['lot_p'][0]['lot_cp'], 20) self.assertEqual(result['lot_s'][0]['lot_r_id'], 2) self.assertEqual(result['lot_s'][0]['lot_quantity'], Decimal('80')) + self.assertEqual(result['lot_s'][0]['lot_qt_min'], Decimal('80.00000')) + self.assertEqual(result['lot_s'][0]['lot_qt_max'], Decimal('80.00000')) self.assertEqual(result['lot_s'][0]['lot_cp'], 40) def test_lot_context_group_defaults_to_all(self): diff --git a/modules/purchase_trade/view/lot_matching_lot_tree.xml b/modules/purchase_trade/view/lot_matching_lot_tree.xml index c8d8e4e..655bffc 100755 --- a/modules/purchase_trade/view/lot_matching_lot_tree.xml +++ b/modules/purchase_trade/view/lot_matching_lot_tree.xml @@ -1,9 +1,7 @@ - + - - - + diff --git a/modules/purchase_trade/view/lot_matching_lot_tree2.xml b/modules/purchase_trade/view/lot_matching_lot_tree2.xml index e48baf3..b19ce8f 100755 --- a/modules/purchase_trade/view/lot_matching_lot_tree2.xml +++ b/modules/purchase_trade/view/lot_matching_lot_tree2.xml @@ -1,9 +1,7 @@ - + - - - +