Files
ware_house/docs/flows/layout_window_flow.md
2026-03-31 19:15:33 +02:00

1.9 KiB

layout_window.py

Scopo

Questo modulo visualizza il layout delle corsie come matrice di celle, mostra lo stato di occupazione, consente di cercare una UDC e permette l'export della matrice.

Flusso operativo

flowchart TD
    A["open_layout_window()"] --> B["Crea o riporta in primo piano LayoutWindow"]
    B --> C["LayoutWindow.__init__()"]
    C --> D["Costruisce toolbar, host matrice, statistiche"]
    D --> E["_load_corsie()"]
    E --> F["AsyncRunner.run(query_json SQL corsie)"]
    F --> G["_on_select() sulla corsia iniziale"]
    G --> H["_load_matrix(corsia)"]
    H --> I["AsyncRunner.run(query_json SQL matrice)"]
    I --> J["_rebuild_matrix()"]
    J --> K["_refresh_stats()"]

Ricerca UDC

flowchart TD
    A["Utente inserisce barcode"] --> B["_search_udc()"]
    B --> C["query_json ricerca pallet -> corsia/colonna/fila"]
    C --> D{"UDC trovata?"}
    D -- No --> E["Messaggio informativo"]
    D -- Si --> F["Seleziona corsia in listbox"]
    F --> G["_load_matrix(corsia)"]
    G --> H["_rebuild_matrix()"]
    H --> I["_highlight_cell_by_labels()"]

Schema di chiamata essenziale

flowchart LR
    Init["__init__"] --> Top["_build_top"]
    Init --> Host["_build_matrix_host"]
    Init --> Stats["_build_stats"]
    Init --> LoadCorsie["_load_corsie"]
    LoadCorsie --> Select["_on_select"]
    Select --> LoadMatrix["_load_matrix"]
    LoadMatrix --> Rebuild["_rebuild_matrix"]
    Rebuild --> RefreshStats["_refresh_stats"]
    Search["_search_udc"] --> LoadMatrix
    Export["_export_xlsx"] --> MatrixState["matrix_state / fila_txt / col_txt / udc1"]

Note

  • Il modulo usa un token _req_counter per evitare che risposte async vecchie aggiornino la UI fuori ordine.
  • La statistica globale viene ricalcolata da query SQL, mentre quella della corsia corrente usa la matrice già caricata in memoria.
  • destroy() marca la finestra come non più attiva per evitare callback tardive.