#!/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()