X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fustva.pl;h=681492638cd42accc8ec479e0debb1706d40b6b2;hb=4e27e828de91b6f1252f3353f06edea72f13a0c1;hp=de1de620d29c5dd8c07e3ea590d3780e99d65c2a;hpb=785ef602f0f48db5ebc7f29c621b24277a71d0fe;p=kivitendo-erp.git diff --git a/bin/mozilla/ustva.pl b/bin/mozilla/ustva.pl index de1de620d..681492638 100644 --- a/bin/mozilla/ustva.pl +++ b/bin/mozilla/ustva.pl @@ -535,7 +535,12 @@ sub generate_ustva { # init some form vars my @anmeldungszeitraum = - qw('0401' '0402' '0403' '0404' '0405' '0405' '0406' '0407' '0408' '0409' '0410' '0411' '0412' '0441' '0442' '0443' '0444'); + qw('0401' '0402' '0403' + '0404' '0405' '0406' + '0407' '0408' '0409' + '0410' '0411' '0412' + '0441' '0442' '0443' '0444'); + foreach my $item (@anmeldungszeitraum) { $form->{$item} = ""; } @@ -662,7 +667,8 @@ sub generate_ustva { }; } - + # Kontrollvariable für die Templates + $form->{'year2007'} = ($form->{year} >= 2007 ) ? "1":"0"; # Get the USTVA @@ -749,6 +755,9 @@ sub generate_ustva { 41 44 49 43 48 51 86 35 77 76 91 89 97 93 95 94 42 60 45 52 73 84 81 ); + + $form->{id} = []; + $form->{amount} = []; if ( $form->{format} eq 'pdf' or $form->{format} eq 'postscript') { @@ -830,9 +839,29 @@ sub generate_ustva { # Re-set Numberformat $myconfig{numberformat} = $temp_numberformat; - } - elsif ( $form->{format} eq 'elstertaxbird' ) { + # push Kennziffern to <%foreach Array fo easyer + # output in xml format. Thx to Moritz. + my %winston_id_for = ( + # No Winston remap?! + ); + + + foreach my $kennziffer (@category_cent, @category_euro) { + + next if ( $kennziffer =~ m/Z\d\d/); + next if ( $form->{$kennziffer} == 0 ); + + if (defined $winston_id_for{$kennziffer} ) { + push(@{ $form->{id}}, $winston_id_for{$kennziffer}); + } else { + push(@{ $form->{id}}, "$kennziffer"); + } + push(@{ $form->{amount}}, $form->{$kennziffer}); + } + + + } elsif ( $form->{format} eq 'elstertaxbird' ) { # Define serveral filenames $form->{IN} = 'taxbird.txb'; @@ -846,7 +875,6 @@ sub generate_ustva { #$form->{"iconv"} = Text::Iconv->new($myconfig{dbcharset}, "UTF-8"); #my $iconv = $self->{"iconv"}; #$iconv->convert($variable); - if ($form->{period} =~ /^[4]\d$/ ){ my %periods = ( # Lx => taxbird '41' => '12', @@ -858,59 +886,6 @@ sub generate_ustva { foreach my $quarter ( keys %periods ) { $form->{taxbird_period} = $periods{$quarter} if ( $form->{period} eq $quarter); } - - my %lands = ( # Lx => taxbird # TODO: besser als array... - 'Baden Würtemberg' => '0', - 'Bayern' => '1', - 'Berlin' => '2', - 'Brandenburg' => '3', - 'Bremen' => '4', - 'Hamburg' => '5', - 'Hessen' => '6', - 'Mecklenburg Vorpommern' => '7', - 'Niedersachsen' => '8', - 'Nordrhein Westfalen' => '9', - 'Rheinland Pfalz' => '10', - 'Saarland' => '11', - 'Sachsen' => '12', - 'Sachsen Anhalt' => '13', - 'Schleswig Holstein' => '14', - 'Thüringen' => '15', - ); - - foreach my $land ( keys %lands ){ - $form->{taxbird_land_nr} = $lands{$land} if ($form->{elsterland} eq $land ); - } - - $form->{co_zip} = $form->{co_city}; - $form->{co_zip} =~ s/\D//g; - $form->{co_city} =~ s/\d//g; - $form->{co_city} =~ s/^\s//g; - - ($form->{co_phone_prefix}, $form->{co_phone}) = split("-", $form->{tel}); - $form->{co_phone_prefix} =~ s/\s//g; - $form->{co_phone} =~ s/\s//g; - - $form->{taxbird_steuernummer} = $form->{steuernummer}; -# $form->{taxbird_steuernummer} =~ s/\D//g; - $form->{taxbird_steuernummer} =~ s/\///; # ersten Querstrich ersetzen - - # Numberformatting for Taxbird - my $temp_numberformat = $myconfig{numberformat}; - - # Numberformat must be '1000,00' for Taxbird ?! - $myconfig{numberformat} = '1000,00'; - - foreach my $number (@category_cent) { - $form->{$number} = ( $form->{$number} !=0 ) ? $form->format_amount(\%myconfig, $form->{$number}, '2', '') : ''; - } - - foreach my $number (@category_euro) { - $form->{$number} = ( $form->{$number} !=0 ) ? $form->format_amount(\%myconfig, $form->{$number}, '0', '') : ''; - } - # Re-set Numberformat - $myconfig{numberformat} = $temp_numberformat; - } elsif ($form->{period} =~ /^\d+$/ ) { $form->{period} =~ s/^0//g; my $period = $form->{period}; @@ -923,6 +898,87 @@ sub generate_ustva { exit(0); } + my %lands = ( # Lx => taxbird # TODO: besser als array... + 'Baden Würtemberg' => '0', + 'Bayern' => '1', + 'Berlin' => '2', + 'Brandenburg' => '3', + 'Bremen' => '4', + 'Hamburg' => '5', + 'Hessen' => '6', + 'Mecklenburg Vorpommern' => '7', + 'Niedersachsen' => '8', + 'Nordrhein Westfalen' => '9', + 'Rheinland Pfalz' => '10', + 'Saarland' => '11', + 'Sachsen' => '12', + 'Sachsen Anhalt' => '13', + 'Schleswig Holstein' => '14', + 'Thüringen' => '15', + ); + foreach my $land ( keys %lands ){ + $form->{taxbird_land_nr} = $lands{$land} if ($form->{elsterland} eq $land ); + } + + $form->{co_zip} = $form->{co_city}; + $form->{co_zip} =~ s/\D//g; + $form->{co_city} =~ s/\d//g; + $form->{co_city} =~ s/^\s//g; + + ($form->{co_phone_prefix}, $form->{co_phone}) = split("-", $form->{tel}); + $form->{co_phone_prefix} =~ s/\s//g; + $form->{co_phone} =~ s/\s//g; + + $form->{taxbird_steuernummer} = $form->{steuernummer}; + # $form->{taxbird_steuernummer} =~ s/\D//g; + $form->{taxbird_steuernummer} =~ s/\///; # ersten Querstrich ersetzen + + # Numberformatting for Taxbird + my $temp_numberformat = $myconfig{numberformat}; + # Numberformat must be '1000,00' for Taxbird ?! + $myconfig{numberformat} = '1000,00'; + foreach my $number (@category_cent) { + $form->{$number} = ( $form->{$number} !=0 ) ? $form->format_amount(\%myconfig, $form->{$number}, '2', '') : ''; + } + + foreach my $number (@category_euro) { + $form->{$number} = ( $form->{$number} !=0 ) ? $form->format_amount(\%myconfig, $form->{$number}, '0', '') : ''; + } + # Re-set Numberformat + $myconfig{numberformat} = $temp_numberformat; + + # push Kennziffern to <%foreach Array fo easyer + # output in xml format. Thx to Moritz. + my %taxbird_id_for = ( + + '511' => 'Kz51-calc', + '861' => 'Kz86-calc', + '971' => 'Kz97-calc', + '931' => 'Kz93-calc', + '811' => 'Kz81-calc', + '891' => 'Kz89-calc', + 'Z45' => 'uebertrag', + 'Z53' => 'ust-sum', + 'Z62' => 'ust-minus-vost', + 'Z65' => 'ust-sum+69', + 'Z67' => 'ust-vz', + ); + + + for my $kennziffer (@category_cent, @category_euro) { + + next if ($kennziffer eq 'Z43'); + + if ($form->{$kennziffer} != 0){ + if (defined $taxbird_id_for{$kennziffer}) { + push(@{ $form->{id}}, $taxbird_id_for{$kennziffer}); + } else { + push(@{ $form->{id}}, "Kz$kennziffer"); + } + push(@{ $form->{amount}}, $form->{$kennziffer}); + } + } + } elsif ( $form->{format} eq '' ){ # No format error. $form->header; USTVA::error( $locale->text('Application Error. No Format given' ) . "!"); @@ -934,6 +990,7 @@ sub generate_ustva { exit(0); } + if ( $form->{period} eq '13' and $form->{format} ne 'html') { $form->header; USTVA::info(