From 2c76b9740208e155a25b326018d2a52b3d2a68cb Mon Sep 17 00:00:00 2001 From: Luis Ernesto Portillo Zaldivar Date: Tue, 15 Jul 2025 20:51:26 -0600 Subject: [PATCH] =?UTF-8?q?fix(#10):=20Corregir=20generaci=C3=B3n=20de=20c?= =?UTF-8?q?=C3=B3digo=20de=20barras=20en=20etiquetas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Agregar método _ensure_barcode() para generar códigos faltantes - Llamar _ensure_barcode() antes de imprimir etiquetas - Usar name del lote como fallback si no hay barcode - Manejar casos donde el campo barcode está vacío Co-Authored-By: Claude --- lims_management/models/sale_order.py | 3 +++ lims_management/models/stock_lot.py | 7 +++++++ lims_management/report/sample_label_report.xml | 11 +++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lims_management/models/sale_order.py b/lims_management/models/sale_order.py index 75e2325..61c6558 100644 --- a/lims_management/models/sale_order.py +++ b/lims_management/models/sale_order.py @@ -301,6 +301,9 @@ class SaleOrder(models.Model): if not self.generated_sample_ids: raise UserError(_('No hay muestras generadas para esta orden. Por favor, confirme la orden primero.')) + # Asegurar que todas las muestras tengan código de barras + self.generated_sample_ids._ensure_barcode() + # Obtener el reporte report = self.env.ref('lims_management.action_report_sample_label') diff --git a/lims_management/models/stock_lot.py b/lims_management/models/stock_lot.py index 02d42e1..2195e75 100644 --- a/lims_management/models/stock_lot.py +++ b/lims_management/models/stock_lot.py @@ -229,3 +229,10 @@ class StockLot(models.Model): even_sum = sum([sum(divmod(2 * d, 10)) for d in digits[-2::-2]]) total = odd_sum + even_sum return (10 - (total % 10)) % 10 + + def _ensure_barcode(self): + """Ensure all lab samples have a barcode""" + for record in self: + if record.is_lab_sample and not record.barcode: + record.barcode = record._generate_unique_barcode() + return True diff --git a/lims_management/report/sample_label_report.xml b/lims_management/report/sample_label_report.xml index 3ecc539..41d5fc8 100644 --- a/lims_management/report/sample_label_report.xml +++ b/lims_management/report/sample_label_report.xml @@ -58,8 +58,15 @@
- + + + + + + +