diff --git a/nfu_sale_order_batch_packaging/README.rst b/nfu_sale_order_batch_packaging/README.rst index 0c737d9..96ff7ae 100644 --- a/nfu_sale_order_batch_packaging/README.rst +++ b/nfu_sale_order_batch_packaging/README.rst @@ -38,7 +38,8 @@ Changelog :1.1.0: Live :1.2.0: Add regeneration action for batch products :1.2.1: refactoring -:1.3.0: add packagin states +:1.3.0: add packaging states +:1.3.1: add open_max_qty Bug Tracker =========== diff --git a/nfu_sale_order_batch_packaging/__manifest__.py b/nfu_sale_order_batch_packaging/__manifest__.py index 7578142..c6f2060 100644 --- a/nfu_sale_order_batch_packaging/__manifest__.py +++ b/nfu_sale_order_batch_packaging/__manifest__.py @@ -4,7 +4,7 @@ "author": "BAKEUP", "website": "https://www.bakeup.org", "category": "Sale", - "version": "16.0.1.3.0", + "version": "16.0.1.3.1", "depends": ["sale", "sale_order_batch"], "data": [ "views/sale_order_views.xml", diff --git a/nfu_sale_order_batch_packaging/models/sale_order_batch_product.py b/nfu_sale_order_batch_packaging/models/sale_order_batch_product.py index ceed397..fa673b1 100644 --- a/nfu_sale_order_batch_packaging/models/sale_order_batch_product.py +++ b/nfu_sale_order_batch_packaging/models/sale_order_batch_product.py @@ -8,33 +8,45 @@ class SaleOrderBatchProduct(models.Model): _inherit = "sale.order.batch.product" product_uom_max_qty = fields.Float("Max Qty", compute="_compute_product_uom_max_qty") - open_packaging_qty = fields.Float(compute="_compute_open_packagin_qty", store=True) - open_packaging_state = fields.Selection(selection=PACKAGING_STATES, compute="_compute_open_packagin_state") + open_packaging_qty = fields.Float(compute="_compute_open_packaging_qty") + open_packaging_max_qty = fields.Float(compute="_compute_open_packaging_max_qty") + open_packaging_state = fields.Selection(selection=PACKAGING_STATES, compute="_compute_open_packaging_state") @api.depends("sale_order_line_ids.product_uom_max_qty") def _compute_product_uom_max_qty(self): for product in self: - if product.sale_order_line_ids: - product.product_uom_max_qty = sum(product.sale_order_line_ids.mapped("product_uom_max_qty")) - else: - product.product_uom_max_qty = False + product.product_uom_max_qty = sum(product.sale_order_line_ids.mapped("product_uom_max_qty")) @api.depends("product_uom_qty") - def _compute_open_packagin_qty(self): + def _compute_open_packaging_qty(self): for product in self: - open_packaging_qty = product.product_packaging_qty - ( - product.product_uom_qty % product.product_packaging_qty - ) - product.open_packaging_qty = ( - 0 if open_packaging_qty == product.product_packaging_qty else open_packaging_qty - ) + if product.product_packaging_id: + open_packaging_qty = product.product_packaging_qty - ( + product.product_uom_qty % product.product_packaging_qty + ) + product.open_packaging_qty = ( + 0 if open_packaging_qty == product.product_packaging_qty else open_packaging_qty + ) + else: + product.open_packaging_qty = 0.0 + + @api.depends("product_uom_max_qty") + def _compute_open_packaging_max_qty(self): + for product in self: + if product.product_packaging_id: + if product.product_uom_max_qty < product.product_uom_qty + product.open_packaging_qty: + product.open_packaging_max_qty = product.product_packaging_qty - ( + product.product_uom_max_qty % product.product_packaging_qty + ) + else: + product.open_packaging_max_qty = 0.0 + else: + product.open_packaging_max_qty = 0.0 @api.depends("open_packaging_qty") - def _compute_open_packagin_state(self): + def _compute_open_packaging_state(self): for product in self: - if product.open_packaging_qty == 0: - product.open_packaging_state = "full" - elif (product.product_uom_max_qty - product.product_uom_qty) >= product.open_packaging_qty: + if product.open_packaging_qty == 0 or product.open_packaging_max_qty == 0: product.open_packaging_state = "full" elif product.product_uom_qty < product.product_packaging_qty: product.open_packaging_state = "open" diff --git a/nfu_sale_order_batch_packaging/readme/HISTORY.rst b/nfu_sale_order_batch_packaging/readme/HISTORY.rst index 9a4e888..b9882bb 100644 --- a/nfu_sale_order_batch_packaging/readme/HISTORY.rst +++ b/nfu_sale_order_batch_packaging/readme/HISTORY.rst @@ -3,4 +3,5 @@ :1.1.0: Live :1.2.0: Add regeneration action for batch products :1.2.1: refactoring -:1.3.0: add packagin states \ No newline at end of file +:1.3.0: add packaging states +:1.3.1: add open_max_qty \ No newline at end of file diff --git a/nfu_sale_order_batch_packaging/static/description/index.html b/nfu_sale_order_batch_packaging/static/description/index.html index 5b169be..97c524b 100644 --- a/nfu_sale_order_batch_packaging/static/description/index.html +++ b/nfu_sale_order_batch_packaging/static/description/index.html @@ -401,7 +401,9 @@ and adds a packaging default to sale order batch.