Skip to content

Commit 322e311

Browse files
committed
Merge PR #777 into 15.0
Signed-off-by pedrobaeza
2 parents 58774ad + e3b3f87 commit 322e311

13 files changed

+44
-133
lines changed

delivery_package_number/README.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Stock Picking Package Number
77
!! This file is generated by oca-gen-addon-readme !!
88
!! changes will be overwritten. !!
99
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10-
!! source digest: sha256:c744a790b8d846005f7e828a8a4d0c2dcc678bd29063852c1ce3b213f7630c24
10+
!! source digest: sha256:b4909260c34e879e04938c7d1afb9f4c071ce53d2d36a2445d71f2a2f64a3da1
1111
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1212
1313
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -82,8 +82,8 @@ Contributors
8282

8383
* Pedro M. Baeza
8484
* David Vidal
85-
* Marçal Isern
8685
* Carlos Roca
86+
* Sergio Teruel
8787

8888

8989
* `Sygel <https://www.sygel.es>`_:

delivery_package_number/__manifest__.py

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
"reports/report_package_number.xml",
1818
"views/stock_picking_type_views.xml",
1919
"views/stock_picking_views.xml",
20-
"wizard/stock_immediate_transfer_views.xml",
21-
"wizard/stock_backorder_confirmation_views.xml",
2220
"wizard/stock_number_package_validate_wiz_view.xml",
2321
],
2422
}

delivery_package_number/models/stock_picking.py

+20-6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Copyright 2023 Tecnativa - Pedro M. Baeza
33
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
44
from odoo import _, api, fields, models
5+
from odoo.tools import config
56

67

78
class StockPicking(models.Model):
@@ -15,6 +16,7 @@ class StockPicking(models.Model):
1516
default=0,
1617
copy=False,
1718
)
19+
ask_number_of_packages = fields.Boolean(compute="_compute_ask_number_of_packages")
1820

1921
@api.depends("package_ids")
2022
def _compute_number_of_packages(self):
@@ -37,24 +39,36 @@ def _action_generate_number_of_packages_wizard(self):
3739
),
3840
}
3941

40-
def _check_set_number_of_packages(self):
42+
def _compute_ask_number_of_packages(self):
43+
"""To Know if is needed raise wizard to ask user by package number"""
44+
for picking in self:
45+
picking.ask_number_of_packages = bool(
46+
picking.carrier_id
47+
and not picking.package_ids
48+
or picking.picking_type_id.force_set_number_of_packages
49+
)
50+
51+
def _get_pickings_to_set_number_of_packages(self):
52+
"""Get pickings that needed raise wizard to fill number of packages"""
4153
pickings_to_set_number_of_packages = self.browse()
4254
for picking in self:
43-
if (
44-
picking.picking_type_id.force_set_number_of_packages
45-
and not picking.number_of_packages
46-
):
55+
if not picking.number_of_packages:
4756
pickings_to_set_number_of_packages |= picking
4857
return pickings_to_set_number_of_packages
4958

5059
def _pre_action_done_hook(self):
5160
res = super()._pre_action_done_hook()
61+
test_condition = not config["test_enable"] or self.env.context.get(
62+
"test_delivery_package_number"
63+
)
5264
if (
5365
res
66+
and test_condition
5467
and isinstance(res, bool)
68+
and any(picking.ask_number_of_packages for picking in self)
5569
and not self.env.context.get("bypass_set_number_of_packages")
5670
):
57-
pickings_to_set_nop = self._check_set_number_of_packages()
71+
pickings_to_set_nop = self._get_pickings_to_set_number_of_packages()
5872
if pickings_to_set_nop:
5973
return pickings_to_set_nop._action_generate_number_of_packages_wizard()
6074
return res

delivery_package_number/readme/CONTRIBUTORS.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
* Pedro M. Baeza
44
* David Vidal
5-
* Marçal Isern
65
* Carlos Roca
6+
* Sergio Teruel
77

88

99
* `Sygel <https://www.sygel.es>`_:

delivery_package_number/static/description/index.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
23
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
34
<head>
@@ -366,7 +367,7 @@ <h1 class="title">Stock Picking Package Number</h1>
366367
!! This file is generated by oca-gen-addon-readme !!
367368
!! changes will be overwritten. !!
368369
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369-
!! source digest: sha256:c744a790b8d846005f7e828a8a4d0c2dcc678bd29063852c1ce3b213f7630c24
370+
!! source digest: sha256:b4909260c34e879e04938c7d1afb9f4c071ce53d2d36a2445d71f2a2f64a3da1
370371
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371372
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/delivery-carrier/tree/15.0/delivery_package_number"><img alt="OCA/delivery-carrier" src="https://img.shields.io/badge/github-OCA%2Fdelivery--carrier-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/delivery-carrier-15-0/delivery-carrier-15-0-delivery_package_number"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/delivery-carrier&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372373
<p>This module recovers the number of packages field that was present in previous
@@ -425,8 +426,8 @@ <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
425426
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
426427
<li>Pedro M. Baeza</li>
427428
<li>David Vidal</li>
428-
<li>Marçal Isern</li>
429429
<li>Carlos Roca</li>
430+
<li>Sergio Teruel</li>
430431
</ul>
431432
</li>
432433
</ul>

