Current version
[infodrom.org/service.infodrom.org] / src / InfoCon / buch / vorsteueranmeldung
1 #! /bin/bash
2
3 db=infocon
4
5 if [ $# = 0 ]
6 then
7     year=$(date +%Y)
8     month=$(date +%m)
9
10     if [ $(($month % 3)) -eq 1 ]
11     then
12         if [ $month -gt 3 ]
13         then
14             start=$(printf %04d%02d01 $year $(($month - 3)))
15             end=$(printf %04d%02d01 $year $month)
16         else
17             start=$(printf %04d1001 $(($year - 1)))
18             end=$(printf %04d0101 $year)
19         fi
20     else
21         echo "Keine automatische Quartalsberechnung moeglich"
22         exit 2
23     fi
24 elif [ $# = 2 ]
25 then
26     case $2 in
27         1) month=1;;
28         2) month=4;;
29         3) month=7;;
30         4) month=10;;
31         *) echo "Unbekanntes Quartal"; exit 2;;
32     esac
33
34     if [ $month -eq 10 ]
35     then
36         start=$(printf %04d%02d01 $1 $month)
37         end=$(printf %04d%02d01 $(($1 + 1)) 1)
38     else
39         start=$(printf %04d%02d01 $1 $month)
40         end=$(printf %04d%02d01 $1 $(($month + 3)))
41     fi
42 else
43     echo "vorsteueranmeldung [year quartal]"
44     exit 1
45 fi
46
47 ESC="\e["
48 vid_bold="${ESC}1m${ESC}33m"
49 # vid_bold="${ESC}1m"
50 # vid_white="${ESC}1m"
51 # vid_brown="${ESC}33m"
52 vid_norm="${ESC}0m"
53
54 echo "${vid_bold}Lieferungen (Einnahmen)${vid_norm}"
55 echo "-----------------------"
56 echo
57 psql --pset footer=off $db <<EOF
58 SELECT date,description,tax_percent,tax_assigned,price
59         FROM sales
60 WHERE date >= '$start'  AND date < '$end'
61         AND price > 0.0 AND visible = 1
62         ORDER BY date,nr
63 EOF
64
65 psql --pset footer=off $db <<EOF
66 SELECT tax_percent as percent,sum(price) AS brutto, sum(price) - sum(tax_assigned) AS netto, sum(tax_assigned) AS tax
67         FROM sales
68 WHERE date >= '$start'  AND date < '$end'
69         AND price > 0.0 AND visible = 1
70         GROUP BY tax_percent
71         ORDER BY tax_percent
72 EOF
73
74 psql --pset footer=off $db <<EOF
75 SELECT sum(price) AS brutto, sum(price) - sum(tax_assigned) AS netto, sum(tax_assigned) AS tax
76         FROM sales
77 WHERE date >= '$start'  AND date < '$end'
78         AND price > 0.0 AND visible = 1
79 EOF
80
81 ust=$(psql --tuples-only $db <<EOF
82 SELECT sum(tax_assigned) AS tax
83         FROM sales
84 WHERE date >= '$start'  AND date < '$end'
85         AND price > 0.0 AND visible = 1
86 EOF
87 )
88
89 echo "${vid_bold}Abziehbare Vorsteuerbetr├Ąge (Ausgaben)${vid_norm}"
90 echo "--------------------------------------"
91 echo
92 psql --pset footer=off $db <<EOF
93 SELECT date,description,tax_percent,tax_assigned * -1 as tax_assigned,price * -1 as price
94         FROM sales
95 WHERE date >= '$start'  AND date < '$end'
96         AND price < 0.0 AND visible = 1
97         AND category <> 'privat'
98         AND category <> 'tax'
99         ORDER BY date,nr
100 EOF
101
102 psql --pset footer=off $db <<EOF
103 SELECT tax_percent AS percent,sum(price) * -1 AS brutto, sum(price) * -1 - sum(tax_assigned) * -1 AS netto, sum(tax_assigned) * -1 AS tax
104         FROM sales
105 WHERE date >= '$start'  AND date < '$end'
106         AND price < 0.0 AND visible = 1
107         AND category <> 'privat'
108         AND category <> 'tax'
109         GROUP BY tax_percent
110         ORDER BY tax_percent
111 EOF
112
113 psql --pset footer=off $db <<EOF
114 SELECT sum(price) * -1 AS brutto, sum(price) * -1 - sum(tax_assigned) * -1 AS netto, sum(tax_assigned) * -1 AS tax
115         FROM sales
116 WHERE date >= '$start'  AND date < '$end'
117         AND price < 0.0 AND visible = 1
118         AND category <> 'privat'
119         AND category <> 'tax'
120 EOF
121
122 vst=$(psql --tuples-only $db <<EOF
123 SELECT sum(tax_assigned) * -1 AS tax
124         FROM sales
125 WHERE date >= '$start'  AND date < '$end'
126         AND price < 0.0 AND visible = 1
127         AND category <> 'privat'
128         AND category <> 'tax'
129 EOF
130 )
131
132 tax=$(echo "$ust - $vst"|bc)
133 echo "${vid_bold}Umsatzsteuer - Vorauszahlung${vid_norm}: $tax"
134 echo "Sparkasse WHV (282 501 10), Kto 211 7000)"