Gestione delle scorte per ticket in GLPI

GLPI gestisce i materiali di consumo nativi (ConsumableItem), ma lo scarico nasce slegato dal ticket. Il modulo Scorte di NexTool scarica dal ticket, scrive il legame nella tabella glpi_consumables stessa, valida la giacenza in tempo reale e fornisce un report di consumo per periodo esportabile in CSV - con la tracciabilità per ticket che il nativo non registra.

GLPI sa quanti toner hai in magazzino, ma non su quale ticket è uscito l'ultimo. I materiali di consumo sono nativi (ConsumableItem), lo scarico è manuale e scollegato dal ticket - così quando arriva il momento di verificare il consumo di un periodo o giustificare il costo di un ticket, l'informazione semplicemente non esiste. Il modulo Scorte di NexTool colma questa lacuna collegando i due lati che GLPI ha lasciato separati.

Il problema

GLPI ha un modulo nativo di materiali di consumo - ConsumableItem, salvato nelle tabelle glpi_consumableitems (il modello di materiale) e glpi_consumables (ogni unità fisica). Gestisce quantità, entrata e uscita: scaricare un'unità significa, in fondo, riempire la colonna date_out di quella riga. Il problema non è il controllo della giacenza in sé - è che questo scarico nasce slegato. Nativamente, un materiale di consumo viene "assegnato" a un utente o a un gruppo, mai a un ticket. Così quando il tecnico consuma tre banchi di memoria per risolvere una richiesta, registra sì l'uscita, ma da nessuna parte resta scritto che quei tre banchi sono usciti a causa di quel ticket.

Le conseguenze arrivano dopo. Verificare il consumo di un periodo per ticket diventa impossibile: i dati vivono su due isole che non si incrociano. Calcolare il costo dei materiali di una richiesta diventa un esercizio di memoria del tecnico. E lo scarico manuale, fatto fuori dal flusso del ticket, apre la porta all'errore più comune di tutti - dimenticare di registrarlo, o registrarlo sul materiale sbagliato, senza nessuno che verifichi.

Come funziona

Il modulo Scorte costruisce un ponte bidirezionale tra i ticket e i materiali di consumo nativi, senza duplicare i dati: continua a scrivere in glpi_consumables, legando semplicemente ogni uscita al ticket che l'ha causata.

  • Scheda Scorte sul ticket - il tecnico sceglie il materiale e la quantità nel ticket stesso e scarica lì, senza cambiare schermata.
  • Scheda Uscite sul materiale - lo stesso movimento appare nella scheda del materiale, con il ticket collegato visibile.
  • Validazione della giacenza in tempo reale - prima di scaricare, il modulo verifica la giacenza disponibile con il calcolo nativo di GLPI (unità con date_out vuoto), impedendo scarichi oltre quanto esiste.
  • Scarico nel magazzino nativo - l'uscita riempie date_out sulle unità consumate e scrive il legame con il ticket sulla riga nativa stessa, mantenendo coerente il magazzino di GLPI.
  • Storno con reso configurabile - un'uscita può essere stornata con un clic, restituendo le unità al magazzino; il comportamento è configurabile.
  • Report con esportazione CSV - pannello di movimenti con filtri per periodo, materiale e stato, e pulsante di esportazione CSV per il foglio di calcolo.
  • Ticket obbligatorio - opzione che impone che ogni uscita sia collegata a un ticket, chiudendo la porta agli scarichi senza tracciabilità.

Come attivarlo

  1. Installa NexTool sul tuo GLPI (10 o 11).
  2. Vai in Configurazione > NexTool > Moduli.
  3. Attiva il modulo Scorte e clicca su Configura.
  4. Nella scheda delle impostazioni, definisci se lo storno restituisce il materiale al magazzino e se il ticket è obbligatorio a ogni uscita.

Nativo vs. modulo Scorte

Il punto non è sostituire il materiale di consumo nativo - è estenderlo. La tabella mostra dove si ferma il comportamento nativo e dove prosegue il modulo:

FunzionalitàGLPI nativo (ConsumableItem)Modulo Scorte
Scarico collegato al ticketManuale, assegnato a un utente o gruppo (itemtype User/Group) - senza legame con il ticketScarica dal ticket e scrive itemtype = 'Ticket' sulla riga nativa
Validazione della giacenzaGestisce la giacenza, ma fuori dal flusso della richiestaVerifica la giacenza in tempo reale nella scheda del ticket, prima di scaricare
StornoReso manuale, modificando l'unità per azzerare l'uscitaStorno in un clic, con reso configurabile
Tracciabilità verificabileRegistra chi l'ha ricevuto, non quale ticket l'ha motivatoMovimento con ticket, materiale, quantità, utente e data
Report CSV per periodoElenco per materiale, senza dettaglio per ticketPannello con filtri di periodo e stato, esportabile in CSV

Diagnosi direttamente nel database

Mentre valuti il modulo - o solo per controllare cosa registra il nativo - puoi misurare la giacenza e le uscite direttamente nelle tabelle di GLPI. Le due query che usiamo:

