Tutti i 3 verticali (Vino · Energia & Gas · Fonia & IT) sono live. Prenota la tua demo →
Loogico
Modulo Bollini Stato simulazione end-to-end

1 bollino = 1 bottiglia, consumo automatico.

Stock bollini ADM per serie con range numerico sequenziale. Hook automatico al imbottigliamento decrementa serie attiva con FIFO selection. Alert reorder quando residui sotto soglia.

Cosa fa il modulo

I bollini Stato dell'Agenzia Dogane Monopoli (ADM) sono fascette numerate che ogni bottiglia di vino DOC/DOCG italiana deve riportare per legge. Per la cantina, significa tracciare ogni serie ricevuta dall'ADM: quanti hai, quanti hai consumato, quanti residui, con range numerico sequenziale.

In molte cantine questo tracciamento si fa ancora a mano sui quaderni. Errore facile, sanzione potenziale. Loogico Vino offre tracciamento integrato con il movimento di imbottigliamento: 1 bottiglia = 1 bollino consumato in automatico.

Anatomia di una serie bollini

vino_bollini_serie
├─ codice_serie (univoco)         es. "S-2026-001"
├─ data_acquisto                  data ordine ADM
├─ range_da, range_al             es. da 0000001 a 0050000 (50.000 bollini)
├─ quantita_totale                calcolata: range_al - range_da + 1
├─ quantita_consumata             incrementata ad ogni imbottigliamento
├─ quantita_residua               calcolata: totale - consumata
├─ percentuale_consumata          calcolata
├─ sotto_soglia_reorder           flag boolean per alert UI
└─ attiva                         false quando esaurita

vino_bollini_consumi (append-only)
├─ serie_id (FK)
├─ movimento_id (FK al imbottigliamento)
├─ quantita_consumata
├─ range_da_consumato, range_al_consumato
├─ data_consumo
└─ operatore

Prima — Quaderno cartaceo

  • · Quaderno bollini in cantina, scrittura a mano
  • · Range bollini consumati riportato a memoria dall'imbottigliatore
  • · Errore di trascrizione frequente (sanzioni ADM)
  • · Nessun alert prima dell'esaurimento serie

Con Loogico — DB tracciato real-time

  • Stock per serie con range numerico sequenziale automatico
  • Hook automatico al imbottigliamento: 1 bottiglia = 1 bollino consumato
  • Range_da_consumato / range_al_consumato registrato per audit
  • Alert reorder UI quando residui sotto soglia configurabile

FIFO + consumo automatico al imbottigliamento

Il VinoBolliniSimulatorService applica FIFO selection tra serie attive: consuma prima la serie più vecchia, passa alla successiva quando esaurita.

Imbottigliamento → consumo automatico bollini

1
Imbottigliamento

Movimento IMBOTTIGLIAMENTO 600L Sangiovese 2024

2
Calcolo bottiglie

600L / 0.75L = 800 bottiglie

3
FIFO consumo

Service consuma 800 bollini dalla serie attiva più vecchia

4
Audit log

Record append-only con range consumato + alert reorder se residui < soglia

// app/Services/Vino/VinoBolliniSimulatorService.php (estratto)

public function consuma(VinoMovimento $movimento, int $bottiglie): void
{
    $consumati = 0;
    while ($consumati < $bottiglie) {
        // FIFO: serie attiva più vecchia
        $serie = VinoBolliniSerie::where('attiva', true)
            ->where('quantita_residua', '>', 0)
            ->orderBy('data_acquisto')
            ->first();

        if (!$serie) {
            Log::warning('bollini.no_serie_attiva', ['movimento' => $movimento->id]);
            return; // best-effort: non blocca movimento
        }

        $daConsumare = min($bottiglie - $consumati, $serie->quantita_residua);
        $rangeDa = $serie->range_da + $serie->quantita_consumata;
        $rangeAl = $rangeDa + $daConsumare - 1;

        $serie->increment('quantita_consumata', $daConsumare);
        if ($serie->quantita_residua <= 0) $serie->update(['attiva' => false]);

        VinoBolliniConsumo::create([
            'serie_id' => $serie->id,
            'movimento_id' => $movimento->id,
            'quantita_consumata' => $daConsumare,
            'range_da_consumato' => $rangeDa,
            'range_al_consumato' => $rangeAl,
        ]);

        $consumati += $daConsumare;
    }
}

Modalità simulazione vs ADM live

🧪

Simulazione end-to-end (default)

Tracciamento end-to-end ma nessuna integrazione live con sistemi telematici ADM. Sufficiente per audit interno, controllo gestione, prevenzione errori.

Per cantine sotto la soglia ADM: simulazione è anche la modalità definitiva.

📡

ADM live (gated)

Switch live richiede:

  • • Registrazione e accreditamento ADM Dogane
  • • Stock fisico bollini in cantina
  • • Validazione amministrativa (~€500-1.500)
  • • Switch flag BOLLINI_MODE=live
Bollini Stato dashboard

Bollini Stato senza errori

Demo su tracciamento simulazione end-to-end.