User Tools

Site Tools


ithh:urlaubsabrechnungsscript

Gefunden hat siretart es hier: http://www.piware.de/tools.shtml

#!/usr/bin/perl
 
# Programm zur Urlaubsabrechnung mehrerer Personen, die jeweils für eine Menge von
# Personen Ausgaben tätigen.
# Die Eingabedatei muss folgendes Format haben:
# <Zahler> <Betrag> <Für wen 1> <Für wen 2> ...
# <Zahler> <Betrag> <Für wen 1> <Für wen 2> <Für wen 3> ...
# ...
#
# Die Beträge sind mit '.' als Dezimaltrenner zu schreiben, die Personen dürfen
# keine Leerzeichen enthalten. Praktischerweise sind das nur Kürzel, damit man
# nicht so viel tippen muss.
#
# (c) 2002 Martin Pitt (piware@piware.de) als Public Domain
 
while( <> ) {
    if (/^#/) {
        next;
    }
    split;
    $payer = shift @_;
    $value = shift @_;
    unless ( @_ ) {
        # print "Warnung: Zeile $. enthaelt keine Empfänger und wird ignoriert!\n";
        next;
    }
 
    $account{$payer} += $value;
    $value /= @_;
    foreach( @_ ) {
        $account{$_} -= $value;
    }
}
 
foreach( sort keys %account ) {
    $val = int($account{$_}*100+0.5)/100.;
    print $_, ($val >= 0) ? ' erhaelt ' : ' zahlt ', abs($val), " EUR \n";
    $sum += $val;
}
print "Saldo: ", int($sum*100+.5)/100, " EUR (Rundungsfehler, sollte nahe 0 sein)\n";
ithh/urlaubsabrechnungsscript.txt · Last modified: 2008/10/18 17:56 (external edit)