frmValutazioneLecchese · ModuloValutazioneLecchese

Valutazione Magazzino Lecchese

Sistema di analisi e valorizzazione del magazzino molle. Legge la produzione dal gestionale, incrocia le vendite, calcola le giacenze e stima il valore economico dello stock per un dato periodo.

🏠 Cos'è e a cosa serve

Questa finestra risponde alle domande fondamentali sul magazzino: quanti pezzi ho prodotto nel periodo? quanti ne ho venduti? quanti restano in giacenza? quanto valgono?

🏭

Produzione

Legge tutti gli ordini evasi nel periodo dal DB del gestionale Lecchese.

🛒

Vendite

Legge i movimenti VEN e VCL dal file Excel esportato dal gestionale.

📦

Giacenza

Calcola la giacenza come Prodotti − Venduti per ogni articolo.

💶

Valore

Associa un prezzo a ogni giacenza per calcolare il valore totale del magazzino.

Il risultato viene salvato in un database Access dedicato che funge da "fotografia" del periodo elaborato e può essere consultato e modificato anche in seguito, senza dover rielaborare.

🗄️ Architettura — panoramica file

Il sistema usa cinque sorgenti dati in ingresso e produce un database di output. La password Access per tutti i database è 🔒 lecchese

FileTipoRuoloObbl.
dbMollificioLecchese.accdbAccessSorgente produzione (gestionale principale)
dbAccettazione.accdbAccessLookup Codice AdHoc via numero accettazioneRaccom.
materiali.accdbAccessLookup Codice AdHoc e Prezzo Materiale via Misura+SpecificaRaccom.
File Excel vendite .xlsxExcelMovimenti di vendita (VEN / VCL) del periodoRaccom.
prezzi_materiali.xlsxExcelPrezzi aggiornati dal gestionale, usati come fallbackOpz.
dbValutazioneLecchese.accdbAccessOutput: ricreato ad ogni elaborazioneGenerato

📁 DB Gestionale — dbMollificioLecchese.accdb

È il database principale del gestionale Lecchese. Il programma lo apre in sola lettura e non vi scrive mai nulla. Il percorso è preimpostato e non modificabile dall'utente nella scheda di configurazione.

OBBLIGATORIO
TabellaOrdiniEvasi
Tabella letta durante l'elaborazione (STEP A)
CampoTipoUtilizzo
CODICE_PRODOTTOTestoIdentificativo del prodotto (molla). Usato come chiave primaria di aggregazione
DATADataData di produzione. Filtrata dal periodo selezionato (Da/A)
MISURATestoMisura del materiale grezzo (es. "0,7x5,2x74,3"). Usata per il lookup in materiali.accdb
SPECIFICATestoSpecifica del materiale (es. tipo acciaio). Usata per il lookup
FORNITORETestoFornitore del materiale grezzo. Usato per il lookup esatto
PESOTestoPeso dell'articolo. Conservato nel DB di output
PEZZI_PRODOTTINumeroPezzi prodotti nella giornata (valore assoluto)
PEZZI_SCARTONumeroPezzi scartati nella giornata (valore assoluto)
ACCETTAZIONENumero interoNumero d'ordine di accettazione materia prima. Usato per cercare il Codice AdHoc in dbAccettazione
💡

Prodotti esclusi automaticamente

Le righe il cui CODICE_PRODOTTO inizia con =STR, <STR, FILO o NASTRO vengono ignorate durante la lettura. Si tratta di voci non pertinenti alla valorizzazione molle.

📁 DB Accettazione — dbAccettazione.accdb

Contiene lo storico delle accettazioni materia prima. Il programma lo usa per trovare il Codice AdHoc del materiale usato per ogni lavorazione. Il percorso è fisso: [CartellaDB]\DataBase\dbAccettazione.accdb — se non esiste, l'elaborazione continua comunque senza questo lookup.

RACCOMANDATO
tabellaAccettazione
Tabella letta in fase di caricamento dizionario AdHoc
CampoTipoUtilizzo
AccettazioneNumero interoNumero di accettazione. Chiave di ricerca primaria (via campo ACCETTAZIONE della produzione)
Codice_Materia_Prima_AdocTestoIl Codice AdHoc del materiale accettato. Questo è il valore che cerchiamo
MaterialeTestoDescrizione testuale del materiale (es. "0.7 x 5.2 INOX AISI 316"). Usata come indice secondario (Misura+Specifica) per trovare il codice quando l'accettazione recente non lo ha