-- Giacenza reale per materiale, direttamente dalle tabelle native di GLPI.
-- Ogni riga di glpi_consumables è UNA unità fisica: date_out vuoto = in magazzino,
-- date_out valorizzato = già consumata. glpi_consumableitems è il modello del materiale.
SELECT ci.id                       AS materiale_id,
       ci.name                     AS materiale,
       SUM(c.date_out IS NULL)     AS in_magazzino,
       SUM(c.date_out IS NOT NULL) AS consumati,
       COUNT(c.id)                 AS totale_registrato
FROM glpi_consumableitems ci
LEFT JOIN glpi_consumables c ON c.consumableitems_id = ci.id
WHERE ci.is_deleted = 0
GROUP BY ci.id, ci.name
ORDER BY in_magazzino ASC;

-- Uscite già collegate ai ticket: allo scarico, il modulo scrive itemtype='Ticket'
-- e items_id = il numero del ticket sulla riga nativa stessa.
-- Su un GLPI senza il modulo questo filtro non restituisce nulla (l'uscita nativa va a User/Group).
SELECT c.items_id      AS ticket,
       ci.name         AS materiale,
       COUNT(*)        AS unita_scaricate,
       MAX(c.date_out) AS ultima_uscita
FROM glpi_consumables c
JOIN glpi_consumableitems ci ON ci.id = c.consumableitems_id
WHERE c.date_out IS NOT NULL
  AND c.itemtype = 'Ticket'
GROUP BY c.items_id, ci.name
ORDER BY ultima_uscita DESC;

Cosa ci ha insegnato operare

Nella manutenzione di service desk dei clienti, la tracciabilità per ticket è sempre stata il pezzo mancante - GLPI diceva "sono usciti 20 toner questo mese", ma non "quali ticket li hanno consumati". Senza questo incrocio, verificare il consumo per periodo veniva ricostruito a occhio. Due errori si ripetono sul campo. Il primo è lo scarico manuale sul materiale senza citare il ticket: il tecnico consegna l'articolo dal flusso nativo, la giacenza torna anche, ma la richiesta resta senza costo e il report bucato. Il secondo è più silenzioso - installare il modulo e dimenticare di attivare il "ticket obbligatorio": per settimane convivono uscite, alcune collegate e altre no, e solo quando qualcuno chiede il report emerge il buco. Il dettaglio che solo chi opera conosce: il modulo non inventa una tabella di magazzino parallela, scrive nella stessa glpi_consumables - perciò lo scarico fatto dal ticket e quello fatto dalla schermata nativa competono per la stessa giacenza. Standardizzare tutto sul ticket, con l'obbligo attivo dal primo giorno, è ciò che evita che i due numeri divergano.

Per chi è indicato (e quando NON usarlo)

Scorte ha senso per i team di supporto e infrastruttura che consumano materiali fisici - toner, cavi, pezzi, memorie - durante gli interventi e devono legare ogni consumo al ticket che l'ha generato. E per i responsabili che vogliono vedere il costo dei materiali per richiesta senza esportare fogli da due sistemi.

Non conviene se non usi i materiali di consumo nativi di GLPI - il modulo si appoggia su di essi, non li sostituisce - o se il controllo di magazzino della tua operazione vive in un ERP esterno, che resta la fonte di verità. In quei casi l'integrazione giusta è con l'ERP, non una seconda contabilità di magazzino dentro GLPI.

Compatibilità

  • GLPI: 10.0+ e 11.0+.
  • Disponibilità: su richiesta.
  • Plugin: NexTool 3.x o superiore.

Scorte fa parte di NexTool, l'ecosistema di moduli che estende GLPI senza personalizzazione del codice. Per vedere lo scarico per ticket in funzione nel tuo ambiente, parla con il team.


Questo contenuto è stato prodotto con l'ausilio dell'intelligenza artificiale e revisionato dal team Nextool Solutions.

Domande Frequenti

GLPI gestisce la giacenza dei materiali nativamente (ConsumableItem), ma lo scarico è assegnato a un utente o gruppo, mai a un ticket. Il modulo Scorte scarica dal ticket e scrive il legame sulla riga nativa stessa (itemtype='Ticket'), il che rende possibile verificare il consumo per ticket - cosa che il nativo non registra.

Sì. La scheda Scorte sul ticket elenca le uscite di quel ticket, e la scheda Uscite sul materiale mostra il percorso inverso. Il report, filtrato per periodo e materiale ed esportabile in CSV, completa la vista del consumo.

Attiva l'opzione "ticket obbligatorio" nella configurazione del modulo. Con essa attiva, ogni uscita dal modulo richiede un ticket. Conviene attivarla dal primo giorno: le vecchie uscite fatte dalla schermata nativa restano senza legame e bucano il report.

Sì, è compatibile con GLPI 10.0+ e 11.0+, disponibile su richiesta, e richiede il plugin NexTool 3.x o superiore.

Hai bisogno di aiuto?