
- Agregar estado 'cancelled' a stock.lot para muestras - Implementar método action_cancel() en stock.lot - Override action_cancel() en sale.order para: * Cancelar muestras en estados: pending_collection, collected, received, in_process * Cancelar pruebas asociadas que no estén validadas * Registrar mensajes en el chatter de cada elemento cancelado * Mostrar resumen de elementos cancelados en la orden - Agregar tests unitarios completos para verificar: * Cancelación correcta de muestras y pruebas * No cancelación de elementos en estados finales * Generación de mensajes en chatter * Órdenes normales no afectadas La funcionalidad asegura que no queden muestras o pruebas "huérfanas" cuando se cancela una orden de laboratorio. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
24 lines
1.4 KiB
Plaintext
24 lines
1.4 KiB
Plaintext
## Descripción
|
|
|
|
Actualmente, cuando se cancela una orden de laboratorio, las muestras asociadas permanecen activas y no se descartan automáticamente. Esto puede causar confusión ya que quedan muestras "huérfanas" en el sistema que ya no tienen una orden válida.
|
|
|
|
## Comportamiento esperado
|
|
|
|
Cuando se cancela una orden de laboratorio:
|
|
1. Todas las muestras generadas asociadas a esa orden deben cambiar automáticamente su estado a "cancelled"
|
|
2. Si hay pruebas (lims.test) asociadas a esas muestras, también deben cancelarse
|
|
3. Se debe registrar en el chatter de la muestra que fue cancelada debido a la cancelación de la orden
|
|
|
|
## Criterios de aceptación
|
|
|
|
- [ ] Al cancelar una orden de laboratorio, todas sus muestras asociadas se marcan como canceladas
|
|
- [ ] Las pruebas asociadas a las muestras también se cancelan
|
|
- [ ] Se registra un mensaje en el chatter de cada muestra indicando la razón de cancelación
|
|
- [ ] Si una muestra ya estaba cancelada o completada, no se modifica
|
|
- [ ] La acción es reversible: si se vuelve a poner la orden en borrador, las muestras NO deben reactivarse automáticamente
|
|
|
|
## Notas técnicas
|
|
|
|
- El método a modificar es `action_cancel()` en el modelo `sale.order`
|
|
- Verificar el campo `generated_sample_ids` para obtener las muestras asociadas
|
|
- Solo cancelar muestras que estén en estados: 'pending_collection', 'collected', 'in_analysis' |