- Crear plantilla QWeb para etiquetas de 100x50mm
- Incluir datos del paciente, orden y tipo de muestra
- Generar código de barras Code128 usando campo existente
- Agregar botón 'Imprimir Etiquetas' en órdenes confirmadas
- Formato optimizado para impresoras de etiquetas
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- Se agrega el campo 'name' obligatorio al crear stock.lot para muestras
- Se utiliza la secuencia 'stock.lot.serial' para generar nombres únicos
- Se incluye fallback basado en timestamp si no existe secuencia
- Corrige el error de validación en la creación de muestras
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar método _generate_lab_tests() en sale.order para crear pruebas automáticamente al confirmar orden
- Agregar método _find_sample_for_analysis() para asociar muestras con análisis según tipo
- Mejorar dominio de sample_id en lims.test para filtrar por paciente y estado (collected/in_analysis)
- Agregar método _onchange_sale_order_line() para actualizar dominio de muestra dinámicamente
- Las pruebas ahora se crean automáticamente con la muestra correcta asignada
Esto resuelve el problema reportado donde las órdenes aprobadas no generaban pruebas
y las muestras no estaban disponibles para selección manual.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed missing action_collect method for pending_collection state
- Updated all model field labels to Spanish
- Updated view labels and strings to Spanish
- Fixed readonly conditions for pending_collection state
- Added barcode and new fields to stock.lot views
- Updated sale.order embedded view with correct button
- Added 5-minute timeout note to CLAUDE.md
- Removed problematic demo sale.order XML records
- Updated test script location guidance in CLAUDE.md
- Marked all acceptance criteria as completed in plan
- Added generated_sample_ids field to sale.order model
- Override action_confirm() to intercept lab order confirmation
- Implemented _generate_lab_samples() main logic method
- Implemented _group_analyses_by_sample_type() for grouping
- Implemented _create_sample_for_group() for sample creation
- Added necessary fields to stock.lot model (doctor_id, origin, volume_ml, analysis_names)
- Updated state field to include 'pending_collection' state
- Added proper error handling and user notifications via message_post
- Successful test with ephemeral instance restart