Solo le righe con Codice_Materia_Prima_Adoc non nullo e non vuoto vengono caricate.

📁 DB Materiali — materiali.accdb

Contiene il catalogo dei materiali grezzi con i rispettivi prezzi e codici AdHoc. Usato sia come fallback per i codici AdHoc non trovati in dbAccettazione, sia come fonte principale dei prezzi materiale.

Il programma cerca il file nei seguenti percorsi in ordine:

  1. Il percorso specificato nella scheda configurazione
  2. [CartellaDB]\...\PRG. COMPILATO OK\64\DATABASE\materiali.accdb
  3. [CartellaDB]\...\PRG. COMPILATO OK\32\DATABASE\materiali.accdb
RACCOMANDATO
TabellaMateriali
Una riga per ogni combinazione Misura+Specifica+Fornitore
CampoTipoUtilizzo
MisuraTestoMisura del filo/nastro (es. "0,7x5,2"). Normalizzata prima del confronto
SpecificaTestoTipo materiale (es. "INOX AISI 316"). Confronto in MAIUSCOLO
FornitoreTestoFornitore del materiale. Confronto in MAIUSCOLO. Usato solo per la chiave esatta
Codice_AdocTestoIl Codice AdHoc del materiale nel gestionale
PREZZONumeroPrezzo unitario del materiale grezzo (es. €/kg). Fonte principale per Prezzo_Materiale

La ricerca usa prima la chiave Misura|Specifica|Fornitore (esatta), poi solo Misura|Specifica (fallback se il fornitore non corrisponde). Se specifica e fornitore sono entrambi vuoti nel record di produzione, il lookup viene annullato.

📄 File Excel Vendite

