Files
ware_house/docs/_build/html/_sources/architecture.md.txt
2026-03-31 19:15:33 +02:00

52 lines
1.6 KiB
Plaintext

# Architettura Complessiva
Questa pagina collega i moduli principali del progetto in una vista unica,
partendo dal launcher fino ai moduli GUI e al livello infrastrutturale async/DB.
## Vista architetturale
```{mermaid}
flowchart TD
Main["main.py"] --> Launcher["Launcher"]
Main --> Loop["async_loop_singleton.get_global_loop()"]
Main --> DB["AsyncMSSQLClient"]
Launcher --> Reset["reset_corsie.py"]
Launcher --> Layout["layout_window.py"]
Launcher --> Ghost["view_celle_multiple.py"]
Launcher --> Search["search_pallets.py"]
Launcher --> Picking["gestione_pickinglist.py"]
Reset --> Runner["gestione_aree_frame_async.AsyncRunner"]
Layout --> Runner
Ghost --> Runner
Search --> Runner
Picking --> Runner
Runner --> Loop
Runner --> DB
Picking --> SP["prenota_sprenota_sql.py"]
SP --> DB
DB --> SQL["SQL Server / Mediseawall"]
```
## Flusso applicativo generale
```{mermaid}
flowchart LR
User["Utente"] --> MainWin["Launcher"]
MainWin --> Module["Finestra modulo"]
Module --> AsyncReq["AsyncRunner.run(...)"]
AsyncReq --> DbClient["AsyncMSSQLClient"]
DbClient --> SqlServer["Database SQL Server"]
SqlServer --> Callback["Callback _ok/_err"]
Callback --> Module
```
## Osservazioni
- `main.py` centralizza il loop asincrono e il client database condiviso.
- I moduli GUI si concentrano sulla UI e delegano query e task lunghi a `AsyncRunner`.
- `gestione_pickinglist.py` è l'unico modulo che passa anche da `prenota_sprenota_sql.py` per la logica di prenotazione.
- La cartella `docs/flows/` contiene la vista dettagliata modulo per modulo.