Documentazione / Changelog

Evoluzione prodotto.

Variazioni funzionali e tecniche rilevanti, pubblicate insieme alle implementazioni.

29 maggio 2026

Export TeamSystem DDT

  • Aggiunto in admin/operations/orders l’export TeamSystem singolo e massivo dei DDT già generati, accanto al tracciato Excel esistente.
  • Il nuovo tracciato produce file testuali fixed-width da 400 caratteri per riga con record TESTA e CORPO, coerenti con il demo TeamSystem fornito.
  • Aggiunta la selezione totale degli ordini esportabili e resa univoca la nomenclatura dei file negli ZIP massivi, così più DDT dello stesso cliente non si sovrascrivono.
  • Aggiunti filtri nella lista ordini per periodo, cliente, stato e ricerca libera, così gli export massivi possono partire dal sottoinsieme operativo desiderato.

28 maggio 2026

Modalità tentata vendita

  • Aggiunta nelle impostazioni del panificio la modalità operativa mobile scelta dal panificio: turni/carichi, tentata vendita oppure mista.
  • Estese le API mobile con snapshot workflow=direct_sale, numerazione DDT giornaliera per agente e upload bolle senza turn_id.
  • Aggiornata l’app Flutter agente per salvare la modalità al login e mostrare l’ingresso Tentata vendita senza selezione turno o controllo carico.
  • Lo storico DDT e la conferma stampa includono anche i documenti di tentata vendita filtrati per prefisso agente.

25 maggio 2026

Console piattaforma e ciclo di vita panifici

  • Riorganizzata la dashboard piattaforma in tabella con pulsanti dedicati per creare e modificare i panifici.
  • Aggiunta navbar superiore con menu account, modifica profilo e logout.
  • Introdotta la sospensione del panificio, che interrompe gli accessi backoffice e mobile del tenant.
  • Introdotta la cancellazione definitiva del panificio con eliminazione di account, token e dati operativi associati.

