]> git.plutz.net Git - invoices/blobdiff - invoices.cgi
start billing section in invoices, introduce sessions for securing transmissions
[invoices] / invoices.cgi
index e6a152f73b4b6a98f7e4366d44474e13850f9439..cc505d4c52f3f09f7b9296811405f4b58906d551 100755 (executable)
@@ -2,35 +2,9 @@
 
 _EXEC="$(realpath "${0%/*}")"
 . "$_EXEC/cgilite/cgilite.sh"
+. "$_EXEC/cgilite/logging.sh"
 . "$_EXEC/cgilite/storage.sh"
-
-debug(){
-  if [ $# = 0 ]; then
-    tee /dev/stderr
-  else
-    printf %s\\n "$*" >/dev/stderr
-  fi
-}
-
-timeid(){
-  # generate time based ID
-  # Fixme: Unix time stamps assumed to be 32bit always
-  d=$(date +%s)
-  { printf $(
-      while [ "$d" -gt 0 ]; do
-        printf \\%o\\n $((d % 256))
-        d=$((d / 256))
-      done |tac |tr -d \\n
-    )
-    head -c5 /dev/urandom
-  } \
-  | uuencode -m - \
-  | sed -n '2{y;+/;:_;;p}'
-}
-
-checkid(){
-  grep -m 1 -xE '[0-9a-zA-Z:_]{12}';
-}
+. "$_EXEC/cgilite/session.sh"
 
 yield_page(){
 printf 'Content-Type: text/html; charset=utf-8\r\n\r\n'
@@ -207,11 +181,29 @@ edit_invoice(){
           [radio "vat" "smallbusiness" #vatsb $([ "${vat#vat=}" = smallbusiness ] && printf checked) ]
           [label for=vatsb Small business exemption from VAT]
           [radio "vat" "nett" #vatnett $([ "${vat#vat=}" = nett ] && printf checked)]
-          [label for=vatnett Nett]<!--
-       -->[radio "vat" "gross" #vatgross $([ "${vat#vat=}" = gross ] && printf checked)]<!--
-       -->[label for=vatgross Gross]
+          [label for=vatnett Nett]
+          [radio "vat" "gross" #vatgross $([ "${vat#vat=}" = gross ] && printf checked)]
+          [label for=vatgross Gross]
           [label for=vatrate VAT Rate: [input type=number name="vatrate" value="${vatrate#vatrate=}"]% ]
 
+          [table
+            [tr [th Date] [th Work] [th Hours] [th Price] ]
+$({ sed 1d "invoices/$id"; printf 'time= work= hours=\n'; } \
+    | while read -r time work hours; do
+      hours="$(UNSTRING "${hours#hours=}" |grep -m1 -xE '[0-9]+' || printf 0)"
+      printf '[tr
+              [td [textarea name=date
+%s] ]
+              [td [textarea name=work
+%s] ]
+              [td [input type=number name=hours value="%s"] ]
+              [td %s]
+     ]' "$(UNSTRING "${time#time=}" |HTML)" \
+        "$(UNSTRING "${work#work=}" |HTML)" \
+        "$hours" "$((hours * hourly)) €"
+    done
+)
+          ]
          [submit "update" "update" Update]
        ]
        EOF