Soluzioni per le aziende che producono, assemblano e gestiscono prodotti complessi.

Le caratteristiche di Wess.Net che illustriamo in questa pagina sono nate grazie all'esperienza maturata presso aziende dei settori:

  • Reggitenda in alluminio, bastoni di legno e decorativi.
  • Tende da interno e da esterno.
  • Tende tecniche, a rullo.
  • Tende alla veneziana, verticali, plissettate, a pacchetto.
  • Porte pieghevoli.
  • Zanzariere.

La loro utilità è tuttavia applicabile a tanti altri settori merceologici, semplificando la gestione, ad esempio, sia a chi assembla computer come a chi assembla biciclette!

PREMESSA

I prodotti sopra elencati vengono ordinati su misura, sono assemblabili in qualsiasi misura, ma il loro costo non è al metro lineare o al metro quadro. Il prezzo di vendita è a scaglioni di misure. Per alcuni sono scaglioni di lunghezza, per altri sono scaglioni costituiti dall'incrocio di larghezza/altezza. Inoltre le varianti di assemblaggio possono essere centinaia (colori, tipi di supporto, tipo di aperture, ...).

Se si pensasse di codificare ciascun prodotto per tutti i suoi scaglioni di prezzo e per tutte le sue varianti di assemblaggio si arriverebbe ad un'anagrafica contenente un numero spropositato di articoli.

Per taluni prodotti esiste anche il concetto del totale misure e dei minimi di fatturazione in larghezza e sul totale. Per tali prodotti il prezzo è normalmente al MQ, l'imponibile di vendita è calcolato con PZ x TM x PREZZO. Il TM (totale misure) sono i MQ con l'applicazione dei minimi fatturabili. Wess.Net offre le migliori soluzioni gestionali per queste esigenze con:

  • Tabelle prezzi ad 1 dimensione.
  • Tabelle prezzi a 2 dimensioni.
  • Maschere di acquisizione dati (schede tecniche) programmabili con script.
  • Tabelle di valori (varianti) per ciascun elemento di una maschera.
  • Applicazione guidata di supplementi/detrazioni di prezzo.
  • Distinte di produzione con formule logico/matematiche o script, collegate alle maschere.

Tabelle prezzi ad 1 dimensione

Casi tipici di prodotto con questa tipologia di tabella-prezzi sono i reggitenda lineari, quali bastoni in legno/ferro/ottone, binari in alluminio, ecc.
Oltre a misura e prezzo, in tabella sono disponibili parametri aggiuntivi per gestire casi particolari. Sono un esempio le tende a pacchetto quando il prezzo è stabilito a rocchetto/caduta. In figura la colonna "Parametro 1" indica appunto il numero di rocchetti.

Tabelle prezzi a 2 dimensioni

Casi tipici di prodotto con questa tipologia di tabella-prezzi sono le tende a rullo/verticali/plissettate e le tende da esterno (tende da sole).
La figura che segue mostra come una tabella-prezzi a 2 dimensioni è normalmenterappresentata su un listino cartaceo. In Wess.Net è possibile consultare questo tipo di tabella come la si vedrebbe "sulla carta"!

Maschere di acquisizione dati

In Wess.Net è possibile definire una maschera di acquisizione dati specifica per ciascun prodotto, una maschera programmabile!. A cosa serve? A definire tutte le varianti di assemblaggio, guidando l'inserimento di un ordine/ddt/fattura. Opportunamente programmata con script, la maschera suggerisce, controlla, evita inserimenti errati. Le maschere sono configurabili e programmabili dall'utente. Possono essere molto sofisticate, con controlli sui dati inseriti, istruzioni e segnalazioni per l'operatore.

Vantaggi?

  • Con un solo codice-articolo si gestiscono tutte le sue caratteristiche e varianti.
  • Qualsiasi persona dell'ufficio commerciale è in grado di inserire ordini di prodotti complessi.
  • Nessun errore in inserimento ordine, nessun errore di assemblaggio, nessun errore di magazzino.
  • Maggior efficienza, minori costi, vantaggi traducibili in una sola parola: competitività!

La figura mostra come è configurata una maschera:

Quest'altra figura mostra come la maschera si presenta quando l'operatore compila un qualsiasi documento di vendita.

Tabelle di valori validi per ciascun elemento gestito da una maschera

