#!/usr/bin/perl -w
# (c) 2004 Christoph Berg <cb@df7cb.de>
# This program is free software covered by the GNU GPL v2.

# Dieses Skript nimmt eine Telekom-Rechnung, die mit pstotext von pdf in Text
# konvertiert wurde und rechnet die Beträge pro MSN zusammen.
# Nützlich für Telefonrechnungen von WGs.

use strict;

sub komma {
	my $v = shift;
	$v =~ y/,/./;
	die "format: $v" unless $v =~ /^\d+\.\d+$/;
	return $v;
}

my ($monat, $nr, %gebuehr);
while(<>) {
	print if /^Rechnungsbetrag/;
	if(/^Summe Monatliche Betr.*ge (.+)/) {
		$monat = komma($1);
		print;
	}
	if(/^Rufnummer \(06 81\) (.+)/) {
		$nr = $1;
		print;
	}
	if(/^Summe Verbindungen f.*r oben angegebene Rufnummer (.+)/) {
		print "  Telekom: $1\n";
		$gebuehr{$nr} += komma($1);
		undef $nr;
	}
	if($nr and /^Summe (.+) (.+)/) {
		print "  $1: $2\n";
		$gebuehr{$nr} += komma($2);
		undef $nr;
	}
}

my %name = (
"9 38 68 87" => "Christoph",
"9 38 69 65" => "Torben/Veronika",
"9 38 69 85" => "Thomas",
);

# Unsere Nachbarinnen kriegen von uns Internet, das wird hier hartverdrahtet
# eingerechnet. Wenn man das nicht will, $dsl auf 0 setzen.
my $dsl = 11.19;
my $monat0 = $monat - $dsl;
my $total;
foreach (sort keys %gebuehr) {
	my $g = sprintf "%.2f", 1.16 * ($gebuehr{$_} + $monat0/3 + 4/21*$dsl);
	$total += $g;
	print "$_: $gebuehr{$_} + Grund + DSL + USt = $g ($name{$_})\n";
}
{
	my $g = sprintf "%.2f", 1.16 * (3/7*$dsl);
	$total += $g;
	print "Mädels: DSL + USt = $g\n";
}
print "Gesamt: $total\n";
