Skip to content

Commit 68afb36

Browse files
[FIX] purchase_manual_delivery: changing order line quantity created the delivery
1 parent 0e4d594 commit 68afb36

File tree

6 files changed

+38
-0
lines changed

6 files changed

+38
-0
lines changed

purchase_manual_delivery/README.rst

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ Contributors
107107
------------
108108

109109
- Adria Gil Sorribes <[email protected]>
110+
- Stefan Rijnhart <[email protected]>
110111

111112
Maintainers
112113
-----------

purchase_manual_delivery/models/purchase_order.py

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def _compute_pending_to_receive(self):
3131
order.pending_to_receive = False
3232

3333
def _create_picking(self):
34+
# Avoid creating deliveries on manual delivery orders
3435
if self.env.context.get("ignore_manual_delivery"):
3536
orders = self
3637
else:

purchase_manual_delivery/models/purchase_order_line.py

+8
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,11 @@ def _compute_qty_in_receipt(self):
7575
line.pending_to_receive = True
7676
else:
7777
line.pending_to_receive = False
78+
79+
def _create_or_update_picking(self):
80+
# Avoid creating deliveries on manual delivery orders
81+
if self.env.context.get("ignore_manual_delivery"):
82+
lines = self
83+
else:
84+
lines = self.filtered(lambda pol: not pol.order_id.manual_delivery)
85+
return super(PurchaseOrderLine, lines)._create_or_update_picking()
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
- Adria Gil Sorribes \<<[email protected]>\>
2+
- Stefan Rijnhart \<<[email protected]>\>

purchase_manual_delivery/static/description/index.html

+1
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ <h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2>
446446
<h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
447447
<ul class="simple">
448448
<li>Adria Gil Sorribes &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
449+
<li>Stefan Rijnhart &lt;<a class="reference external" href="mailto:stefan&#64;opener.amsterdam">stefan&#64;opener.amsterdam</a>&gt;</li>
449450
</ul>
450451
</div>
451452
<div class="section" id="maintainers">

purchase_manual_delivery/tests/test_purchase_manual_delivery.py

+26
Original file line numberDiff line numberDiff line change
@@ -506,3 +506,29 @@ def test_07_purchase_order_ignore_manual_delivery(self):
506506
line.pending_to_receive,
507507
"Context key did not create stock moves for all quantities",
508508
)
509+
510+
def test_08_purchase_order_line_increase_quantity(self):
511+
"""Increasing the quantity on a confirmed line does not trigger delivery"""
512+
self.po1.button_confirm()
513+
self.assertFalse(self.po1.picking_ids)
514+
self.po1.order_line[0].product_qty += 1
515+
self.assertFalse(
516+
self.po1.picking_ids,
517+
"Increasing the quantity on a confirmed line should not create deliveries",
518+
)
519+
# Same on line creation
520+
self.po1.order_line[0].copy()
521+
self.assertFalse(self.po1.picking_ids)
522+
self.assertFalse(
523+
self.po1.picking_ids,
524+
"Adding a line to a confirmed order should not create a delivery",
525+
)
526+
# Context key forces the delivery
527+
self.po1.order_line[0].with_context(
528+
ignore_manual_delivery=True
529+
).product_qty += 1
530+
self.assertTrue(
531+
self.po1.picking_ids,
532+
"Passing context key when increasing the quantity on a confirmed line did "
533+
"not create a delivery",
534+
)

0 commit comments

Comments
 (0)