[tr [th Date] [th Work] [th Hours] [th Price] ]
$({ sed 1d "invoices/$id"; printf 'time= work= hours=\n'; } \
| while read -r time work hours x; do
- hours="$(UNSTRING "${hours#hours=}" |grep -m1 -xE '[0-9]+' || printf 0)"
+ hours="$(UNSTRING "${hours#hours=}" \
+ |grep -m1 -xE '\.[0-9]+|[0-9]+\.?[0-9]*' || printf 0)"
printf '[tr
[td [textarea name=time
%s] ]
[td [textarea name=work
%s] ]
- [td [input type=number name=hours value="%s"] ]
+ [td [input type=number name=hours value="%.2g" step=any] ]
[td %s]
]' "$(UNSTRING "${time#time=}" |HTML)" \
"$(UNSTRING "${work#work=}" |HTML)" \
- "$hours" "$((hours * hourly)) €"
+ "$hours" \
+ "$(awk "BEGIN { printf \"%.2f €\", ${hours} * ${hourly}; }")"
done
)
[tr [td colspan=4
sed 1d "invoices/$id" \
| { while read -r time work hours; do
- [ "${hours#hours=}" -gt 0 ] 2>&- \
+ [ "${hours#hours=}" ] 2>&- \
&& hours="${hours#hours=}" \
|| hours=0
- total=$((total + hours * hourly))
+ total=$(awk "BEGIN { printf \"%.2f\", ${total} + ${hours} * ${hourly}; }")
done
case $vat in
vat=nett)
<text:p text:style-name="P3">${work}</text:p>
</table:table-cell>
<table:table-cell table:style-name="Table1.2" office:value-type="string">
- <text:p text:style-name="P5">${hours}</text:p>
+ <text:p text:style-name="P5">$( awk "BEGIN {
+ if ( int(${hours}) == ${hours} )
+ printf \"%i\", ${hours};
+ else
+ printf \"%i:%i\", int(${hours}), int((${hours} - int(${hours})) * 60);
+ }"
+ )</text:p>
</table:table-cell>
<table:table-cell table:style-name="Table1.2" office:value-type="string">
- <text:p text:style-name="P5">$((${hourly} * ${hours})) €</text:p>
+ <text:p text:style-name="P5">$(awk "BEGIN { printf \"%.2f\", ${hourly} * ${hours}; }" ) €</text:p>
</table:table-cell>
</table:table-row>
TROW