Contengono i valori validi per una variante di assemblaggio/produzione presente in una maschera, ad esempio un elenco di colori, di tipi di supporto, di tipi di apertura, ecc. Per ciascun valore è possibile indicare se fa scattare una maggiorazione (supplemento) o una detrazione dal prezzo di listino. Le istruzioni sull'applicazione di maggiorazioni/detrazioni sono scritte sulla scheda anagrafica del prodotto.

Applicazione guidata delle maggiorazioni/detrazioni di prezzo

Quando si sceglie un valore da una tabella varianti che determina una maggiorazione o detrazione di prezzo, automaticamente viene presentata questa finestra:
Al click sul pulsante OK di una maschera vengono controllati tutti i dati inseriti, con l'esecuzione degli script associati a ciascun elemento. Viene inoltre segnalata la mancata applicazione di maggiorazioni/detrazioni di prezzo, ove previste.

Il dettaglio dei parametri di produzione/assemblaggio sono associati e salvati con ciascuna riga-ordine/ddt/fattura. Utilizzando una maschera non si perde nulla delle caratteristiche di ciascuna unità di prodotto assemblata. In altre parole, l'uso di un solo codice-articolo non preclude la possibilità di conoscere a posteriori le caratteristiche e varianti di ciascuna singola vendita!

Distinte di produzione con formule logico/matematiche o script

Le distinte di produzione sono il cardine della gestione di prodotti complessi, sia al fine del calcolo dei costi di produzione che ai fini della movimentazione di magazzino.

Prodotti e distinte sono entitá indipendenti, associabili tra di loro. Se una distinta ha lo stesso codice di un prodotto, l'associazione tra prodotto e distinta é automatica. Una distinta puó essere associata a piú prodotti indicando il codice della distinta sui dati anagrafici di ciascun prodotto. Qualsiasi distinta puó essere utilizzata come sotto-distinta di altre distinte. Possono esistere distinte totalmente slegate dall'anagrafica prodotti, normalmente usate come blocchi da includere in altre distinte oppure usate come distinte di primo livello da associare a prodotti diversi.

Esemplificando: Puó esistere la distinta A associata ai prodotti A, B e C. Puó esistere un prodotto Z a cui é associata la distinta X che al suo interno usa la distinta A come sotto-distinta.

L'esplosione/valorizzazione di una distinta puó essere eseguita con vari criteri. Ogni riga di distinta dispone di un codice-modificatore (flag elaborazione) che permette di includere/escludere selettivamente i componenti oppure di escludere/includere l'attraversamento delle sotto-distinte.

La quantitá di un componente puó essere espressa:

  • come numero intero oppure decimale;
  • come formula logico-matematica;
  • come script codificato nel linguaggio WnScript.

Una distinta può comunicare con la maschera-prodotto usando variabili che identificano le varianti di un prodotto. In tal modo si ottiene la quantificazione dinamica dei componenti di produzione/assemblaggio. Nel momento dell'esplosione della distinta, le variabili presenti nelle formule vengono sostituite dai valori salvati con le righe di ordini/ddt/fatture, digitati sulle maschere-prodotto.

Oltre alle distinte di produzione, Wess.Net mette a disposizione anche:

  • Distinte di spedizione: descrivono i materiali accessori necessari alla spedizione di un prodotto.
  • Distinte di taglio: descrivono i tagli da eseguire per barre/profili, operazione che costituisce normalmente il punto di partenza dell'assemblaggio.

Per ogni riga di distinta la cella "Quantità, formula, script" può contenere:

  • Una quantità numerica.
  • Una formula logico-matematica.
  • Uno script in sintassi Wess.Net script, pressochè uguale al VB Script.
In tutti i casi è necessario usare . (punto) come separatore delle cifre decimali.

Affinchè il testo venga riconosciuto come script, deve iniziare con un % (percento) altrimenti sarà interpretato come formula. Gli script permettono di codificare logiche più complesse di quanto non sia possibile fare con una formula, però le formule hanno un significativo vantaggio di velocità nell'essere calcolate. Sia formule che script riconoscono le variabili associate ad una maschera-prodotto. Test condizionali possono inoltre essere espressi utilizzando le colonne "Variabile - Operatore - Valore", come si vede in figura alla riga 6. E' un medoto sicuramente più semplice che tuttavia offre meno flessibilità. La colonna "Variabile =" può contenere il nome di una variabile, non presente nella maschera-prodotto, a cui assegnare il risultato della formula/script definita sulla stessa riga. La variabile può essere poi utilizzata nelle formule/script che seguono. "Salvare" un risultato intermedio in una variabile può essere utile soprattutto nelle distinte di taglio.

