use utf8;
use warnings;
no warnings 'redefine';
use strict;

use Fehler qw(problem);
use Loader qw(get_mailadr);
use Dbase::Globals qw(find_descr umlaut_e);
use Dbase::Help qw(DoFn isodate DoTime);

sub list_person_riperecord($$) {
    my ( $idi, $nic ) = @_;

    my ( $firmenname, $name, $adr, $email, $fon, $fax, $kid, $mperson ) =
      DoFn("SELECT name, name, adresse, email, fon, fax, kunde, mperson FROM person WHERE id = $idi");

    return problem("Person #$idi nicht gefunden!") unless $name;
    $name =~ s/^(Herr|Frau) //g;

    unless ($adr) {
        if ($mperson) {
            ( $firmenname, $adr, $email, $fon, $fax ) =
              DoFn("SELECT name, adresse, email, fon, fax FROM person WHERE id = $mperson");
        }
        else {
            ( $firmenname, $adr, $email, $fon, $fax ) = DoFn(<<_);
                  SELECT person.name, person.adresse, person.email, person.fon, person.fax
                    FROM person JOIN kunde ON person.kunde = kunde.id
                   WHERE kunde.id = $kid
                     AND person.id = kunde.hauptperson
_
        }
    }
    
    return problem("Adresse für Person nicht gefunden!") unless $adr;
    return problem("Telefon für Person nicht gefunden!") unless $fon;

    my ( $landname, $strasse, $plz, $ort ) = DoFn(<<_);
    SELECT land.name_en, adresse.strasse, adresse.plz, adresse.ort
    FROM   adresse, land
    WHERE  adresse.id = $adr AND land.id = adresse.land
_

    my $nic_descr = find_descr( 'nic', $nic );

    my $nic_handle =
      DoFn("select handle from nic where person=$idi and nic=$nic_descr");
    $nic_handle = 'AUTO-1' unless $nic_handle;

#person:         Stelios Gikas
#address:        noris network AG
#address:        Deutschherrnstrasse 15 - 19
#address:        90429 Nuernberg
#address:        Germany
#phone:          +49 911 9352 0
#fax-no:         +49 911 9352 100
#e-mail:         stelios.gikas@noris.de
#nic-hdl:        AUTO-1
#notify:         guardian@noris.net
#mnt-by:         NORIS-MNT
#changed:        stelios.gikas@noris.de
#source:         RIPE

    my ( $j, $m, $t ) = isodate(DoTime);
    my $ret = "person:      $name\n";
    $ret .= "address:     $_\n"
      for $firmenname, split( /\n+/, $strasse ), "$plz $ort", $landname;
    $ret .= "phone:       $fon\n";
    $ret .= join '', map "fax-no:      $_\n", split( /\|/, $fax ) if $fax;
    $ret .= "e-mail:      $email\n" if $email;
    $ret .= <<_;
nic-hdl:     $nic_handle
notify:      guardian\@noris.net
mnt-by:      NORIS-MNT
changed:     ${\ sprintf "%s %04d%02d%02d",get_mailadr(),$j,$m,$t }
source:      RIPE
_

    $ret = umlaut_e($ret);
    print $ret;
}

1;
