60 lines
2.0 KiB
Python
Executable File
60 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import sys
|
|
from config import ConfiguracionApp
|
|
from gestor_base_datos import GestorBaseDatos
|
|
from motor_sincronizacion import MotorSincronizacion
|
|
from cliente_api import ClienteAPI
|
|
from interfaz import lanzar_interfaz
|
|
from logger_utils import log
|
|
|
|
class ClienteSincronizacionSCAII:
|
|
def __init__(self):
|
|
self.config = ConfiguracionApp()
|
|
self.config.cargar()
|
|
|
|
self.db = GestorBaseDatos(self.config.datos)
|
|
|
|
# Cliente API con sistema correcto para Login
|
|
self.api = ClienteAPI(self.config.datos)
|
|
|
|
# Motor vinculado al API
|
|
self.motor = MotorSincronizacion(self.db, self.api)
|
|
self.gui = None
|
|
|
|
def iniciar(self):
|
|
# 1. Conexión a la DB
|
|
if not self.db.conectar():
|
|
log.error("No se pudo conectar a la base de datos al iniciar.")
|
|
return
|
|
|
|
# 2. Lanzar la Interfaz (Flet)
|
|
log.info("Lanzando Interfaz gráfica (Flet)...")
|
|
self.gui = lanzar_interfaz(self)
|
|
|
|
def proceso_principal(self):
|
|
"""Orquestación delegada al Motor"""
|
|
# Vincular callbacks a la UI
|
|
if self.gui:
|
|
self.motor.callback_progreso = self.gui.actualizar_progreso
|
|
self.motor.callback_fila = self.gui.agregar_fila
|
|
self.motor.callback_actualizar_fila = self.gui.actualizar_estado_fila
|
|
self.motor.callback_estado_texto = self.gui.actualizar_estado_texto
|
|
|
|
# Ejecutar la lógica robusta del motor (que ya tiene el debug)
|
|
exito = self.motor.proceso_principal()
|
|
|
|
if exito:
|
|
if self.gui:
|
|
self.gui.status_label.value = "¡Sincronización Exitosa!"
|
|
self.gui.page.update()
|
|
else:
|
|
log.error("El proceso de sincronización falló.")
|
|
if self.gui:
|
|
self.gui.status_label.value = "Error en Proceso (Ver debug_sync.log)"
|
|
self.gui.page.update()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app = ClienteSincronizacionSCAII()
|
|
app.iniciar()
|