Le formule, come già detto, sono di tipo logico-matematico. A prima vista possono sembrare complicate da capire, ma conoscendo pochissimi concetti di base, la loro comprensione diventa immediata. Con il termine logico si intendono espressioni del tipo (A = 2), con il termine matematico intendiamo invece espressioni del tipo A + 2. Un'espressione logica ritorna Vero (True) se la condizione si verifica, in questo caso se "A è uguale a 2". In caso contrario, cioè se "A è diverso da 2" il suo valore sarà Falso (False). I termini Vero e Falso (True/False) sono ovviamente simbolici. Il reale valore numerico per Vero (True) è normalmente -1 (meno uno) mentre per il termine Falso (False) è 0 (zero).

Nelle formule delle distinte quando un'espressione logica del tipo (A = 2) è vera, il suo risultato numerico è 1, non -1. Come mai? Facciamo un esempio per capire ciò che a prima vista sembra strambo. Domandiamoci innanzitutto qual'è la funzione di una riga di distinta: determinare una quantità! La quantità potrebbe anche essere 0 (zero) ma di certo non sarà mai negativa!. Ipotizziamo di avere una variabile A che vale 160 e la seguente formula: 16 * (A=160) + 20 * (A=200), quale sarà il risultato della formula?
Facciamo il calcolo a piccoli passi:
1. Scindiamo le espressioni logiche dalle espressioni matematiche.
    L'espressione (A=160) è VERA quindi il suo risultato è 1.
    L'espressione (A=200) è FALSA quindi vale 0.
2. Sostituiamo alle espressioni logiche il loro risultato: 16 * (A=160) + 20 * (A=200) = 16 * 1 + 20 * 0
3. Facciamo il calcolo aritmetico dell'espressione risultante: 16 per 1 più 20 per 0 = 16

E se volessimo fare lo stesso calcolo con uno script?
Lo script equivalente alla formula "16 * (A=160) + 20 * (A=200)" sarebbe:
-----------------------------------------
%
Dim Qta = 0
If A = 160 Then
    Qta = 16
ElseIf A = 200 Then
    Qta = 20
EndIf
Return Qta
-----------------------------------------

Notare l'uso dell'istruzione RETURN: L'uso di RETURN è necessario soltanto se lo script non è auto-referenziale, cioè se deve ritornare il valore da assegnare ad una variabile presente nella colonna "Variabile = ". Lo script seguente non fa uso di RETURN in quanto provvede ad assegnare variabili dichiarate sulla maschera-prodotto.
-----------------------------------------
%
If A = 160 Then
    C = 16
ElseIf A = 200 Then
    C = 20
EndIf
-------------------------------------

Sotto-distinte

Una distinta può essere composta da altre distinte (sotto-distinte). Quando il componente è rappresentato da una sotto-distinta la sua elaborazione/esplosione "scatta" se il risultato della formula è diverso da zero. In questo caso entra in gioco la "X" a sinistra dell'unità di misura (X significa "per", moltiplicazione). Se la X è spuntata, le quantità presenti nella sotto-distinta saranno moltiplicate per il risultato della formula "chiamante", in caso contrario la sotto-distinta sarà interpretata/esplosa con le sue quantità originali.

Formule o script?
Come già detto, le formule possono essere un poco più difficili da capire e scrivere, tuttavia offrono un notevole vantaggio di velocità di elaborazione. Le distinte di produzione di prodotti assemblati con tante varianti sono spesso composte da centinaia e centinaia di righe. La velocità di elaborazione è quindi un elemento critico!. Consigliamo di privilegiare sempre le formule utilizzando gli script soltanto quando veramente indispensabili.

Lo sforzo concettuale necessario per scrivere le formule sarà sempre ampiamente ripagato dalla loro efficienza!

In conclusione:

L'uso delle maschere-prodotto riduce in modo vertiginoso la quantità di prodotti da codificare e garantisce la correttezza dell'inserimento di un ordine a prescindere dalla complessità di assemblaggio di un prodotto. L'uso congiunto di maschere e distinte di produzione permette la massima automazione nello scarico del magazzino, l'accurato calcolo dei costi di produzione e la possibilità di fornire precise istruzioni di assemblaggio.

Ecco come può presentari la riga di una fattura:

Ed ecco come può presentari una scheda di lavorazione con tanto di lista di prelievo dei materiali: