Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a8758a6b

Von Moritz Bunkus vor etwa 2 Monaten hinzugefügt

  • ID a8758a6b7fd5c3f532d4ac1a05e53c1b1174a31f
  • Vorgänger bb71c315

MT940-Import: Ende-zu-Ende-ID extrahieren & in bank_transactions.end_to_end_id speichern

Unterschiede anzeigen:

SL/MT940.pm
23 23
    ($from..$to);
24 24
}
25 25

  
26
sub _extract_end_to_end_id {
27
  my ($parts) = @_;
28

  
29
  foreach my $value (values %{ $parts }) {
30
    if ($value =~ m{^(?:endtoend:|eref\+) *(.+)}i) {
31
      my $id = $1;
32
      return $id =~ m{notprovided}i ? undef : $id;
33
    }
34
  }
35

  
36
  return undef;
37
}
38

  
26 39
sub parse {
27 40
  my ($class, $file_name, %params) = @_;
28 41

  
......
117 130
        my ($separator, $rest) = ($1, $2);
118 131
        my %parts              = map { ((substr($_, 0, 2) // '0') * 1 => substr($_, 2)) } split quotemeta($separator), $rest;
119 132

  
133
        $transaction{end_to_end_id}         = _extract_end_to_end_id(\%parts);
120 134
        $transaction{purpose}               = join ' ', grep({ $_ ne '' } _join_entries(\%parts, 20, 29), _join_entries(\%parts, 60, 63));
121 135
        $transaction{remote_name}           = _join_entries(\%parts, 32, 33, '');
122 136
        $transaction{remote_bank_code}      = $parts{30};

Auch abrufbar als: Unified diff