File Coverage

blib/lib/Business/Zahlschein.pm
Criterion Covered Total %
statement 13 43 30.2
branch 0 2 0.0
condition n/a
subroutine 4 7 57.1
pod 0 3 0.0
total 17 55 30.9


line stmt bran cond sub pod time code
1             package Business::Zahlschein;
2            
3 1     1   25283 use warnings;
  1         2  
  1         30  
4 1     1   4 use strict;
  1         2  
  1         43  
5            
6             our $VERSION = '0.02';
7            
8             BEGIN {
9 1     1   4 use Exporter;
  1         5  
  1         80  
10 1     1   12 our @ISA = qw( Exporter );
11 1         14 our @EXPORT = qw( );
12 1         2 our %EXPORT_TAGS = ( );
13 1         299 our @EXPORT_OK = qw( &PzMehrzweckfeld &Mehrzweckfeld );
14             }
15            
16             sub PzMehrzweckfeld {
17            
18 0     0 0   my $mehrzweckfeld = shift;
19 0           my $zwischensumme = 0;
20 0           my $gesamtsumme = 0;
21            
22 0           my $tab = "12121212121";
23            
24 0           for (my $i = 0; $i <= 10; $i++) {
25 0           $zwischensumme = substr($mehrzweckfeld,$i,1) * substr($tab,$i,1);
26 0           $gesamtsumme = $gesamtsumme + Quersumme($zwischensumme);
27             } # for
28            
29 0           $zwischensumme = 10 - ($gesamtsumme % 10);
30 0 0         $zwischensumme = 0 if $zwischensumme == 10;
31            
32 0           $zwischensumme;
33            
34             } # PzMehrzweckfeld
35            
36             sub Mehrzweckfeld {
37            
38 0     0 0   my ($mehrzweckfeld, $pzMehrzweckfeld, $kontonummer, $blz, $belegart) = @_;
39            
40 0           my $mzfKontoNrBlz = $mehrzweckfeld.$pzMehrzweckfeld.$kontonummer.substr($blz,- 5);
41            
42 0           my $zwischensumme = 0;
43 0           my $gesamtsumme = 0;
44 0           my $summe = 0;
45 0           my $pzBlz = "";
46 0           my $lz = "";
47            
48 0           my $tab = "1791791791791791791791791791";
49            
50 0           for (my $i = 0; $i <= 27; $i++) {
51 0           $zwischensumme = substr($mzfKontoNrBlz,$i,1) * substr($tab,$i,1);
52 0           $gesamtsumme = $gesamtsumme + $zwischensumme;
53             } # for
54            
55 0           $zwischensumme = $gesamtsumme % 10;
56 0           $pzBlz = $zwischensumme;
57            
58 0           $lz = $mehrzweckfeld.$pzMehrzweckfeld."< ".$kontonummer."+ ".$pzBlz.$blz."> ".$belegart."+";
59            
60 0           $lz;
61            
62             } # Mehrzweckfeld
63            
64             sub Quersumme {
65            
66 0     0 0   my $zwischensumme = shift;
67 0           my $quersumme = 0;
68            
69 0           for (my $i = 0; $i < length($zwischensumme); $i++) {
70 0           $quersumme = $quersumme + substr($zwischensumme,$i,1);
71             } # for
72            
73 0           $quersumme;
74            
75             } # Quersumme
76            
77            
78             1;
79             __END__