La gestione delle matricole consente l'inserimento delle matricole collegate agli articoli di magazzino in fase di carico merce, di movimentazioni varie e infine di scarico con ddt e fatture.
(Non sono gestite le matricole in fase di inserimento scontrini, inoltre non vengono scaricate né ricaricate nel caso di trasferimento movimenti, ddt etc. su file)
Nelle varie fasi sarà possibile inserire manualmente le matricole oppure acquisirle da un lettore ottico opportunamente configurato.
Si potrà, infine, ottenere una stampa nella quale per ogni articolo/matricola verranno elencati i movimenti.
Per abilitare la gestione matricole occorre inserire nei parametri di personalizzazione, il parametro:
MatrGest
Se, una volta abilitato questo parametro nei programmi suddetti non compare, sui dettagli, l'icona
(J) Gest.matricole
vuol dire che non è stata riconosciuta la causale di magazzino come una causale di carico o scarico e quindi non è abilitato l'inserimento delle matricole.
Nei movimenti di magazzino di tipo 'Inventario' (cioè di inserimento di giacenza iniziale) non è abilitato l'inserimento delle matricole in quanto tali movimenti non vengono memorizzati.
Per caricare le matricole su articoli in giacenza:
Caricare dei movimenti con questa causale e inserire gli articoli desiderati, con la quantità in giacenza e l'elenco delle loro matricole.
I movimenti delle matricole sono identificati da un tipo operazione in riferimento alla causale di magazzino che li ha generati: Carico, Scarico, Guasto (cioè reso da cliente per riparazione), Reso da cliente, reso a Fornitore, Interno
Nei parametri di personalizzazione va definito inoltre il parametro MatrCausaliRientro che dovrà contenere l'elenco delle causali di magazzino che verranno utilizzate per la registrazione dei movimenti di rientro per guasto (separate da virgola ',').
La causale di Reso a fornitore DEVE essere un Carico Negativo (altrimenti non si riesce a controllare la sequenza delle operazioni su una matricola)
E' possibile definire altri parametri di personalizzazione per caratterizzare esigenze particolari di gestione e la stampa su ddt e fatture (vedi Parametri di personalizzazione Matricole)
La sequenza degli stati di una matricola è che essa venga caricata (eventualmente resa al fornitore), scaricata poi eventualmente resa o resa perché guasta, rientrata in magazzino e quindi di nuovo disponibile alla vendita.
Il programma controlla che tale sequenza sia rispettata e cioè che non si faccia uno scarico di una matricola non caricata (non si tiene conto però del magazzino in cui la matricola è caricata).
In caso di mancata sequenza viene dato un messaggio di incompatibilità e si consente di inserire ugualmente la matricola forzando.
La corretta sequenza viene stabilita sui movimenti di magazzino al momento dell'inserimento dei documenti e al momento della stampa, nel movimento viene inserita la matricola scaricata con quel documento, per cui lo stato della matricola cambia SOLO se il documento (ddt o fattura) che la contiene è stato stampato.
Per cui per garantire il controllo della sequenza, la stampa ddt/fatture deve essere fatta subito.
La compatibilità viene fatta non con l'ultimo movimento in archivio, ma con l'ultimo di data precedente a quello che si sta inserendo.
In fattura riepilogativa non è possibile modificare le righe di articolo e nemmeno le matricole per cui se sarà necessario variarle o si cancella la fattura e si variano le matricole sui ddt oppure si vanno a variare direttamente sul rispettivo movimento di magazzino.
Nella maschera di Gestione matricole ci sono due pulsanti:
(O) Mostra stato Succ. e Prec
consente di visualizzare numero, data e stato dell'ultimo movimento, in ordine di tempo, della matricola su cui si è posizionati Se questo ha una data successiva a quella del movimento attuale, verrà visualizzato, se esiste, anche il movimento precedente al movimento corrente.
(R) Ricerca Matricole
visualizza, se esiste, per ogni matricola dell'articolo su cui si è posizionati, la data e lo stato del movimento Precedente e Successivo compatibili con l'attuale.
Se le matricole verranno lette dal lettore ottico è inoltre necessario impostare un apposito paragrafo nel file aziwin.ini (generale o del terminale a seconda della necessità) per fornire al programma le informazioni relative al tipo di file, preparato dal lettore ottico, che il programma dovrà caricare.
Se i file da caricare hanno caratteristiche diverse, dovranno essere predisposti
più paragrafi, tutti dovranno iniziare LettMatrDaFile seguito da qualcosa, es. LettMatrDaFilePippo e avere nella seconda riga, un diverso contenuto nel parametro:
Descr).
[LettMatrDaFile]
Descr=Modello base
FileOrigine=c:\bht\dati\dati.dat
CodInizio=
CodLung=
QtaInizio=
QtaLung=
Imp1Inizio=
Imp1Lung=
ImpTotInizio=
ImpTotLung=
FissoSep
Separatore (solo se con separatore)
ExePrima=c:\bht\dati\RiceviDir.bat
CodArtInizIdent = "QR"
CodArtSecRic (B=cod.barre, C=cod.art)
CancFile
AddArtPrima
AddArtDopo
Il significato di questi parametri è lo stesso descritto nel paragrafo Caricamento dettagli documenti da file
Inoltre possono essere aggiunti altri parametri nel file:
Esempio di righe da aggiungere all'INI:
[LettMatrDafile]
Descr=Lettura da file a lungh.fissa
FileOrigine=c:\bht\dati\dati.dat
CodInizio=1
CodLung=30
QtaInizio=31
QtaLung=5
CancFile="N"
'ExePrima=c:\bht\dati\RiceviDir.bat (Solo se si leggono le matricole con la penna ottica)
MatrLungMin = 14
MatrSuUltRiga = "S"
SegnalNonUlt = "S"
Modalità operative:
una volta inserita la testata del documento (movimento di magazzino, ddt, fattura) si entra nella maschera di inserimento dettagli. Se sono stati previste più modalità di caricamento (più paragrafi LettMatrDafileXXX nell'aziwin.ini) dovrà essere scelta quella del momento altrimenti il programma utilizzerà automaticamente quella di default. Per fare la scelta utilizzare, come descritto sopra, il tasto destro del mouse sull'icona di caricamento.
Nel file da caricare possono essere inserite righe nelle quali il codice è un codice articolo o un codice a barre o una matricola.
Sulla riga che inizia con un codice a barre può essere specificata una quantità > 1 ed eventualmente un prezzo, su una riga che inizia con una matricola invece la quantità rilevata dalla penna sarà sempre 1,
Il programma riconosce l'uno dall'altra dai parametri dell'INI e cioè:
se le prime lettere coincidono con quanto scritto nel parametro CodArtInizIdent allora si tratta di un codice articolo
altrimenti prende in esame la lunghezza infatti il parametro MatrLungMin specifica la lunghezza minima di una matricola, i codici con lunghezza inferiore sono ritenuti codici articolo o a barre a seconda di quanto specificato nel parametro:
CodArtSecRic (il default è cod. a barre)
Se, cercando l'articolo con codice o codice a barre, questo non viene trovato, il programma considera il codice letto 'una matricola' (anche se la lungh. Non è 'da matricola')
Se è un articolo fa le operazioni normali, come descritte nel paragrafo Caricamento dettagli documenti da file (cioè crea una nuova riga con quantità, prezzi letti dal file)
Se è una matricola testa il flag ' MatrSuUltRiga'
se vale U e si è in Inserimento aggiunge la matricola sull'ultima riga inserita, mentre, se si è in Variazione, aggiunge la matricola sulla riga su cui si è posizionati (se non ci sono righe chiede di inserire manualmente il codice articolo)
se vale S cerca la matricola tra le matricole dei movimenti di magazzino, se la trova ed è univoca ed è accettabile come sequenza di operazione abbina la matricola all'articolo in cui l'ha trovata , se la trova e non è compatibile fa partire una maschera che descrive l'incompatibilità e chiede conferma dell'inserimento o meno della matricola. Se si conferma, verrà ugualmente aggiunta la matricola a quelle dell'ultima riga, se invece NON si conferma l'inserimento, la riga viene creata ugualmente, sempre con quantità 1 ma senza inserire la matricola.
Se la matricola non è univoca (parametro di personalizzazione : MatrUnica=N) e viene trovata più di una compatibile con il movimento attuale compare la maschera di richiesta del codice articolo che propone il primo trovato; si consente quindi di selezionare un altro articolo al quale abbinarla e sul quale non verranno fatti controlli di sequenza di operazioni.
La stessa maschera compare se si è sulla prima riga di un documento e se la matricola non viene trovata per poter assegnare il codice articolo. Se non si è sulla prima riga, la matricola per la quale non si trova l'articolo da associare, viene associata all'articolo dell'ultima riga già presente sul documento.
Se il programma trova, nei movimenti, l'articolo a cui associare una matricola e tale articolo è già presente sul documento che si sta inserendo, la matricola verrà aggiunta a quelle di questa riga e la quantità verrà incrementata di 1 unità se il numero delle matricole inserite sulla riga è inferiore alla quantità della riga e verranno ricalcolati gli importi (nel ddt non viene ricalcolato lo sconto quantità né il numero dei colli)
Se invece, alla fine della ricerca, non trova un articolo a cui associare la matricola, questa viene scartata.
Se si crea il documento da un file che contiene codice articolo (o cod. a barre) su una riga poi sulle successive le sue matricole il programma crea una riga nuova per ogni articolo e inserisce le corrispondenti matricole (NON inserisce la matricola, ed esce il messaggio di: Matricola già inserita, se nello stesso movimento c'è già lo stesso articolo con la stessa matricola)
Es. di un file da caricare, a lunghezza fissa con una riga con codice a barre seguita da 3 matricole, un altro codice a barre seguito da 2 matricole e un ultimo codice a barre seguito da 1 matricola.
0000000000079 00001
11111111111110001 00001
11111111111110002 00001
11111111111110003 00001
0000000000086 00001
22222222222220001 00001
22222222222220002 00001
0000000000093 00001
33333333333330001 00001
Il tipo operazione per il controllo di compatibilità della sequenza dei movimenti viene assegnato in base alla causale di magazzino, tenendo conto del suo tipo movimento, del flag di Carico/Scarico, del segno, della provenienza, secondo il seguente schema:
Tipo movim | Carico Scarico | Segno | Tipo operazione assegnata |
Inventario | Nessuna (cioè un mov. inventario non accetta matricola) | ||
Interno | I Interno | ||
Normale | S | + | S Scarico |
Normale | C | - | F Reso a fornitore |
Normale | S | - | Causale di rientro (nel parametro: MatrCausaliRientro): G Guasto
Se provenienza è Cliente: R Reso da cliente Altrimenti C Carico |
Normale | Niente | + | C Carico iniziale Il cod. causale va scritto nel param. di person. : MatrCausaliNoMovCar |
Compatibilità di sequenza delle operazioni. Lo schema seguente riporta nella colonna centrale un tipo operazione e, in quelle di sinistra e di destra, quella/e compatibili per avvenire rispettivamente prima e dopo.
Operazione Precedente | Op.Corrente | Op. Successiva |
Niente o F (Carico -) | C | S, I, F |
C, I, G (con flag *), R | S | G, R |
S | R | F, I, S |
S | G | F,I |
C, I, G, R | F | C |
C, G, R | I | S, F |
Nel movimento generato da ddt o fattura il tipo operazione è S o F o G a seconda del movimento di magazzino collegato.
(con flag *) significa che si accetta uno scarico dopo un rientro per guasto, se il parametro di personalizzazione MatrGuastoNoScar non è posto ad S, altrimenti non si accetta.