blob: da7cb73644c9ffd5038458300ee751014d0c33cf (
plain)
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
|
#!/bin/sh
while read -r Barcode; do
[ -z "${Barcode}" ] && break
Barcode=$(
printf '%s' "${Barcode}" \
| base64 -w0
)
infos=$(
for s in 'Schrauben' 'Muttern' 'Unterlegscheiben'; do
printf 'SELECT'
printf '"%s",`%s`.`id`' \
"${s}" "${s}"
printf ' FROM `%s`' \
"${s}"
printf ' WHERE `%s`.`Barcode`=FROM_BASE64("%s");\n' \
"${s}" "${Barcode}"
done \
| mysql -N --raw --batch \
| tr '\t' ' '
)
if [ -z "${infos}" ]; then
>&2 echo 'Kann ich nicht finden.'
continue
fi
>&2 echo 'Wie viele entnommen?'
read diff
if ! {
printf 'UPDATE `%s`' \
"${infos% *}"
printf ' SET `%s`.`Anzahl`=`%s`.`Anzahl`-%s' \
"${infos% *}" \
"${infos% *}" \
"${diff}"
printf ' WHERE `%s`.`id`=%s;\n' \
"${infos% *}" \
"${infos#* }"
printf 'SELECT ROW_COUNT();\n'
} \
| mysql -N --raw --batch \
| grep -qxF '1'; then
>&2 echo 'mysql hat nicht genau eine Zeile geƤndert!'
exit 1
fi
done
|