#!/usr/bin/perl -w

use utf8;
use strict;
use warnings;

BEGIN {
    unshift @INC, ( $ENV{POPHOME} || '@POPHOME@' ) . '/lib'
      unless $ENV{KUNDE_NO_PERLPATH};
}

use Dbase::Getopt qw(:DEFAULT getopt_abt_like getopt_date);
use Dbase::Globals qw(get_person);
use Dbase::Help qw(:readonly DoSelect);
use Loader qw(current_user list_stunden_hotline);

my ( $Beginn, $Ende, @personen );
my @Args = GetOptions(
    'abteilung-like=s' => sub { push @personen, &getopt_abt_like },
    'beginn=s' => sub { $Beginn = &getopt_date },
    'ende=s'   => sub { $Ende   = &getopt_date },
);
$Beginn = getopt_date( beginn => 'yesterday midnight' ) unless defined $Beginn;
$Ende   = getopt_date( ende   => 'tomorrow midnight' )  unless defined $Ende;

# list_stunden_hotline() überprüft selbst, ob man die fraglichen Einträge sehen
# darf, daher können wir uns das hier sparen.
push @personen, map get_person($_) || die("Unbekannte Person: $_\n"), @Args;
unless (@personen) {
    my $current_user = current_user();
    DoSelect { push @personen, @_ } <<_;
	SELECT   perso.person
	FROM     perso, person
	WHERE    perso.person = person.id
	     AND ( perso.vorgesetzter = $current_user OR perso.person = $current_user )
	     AND ( perso.ende IS NULL OR perso.ende < ${\( $Ende || 'NOW()' )} )
	ORDER BY person.user
_
    die "Für welche Person(en) denn?\n" unless @personen;
}

list_stunden_hotline( $_, '-', $Beginn, $Ende, 2|4 ) for @personen;

__END__

=head1 NAME

hotline-einsaetze - Liste von Hotline-Einsätzen ausgeben

=head1 SYNOPSE

    hotline-einsaetze -beginn "$(date +%b) 1"

... gibt alle Hotline-Einsätze seit Anfang des aktuellen Monats aus,
die der Aufrufende oder einer seiner Mitarbeiter geleistet hat

    hotline-einsaetze fany guenthi

... gibt alle gestern oder heute von fany oder guenthi geleisteten
Hotline-Einsätze aus.

=head1 OPTIONEN

=over 4

=item -beginn Datum

zur Festlegung des Anfangszeitpunkts der Auswertung;
voreingestellt: C<yesterday midnight>

=item -ende Datum

zur Festletung des Endzeitpunkts der Auswertung;
voreingestellt: C<tomorrow midnight>

=item -abteilung-like SQL-Wildcard

zur Auswahl von Personen nach Organisationseinheit

=item -help

=item -?

um (nur) diese Dokumentation anzeigen zu lassen

=back

