X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/5ab8e5d57815f85471145c45547d8aa0b9d62ef8..fec48603264c8adad06fbc212358633778322b56:/SL/SEPA/XML.pm diff --git a/SL/SEPA/XML.pm b/SL/SEPA/XML.pm index e4bf360d6..54df4eda6 100644 --- a/SL/SEPA/XML.pm +++ b/SL/SEPA/XML.pm @@ -12,6 +12,7 @@ use XML::Writer; use SL::Iconv; use SL::SEPA::XML::Transaction; +use SL::DB::Helper::ReplaceSpecialChars qw(replace_special_chars); sub new { my $class = shift; @@ -40,7 +41,7 @@ sub _init { croak "Missing parameter: $missing_parameter" if ($missing_parameter); croak "Missing parameter: creditor_id" if !$self->{creditor_id} && $self->{collection}; - map { $self->{$_} = $self->_replace_special_chars($self->{iconv}->convert($self->{$_})) } qw(company message_id creditor_id); + map { $self->{$_} = replace_special_chars($self->{iconv}->convert($self->{$_})) } qw(company message_id creditor_id); } sub add_transaction { @@ -54,31 +55,6 @@ sub add_transaction { return 1; } -sub _replace_special_chars { - my $self = shift; - my $text = shift; - - my %special_chars = ( - 'ä' => 'ae', - 'ö' => 'oe', - 'ü' => 'ue', - 'Ä' => 'Ae', - 'Ö' => 'Oe', - 'Ü' => 'Ue', - 'ß' => 'ss', - '&' => '+', - '`' => '\'', - ); - - map { $text =~ s/$_/$special_chars{$_}/g; } keys %special_chars; - - # for all other non ascii chars 'OLÉ S.L.' and 'Årdberg AB'! - use Text::Unidecode qw(unidecode); - $text = unidecode($text); - - return $text; -} - sub _format_amount { my $self = shift; my $amount = shift;