Assegnazioni, app agente e contabilità

  • Riorganizzata l’area admin panificio con shell premium: sidebar raggruppata per domini, topbar contestuale, page header coerenti e card metriche su dashboard e sezioni operative.
  • Ridisegnate le viste chiave del backoffice per migliorare leggibilità e gestione contenuti su dashboard, anagrafiche, turni, ordini e agenti app.
  • Esteso il premium pass 2 con ricerca nelle anagrafiche clienti e nei listini dedicati, oltre a una scheda agente separata dalla lista per assegnazioni filtrabili e contesto operativo.
  • Completato il premium pass 3 con ordini pianificati multi-riga, breadcrumb contestuali nelle viste figlie e modifica inline della scheda agente.
  • Completato il premium pass 6 con area impostazioni tenant, modifica dell’intestazione del panificio attivo, anteprima della testata documentale e accesso diretto dalla navigazione admin.
  • Riorganizzate le anagrafiche clienti, prodotti, furgoni e giri in liste tabellari compatte con ricerca, modifica rapida in riga e azioni contestuali, evitando la gestione a card su dataset lunghi.
  • Rifinito il catalogo admin premium con ordinamento più naturale, pannello “stato anagrafica” e avvisi rapidi su listini, assegnazioni, categorie, descrizioni e tappe mancanti.
  • Aggiunti alla dashboard panificio i filtri per veduta, periodo, cliente, agente, mezzo e giro, con esportazione Excel coerente con i dati filtrati della veduta attiva.
  • Completato l’export Excel della dashboard DDT convertendo il tracciato a una riga per articolo, così il cliente può usare filtri e lavorazioni native di Excel su prodotto, quantità e valori.
  • Allineati i resi nell’export Excel della dashboard con segno sempre negativo, sia in quantità sia in valore, per una lettura contabile più chiara.
  • Riorganizzata la dashboard panificio in modalità più premium e leggibile: cabina di regia iniziale, filtri contestuali compatti, metriche separate tra volumi e controlli, classifica clienti top e vista dati principale più chiara.
  • Rifinita la dashboard panificio per schermi piccoli: layout più responsive, filtri raccolti in pannello espandibile e rimozione della card “Guida lettura” per ridurre rumore visivo.
  • Aggiunta l’email nell’anagrafica clienti per supportare l’invio dei tracciati Excel dei DDT direttamente dal backoffice.
  • Abilitati in `admin/operations/orders` export Excel singolo e massivo, oltre a invio o rinvio email singolo e massivo dei tracciati cliente, con righe consegnate prima e righe di reso negative dopo.
  • Rinominata l’app agente in Consegne Panificio, mantenendo il bundle identifier it.appteam.panificio su Android e iOS.
  • Allineati i permessi mobile alle funzioni reali dell’app: notifiche push OneSignal su Android e descrizione privacy Bluetooth iOS coerente con la stampa DDT su termica.
  • Introdotta la configurazione globale OneSignal nella console piattaforma, gestita dal super admin e condivisa dai tenant senza esporre le chiavi nel backoffice dei panifici.
  • Aggiunta nell’area impostazioni tenant la sezione `Notifiche push`, con invio singolo o massivo agli agenti, storico paginato, pulsante svuota log e conservazione automatica delle ultime 50 righe.
  • Collegata l’app Flutter agente a OneSignal tramite configurazione runtime dal backend e identità push stabile dell’agente, riallineata a ogni login/logout.
  • Corretto il payload backend delle notifiche push OneSignal aggiungendo il fallback `en` oltre al contenuto `it`, così l’invio non viene più respinto dal provider per assenza di contenuto English/Any.
  • Esteso l’invio OneSignal con immagine opzionale via URL, inoltrata come rich media compatibile al provider e tracciata anche nello storico locale del tenant.
  • Aggiunta nell’app agente l’icona notifiche in alto a destra con inbox locale delle push ricevute, completo di conteggio non lette e anteprima immagine quando presente.
  • Riallineate le schermate principali dell’app agente alle Safe Area di sistema, così login, home giro, notifiche, composer ordine e storico ordini non vengono più coperti dalle barre Android.
  • Preparata la build Android release con keystore dedicato, `key.properties` privato e generazione AAB firmato, oltre al `Podfile` iOS e a un pacchetto Flutter essenziale per lavorare con Xcode.
  • Esteso il backoffice push con upload diretto immagine dal tenant: il file viene pubblicato su storage locale, usato nella notifica OneSignal e rimosso automaticamente quando il log push viene potato o svuotato.
  • Aggiunto il target iOS `OneSignalNotificationServiceExtension` con sorgente Swift e `Podfile` aggiornato, così il progetto è pronto a mostrare notifiche push con immagine ricca anche su iPhone dopo la configurazione signing/capabilities in Xcode.
  • Corretto l’accesso pubblico alle immagini push: i nuovi upload usano l’URL canonico `/push-media/{file}` servito da Laravel, mentre i vecchi link `/storage/push-notifications/...` vengono riscritti internamente per evitare il `403 Forbidden` sul symlink pubblico senza esporre l’intera cartella `storage`.
  • Creato anche il link `public/storage` tramite `php artisan storage:link`, necessario per servire le immagini push caricate dal backoffice.
  • Rifinita l’app Flutter agente con home di giro più guidata: ricerca clienti, filtri rapidi, contatore immediato dei clienti visibili, metriche compatte in griglia 2x2, area bassa scrollabile, priorità operative, stato sync più leggibile, situazione del van con prodotti in esaurimento e composer ordine con ricerca prodotti e riepilogo progressivo.
  • Attivato nell’app agente il flush automatico dell’outbox al ritorno della rete, senza dipendere solo dal pulsante Sincronizza.
  • Ripristinata nell’area ordini operativi la colonna azioni con modifica o eliminazione dei documenti ancora non consegnati.
  • Il backoffice consente ora di creare e aggiornare ordini pianificati con quantità ordinata, reso pianificato oppure entrambe.
  • Corretto l’upload sync agente: una bolla non valida per stock, riferimenti scaduti o altre regole operative viene marcata come errore specifico senza bloccare le altre bolle valide della stessa coda.
  • L’app agente mostra ora il messaggio restituito dalle API di sync invece del solo codice HTTP in caso di errore applicativo.
  • Il composer ordine verifica il carico residuo del furgone, includendo anche le bolle ancora pendenti sul dispositivo, e impedisce quantità oltre stock.
  • Introdotta l’assegnazione esplicita dei clienti agli agenti e il relativo controllo lato API.
  • L’app agente consente di scegliere un cliente assegnato, comporre l’ordine dal suo listino e dichiarare i resi prima della chiusura.
  • Aggiunta selezione della stampante Bluetooth dall’app e stampa ESC/POS di consegnato, reso e netto valorizzati sul listino cliente.
  • Adeguato l’invio Bluetooth all’MTU negoziato dalla stampante per evitare errori su documenti più lunghi.
  • Resa affidabile la stampa su termiche BLE generiche PT210 privilegiando il canale di stampa e rallentando l’invio ESC/POS in pacchetti compatibili.
  • Ottimizzata l’impaginazione delle righe prodotto e dei totali DDT sulla larghezza a 32 caratteri della PT210.
  • Completato il layout DDT stampato con numero, data ordine, intestazioni panificio/cliente e spazio firma/timbro.
  • Estesa l’anagrafica panificio con indirizzo, città e CAP per l’intestazione mittente del DDT.
  • Protette le schermate mobile dalle barre di sistema Android e spostata la stampa prima della sincronizzazione remota dell’ordine.
  • Aggiunta nell’app la pagina Ordini effettuati con stato stampa/sincronizzazione e aggiunto lo storico DDT filtrato per agente via API.
  • Introdotta la sincronizzazione della conferma stampa anche in caso di ristampa successiva a un errore iniziale.
  • Corretta la sincronizzazione DDT: i conflitti di numerazione non sono più mostrati come stato offline e non bloccano le altre bolle valide in coda.
  • La numerazione successiva considera i DDT locali non ancora inviati, evitando riusi del numero dopo il riavvio dell’app.
  • La dashboard panificio espone DDT contabilizzati, quantità e valore di venduto e resi e netto per prodotto.
  • La dashboard panificio mostra anche agente, mezzo e conferma della stampa per ciascun DDT recente.
  • Aggiunti pulsante e pagina di modifica degli ordini pianificati nel backoffice; gli ordini già consegnati restano bloccati.
  • Caricato un set dimostrativo per il tenant Scordella con listini differenziati, giro, carico e movimento di esempio.

