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:
parent
b225fa0815
commit
be6c97cfad
Binary file not shown.
|
@ -320,17 +320,22 @@ class SaleOrder(models.Model):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def action_print_sample_labels(self):
|
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()
|
self.ensure_one()
|
||||||
|
|
||||||
if not self.generated_sample_ids:
|
# Obtener todas las muestras activas (no rechazadas ni canceladas)
|
||||||
raise UserError(_('No hay muestras generadas para esta orden. Por favor, confirme la orden primero.'))
|
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
|
# Asegurar que todas las muestras tengan código de barras
|
||||||
self.generated_sample_ids._ensure_barcode()
|
active_samples._ensure_barcode()
|
||||||
|
|
||||||
# Obtener el reporte
|
# Obtener el reporte
|
||||||
report = self.env.ref('lims_management.action_report_sample_label')
|
report = self.env.ref('lims_management.action_report_sample_label')
|
||||||
|
|
||||||
# Retornar la acción de imprimir el reporte para todas las muestras
|
# Retornar la acción de imprimir el reporte para las muestras activas
|
||||||
return report.report_action(self.generated_sample_ids)
|
return report.report_action(active_samples)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
string="Imprimir Etiquetas"
|
string="Imprimir Etiquetas"
|
||||||
type="object"
|
type="object"
|
||||||
class="btn-primary"
|
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"/>
|
icon="fa-print"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//field[@name='partner_id']" position="after">
|
<xpath expr="//field[@name='partner_id']" position="after">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user