-
Notifications
You must be signed in to change notification settings - Fork 0
/
ESEGUIMI.sh
executable file
·402 lines (352 loc) · 8.33 KB
/
ESEGUIMI.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
#! /bin/bash
# colorazione con sequenze ANSI
nn="[0;0;01m" # fondo nero
rr="[0;0;41m" # fondo ross
vv="[0;0;42m" # fondo verde
gg="[0;0;43m" # fondo giallo
bb="[0;0;44m" # fondo blu
mm="[0;0;45m" # fondo magenta
cc="[0;0;46m" # fondo cyan
rn="[0;31;40m" # rosso su nero
Rn="[1;31;40m" # rosso grassetto su nero
vn="[0;32;40m" # verde su nero
Vn="[1;32;40m" # verde grassetto su nero
gn="[0;33;40m" # giallo su nero
Gn="[1;33;40m" # giallo grassetto su nero
bn="[0;34;40m" # blu su nero
Bn="[1;34;40m" # blu grassetto su nero
mn="[0;35;40m" # magenta su nero
Mn="[1;35;40m" # magenta grassetto su nero
cn="[0;36;40m" # cyan su nero
Cn="[1;36;40m" # cyan grassetto su nero
z="[0m"; # normale
ini1(){
clear
echo "
$vn
Questo file eseguibile e' parte del programma di contabilita' scritto e
mantenuto da Daniele Vallini del Gruppo Linux di Biella (BiLUG)
$rn vallini.daniele@bilug.it www.bilug.it $vn
Il programma e' stato curato e collaudato da tempo ma viene fornito
privo di qualsiasi garanzia poiche' e' compito dell' utilizzatore
verificarne l' adeguatezza alle proprie esigenze.
Il programma e' liberamente utilizzabile nei termini della licenza GPL3
$rn http://www.gnu.org/licenses/gpl.txt $vn
Il codice puo' essere liberamente modificato ed adattato ma questo
commento introduttivo deve essere mantenuto
E' gradita ogni forma di collaborazione segnalando commenti, sviluppi ed
integrazioni al Gruppo Linux di Biella - BiLUG, mailing list pubblica:
$rn linux@ml.bilug.linux.it
$Rn (+) $gn procedo
$Rn (-) $gn abbandono
$gn CONFERMARE OGNI OPZIONE CON $rn Invio
"
read x
case $x in
"+") ini2;;
"-") exit;;
esac
ini1
}
ini2(){
clear
echo "
$vn
Il programma di installazione esegue le seguenti operazioni:
$gn - verifica la presenza dei programmi:
$rn
- xterm
- sqlite3
$gn - crea l'utente cnt,
$gn - inserisce in /home/cnt i moduli del programma di contabilita':
$rn
- cnt1.sh (avvio)
- cntbil.sh (bilanci)
- cntcli.sh (clienti)
- cntfor.sh (fornitori)
- cntgen.sh (generale)
- cntmag.sh (magazzino)
- ESEGUIMI.sh (installatore dell'applicativo)
- LEGGIMI.txt (documentazione di installazione)
$gn - crea il database con le sue tabelle nel file /home/cnt/cnt.db:
$rn
- cliana anagrafe clienti
- clifat1 fatture clienti parte 1
- clifat2 fatture clienti parte 2
- forana anagrafe fornitori
- giocon piano dei conti
- gioope codici di operazione contabile
- giornale libro giornale
- magart articoli di magazzino
- magazzino movimenti di magazzino
- magope codici di operazione di magazzino
$Rn (+) $gn procedo
$Rn (-) $gn abbandono
$Rn (<) $gn indietro
$z"
read x
case $x in
"+") inst1;;
"-") exit;;
"<") ini1;;
esac
ini2
}
inst1(){
clear
xx=`whoami`
if [ "$xx" = "root" ]
then
echo "$vn OK sei l'utente $xx, puoi procedere"
inst2
else
echo "
$vn Sei l'utente $xx, devi essere root per procedere
$gn Fra 5 secondi esco
"
sleep 5
exit
fi
}
inst2(){
echo "
$vn verifico l'installazione della console xterm'
"
file=/usr/bin/xterm
if [[ -e $file ]]
then echo "
$gn OK $file e' installato
"
inst3
else echo "
$vn non esiste $file, provvedi ad installarlo
$vn con il comando $gn apt-get install xterm
$gn fra 5 secondi esco
"
sleep 5
exit
fi
}
inst3(){
echo "
$vn verifico l'installazione di sqlite3
$vn (e' il database)
"
file=/usr/bin/sqlite3
if [[ -e $file ]]
then echo "
$gn OK $file e' installato
"
inst4
else echo "
$vn non esiste $file, provvedi ad installarlo
$vn con il comando apt-get install sqlite3
$gn fra 5 secondi esco
"
sleep 5
exit
fi
}
inst4(){
echo "
$vn Creo il gruppo $rn cnt e l'utente $rn cnt $vn per il quale devi
$vn immettere la password, gli altri dati richiesti (nome, stanza,
$vn telefoni, altro) sono facoltativi.
$gn ATTENZIONE: se utente e gruppo cnt gia' esistono verranno annullati e
$gn l'utente ricreato con nuova password
$Rn (+) $gn procedo
$Rn (-) $gn abbandono
$Rn (<) $gn indietro
$z"
read x
case $x in
"+") inst5;;
"-") exit;;
"<") inst3
esac
inst4
}
inst5(){
clear
delgroup cnt
deluser cnt
adduser cnt
echo "
$vn installato gruppo cnt ed utente cnt, $gn ricordati la password!
"
inst6
}
inst6(){
echo "
$vn copio ora in /home/cnt i moduli del programma:
$rn
- cnt1.sh (avvio)
- cntbil.sh (bilanci)
- cntcli.sh (clienti)
- cntfor.sh (fornitori)
- cntgen.sh (generale)
- cntmag.sh (magazzino)
- ESEGUIMI.sh (installatore dell'applicazione)
- LEGGIMI.txt (documentazione di installazione)
$Rn >>> $gn immetti la posizione ove si trovano detti file da copiare
$Rn (-) $gn abbandono
$Rn (<) $gn indietro
$z
"
read path
case $path in
("") inst6;;
("-") exit;;
("<") inst4;;
esac
inst7
}
inst7(){
path1=/home/cnt
for file in "/cnt1.sh" "/cntbil.sh" "/cntcli.sh" "/cntfor.sh" "/cntgen.sh" "/cntmag.sh" "/ESEGUIMI.sh" "/LEGGIMI.txt"
do
if [[ -e $path$file ]]
then echo "$gn OK $path$file esiste, copio in /home/cnt"
cp $path$file $path1/$file
else echo "$vn non esiste $path$file"
inst6
fi
done
inst8
}
inst8(){
echo "
$vn verifico l'installazione dei moduli del programma
"
for file in "/cnt1.sh" "/cntbil.sh" "/cntcli.sh" "/cntfor.sh" "/cntgen.sh" "/cntmag.sh" "/ESEGUIMI.sh" "/LEGGIMI.txt"
do
if [[ -e $path1$file ]]
then echo "$gn OK $path1$file e' installato"
else echo "$vn non esiste $path1$file"
inst6
fi
done
inst9
}
inst9(){
echo "
$vn creo ora Il database sqlite3 e creo le tabelle necessarie
"
if [[ -e $path1/cnt.db ]]
then echo "
$rn ATTENZIONE IL DATABASE ESISTE LA NUOVA CREAZIONE COMPORTA
$rn LA PERDITA DEI DATI ESISTENTI
$Rn (-) $gn Esco e salvo altrove il file /home/cnt/db
$Rn (+) $gn Procedo annullando il database esistente
"
read x
case $x in
"-") exit;;
"+") rm /home/cnt/cnt.db; inst10;;
"<") inst8;;
esac
else inst10
fi
}
inst10(){
echo > /home/cnt/sql "
CREATE TABLE cliana (
idcli TEXT(5) PRIMARY KEY,
cliente TEXT(30) NOT NULL,
clien2 TEXT(30),
via TEXT(30) NOT NULL,
citta TEXT(30) NOT NULL,
piva TEXT(13) NOT NULL,
codfis TEXT(16),
listino INT(1) NOT NULL,
pagamen TEXT(80) NOT NULL,
destina TEXT(30),
destin2 TEXT(30),
destvia TEXT(30),
destcit TEXT(30)
);
CREATE TABLE clifat1 (
nrfat INT(4) PRIMARY KEY,
idcli TEXT(6) NOT NULL,
datafat TEXT(6) NOT NULL,
datatras TEXT(6) NOT NULL,
causale TEXT(7) NOT NULL,
colli TEXT(3) NOT NULL,
trasp TEXT(12) NOT NULL
);
CREATE TABLE clifat2 (
nrfat INT(4) NOT NULL,
datafat TEXT(6) NOT NULL,
idart TEXT(6) NOT NULL,
quanti INT(5) NOT NULL,
prezzo REAL(6,2) NOT NULL,
iva INT(2) NOT NULL,
lotto TEXT(6) NOT NULL
);
CREATE TABLE forana (
idfor TEXT(5) PRIMARY KEY,
fornitore TEXT(30) NOT NULL,
via TEXT(30),
citta TEXT(30),
piva TEXT(11) NOT NULL,
codfis TEXT(16)
);
CREATE TABLE giornale (
data TEXT(6) NOT NULL,
idope TEXT(4) NOT NULL,
idcon TEXT(10) NOT NULL,
importo REAL(12,2),
nrfat INT(4),
idfor TEXT(6),
idcli TEXT(6),
nota TEXT(50)
);
CREATE TABLE gioope (
idope TEXT(3) PRIMARY KEY,
operazio TEXT(25)
);
CREATE TABLE giocon (
idcon TEXT(10) PRIMARY KEY,
conto TEXT(25)
);
CREATE TABLE magazzino (
data TEXT(6),
idmov TEXT(4),
idart TEXT(6),
quanti INT(6),
prezzo REAL(10,2),
nrfat INT(4),
lotto TEXT(6),
nota TEXT(50)
);
CREATE TABLE magart (
idart TEXT(6) PRIMARY KEY,
articolo TEXT(26) NOT NULL ,
unimis TEXT(2) NOT NULL,
aliva INT(2) NOT NULL,
costo REAL(8,2),
gros1 REAL(8,2),
gros2 REAL(8,2),
minuto REAL(8,2)
);
CREATE TABLE magmov (
idmov TEXT(2) PRIMARY KEY,
movime TEXT(20) NOT NULL
);"
sqlite3 /home/cnt/cnt.db < /home/cnt/sql
echo "$gn
Definisco l'utente cnt proprietario della directory /home/cnt"
chown -R cnt:cnt /home/cnt/*
echo "$gn
Creo un link simbolico /usr/bin/cnt -> /home/cnt/cnt1.sh"
ln -s /home/cnt/cnt1.sh /usr/bin/cnt
echo "$gn
Fine del processo di installazione del database
Per avviare il programma di contabilita' apri una console xterm, a pieno
schermo, con i poteri dell'utente cnt e digita semplicemente cnt.
premi ora Inv per terminare l'installazione"
echo "$z"
read x
exit
}
ini1