=head1 list_perso_monat

C<list_perso_monat( Monat Person [Prompt] )

Zeigt die monatlichen Personaldaten einer Person an.

=cut

use utf8;
use warnings; no warnings "redefine";
use strict;

use Dbase::Help qw(DoFn DoSelect isotime);
use Dbase::Globals qw(nice_intervall);
use Loader qw(line_printer);
use Fehler qw(problem);

sub list_perso_monat($$;$) {
	my($monat,$pers,$kn) = @_; 
	my $sollg = DoFn("select soll from persomonat where monat = $monat and (person = 0 OR person is NULL)");

	line_printer;
	my $sel = $pers ? "person=$pers" : "person IS NULL";
	$sel .= " AND monat=$monat";
	$pers ||= 0;

	DoSelect {
		my($timestamp,$soll,$ist,$urlaub,$auszahl,$diff) = @_;

		print $Db::pr_fh "ID           : $pers-$monat\n";
		print $Db::pr_fh "Timestamp    : ".isotime($timestamp)."\n";
		print $Db::pr_fh "ausgez. ÜStd.: ".nice_intervall($auszahl,2)."\n" if defined $auszahl;
		print $Db::pr_fh "Sollzeit     : ".nice_intervall($soll,3)."\n" if defined $soll;
		print $Db::pr_fh "Ist-Zeit     : ".nice_intervall($ist,2)."\n" if defined $ist;
		print $Db::pr_fh "Überstunden  : ".nice_intervall($diff,3)."\n" if defined $diff and ($diff or $pers);
		print $Db::pr_fh "gen.Urlaub   : ".nice_intervall($urlaub,2)."\n" if $urlaub;
		print $Db::pr_fh "Soll für alle: ".nice_intervall($sollg,2)."\n" if $pers and $sollg > 0;
	} "select timestamp,soll,ist,urlaub,auszahl,diff from persomonat where $sel"
		or problem "Monatseintrag zu '$pers-$monat' unbekannt";

}

1;
