X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=invoices.cgi;fp=invoices.cgi;h=cc505d4c52f3f09f7b9296811405f4b58906d551;hb=c9bb4a41908f01e2e9698d17cf1027255b53a47b;hp=e6a152f73b4b6a98f7e4366d44474e13850f9439;hpb=c0c32950d91b409f0ada82a21e6702ad980bd565;p=invoices diff --git a/invoices.cgi b/invoices.cgi index e6a152f..cc505d4 100755 --- a/invoices.cgi +++ b/invoices.cgi @@ -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