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 @@