#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script para verificar los datos de la orden S00025
"""

import odoo

def check_order_s00025(env):
    """Verificar datos específicos de la orden S00025"""
    
    # Buscar la orden S00025
    order = env['sale.order'].search([
        ('name', '=', 'S00025')
    ], limit=1)
    
    if not order:
        print("❌ No se encontró la orden S00025")
        return
    
    patient = order.partner_id
    print(f"Orden: {order.name}")
    print(f"  Es orden de laboratorio: {order.is_lab_request}")
    print(f"  Paciente: {patient.name}")
    print(f"  ID Paciente: {patient.id}")
    print(f"  Fecha de nacimiento: {patient.birthdate_date}")
    print(f"  Edad: {patient.age if patient.birthdate_date else 'N/A'}")
    print(f"  Género: {patient.gender or 'No especificado'}")
    
    # Verificar estado de las pruebas
    print(f"\nPruebas de laboratorio ({len(order.lab_test_ids)}):")
    for test in order.lab_test_ids:
        print(f"  - {test.product_id.name}: {test.state}")
    
    # Verificar si puede imprimir resultados
    print(f"\n¿Puede imprimir resultados?: {order.can_print_results}")
    
    # Si el paciente no tiene fecha de nacimiento, actualizarla
    if not patient.birthdate_date:
        print("\n⚠️ El paciente no tiene fecha de nacimiento. Actualizando...")
        patient.write({'birthdate_date': '1985-01-15'})
        print(f"  Fecha de nacimiento actualizada a: {patient.birthdate_date}")
        print(f"  Edad calculada: {patient.age} años")

if __name__ == '__main__':
    # Configuración
    db_name = 'lims_demo'
    
    # Conectar a Odoo
    odoo.tools.config.parse_config(['--database', db_name])
    
    # Obtener el registro de la base de datos
    registry = odoo.registry(db_name)
    
    # Crear cursor y environment
    with registry.cursor() as cr:
        env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
        
        try:
            # Verificar datos
            check_order_s00025(env)
            cr.commit()
            
        except Exception as e:
            print(f"\n❌ Error: {str(e)}")
            import traceback
            traceback.print_exc()