# `search_pallets.py`

## Scopo

Questo modulo consente di cercare pallet/UDC, lotti e codici prodotto su tutto
il magazzino e di esportare i risultati.

## Flusso operativo

```{mermaid}
flowchart TD
    A["open_search_window()"] --> B["SearchWindow.__init__()"]
    B --> C["_build_ui()"]
    C --> D["Utente compila filtri"]
    D --> E["_do_search()"]
    E --> F{"Filtri vuoti?"}
    F -- Si --> G["Richiesta conferma ricerca globale"]
    F -- No --> H["Prepara parametri SQL"]
    G --> H
    H --> I["AsyncRunner.run(query_json SQL_SEARCH)"]
    I --> J["_ok()"]
    J --> K["Popola Treeview"]
    K --> L["Eventuale reset campi"]
```

## Ordinamento ed export

```{mermaid}
flowchart TD
    A["Doppio click su header"] --> B["_on_heading_double_click()"]
    B --> C["_sort_by_column()"]
    C --> D["Riordina righe del Treeview"]

    E["Click Export XLSX"] --> F["_export_xlsx()"]
    F --> G["Legge righe visibili"]
    G --> H["Scrive workbook Excel"]
```

## Note

- Il modulo usa `Treeview` come backend principale.
- Le ricerche possono essere molto ampie: per questo, senza filtri, viene chiesta conferma.
- `IDCella = 9999` viene evidenziata con uno stile dedicato.
