#!/usr/bin/perl -lw

use strict;
use utf8;
use warnings;

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

use Dbase::Getopt qw(:DEFAULT getopt_kunde);
use Dbase::Globals qw(find_descr get_kunde);
use Dbase::Help qw(:readonly);

my $quelle_noris = find_descr( quelle => noris => 1 );

my ( $Kunde, $Monat );
GetOptions(
    'kunde=s' => sub { $Kunde = &getopt_kunde },
    'monat=s' => sub {
        ( undef, $Monat ) = @_;
        die "Monate müssen im Format JJJJMM angegeben werden.\n"
          if $Monat !~ /^\d+(?:0[1-9]|1[012])\z/;
    },
);

die "Es muss ein --kunde angegeben werden.\n" unless defined $Kunde;

unless ( defined $Monat ) {
    my ( $m, $y ) = (localtime)[ 4, 5 ];
    if ( --$m < 0 ) {
        $m = 11;
        --$y;
    }
    $Monat = sprintf '%d%02d', $y + 1900, $m + 1;
}

print DoFn(<<_) || 0;
	SELECT AVG(bytes)
	FROM   acct, dienst
	WHERE  dienst.name = 'backup'
	   AND acct.dienst = dienst.id
	   AND acct.jjmm   = $Monat
	   AND acct.kunde  = $Kunde
	   AND acct.quelle = $quelle_noris
_

__END__

=head1 NAME

get_backup_volume - Backupvolumen für einen Kunden ermitteln

=head1 BESCHREIBUNG

Das Programm ermittelt den für einen bestimmten Kunden in einem bestimmten
Monat belegten Platz in Octets und schreibt ihn auf die Standardausgabe.

=head1 NOTWENDIGE ARGUMENTE

=over 4

=item -kunde Kunde

der Kunde, für den die Auswertung erstellt werden soll

=back

=head1 OPTIONEN

=over 4

=item -monat JJJJMM

der Monat, für den die Auswertung erstellt werden soll;
voreingestellt ist der dem aktuellen vorangegangene Monat

=item -help

=item -?

um (nur) diese Dokumentation anzeigen zu lassen

=back

=head1 AUTOR

 Martin H. Sluka <fany@noris.net>
 für die noris network AG
 RT#444375

