[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 865.   Avvio e codifica

nanoMAG è una procedura didattica per la gestione di un magazzino. In questo capitolo gli studenti inseriscono i codici principali utilizzati nelle esercitazioni successive, dove eventualmente può essere richiesto di aggiungere altri codici a quelli già inseriti qui.

Si avvia nanoMAG indicando il nome di un file contenente i dati del magazzino. Inizialmente questo file non esiste, ma in tal caso viene creato automaticamente, senza dati. Si proceda con il comando seguente, con il quale si crea il file nmag.db:

nmag nmag.db[Invio]

Si ottiene un menù di funzioni:

.--------------------------------nanoMAG-----------------------------------.
| nanoMAG menu                                                             |
| .----------------------------------------------------------------------. |
| |   inserimento comandi      Accesso alla riga di comando              | |
| |   listato articoli         Stampa degli articoli di magazzino        | |
| |   listato causali          Stampa delle causali di magazzino         | |
| |   listato clienti          Stampa dei clienti                        | |
| |   listato fornitori        Stampa dei fornitori                      | |
| |   listato movimenti        Stampa dei movimenti                      | |
| |   listato mov dettagliato  Stampa dettagliata movimenti              | |
| |   listato situazione       Stampa della situazione del magazzino     | |
| |   applica costo medio      Costo medio agli scarichi indeterminati   | |
| |   fine lavoro              Conclusione                               | |
| `----------------------------------------------------------------------' |
|--------------------------------------------------------------------------|
|                     <  OK   >            <Cancel>                        |
`--------------------------------------------------------------------------'

Si scorrono le voci del menù utilizzando i tasti [freccia su] e [freccia giù]; si seleziona una voce evidenziata premendo [Invio], o comunque selezionando in qualche modo il pulsante grafico <OK>.

L'inserimento dei dati avviene attraverso istruzioni SQL, selezionando la voce {inserimento comandi} dal menù di nanoMAG:

SQLite version ...
Enter ".help" for instructions

sqlite> 

Per terminare la fase di inserimento di comandi in forma interattiva, si deve scrivere il comando .quit, con tanto di punto iniziale:

sqlite> .quit[Invio]

Per terminare il funzionamento di nanoMAG basta selezionare la voce {fine lavoro}.

865.1   Gestione del file contenente i dati

Le esercitazioni prevedono l'uso di una base di dati contenuta tutta in un file, che viene indicato qui con il nome nmag.db, ma potrebbe trattarsi di qualunque altro nome. Alla fine di ogni esercitazione o verifica, converrebbe agli studenti fare una copia di questo file, con un nome di proprio gradimento, che permetta loro di ripristinare la situazione del magazzino, nel caso di operazioni erronee che cancellano o alterano i contenuti in modo diverso dal voluto. Per esempio, si potrebbero fare delle copie con nomi del tipo: nmag.db.001, nmag.db.002,...

È importante osservare che la copia di questo file può essere fatta solo quando non è in uso. Pertanto, il programma nanoMAG non deve essere in funzione per poter produrre una copia valida del file.

865.2   Utilizzo concorrenziale

È possibile avviare più copie del programma nanoMAG sullo stesso file, utilizzando console virtuali differenti o finestre di terminali alternative. Si tratta di una possibilità che può facilitare l'inserimento dei dati o la loro consultazione.

865.3   Script

L'inserimento dei comandi, ovvero delle istruzioni SQL, può avvenire in modo interattivo oppure attraverso uno script. Lo script è un file di testo contenente tutte le istruzioni in sequenza, che può essere realizzato con un programma per la creazione e modifica di file di testo, come Gedit o altri.

Per esempio, nella sezione successiva vengono inserite le causali di magazzino. Volendo realizzare uno script con le istruzioni di inserimento delle causali, questo file potrebbe iniziare così:

INSERT INTO Causali VALUES (1, 'carico per acquisto', +1);
INSERT INTO Causali VALUES (2, 'scarico per vendita', -1);
...

Una volta realizzato un file del genere, per eseguire le istruzioni che contiene, si potrebbe utilizzare il comando seguente, naturalmente al di fuori del funzionamento di nanoMAG. In questo caso, si suppone che lo script sia costituito dal file causali.sql:

sqlite3 nmag.db < causali.sql[Invio]

865.4   Causali di magazzino

Le causali di magazzino sono sostanzialmente le descrizioni dei movimenti di magazzino. Il loro inserimento, come quello di altri dati, avviene attraverso i comandi interattivi che si possono impartire selezionando la voce {inserimento comandi} dal menù di nanoMAG.

Figura 865.4. Causali di magazzino.

causale descrizione var
1 carico per acquisto +1
2 scarico per vendita -1
3 reso da cliente +1
4 reso a fornitore -1
5 rett. aumento acq. +1
6 rett. aumento vend. -1
7 rett. diminuz. vend. +1
8 rett. diminuz. acq. -1
9 carico da produzione +1
10 scarico a produzione -1
11 carico da magazzino +1
12 scarico a magazzino -1
13 saldo iniziale +1

Si inseriscano le causali di magazzino che si vedono nella figura; segue l'esempio delle prime due:

sqlite> INSERT INTO Causali VALUES (1, 'carico per acquisto', +1);[Invio]

sqlite> INSERT INTO Causali VALUES (2, 'scarico per vendita', -1);[Invio]

Al termine dell'inserimento delle causali si esce dalla modalità interattiva con il comando .quit e, dal menù di nanoMAG, si seleziona la voce {listato causali} per verificare che tutto sia in ordine:

.-------------------Listato_causali----------------------.
| Causale     Descrizione                     Var        |
| ----------  ------------------------------  ---------- |
| 1           carico per acquisto             1          |
| 2           scarico per vendita             -1         |
| 3           reso da cliente                 1          |
| 4           reso a fornitore                -1         |
| 5           rett. aumento acq.              1          |
| 6           rett. aumento vend.             -1         |
| 7           rett. diminuz. vend.            1          |
| 8           rett. diminuz. acq.             -1         |
| 9           carico da produzione            1          |
| 10          scarico a produzione            -1         |
| 11          carico da magazzino             1          |
| 12          scarico a magazzino             -1         |
| 13          saldo iniziale                  1          |
|                                                        |
|------------------------------------------------100%----|
|                       < EXIT >                         |
`--------------------------------------------------------'

Al termine della visualizzazione è sufficiente premere [Invio] per uscire; tuttavia, viene proposta la possibilità di stampare su carta. In questa fase va risposto in modo negativo, riservando la stampa per un altro momento:

.-----Listato_causali-------.
| Stampo?                   |
|---------------------------|
|     < Yes >   < No  >     |
`---------------------------'

Pertanto, si seleziona il pulsante grafico <No> e si ritorna al menù.

865.4.1   Modifica o eliminazione di una causale

Nel caso fossero stati commessi degli errori, occorre modificare o eliminare le causali relative. Questo lavoro si compie in modo interattivo, selezionando la voce {inserimento comandi}. Supponendo di avere sbagliato la descrizione della quinta causale, questa va modificata utilizzando un'istruzione come quella seguente:

sqlite> UPDATE Causali SET descrizione = 'rett. aumento acq.' \
  \      WHERE causale = 5;
[Invio]

Supponendo di avere sbagliato il valore che appare nell'ultimo campo della sesta causale, questa va modificata utilizzando un'istruzione come quella seguente:

sqlite> UPDATE Causali SET var = -1 WHERE causale = 6;[Invio]

Supponendo di avere inserito la causale 133 e di volerla eliminare, si può procedere con un'istruzione come quella seguente:

sqlite> DELETE FROM Causali WHERE causale = 133;[Invio]

Quando si modificano o si eliminano dei dati, occorre verificare di avere fatto tutto come lo si desidera, visualizzando il contenuto delle informazioni esistenti (in questo caso con la voce {listato causali} del menù).

865.5   Anagrafica degli articoli

L'anagrafica degli articoli è l'elenco degli articoli che vengono gestiti nella contabilità di magazzino. Devono essere inseriti gli articoli che appaiono nella figura successiva.

Figura 865.7. Articoli di magazzino.

articolo descrizione um listino scorta_min
1 telo copri monitor pz 5,00 10
2 luce per notebook usb pz 10,00 10
3 porta CD/DVD a colonna pz 10,00 10
4 porta CD/DVD da viaggio pz 5,00 30
5 adattatore da AT a PS/2 pz 3,00 5
6 adattatore da PS/2 a AT pz 3,00 5
7 borsa per notebook pz 20,00 20
8 zaino per notebook pz 20,00 20

Si inseriscano gli articoli di magazzino che si vedono nella figura; segue l'esempio dei primi due:

sqlite> INSERT INTO Articoli \
  \      VALUES (1, 'telo copri monitor', 'pz', 5.00, 10);
[Invio]

sqlite> INSERT INTO Articoli \
  \      VALUES (1, 'luce per notebook usb', 'pz', 10.00, 10);
[Invio]

Al termine dell'inserimento delle causali si esce dalla modalità interattiva (come già descritto a proposito dell'inserimento delle causali, si usa il comando .quit) e, dal menù di nanoMAG, si seleziona la voce {listato articoli} per verificare che tutto sia in ordine:

