Merge branch 'after-262'
[kivitendo-erp.git] / bin / mozilla / ustva.pl
index db6995f..f7874cd 100644 (file)
@@ -674,9 +674,8 @@ sub generate_ustva {
       };
     }
 
-  # Kontrollvariable für die Templates
-  $form->{'year2007'} = ($form->{year} >= 2007 ) ? "1":"0";
-
+  # Kontrollvariablen für die Templates
+  $form->{"year$_"} = ($form->{year} >= $_ ) ? "1":"0" for 2007..2107;
 
   # Get the USTVA
   $ustva->ustva(\%myconfig, \%$form);
@@ -913,28 +912,44 @@ sub generate_ustva {
         my $period = $form->{period};
         $period * 1;
         $period--;
-        $form->{period} = $period;
+        $form->{taxbird_period} = $period;
       } else {
         $form->header;
         USTVA::error( $locale->text('Wrong Period' ));
         ::end_of_request();
       }
 
+      # heuristics for address splitting
+      # lx-office holds the entire address in a single field.
+      # taxbird expects it to be splitted into street, zipcode and city
+      if ($form->{co_street} =~ /\n/) {
+        my $new_co_street;
+        for (split /\n/, $form->{co_street}) {
+          if (/(\d{3,5})\s+(\w+)/) {
+            $form->{co_zip}  = $1;
+            $form->{co_city} = $2;
+          } else {
+            $new_co_street .= $_;
+          }
+        }
+        $form->{co_street} = $new_co_street;
+      } else {
+        $form->{co_zip} = $form->{co_city};
+        $form->{co_zip} =~ s/\D//g;
+        $form->{co_city} =~ s/\d//g;
+        $form->{co_city} =~ s/^\s//g;
+      }
+
       my $tax_office           = first { $_->{name} eq $form->{elsterland} } @{ $ustva->{tax_office_information} };
       $form->{taxbird_land_nr} = $tax_office->{taxbird_nr} if $tax_office;
 
-      $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
+#      $form->{taxbird_steuernummer} =~ s/\///; # ersten Querstrich ersetzen
 
       # Numberformatting for Taxbird
       my $temp_numberformat = $myconfig{numberformat};