chore: initial commit del proyecto SCAII_Sync_Client

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 13:38:20 -05:00
commit 10dc063cf1
26 changed files with 2069 additions and 0 deletions

59
main.py Executable file
View File

@@ -0,0 +1,59 @@
#!/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()