.-----------------------------Listato_articoli-------------------------------.
| Articolo    Descrizione                     UM          Listino     Scorta |
| ----------  ------------------------------  ----------  ----------  ------ |
| 1           telo copri monitor              pz          5.0         10     |
| 2           luce per notebook usb           pz          10.0        10     |
| 3           porta CD/DVD a colonna          pz          10.0        10     |
| 4           porta CD/DVD da viaggio         pz          5.0         30     |
| 5           adattatore da AT a PS/2         pz          3.0         5      |
| 6           adattatore da PS/2 a AT         pz          3.0         5      |
| 7           borsa per notebook              pz          20.0        20     |
| 8           zaino per notebook              pz          20.0        20     |
|                                                                            |
|--------------------------------------------------------------------100%----|
|                                 < EXIT >                                   |
`----------------------------------------------------------------------------'

Trattandosi di un listato piuttosto largo, l'intestazione della colonna che contiene la scorta minima appare troncata. Tuttavia, con i tasti [freccia sinistra] e [freccia destra] è possibile scorrere orizzontalmente il listato.

Al termine della visualizzazione è sufficiente premere [Invio] per uscire; tuttavia, viene proposta la possibilità di stampare su carta. In questa fase va risposto in modo negativo, riservando la stampa per un altro momento:

.-----Listato_articoli------.
| Stampo?                   |
|---------------------------|
|     < Yes >   < No  >     |
`---------------------------'

