fix(#60): Corregir impresión de etiquetas para incluir re-muestras activas

- Modificar action_print_sample_labels para usar all_sample_ids
- Filtrar muestras rechazadas, canceladas y desechadas
- Actualizar condición del botón para usar all_sample_ids
- Ahora imprime etiquetas de re-muestras activas

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Luis Ernesto Portillo Zaldivar 2025-07-16 08:55:59 -06:00
parent b225fa0815
commit be6c97cfad
3 changed files with 12 additions and 7 deletions

View File

@ -320,17 +320,22 @@ class SaleOrder(models.Model):
return res
def action_print_sample_labels(self):
"""Imprimir etiquetas de todas las muestras generadas para esta orden"""
"""Imprimir etiquetas de todas las muestras activas (incluyendo re-muestras)"""
self.ensure_one()
if not self.generated_sample_ids:
raise UserError(_('No hay muestras generadas para esta orden. Por favor, confirme la orden primero.'))
# Obtener todas las muestras activas (no rechazadas ni canceladas)
active_samples = self.all_sample_ids.filtered(
lambda s: s.state not in ['rejected', 'cancelled', 'disposed']
)
if not active_samples:
raise UserError(_('No hay muestras activas para imprimir. Todas las muestras están rechazadas, canceladas o desechadas.'))
# Asegurar que todas las muestras tengan código de barras
self.generated_sample_ids._ensure_barcode()
active_samples._ensure_barcode()
# Obtener el reporte
report = self.env.ref('lims_management.action_report_sample_label')
# Retornar la acción de imprimir el reporte para todas las muestras
return report.report_action(self.generated_sample_ids)
# Retornar la acción de imprimir el reporte para las muestras activas
return report.report_action(active_samples)

View File

@ -14,7 +14,7 @@
string="Imprimir Etiquetas"
type="object"
class="btn-primary"
invisible="not is_lab_request or state != 'sale' or not generated_sample_ids"
invisible="not is_lab_request or state != 'sale' or not all_sample_ids"
icon="fa-print"/>
</xpath>
<xpath expr="//field[@name='partner_id']" position="after">