[FIX] nfu_sale_order_batch_packaging: use float_is_zero, fix rounding cap

This commit is contained in:
Niels Göttsch 2026-06-12 21:55:28 +02:00
parent a4c9a57ef5
commit 5c7d8e00f5
No known key found for this signature in database
GPG key ID: E325AC85B57E4370
3 changed files with 6 additions and 6 deletions

View file

@ -1,4 +1,5 @@
from odoo import api, fields, models from odoo import api, fields, models
from odoo.tools import float_is_zero
from odoo.addons.sale_order_batch.models.sale_order_batch import READONLY_FIELD_STATES from odoo.addons.sale_order_batch.models.sale_order_batch import READONLY_FIELD_STATES
@ -58,10 +59,10 @@ class SaleOrderBatch(models.Model):
def action_fill_packages(self): def action_fill_packages(self):
self.ensure_one() self.ensure_one()
eligible = self.product_ids.filtered( eligible = self.product_ids.filtered(
lambda p: p.open_packaging_qty > 0 and p.open_packaging_max_qty == 0.0 lambda p: p.open_packaging_qty > 0 and float_is_zero(p.open_packaging_max_qty)
) )
ineligible = self.product_ids.filtered( ineligible = self.product_ids.filtered(
lambda p: p.open_packaging_qty > 0 and p.open_packaging_max_qty != 0.0 lambda p: p.open_packaging_qty > 0 and not float_is_zero(p.open_packaging_max_qty)
) )
wizard = self.env["sale.order.batch.packaging.fill"].create( wizard = self.env["sale.order.batch.packaging.fill"].create(
{ {

View file

@ -167,10 +167,9 @@ class SaleOrderBatchProduct(models.Model):
# Attach any sub-rounding remainder directly to the last eligible line # Attach any sub-rounding remainder directly to the last eligible line
remainder = target - distributed remainder = target - distributed
if remainder > 1e-9 and last_line: if remainder > 1e-9 and last_line:
new_qty = float_round( new_qty = min(
last_line.product_uom_qty + remainder, precision_rounding=rounding last_line.product_uom_qty + remainder, last_line.product_uom_max_qty
) )
new_qty = min(new_qty, last_line.product_uom_max_qty)
last_line.write({"product_uom_qty": new_qty}) last_line.write({"product_uom_qty": new_qty})
def _zero_packaging(self): def _zero_packaging(self):

View file

@ -1,6 +1,6 @@
- 16.0.0.0.1: Initial module. - 16.0.0.0.1: Initial module.
- 16.0.1.0.0: rename to nfu_sale_order_batch_packaging - 16.0.1.0.0: rename to nfu_sale_order_batch_packaging
- 16.0.1.16.0.1.0: Live - 16.0.1.1.0: Live
- 16.0.1.2.0: Add regeneration action for batch products - 16.0.1.2.0: Add regeneration action for batch products
- 16.0.1.2.1: refactoring - 16.0.1.2.1: refactoring
- 16.0.1.3.0: add packaging states - 16.0.1.3.0: add packaging states