testing
This commit is contained in:
49
gen.sh
49
gen.sh
@@ -4,7 +4,7 @@
|
||||
RATE=50
|
||||
|
||||
short_help() {
|
||||
echo "$0 <file.csv> <Paying Company Name> [output file]"
|
||||
echo "$0 <hrs.csv> <items.csv> <Paying Company Name> [output file]"
|
||||
echo "--help for help"
|
||||
}
|
||||
long_help() {
|
||||
@@ -30,12 +30,20 @@ else
|
||||
CSV=$1
|
||||
fi
|
||||
|
||||
COMPANY=""
|
||||
CSV2=""
|
||||
if [[ -z $2 ]]; then
|
||||
short_help
|
||||
exit
|
||||
else
|
||||
COMPANY=$2
|
||||
CSV2=$2
|
||||
fi
|
||||
|
||||
COMPANY=""
|
||||
if [[ -z $3 ]]; then
|
||||
short_help
|
||||
exit
|
||||
else
|
||||
COMPANY=$3
|
||||
fi
|
||||
|
||||
# Increment a global invoice number
|
||||
@@ -50,21 +58,38 @@ echo $INV_NUM > $INV_FILE
|
||||
|
||||
# 3rd argument is output location (optional)
|
||||
OUTPUT="invoice-${INV_NUM}.pdf"
|
||||
if [[ ! -z $3 ]]; then
|
||||
OUTPUT=$3
|
||||
if [[ ! -z $4 ]]; then
|
||||
OUTPUT=$4
|
||||
fi
|
||||
|
||||
# Parse the CSV into: Label;Hrs;Cost
|
||||
TMP=$(mktemp)
|
||||
cat $CSV | RATE=$RATE awk -F, '{ sum += $2 }; { print $1 ";" $2 ";" $2 * ENVIRON["RATE"] } END { print "Total" ";" sum ";" sum * ENVIRON["RATE"]}' > $TMP
|
||||
HRS_TMP=$(mktemp)
|
||||
cat $CSV | RATE=$RATE awk -F, '{ sum += $2 }; { print $1 ";" $2 ";" $2 * ENVIRON["RATE"] } END { print "Sub-Total" ";" sum ";" sum * ENVIRON["RATE"]}' > $HRS_TMP
|
||||
|
||||
CONSUME_TMP=$(mktemp)
|
||||
cat $CSV2 | awk -F, '{ sum += $2 }; { print $1 ";" $2 } END { print "Sub-Total" ";" sum }' > $CONSUME_TMP
|
||||
|
||||
HRS_COST=$(cat $HRS_TMP | tail -n 1 | awk -F";" '{ print $3 }')
|
||||
CONSUME_COST=$(cat $CONSUME_TMP | tail -n 1 | awk -F";" '{ print $2 }')
|
||||
|
||||
TOTAL_COST=$(A=$HRS_COST B=$CONSUME_COST awk 'BEGIN{ print ENVIRON["A"] + ENVIRON["B"] }')
|
||||
|
||||
# TOTAL = Last line
|
||||
# BODY = Everything but the last line
|
||||
TOTAL=$(cat $TMP | tail -n 1) \
|
||||
BODY=$(cat $TMP | head -n -1) \
|
||||
COMPANY=$COMPANY \
|
||||
COMPANY=$COMPANY \
|
||||
INVOICE_NUM=$INV_NUM \
|
||||
envsubst < start.mm > 1.tmp
|
||||
HRS_TOTAL=$(cat $HRS_TMP | tail -n 1) \
|
||||
HRS_BODY=$(cat $HRS_TMP | head -n -1) \
|
||||
envsubst < hours.tbl > 2.tmp
|
||||
ITEM_TOTAL=$(cat $CONSUME_TMP | tail -n 1) \
|
||||
ITEM_BODY=$(cat $CONSUME_TMP | head -n -1) \
|
||||
envsubst < item.tbl > 3.tmp
|
||||
TOTAL=$TOTAL_COST \
|
||||
RATE=$RATE \
|
||||
envsubst < template.mm | groff -t -mm -T pdf > $OUTPUT
|
||||
envsubst < end.mm > 4.tmp
|
||||
|
||||
rm $TMP
|
||||
cat 1.tmp 2.tmp 3.tmp 4.tmp | groff -t -mm -T pdf > $OUTPUT
|
||||
|
||||
rm $HRS_TMP
|
||||
rm $CONSUME_TMP
|
||||
|
||||
Reference in New Issue
Block a user