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();