1 package SL::Controller::ODGeierlein;
5 use List::Util qw(first);
7 use parent qw(SL::Controller::Base);
11 use Rose::Object::MakeMethods::Generic;
18 $::lxdebug->enter_sub();
22 # Aufruf von get_config zum Einlesen der Daten aus Finanzamt und Defaults
24 my $ustva = USTVA->new();
26 $ustva->get_finanzamt();
27 $ustva->set_FromTo(\%$::form);
28 $::lxdebug->message($LXDebug::DEBUG2,"fromdate=".$::form->{fromdate}." todate=".$::form->{todate}." meth=".$::form->{method});
30 my $tax_office = first { $_->{id} eq $::form->{fa_land_nr} } @{ $ustva->{tax_office_information} };
32 if ( !$::form->{co_zip} ) {
33 $::form->{co_zip} = $::form->{co_city};
34 $::form->{co_zip} =~ s/\D//g;
35 $::form->{co_city} =~ s/\d//g;
36 $::form->{co_city} =~ s/^\s//g;
38 $::form->{period}=~ s/^0//;
40 # Aufbau der Geierlein Parameter
42 "name = " .$::form->{company}."\nstrasse = ".$::form->{co_street}.
43 "\nplz = " .$::form->{co_zip}."\nort = " .$::form->{co_city}.
44 "\ntelefon = ".$::form->{co_tel}."\nemail = ".$::form->{co_email}.
45 "\nland = ".$tax_office->{taxbird_nr}."\nsteuernummer = ".$::form->{taxnumber}."\njahr = ".$::form->{year}.
46 "\nzeitraum = ".$::form->{period}."\n";
48 $::lxdebug->message($LXDebug::DEBUG2,"param1=".$params );
50 # USTVA Daten erzeugen
51 # benötigt $form->{fromdate}, $form->{todate} $form->{method}
52 $ustva->ustva(\%::myconfig, \%$::form);
54 my @category_cent = $ustva->report_variables({
55 myconfig => \%::myconfig,
58 attribute => 'position',
62 #push @category_cent, qw(Z43 Z45 Z53 Z54 Z62 Z65 Z67);
64 my @category_euro = $ustva->report_variables({
65 myconfig => \%::myconfig,
68 attribute => 'position',
72 # Numberformatting for Geierlein
73 my $temp_numberformat = $::myconfig{numberformat};
74 # Numberformat must be '1000,00' ?!
75 $::myconfig{numberformat} = '1000,00';
76 foreach my $number (@{ $::form->{category_cent} }) {
77 $::form->{$number} = ($::form->{$number} !=0) ? $::form->format_amount(\%::myconfig, $::form->{$number},'2',''):'';
80 foreach my $number (@{ $::form->{category_euro} }) {
81 $::form->{$number} = ($::form->{$number} !=0) ? $::form->format_amount(\%::myconfig, $::form->{$number},'0',''):'';
84 $::myconfig{numberformat} = $temp_numberformat;
86 # Berichtigte Anmeldung
87 $params .= "kz10 = 1\n" if $::form->{FA_10};
89 # Belege (Verträge, Rechnungen, Erläuterungen usw.) werden gesondert eingereicht
90 $params .= "kz22 = 1\n" if $::form->{FA_22};
92 # Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten
93 $params .= "kz29 = 1\n" if $::form->{FA_29};
95 # Die Einzugsermächtigung wird ausnahmsweise (z.B. wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum widerrufen.
96 # Ein ggf. verbleibender Restbetrag ist gesondert zu entrichten.
97 $params .= "kz26 = 1\n" if $::form->{FA_26};
99 my @unused_ids = qw(511 861 971 931 Z43 811 891 Z43 Z45 Z53 Z54 Z62 Z65 Z67 83);
101 for my $kennziffer (@{$::form->{category_cent}}, @{$::form->{category_euro}}) {
102 $::lxdebug->message($LXDebug::DEBUG2,"kennziffer ".$kennziffer."=".$::form->{$kennziffer});
104 next if first { $_ eq $kennziffer } @unused_ids;
106 if ($::form->{$kennziffer} != 0) {
107 $params .= "kz".$kennziffer." = ".$::form->{$kennziffer}."\n";
111 $::lxdebug->message($LXDebug::DEBUG2,"param2=".$params );
114 $self->js->flash($err?'error':'info',
116 $::locale->text('USTVA Data sent to geierlein'));
117 $self->js->run('openGeierlein',$params) if !$err;
118 $::lxdebug->leave_sub();