delivery_package_number/tests/test_delivery_package_number.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ def test_backorder(self):
6666
picking = order.picking_ids
6767
picking.move_lines.quantity_done = 2
6868
picking.number_of_packages = 2
69-
action = picking.button_validate()
69+
action = picking.with_context(
70+
test_delivery_package_number=True
71+
).button_validate()
7072
backorder_wizard = Form(
7173
self.env[action["res_model"]].with_context(**action["context"])
7274
).save()
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from . import stock_number_package_mixin
21
from . import stock_inmediate_transfer
32
from . import stock_backorder_confirmation
43
from . import stock_number_package_validate_wiz

delivery_package_number/wizard/stock_backorder_confirmation.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,10 @@
55

66

77
class StockBackorderConfirmation(models.TransientModel):
8-
_inherit = ["stock.backorder.confirmation", "stock.number.package.mixin"]
9-
_name = "stock.backorder.confirmation"
8+
_inherit = "stock.backorder.confirmation"
109

1110
def process(self):
12-
if self.number_of_packages:
13-
self.pick_ids.write({"number_of_packages": self.number_of_packages})
1411
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
15-
res = super(
12+
return super(
1613
StockBackorderConfirmation, self.with_context(set_default_package=False)
1714
).process()
18-
if self.print_package_label:
19-
report = (
20-
self.pick_ids.picking_type_id.report_number_of_packages
21-
or self.env.ref(
22-
"delivery_package_number.action_delivery_package_number_report"
23-
)
24-
)
25-
report_action = report.report_action(self.pick_ids)
26-
report_action.update({"close_on_report_download": True})
27-
return report_action
28-
return res

delivery_package_number/wizard/stock_backorder_confirmation_views.xml

-27
This file was deleted.

delivery_package_number/wizard/stock_immediate_transfer_views.xml

-26
This file was deleted.

delivery_package_number/wizard/stock_inmediate_transfer.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,10 @@
44

55

66
class StockImmediateTransfer(models.TransientModel):
7-
_inherit = ["stock.immediate.transfer", "stock.number.package.mixin"]
8-
_name = "stock.immediate.transfer"
7+
_inherit = "stock.immediate.transfer"
98

109
def process(self):
11-
if self.number_of_packages:
12-
self.pick_ids.write({"number_of_packages": self.number_of_packages})
1310
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
14-
res = super(
11+
return super(
1512
StockImmediateTransfer, self.with_context(set_default_package=False)
1613
).process()
17-
if self.print_package_label:
18-
report = (
19-
self.pick_ids.picking_type_id.report_number_of_packages
20-
or self.env.ref(
21-
"delivery_package_number.action_delivery_package_number_report"
22-
)
23-
)
24-
report_action = report.report_action(self.pick_ids)
25-
report_action.update({"close_on_report_download": True})
26-
return report_action
27-
return res

delivery_package_number/wizard/stock_number_package_mixin.py

-32
This file was deleted.

delivery_package_number/wizard/stock_number_package_validate_wiz.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,28 @@
44

55

66
class StockNumberPackageValidateWiz(models.TransientModel):
7-
_inherit = "stock.number.package.mixin"
87
_name = "stock.number.package.validate.wizard"
98
_description = "Wizard to force set number of pickings when validate"
109

1110
pick_ids = fields.Many2many("stock.picking", "stock_picking_number_package_rel")
11+
number_of_packages = fields.Integer(
12+
help="Set the number of packages for this picking(s)",
13+
)
1214
stock_number_package_validation_line_ids = fields.One2many(
1315
comodel_name="stock.number.package.validate.line.wizard",
1416
inverse_name="wiz_id",
1517
compute="_compute_stock_number_package_validation_line_ids",
1618
readonly=False,
1719
store=True,
1820
)
21+
print_package_label = fields.Boolean(
22+
compute="_compute_print_package_label", readonly=False, store=True
23+
)
24+
25+
@api.depends("pick_ids")
26+
def _compute_print_package_label(self):
27+
for item in self:
28+
item.print_package_label = item.pick_ids.picking_type_id.print_label
1929

2030
@api.depends("pick_ids")
2131
def _compute_stock_number_package_validation_line_ids(self):

0 commit comments

Comments
 (0)