Pertanto, si seleziona il pulsante grafico <No> e si ritorna al menù.

Per la modifica o l'eliminazione degli articoli inseriti, occorre agire in modo simile a quanto già mostrato a proposito delle causali di magazzino.

865.6   Anagrafica dei clienti

L'anagrafica dei clienti contiene l'elenco dei clienti a cui è stata inviata delle merce. Devono essere inseriti i clienti che appaiono nella figura successiva.

Figura 865.10. Clienti.

cliente ragione_sociale indirizzo cap citta pr telefono fax cf_pi
1 Alfa computer p.zza Biscotto, 11 31100 Treviso TV 0422,111111 0422,222222 12345678901
2 Bravo ricambi via Pasticcino, 22 31033 Castelfranco Veneto TV 0423,222222 0423,333333 23456789012
3 Charlie service via Candito, 33 31057 Silea TV 0422,333333 0422,444444 34567890123

Si inseriscano i clienti che si vedono nella figura; segue l'esempio del primo:

sqlite> INSERT INTO Clienti \
  \      VALUES (1, 'Alfa computer', 'p.zza Biscotto, 11', \
  \      '31100', 'Treviso', 'TV', \
  \      '0422,111111', '0422,222222' '12345678901');
[Invio]

Al termine dell'inserimento dei fornitori si esce dalla modalità interattiva e, dal menù di nanoMAG, si seleziona la voce {listato clienti} per verificare che tutto sia in ordine:

