#!/usr/bin/perl -w

use utf8;
use strict;
use warnings;

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

use Dbase::Globals qw(mpersinfo);
use Dbase::Help qw(DoFn DoSelect);
use Dbase::Object::Hardware;

for my $key (qw(a b)) {
    DoSelect {
        my ( $id, $name, $ende, $hardware ) = @_;

        (
            my $hardware_standort = (
                $hardware =
                  Dbase::Object::Hardware->new_cached( id => $hardware )
              )->effektiver_standort
          )->id == $ende
          and return;

        print "Leitungs-ID   : $id\n";
        print "Ende          : \u$key\n";
        print 'Betr. HW      : ' . $hardware->as_string . "\n";
        if ( defined( my $hardware_ip = $hardware->ip ) ) {
            print " -> primäre IP: " . $hardware_ip->as_string . "\n";
        }
        print 'Standort HW   : ' . $hardware_standort->as_string . "\n";
        print "Standort LT   : #$ende:" . mpersinfo($ende) . "\n";
        print '-' x 32 . "\n";
    }
    <<_;
		SELECT id, name, ${key}_ende, ${key}_hardware
		FROM   leitung
		WHERE  ${key}_ende     IS NOT NULL
		   AND ${key}_hardware IS NOT NULL
		   AND ( leitung.ende IS NULL OR leitung.ende >= UNIX_TIMESTAMP(NOW()) )
_
}

__END__

=encoding utf8

=head1 NAME

check_leitungsenden - Überprüft ob Leitungsende = HW-Standort

=head1 SYNOPSE

    check_leitungsenden

=head1 BESCHREIBUNG

Überprüft für alle Endpunkte aktiver Leitungen, bei denen sowohl ein
Leitungsendpunkt als auch ein Hardware-Objekt eingetragen ist, und gibt
die Fälle aus, in denen dieser Endpunkt vom Standort des Hardware-Objekts
abweicht.

=cut

