Skip to content

Commit

Permalink
[IMP] delivery_package_number: Ask only once for the number of packag…
Browse files Browse the repository at this point in the history
…es wizard.

TT48170
  • Loading branch information
sergio-teruel authored and pablo-cort-s73 committed Nov 27, 2024
1 parent a070ef1 commit 3070a38
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 106 deletions.
4 changes: 2 additions & 2 deletions delivery_package_number/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Stock Picking Package Number
============================

..
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
Expand Down Expand Up @@ -82,8 +82,8 @@ Contributors

* Pedro M. Baeza
* David Vidal
* Marçal Isern
* Carlos Roca
* Sergio Teruel


* `Sygel <https://www.sygel.es>`_:
Expand Down
2 changes: 0 additions & 2 deletions delivery_package_number/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
"reports/report_package_number.xml",
"views/stock_picking_type_views.xml",
"views/stock_picking_views.xml",
"wizard/stock_immediate_transfer_views.xml",
"wizard/stock_backorder_confirmation_views.xml",
"wizard/stock_number_package_validate_wiz_view.xml",
],
}
26 changes: 20 additions & 6 deletions delivery_package_number/models/stock_picking.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Copyright 2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.tools import config


class StockPicking(models.Model):
Expand All @@ -15,6 +16,7 @@ class StockPicking(models.Model):
default=0,
copy=False,
)
ask_number_of_packages = fields.Boolean(compute="_compute_ask_number_of_packages")

@api.depends("package_ids")
def _compute_number_of_packages(self):
Expand All @@ -37,24 +39,36 @@ def _action_generate_number_of_packages_wizard(self):
),
}

def _check_set_number_of_packages(self):
def _compute_ask_number_of_packages(self):
"""To Know if is needed raise wizard to ask user by package number"""
for picking in self:
picking.ask_number_of_packages = bool(
picking.carrier_id
and not picking.package_ids
or picking.picking_type_id.force_set_number_of_packages
)

def _get_pickings_to_set_number_of_packages(self):
"""Get pickings that needed raise wizard to fill number of packages"""
pickings_to_set_number_of_packages = self.browse()
for picking in self:
if (
picking.picking_type_id.force_set_number_of_packages
and not picking.number_of_packages
):
if not picking.number_of_packages:
pickings_to_set_number_of_packages |= picking
return pickings_to_set_number_of_packages

def _pre_action_done_hook(self):
res = super()._pre_action_done_hook()
test_condition = not config["test_enable"] or self.env.context.get(
"test_delivery_package_number"
)
if (
res
and test_condition
and isinstance(res, bool)
and any(picking.ask_number_of_packages for picking in self)
and not self.env.context.get("bypass_set_number_of_packages")
):
pickings_to_set_nop = self._check_set_number_of_packages()
pickings_to_set_nop = self._get_pickings_to_set_number_of_packages()
if pickings_to_set_nop:
return pickings_to_set_nop._action_generate_number_of_packages_wizard()
return res
2 changes: 1 addition & 1 deletion delivery_package_number/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

* Pedro M. Baeza
* David Vidal
* Marçal Isern
* Carlos Roca
* Sergio Teruel


* `Sygel <https://www.sygel.es>`_:
Expand Down
2 changes: 1 addition & 1 deletion delivery_package_number/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -425,8 +425,8 @@ <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Pedro M. Baeza</li>
<li>David Vidal</li>
<li>Marçal Isern</li>
<li>Carlos Roca</li>
<li>Sergio Teruel</li>
</ul>
</li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ def test_backorder(self):
picking = order.picking_ids
picking.move_ids.quantity_done = 2
picking.number_of_packages = 2
action = picking.button_validate()
action = picking.with_context(
test_delivery_package_number=True
).button_validate()
backorder_wizard = Form(
self.env[action["res_model"]].with_context(**action["context"])
).save()
Expand Down
1 change: 0 additions & 1 deletion delivery_package_number/wizard/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from . import stock_number_package_mixin
from . import stock_inmediate_transfer
from . import stock_backorder_confirmation
from . import stock_number_package_validate_wiz
18 changes: 2 additions & 16 deletions delivery_package_number/wizard/stock_backorder_confirmation.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,10 @@


class StockBackorderConfirmation(models.TransientModel):
_inherit = ["stock.backorder.confirmation", "stock.number.package.mixin"]
_name = "stock.backorder.confirmation"
_inherit = "stock.backorder.confirmation"

def process(self):
if self.number_of_packages:
self.pick_ids.write({"number_of_packages": self.number_of_packages})
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
res = super(
return super(
StockBackorderConfirmation, self.with_context(set_default_package=False)
).process()
if self.print_package_label:
report = (
self.pick_ids.picking_type_id.report_number_of_packages
or self.env.ref(
"delivery_package_number.action_delivery_package_number_report"
)
)
report_action = report.report_action(self.pick_ids)
report_action.update({"close_on_report_download": True})
return report_action
return res

This file was deleted.

18 changes: 2 additions & 16 deletions delivery_package_number/wizard/stock_inmediate_transfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,10 @@


class StockImmediateTransfer(models.TransientModel):
_inherit = ["stock.immediate.transfer", "stock.number.package.mixin"]
_name = "stock.immediate.transfer"
_inherit = "stock.immediate.transfer"

def process(self):
if self.number_of_packages:
self.pick_ids.write({"number_of_packages": self.number_of_packages})
# put context key for avoiding `base_delivery_carrier_label` auto-packaging feature
res = super(
return super(
StockImmediateTransfer, self.with_context(set_default_package=False)
).process()
if self.print_package_label:
report = (
self.pick_ids.picking_type_id.report_number_of_packages
or self.env.ref(
"delivery_package_number.action_delivery_package_number_report"
)
)
report_action = report.report_action(self.pick_ids)
report_action.update({"close_on_report_download": True})
return report_action
return res
32 changes: 0 additions & 32 deletions delivery_package_number/wizard/stock_number_package_mixin.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,28 @@


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

pick_ids = fields.Many2many("stock.picking", "stock_picking_number_package_rel")
number_of_packages = fields.Integer(
help="Set the number of packages for this picking(s)",
)
stock_number_package_validation_line_ids = fields.One2many(
comodel_name="stock.number.package.validate.line.wizard",
inverse_name="wiz_id",
compute="_compute_stock_number_package_validation_line_ids",
readonly=False,
store=True,
)
print_package_label = fields.Boolean(
compute="_compute_print_package_label", readonly=False, store=True
)

@api.depends("pick_ids")
def _compute_print_package_label(self):
for item in self:
item.print_package_label = item.pick_ids.picking_type_id.print_label

@api.depends("pick_ids")
def _compute_stock_number_package_validation_line_ids(self):
Expand Down

0 comments on commit 3070a38

Please sign in to comment.