.-----------------------------Listato_clienti--------------------------------.
| Cliente     Ragione_sociale                 Indirizzo                      |
| ----------  ------------------------------  ------------------------------ |
| 1           Alfa computer                   p.zza Biscotto, 11             |
| 2           Bravo ricambi                   via Pasticcino, 22             |
| 3           Charlie service                 via Candito, 33                |
|                                                                            |
|--------------------------------------------------------------------100%----|
|                                 < EXIT >                                   |
`----------------------------------------------------------------------------'

Trattandosi di un listato abbastanza largo, occorre scorrerlo orizzontalmente con l'aiuto dei tasti [freccia sinistra] e [freccia destra]. Al termine della visualizzazione si esca senza stampare.

865.7   Anagrafica dei fornitori

L'anagrafica dei fornitori contiene l'elenco dei fornitori da cui è stata ricevuta delle merce. Devono essere inseriti i fornitori che appaiono nella figura successiva.

Figura 865.12. Fornitori.

fornitore ragione_sociale indirizzo cap citta pr telefono fax cf_pi
1 Delta forniture via Cioccolata, 11 31050 Morgano TV 0422,444444 0422,555555 45678901234
2 Eco informatica via Caramella, 22 31032 Feltre BL 0439,555555 0439,666666 56789012345
3 Foxtrot hardware via Zucchero, 33 31010 Mareno di Piave TV 0438,666666 0438,777777 67890123456

Si inseriscano i fornitori che si vedono nella figura; segue l'esempio del primo:

sqlite> INSERT INTO Fornitori \
  \      VALUES (1, 'Delta forniture', 'via Cioccolata, 11', \
  \      '31050', 'Morgano', 'TV', \
  \      '0422,444444', '0422,555555', '45678901234');
[Invio]

Al termine dell'inserimento dei fornitori si esce dalla modalità interattiva e, dal menù di nanoMAG, si seleziona la voce {listato fornitori} per verificare che tutto sia in ordine:

.----------------------------Listato_fornitori-------------------------------.
| Fornitore   Ragione_sociale                 Indirizzo                      |
| ----------  ------------------------------  ------------------------------ |
| 1           Delta forniture                 via Cioccolata, 11             |
| 2           Eco informatica                 via Caramella, 22              |
| 3           Foxtrot hardware                via Zucchero, 33               |
|                                                                            |
|--------------------------------------------------------------------100%----|
|                                 < EXIT >                                   |
`----------------------------------------------------------------------------'

Trattandosi di un listato abbastanza largo, occorre scorrerlo orizzontalmente con l'aiuto dei tasti [freccia sinistra] e [freccia destra]. Al termine della visualizzazione si esca senza stampare.

865.8   Verifica

Dopo aver controllato i dati inseriti in questo capitolo, si proceda alla stampa, che fino a questo punto è stata evitata. Si deve stampare ciò che si ottiene dalle voci:

Le stampe vanno raccolte con un punto metallico o con un fermaglio per lettera e consegnate per la valutazione. Le figure successive mostrano come devono apparire queste stampe, in modo tale che ogni studente possa controllare e correggere prima di consegnare le verifiche.

Figura 865.14. Listati degli articoli e delle causali.

articoli causali

Figura 865.15. Listati dei clienti e dei fornitori.

clienti fornitori


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome avvio_e_codifica.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory