52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# 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.
|