#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script para verificar los datos de pacientes en las órdenes de laboratorio
"""

import odoo

def check_patient_data(env):
    """Verificar datos de pacientes en órdenes recientes"""
    
    # Buscar órdenes de laboratorio recientes
    orders = env['sale.order'].search([
        ('is_lab_request', '=', True),
        ('name', 'in', ['S00032', 'S00033'])
    ], order='id desc', limit=5)
    
    if not orders:
        orders = env['sale.order'].search([
            ('is_lab_request', '=', True)
        ], order='id desc', limit=5)
    
    print(f"Verificando {len(orders)} órdenes de laboratorio...")
    
    for order in orders:
        patient = order.partner_id
        print(f"\nOrden: {order.name}")
        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'}")
        print(f"  ¿Tiene campo age?: {hasattr(patient, 'age')}")
        print(f"  ¿Tiene campo birthdate_date?: {hasattr(patient, 'birthdate_date')}")
        
        # Verificar si podemos acceder a los campos
        try:
            age_value = patient.age
            print(f"  Valor de age: {age_value}")
        except Exception as e:
            print(f"  Error al acceder a age: {str(e)}")

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_patient_data(env)
            
        except Exception as e:
            print(f"\n❌ Error: {str(e)}")