È il file .xlsx esportato dal gestionale con tutti i movimenti di magazzino. Il programma legge solo il primo foglio, a partire dalla riga 2 (la riga 1 è l'intestazione). Ogni riga rappresenta un singolo movimento.

RACCOMANDATO
Foglio 1 — movimenti magazzino
Riga 2 in poi. Solo movimenti VEN e VCL nel periodo selezionato vengono importati.
ColonnaLetteraCampoUtilizzo
2BCodice prodottoCodice dell'articolo venduto. Viene confrontato con i prodotti in DB con fuzzy matching (±20%)
3CDataData del movimento. Filtrata dal periodo Da/A configurato
5EMotivoTipo movimento. Vengono importati solo VEN (vendita) e VCL (vendita a cliente). Tutto il resto viene ignorato
10JPezziQuantità venduta. Valore assoluto (il segno viene ignorato). Le righe con pezzi = 0 vengono saltate
27AAPrezzoPrezzo unitario di vendita (€/pz). Se 0, viene applicato il fallback xlsx o la correzione manuale

Fuzzy matching dei codici prodotto

I codici prodotto nel file Excel possono non corrispondere esattamente a quelli nel DB di produzione (differenze di maiuscole, spazi, trattini). Il programma usa un algoritmo di corrispondenza approssimata:

  • Soglia: massimo 20% di differenza nel numero di caratteri diversi
  • Tetto assoluto: massimo 4 caratteri di differenza
  • Le corrispondenze trovate vengono memorizzate in cache per velocizzare i record successivi
  • Se non c'è corrispondenza abbastanza buona, il prodotto viene comunque inserito con il codice originale dell'Excel

📄 prezzi_materiali.xlsx — Fallback prezzi

File opzionale esportato dal gestionale. Contiene prezzi aggiornati che vengono usati come fallback quando il DB materiali non ha un prezzo, o come fonte di verità in caso di conflitto con le correzioni manuali.

Il programma legge il primo foglio, a partire dalla riga 2.

OPZIONALE
Foglio 1 — prezzi materiali e prodotti
Colonna B = chiave di ricerca. Colonne E→K = prezzi (vince il primo non-zero).
ColonnaLetteraContenutoUtilizzo
2BCodice chiave Può essere un Codice AdHoc (materiale grezzo) oppure un codice prodotto (articolo finito). Il programma usa lo stesso dizionario per entrambe le ricerche.
5EPrezzo 1 Il programma scansiona queste colonne da sinistra a destra e prende il primo valore > 0. Tutti i valori 0 o vuoti vengono saltati. Il prezzo trovato viene arrotondato a 5 cifre decimali.
6FPrezzo 2
7GPrezzo 3
8HPrezzo 4
9IPrezzo 5
10JPrezzo 6
11KPrezzo 7

Come viene usato il file

ScenarioChiave usataCampo aggiornato
Cerco il Prezzo Materiale di un prodottoCodice AdHoc del prodotto (colonna B)Prezzo_Materiale in PRODUZIONE
Cerco il Prezzo/pz di un prodottoCodice prodotto (colonna B)Prezzo in VENDITA

Regola priorità: il gestionale vince sulle correzioni manuali

Se al momento della rielaborazione questo file ha un prezzo per un codice, quel prezzo prevale sulla correzione manuale fatta in precedenza. La correzione manuale viene preservata solo quando il gestionale non ha ancora un valore per quel codice.

💾 DB Output — dbValutazioneLecchese.accdb

È il database generato dal programma. Viene cancellato e ricreato da zero ad ogni elaborazione. Contiene due tabelle.

Non modificare questo file direttamente con Access

Qualsiasi modifica fatta direttamente nel file .accdb (senza usare il programma) verrà persa alla prossima elaborazione. Usa sempre il doppio click nell'interfaccia per le correzioni — il programma salva i flag override e ripristina i valori automaticamente.

TabellaValutazioni — riepilogo aggregato

Una riga per prodotto per tipo (PRODUZIONE o VENDITA).

CampoTipoSignificato
IDAutonumeroChiave primaria
FonteTestoPRODUZIONE o VENDITA
ProdottoTestoCodice prodotto normalizzato
Misura / Specifica / Fornitore / PesoTestoCaratteristiche fisiche del materiale grezzo
Pezzi_ProdottiNumeroTotale pezzi prodotti nel periodo (solo PRODUZIONE)
Pezzi_ScartoNumeroTotale pezzi scartati
Pezzi_VendutiNumeroTotale pezzi venduti — calcolato da righe VENDITA, scritto in PRODUZIONE
Codice_AdHocTestoCodice gestionale del materiale grezzo
Prezzo_MaterialeNumeroPrezzo del materiale grezzo (€/kg o simile)
PrezzoNumeroPrezzo di vendita al pezzo (solo VENDITA)
Prezzo_OverrideBitFlag: Prezzo è stato modificato manualmente
PrezzoMat_OverrideBitFlag: Prezzo_Materiale è stato modificato manualmente
CodiceAdHoc_OverrideBitFlag: Codice_AdHoc è stato modificato manualmente
Giacenza_OverrideBitFlag: giacenza rettificata tramite inventario fisico. La cella viene colorata in arancione nella griglia
Giacenza_RettificataNumeroGiacenza calcolata via inventario fisico: GiacenzaRilevata + Σproduzione_dopo − Σvendite_dopo

TabellaInventario — inventari fisici

Creata automaticamente al primo utilizzo. Persiste tra le rielaborazioni — i dati non vengono mai cancellati dall'elaborazione, solo ripristinati.

CampoTipoSignificato
IDAutonumeroChiave primaria
ProdottoTestoCodice del prodotto inventariato
DataInventarioData/OraData in cui è stato rilevato il conteggio fisico
GiacenzaRilevataNumeroPezzi contati fisicamente in quella data

TabellaParticolari — dettaglio giornaliero

Un record per ogni singola riga sorgente (una per ogni giorno di produzione, una per ogni movimento Excel).

CampoSignificato
FontePRODUZIONE o VENDITA
ProdottoCodice normalizzato (dopo fuzzy match per le vendite)
ProdottoOriginaleCodice originale dalla sorgente (utile per verificare il fuzzy match)
DataData del movimento
Misura / Specifica / Fornitore / PesoCaratteristiche fisiche (solo PRODUZIONE)
Pezzi_ProdottiPezzi in quella giornata
Pezzi_ScartoScarti in quella giornata
PrezzoPrezzo del movimento (solo VENDITA)
Codice_AdHocCodice AdHoc del materiale (solo PRODUZIONE)

⚙️ Scheda Configurazione

Visibile solo in modalità admin. Tutti i percorsi sono salvati automaticamente e riproposti alla riapertura.

CampoDescrizioneSalvataggio
DB Mollificio LecchesePreimpostato, non modificabile. DB principale del gestionaleFisso
DB ValutazionePercorso del file .accdb di output. Può essere nuovo o esistente (verrà sovrascritto)My.Settings
File Excel venditeIl .xlsx con i movimenti esportati dal gestionaleMy.Settings
DB MaterialiIl database materiali con prezzi e codici AdHocMy.Settings
Prezzi materiali xlsxFile opzionale con prezzi aggiornati dal gestionaleMy.Settings
Periodo Da / AIntervallo date per filtrare produzione e vendite. Salvato nel DB di output alla fine dell'elaborazioneNel DB
💡

Apertura automatica sulla scheda Risultati

Se all'apertura esiste già un DB di valutazione con dati, la finestra si apre direttamente nella scheda Risultati, saltando la configurazione.

Il processo di elaborazione

Cliccando Avvia elaborazione parte un processo in background con barra di avanzamento. Il DB viene completamente ricreato da zero.

0

Salvataggio correzioni e inventari (pre-elaborazione)

Prima di cancellare il DB, legge in RAM:

  • Tutte le modifiche flaggate con i bit *_Override (prezzi, codici AdHoc) — riapplicate alla fine solo dove il gestionale non ha un valore aggiornato.
  • Tutti i record di TabellaInventario (un record per prodotto, il più recente per data) — ripristinati integralmente dopo la ricreazione del DB.
A

Lettura produzione dal gestionale

Legge TabellaOrdiniEvasi per il periodo selezionato. Per ogni riga:

  • Cerca il Codice AdHoc (cascata: accettazione → storico → materiali.accdb)
  • Cerca il Prezzo Materiale (materiali.accdb → xlsx fallback)
  • Aggrega i pezzi per prodotto
  • Inserisce ogni riga singola in TabellaParticolari
B

Inserimento riepilogo produzione

I dati aggregati dello STEP A vengono inseriti in TabellaValutazioni come righe PRODUZIONE, una per prodotto.

C

Lettura vendite dall'Excel

Scorre il file Excel. Considera solo righe VEN / VCL nel periodo. Per ogni vendita:

  • Fuzzy match con i prodotti in DB (±20% caratteri, max 4 diff.)
  • Aggrega pezzi e prezzo per prodotto
  • Inserisce in TabellaParticolari e in TabellaValutazioni come riga VENDITA
D

Calcolo giacenze

Per ogni prodotto PRODUZIONE, aggiorna Pezzi_Venduti sommando i pezzi dalle righe VENDITA corrispondenti. La giacenza (Prodotti − Venduti) viene poi calcolata dinamicamente nella visualizzazione.

E

Ripristino e applicazione inventari fisici

I dati di inventario fisico salvati al passo 0 vengono reinseriti in TabellaInventario. Per ogni prodotto inventariato:

  • Somma i pezzi prodotti dopo la DataInventario (da TabellaParticolari)
  • Somma i pezzi venduti dopo la DataInventario
  • Calcola Giacenza_Rettificata = GiacenzaRilevata + produzione_dopo − vendite_dopo
  • Imposta Giacenza_Override = True e salva il valore in TabellaValutazioni
F

Ripristino correzioni manuali

Le modifiche salvate al passo 0 vengono riapplicate. Per Prezzo e Prezzo Materiale: solo se il file xlsx aggiornato non ha un valore per quel codice. Per Codice AdHoc: sempre, incondizionatamente.

🔗 Codici AdHoc

Il Codice AdHoc è il codice con cui il gestionale identifica il materiale grezzo. È il ponte tra il prodotto finito e il suo materiale di costo.

1
Via numero di accettazione → dbAccettazione.accdb
Ogni riga di produzione ha un numero di accettazione. Il programma cerca quel numero in tabellaAccettazione e legge Codice_Materia_Prima_Adoc.
2
Via Misura + Specifica → storico accettazioni
Se l'accettazione recente non ha il codice compilato, cerca le stesse Misura+Specifica in accettazioni storiche precedenti che lo avevano.
3
Via Misura + Specifica (+ Fornitore) → materiali.accdb
Cerca in TabellaMateriali: prima con chiave Misura+Specifica+Fornitore (esatta), poi solo Misura+Specifica. Annullato se specifica e fornitore sono entrambi vuoti.

💶 Logica prezzi

Due tipi di prezzo distinti, con cascate di lookup indipendenti. Tutti arrotondati a 5 cifre decimali.

Prezzo Materiale (costo del filo grezzo)

1
materiali.accdb — campo PREZZO
Chiave: Misura+Specifica+Fornitore (esatta) o Misura+Specifica (fallback).
2
prezzi_materiali.xlsx — col.B = Codice AdHoc, col.E→K = prezzo
Se il prezzo da materiali è 0, cerca il Codice AdHoc del prodotto nell'xlsx. Primo valore non-zero tra le colonne E→K.
3
Correzione manuale (preservata solo se xlsx = 0)
Se il gestionale non ha aggiornato quel codice, la modifica inserita manualmente dall'utente viene ripristinata.

Prezzo / pz (prezzo di vendita)

1
File Excel vendite — colonna AA
Il prezzo unitario di ogni movimento VEN/VCL, letto direttamente dall'Excel.
2
prezzi_materiali.xlsx — col.B = codice prodotto, col.E→K = prezzo
Se il prezzo dall'Excel è 0, cerca il codice prodotto nell'xlsx. Primo valore non-zero tra E→K.
3
Correzione manuale (preservata solo se xlsx = 0)
Se il gestionale non ha un valore aggiornato, si preserva la modifica manuale.

✏️ Modifiche manuali e permanenza

Ogni modifica fatta tramite interfaccia viene salvata con un flag di override. Questi flag permettono al programma di sapere quali valori sono stati corretti a mano e devono essere preservati nelle rielaborazioni future.

Flag DBCampo protettoQuando viene preservato
Prezzo_OverridePrezzo/pz (riga VENDITA)Solo se prezzi_materiali.xlsx non ha prezzo per quel codice prodotto
PrezzoMat_OverridePrezzo_Materiale (riga PRODUZIONE)Solo se prezzi_materiali.xlsx non ha prezzo per il Codice AdHoc del prodotto
CodiceAdHoc_OverrideCodice_AdHocSempre — è una mappatura, non un prezzo. Il gestionale non può sovrascriverla
💡

Scenario tipico di utilizzo

Il Codice AdHoc di un prodotto non esiste ancora nel gestionale → lo inserisci manualmente → il codice viene preservato per sempre. Nel frattempo il gestionale aggiorna il prezzo per quel codice nell'xlsx → alla prossima elaborazione il prezzo aggiornato del gestionale prenderà automaticamente la precedenza sulla vecchia correzione manuale del prezzo, ma il codice AdHoc che hai inserito a mano resta invariato.

📊 Scheda Risultati

Mostra i dati elaborati. In alto: barra ricerca e selettore vista. In basso: totale valore magazzino (visibile solo senza filtro "Solo Produzione").

Elemento UIFunzione
Campo + testo ricercaFiltra le righe cercando il testo nel campo selezionato
Cerca / TuttiApplica o azzera il filtro corrente
Selettore vistaCambia tra le tre modalità di visualizzazione
Solo ProduzioneMostra solo righe PRODUZIONE, nasconde vendite e totale
Crea ExcelEsporta la vista corrente in xlsx formattato
PDF RiepilogoReport PDF della tabella riepilogativa (compare dopo elaborazione)
PDF DettaglioReport PDF con lo storico del prodotto selezionato

👁️ Le tre viste

📋

Vista Classica

Una riga per prodotto. Tutte le colonne: Prodotto, Codice AdHoc, Misura, Specifica, Fornitore, Peso, Pezzi Prodotti, Pezzi Scarto, Prezzo Materiale, Pezzi Venduti, Giacenza, Prezzo/pz, Totale.

Vista Materiali

Raggruppa per Misura + Specifica + Fornitore. Mostra quanti pezzi totali sono stati prodotti con un certo tipo di filo, indipendentemente dalla forma della molla.

Vista Articoli

Raggruppa per codice articolo (prefisso del codice prodotto). Aggrega varianti dello stesso articolo base.

Il doppio click per modificare valori funziona in tutte e tre le viste. Per le viste raggruppate, la modifica aggiorna tutte le righe DB che appartengono a quel gruppo (stessa Misura+Specifica+Fornitore o stesso Articolo).

📋 Card prodotto

Selezionando una riga nella vista classica, sotto la tabella appare una card con i dettagli del prodotto:

  • Nome prodotto — grande, in blu
  • Riga informativa — Misura, Specifica, Fornitore, Peso, Pezzi Prodotti, Pezzi Scarto (il Prezzo è visibile solo in modalità admin)
  • Box giacenza — mostra i pezzi in giacenza con indicatore visivo
💡

Soglia giacenza "trascurabile"

La giacenza viene mostrata in grigio (trascurabile) solo se soddisfa entrambe le condizioni: è inferiore al 5% dei pezzi prodotti E non supera 15.000 pezzi. Entrambe le soglie sono configurabili nel codice.

Cliccando sul nome prodotto nella tabella si apre la scheda articolo nella finestra principale del gestionale (solo in modalità admin).

Sotto la card compare la TabellaParticolari: ogni riga sorgente per data, sia produzione che vendite, per controllare l'andamento giornaliero.

✏️ Editing interattivo

Tre campi sono modificabili con doppio click sulla cella (solo in modalità admin):

CampoCome si modificaCosa aggiorna nel DB
Codice AdHoc Finestra di input testo. Può essere lasciato vuoto. Codice_AdHoc in TabellaValutazioni e TabellaParticolari + flag CodiceAdHoc_Override = True
Prezzo Materiale Finestra di input numerico Prezzo_Materiale in tutte le righe PRODUZIONE di quel prodotto + flag PrezzoMat_Override = True
Prezzo / pz Finestra di input numerico Aggiorna o crea la riga VENDITA con il nuovo prezzo + flag Prezzo_Override = True
Giacenza Doppio click sulla colonna Giacenza (solo vista classica). Appare una finestra con un selettore data (data dell'inventario fisico) e un campo numerico (pezzi contati fisicamente). Salva in TabellaInventario + ricalcola Giacenza_Rettificata + imposta Giacenza_Override = True. La cella Giacenza diventa arancione come indicatore visivo.
💡

Giacenza editabile solo in Vista Classica

Il doppio click sulla colonna Giacenza è abilitato solo nella vista classica (una riga per prodotto). Nelle viste Materiali e Articoli il doppio click non produce azioni sulla giacenza perché il raggruppamento non consente un'associazione univoca al prodotto.

📦 Inventario fisico

La giacenza standard è un valore calcolato: Pezzi Prodotti − Pezzi Venduti. Se i dati sorgente del gestionale hanno errori, omissioni o movimenti fuori dal periodo, la giacenza calcolata può divergere dalla realtà. L'inventario fisico permette di ancorare la giacenza a un conteggio reale fatto in reparto, e di mantenerla aggiornata automaticamente nelle elaborazioni successive.

Come si usa

  1. Aprire la scheda Risultati in vista classica
  2. Fare doppio click sulla cella Giacenza di un prodotto
  3. Nella finestra che si apre:
    • Selezionare la data dell'inventario (giorno in cui è stato fatto il conteggio fisico)
    • Inserire i pezzi contati fisicamente in quel momento
  4. Confermare. La cella Giacenza si aggiorna immediatamente e diventa arancione per segnalare che si tratta di un valore da inventario fisico, non di un calcolo puro.

Come funziona internamente

Il dato inserito viene salvato in TabellaInventario con il prodotto, la data e i pezzi rilevati. Il programma calcola poi:

📐

Formula giacenza rettificata

Giacenza = GiacenzaRilevata + Σ(pezzi prodotti dopo DataInventario) − Σ(pezzi venduti dopo DataInventario)

Cioè: partiamo dal conteggio fisico e aggiungiamo/sottraiamo tutto quello che è successo dopo quel giorno. In questo modo la giacenza rimane sempre aggiornata man mano che si elaborano periodi successivi.

Persistenza nelle rielaborazioni

Ogni volta che si avvia una nuova elaborazione, il programma:

  1. Legge in RAM tutti i record di TabellaInventario prima di cancellare il DB
  2. Ricrea il DB con i nuovi dati di produzione e vendita
  3. Reinserisce i record di inventario in TabellaInventario
  4. Ricalcola automaticamente la giacenza rettificata per ogni prodotto inventariato con i nuovi dati

Questo significa che non è necessario reinserire l'inventario fisico ad ogni elaborazione. Il dato persiste e si aggiorna da solo.

💡

Più inventari per lo stesso prodotto

Se si effettuano inventari fisici in date diverse per lo stesso prodotto, il programma usa sempre il più recente. Il più recente è quello con la data più alta in TabellaInventario.

Cosa si ottiene

Giacenza affidabile

Non più dipendente al 100% dai dati del gestionale. Se il gestionale ha un gap storico, l'inventario lo corregge.

🔄

Auto-aggiornamento

A ogni nuova elaborazione la giacenza rettificata incorpora automaticamente la produzione e le vendite del periodo nuovo.

👁️

Indicatore visivo

La cella Giacenza arancione appare immediatamente dopo il salvataggio, senza dover rielaborare. Segnala quali prodotti usano un conteggio fisico.

⚠️

Non cancellare da Access direttamente

Se si apre dbValutazioneLecchese.accdb in Access e si cancella un record da TabellaInventario, la griglia del programma continuerà a mostrare la giacenza arancione con il vecchio valore — perché TabellaValutazioni ha ancora Giacenza_Override = True e Giacenza_Rettificata al vecchio numero.

L'effetto si normalizza solo alla prossima elaborazione: il programma non trova più il record in TabellaInventario, non lo ripristina, e la giacenza torna al calcolo automatico (Prodotti − Venduti) con colore normale.

📤 Export e PDF

Crea Excel

Esporta i dati della vista corrente in un file .xlsx formattato con EPPlus. Include le colonne visibili, intestazioni, formattazione numeri e larghezze ottimizzate. Il pulsante è visibile solo nella scheda Risultati, solo in modalità admin.

PDF Riepilogo

Report PDF con la tabella riepilogativa del periodo. Compare dopo l'elaborazione.

PDF Dettaglio

Report PDF con lo storico giornaliero del prodotto selezionato (dalla TabellaParticolari). Compare dopo la selezione di un prodotto.

👤 Modalità Ospite

🔧

Modalità Admin

Apertura: New frmValutazioneLecchese()
Accesso completo a tutto.

👤

Modalità Ospite

Apertura: New frmValutazioneLecchese(ospite:=True)
Titolo "Magazzino". Solo lettura, zero prezzi.

ElementoStato in Ospite
Scheda ConfigurazioneNascosta completamente
Pulsante Crea ExcelNascosto
Pulsanti PDF Riepilogo / DettaglioNascosti
Colonne Prezzo, Prezzo_Materiale, Prezzo_Totale, Valore, ValutazioneNascoste nella griglia
Totale magazzino (label in basso)Nascosto
Prezzo nella card prodottoNon incluso nella riga informativa
Doppio click per modificaCompletamente disabilitato
Titolo finestra"Magazzino"
Cursore di avvioClessidra durante il caricamento

⚠️ Alert misure inconsistenti

Durante l'elaborazione il programma controlla se lo stesso prodotto è stato prodotto con misure diverse in date differenti. Al termine, se rilevate, appare una finestra con la lista dei prodotti e le misure trovate.

⚠️

Cosa fare con gli alert

Verificare nel gestionale se è un errore di digitazione o una variazione legittima. Se è legittima, l'alert continuerà ad apparire ad ogni elaborazione — è normale, non è un errore del programma.



🔄 Ripartire da capo

Durante lo sviluppo o in caso di test, può essere necessario azzerare completamente il database di output e ricominciare da zero, come se il programma non fosse mai stato usato.

Come si fa

Basta eliminare fisicamente il file dbValutazioneLecchese.accdb dalla cartella in cui è stato creato. Al prossimo avvio dell'elaborazione il programma lo ricrea da zero.

Cosa si perde eliminando il file

L'eliminazione è irreversibile. Vengono persi:

  • Tutte le correzioni manuali (prezzi, codici AdHoc) inserite con doppio click
  • Tutti i record di inventario fisico salvati in TabellaInventario

I dati sorgente (gestionale, Excel vendite, materiali) non vengono toccati.

Alternativa: rielaborare senza perdere le correzioni

Se si vuole solo aggiornare i dati con un periodo nuovo (senza perdere le modifiche manuali e gli inventari), non è necessario eliminare il file. È sufficiente cliccare Avvia elaborazione: il programma salva automaticamente tutte le correzioni e gli inventari in RAM prima di cancellare le tabelle, e li ripristina dopo.

AzioneCorrezioni manualiInventari fisiciDati produzione/vendite
Avvia elaborazionePreservatiPreservatiAggiornati
Elimina file .accdbPersiPersiRicreati alla prossima elaborazione


Documentazione generata l'8 maggio 2026 · Mollificio Lecchese · Versione 4.0