shithub: rech

ref: 996ae644683888ebb0e23d6173f6f5239f72175b
dir: /bin/formatdata.awk/

View raw version
#!/bin/awk -F '\t' -f

BEGIN {
	print ".TS"
	print "expand linesize(5);"
	print "l l l l l"
	print "l n n n n"
	print "."
	print "_"
	printf "##ROW_NAME##\t##ROW_COUNT##\t##ROW_PRICE##\t##ROW_TAX##\t##ROW_TOTAL##\n"
	print "="
}

!/^#/ && NF >= 4 {
	number = $1
	single = $2
	vat = $3
	cat = $4
	name = $5
	
	total = number * single
	
	vats[vat] += total
	final += total
	
	vv = "\\R-"
	if (vat > 0)
		vv = sprintf("%.2f %%", vat);
	
	printf "%s\t%.2f\t%.2f\t%s\t%.2f EUR\n", name, number, single, vv, total
}

END {
	print "_"
	print ".T&"
	print "l s s s n"
	print "."
	
	# net sum
	printf "##SUBTOTAL##\t%.2f EUR\n", final
	
	hasvat = 0
	for (i in vats) {
		if (i == 0)
			continue;
		hasvat++
	}
	if (hasvat)
		print "_"
	
	for (i in vats) {
		if (i == 0)
			continue;
		v = vats[i] * i / 100.
		printf "##VAT_TOTAL## %.2f %%\t%.2f EUR\n", i, v
		final += v
	}
	print "="
	print ".B"
	printf "##TOTAL##\t%.2f EUR\n", final
	print "_"
	print ".TE"
}