Landing page e documentazione pubblica

  • Nuova home pubblica moderna e responsive con presentazione del prodotto e accesso al pannello.
  • Nuova sezione /docs con documentazione funzionale, tecnica e changelog.
  • Definita la regola di mantenere i documenti aggiornati in ogni modifica che impatti il comportamento del prodotto.
  • Inserita una regola di repository per vincolare le future modifiche applicative all’aggiornamento della documentazione.

Piattaforma SaaS multi-panificio

  • Introduzione dei panifici come tenant separati nello stesso backend.
  • Account piattaforma per onboarding e account amministratori dedicati per ogni tenant.
  • Isolamento dei cataloghi e delle operazioni logistiche tramite bakery_id.
  • Area admin per clienti/listini, prodotti, furgoni, agenti, giri/tappe, turni/carichi e ordini.

Applicazione agente e API

  • Login agente dall’app unica e token memorizzato in secure storage.
  • Database locale Flutter separato per panificio per snapshot e outbox offline.
  • Snapshot mattutino e upload DDT filtrati per tenant, con controllo di stock, listini e ordine.
  • Servizio di stampa termica testuale ESC/POS via Bluetooth.

Politica di aggiornamento

Da questa release, una modifica al codice che introduce o modifica flussi utente, regole logistiche, modelli dati, endpoint API, sicurezza, applicazione mobile o distribuzione deve includere:

  • aggiornamento della pagina funzionale o tecnica interessata;
  • una voce sintetica in questo changelog;
  • allineamento del documento tecnico versionato nel repository.