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

use Business::Tax::VAT::Validation;
use Fehler qw(problem warnung);

# Eingabe: USt-ID-Nr
# Rückgabewert:
# undef => Gültigkeit konnte nicht geklärt werden
# ''    => ungültige USt-ID-Nr
# 1     =>   gültige USt-ID-Nr
sub valid_steuernr($) {
    my ($steuernr) = @_;
	return 2 if $ENV{TESTING2};

    require Business::Tax::VAT::Validation;
    my $hvatn = Business::Tax::VAT::Validation->new() or die;
    for ( 1 .. 3 ) {
        if    ( $hvatn->check($steuernr) )         { return 1 }
        elsif ( $hvatn->get_last_error_code > 16 ) { sleep 1 }
        else                                       { last }
    }

    if ( $hvatn->get_last_error_code > 16 ) {
        warnung( "USt-ID-Nr konnte nicht überprüft werden:\n"
              . $hvatn->get_last_error );
        return undef;
    }
    else {
        problem( 'Falsche USt-ID-Nr: ' . $hvatn->get_last_error );
        return '';
    }
}

1;
