#use strict;
#no strict 'refs';
#use diagnostics;
-#use warnings FATAL=> 'all';
+#use warnings; # FATAL=> 'all';
#use vars qw($locale $form %myconfig);
#our ($myconfig);
#use CGI::Carp "fatalsToBrowser";
$form->{title} = $locale->text('UStVA');
$form->{kz10} = ''; #Berichtigte Anmeldung? Ja =1
- # $accrual = ($eur) ? "" : "checked";
- # $cash = ($eur) ? "checked" : "";
- my $year = '';
- my $null = '';
- ($null, $null, $null, $null, $null, $year, $null, $null, $null) =
- localtime();
- $year += 1900;
+ my $year = substr($form->datetonum($form->current_date(\%myconfig), \%myconfig),0,4);
my $department = '';
local $hide = '';
# accounting years if SQL-Ledger Version < 2.4.1
# $year = $form->{year} * 1;
- @years = sort { $b <=> $a } (2000 .. ($year+1));
+ @years = sort { $b <=> $a } (2003 .. ($year+1));
$form->{all_years} = \@years;
}
map { $form->{selectaccountingyear} .= qq|<option>$_\n| }
</fieldset>
|;
- # Stichtag der nächsten USTVA berechnen
- #
- # ($stichtag, $tage_bis, $ical) = FA->stichtag($today[dd.mm.yyyy],
- # $FA_dauerfrist[1,0],
- # $FA_voranmeld[month, quarter])
- #$tmpdateform= $myconfig{dateformat};
- # $myconfig{dateformat}= "dd.mm.yyyy";
- # $form->{today} = $form->datetonum($form->current_date(\%myconfig), \%myconfig);
- # ($stichtag, $description, $tage_bis, $ical) = FA::stichtag($form->{today}, $form->{FA_dauerfrist},$form->{FA_voranmeld});
- # $form->{today} = $form->date($stichtag, \%myconfig );
- #$myconfig{dateformat}= $tmpdateform;
-
- #print qq|
- # <br>
- # <br>
- # <fieldset>
- # <label>
- # |.$locale->text('Anstehende Voranmeldungen').qq|
- # </label>
- # <h2 class="confirm">$stichtag<h2>
- # <h3>$description</h3>
- # <h4>$form->{today}</h4>
- #
- # </fieldset>|;
-
} else {
print qq|
<td width="50%" valign="bottom">
<legend>
<b>| . $locale->text('Hinweise') . qq|</b>
</legend>
- <h2 class="confirm">Die Ausgabefunktionen sind wegen unzureichender Voreinstellungen deaktiviert.</h2>
- <h3>Hilfe:</h3>
+ <h2 class="confirm">| . $locale->text('Missing Preferences: Outputroutine disabled') . qq|</h2>
+ <h3>| . $locale->text('Help:') . qq|</h3>
<ul>
- <li> Wählen Sie im Administrationsmenü den momentanen Benutzer aus
- (siehe Kopfzeile). Dort können Sie fehlende Firmenangaben bzw.
- die Steuernummer ergänzen.</li>
+ <li>| . $locale->text('Hint-Missing-Preferences') . qq|</li>
</ul>
</fieldset>
|;
sub ustva_vorauswahl {
$lxdebug->enter_sub();
#Aktuelles Datum zerlegen:
- $locale->date(\%myconfig, $form->current_date(\%myconfig, '0', '0'), 0) =~
- /(\d\d).(\d\d).(\d\d\d\d)/;
+ my $date = $form->datetonum($form->current_date(\%myconfig), \%myconfig);
#$locale->date($myconfig, $form->current_date($myconfig), 0)=~ /(\d\d).(\d\d).(\d\d\d\d)/;
- $form->{day} = $1;
- $form->{month} = $2;
- $form->{year} = $3;
+ $form->{day} = substr($date, 6, 2);
+ $form->{month} = substr($date, 4, 2);
+ $form->{year} = substr($date, 0, 4);
+ $lxdebug->message(LXDebug::DEBUG1, qq|
+ Actual date from Database: $date\n
+ Actual year from Database: $form->{year}\n
+ Actual day from Database: $form->{day}\n
+ Actual month from Database: $form->{month}\n|);
+
my $sel = '';
my $yymmdd = '';
my $yy = $form->{year} * 10000;
$yymmdd = "$form->{year}$form->{month}$form->{day}" * 1;
+ $yymmdd = 20060121;
$sel = '';
- my $dfv = '0'; # Offset für Dauerfristverlängerung
- #$dfv = '100' if ($form->{FA_dauerfrist} eq '1');
+ my $dfv = '0';
+
+ # Offset für Dauerfristverlängerung
+ $dfv = '100' if ($form->{FA_dauerfrist} eq '1');
SWITCH: {
$yymmdd <= ($yy + 110 + $dfv) && do {
my $key = '';
foreach $key (sort keys %listea) {
print qq|
- <option value="$key">$listea{$key}</option>
- |;
+ <option value="$key">| . $locale->text("$listea{$key}").
+ qq|</option>\n|;
}
foreach $key (sort keys %listeb) {
print qq|
- <option value="$key">| . $locale->text("$listeb{$key}") . qq|</option>
-
- |;
+ <option value="$key">| . $locale->text("$listeb{$key}").
+ qq|</option>\n|;
}
print qq|</select>|;
}
#forgotten the year --> thisyear
if ($form->{year} !~ m/^\d\d\d\d$/) {
- $locale->date(\$myconfig, $form->current_date(\$myconfig), 0) =~
- /(\d\d\d\d)/;
- $form->{year} = $1;
+ $form->{year} = substr($form->datetonum($form->current_date(\%myconfig), \%myconfig),0,4);
+ $lxdebug->message(LXDebug::DEBUG1, qq|Actual year from Database: $form->{year}\n|);
}
#yearly report
if ($form->{duetyp} eq "13") {
- $form->{fromdate} = "1.1.$form->{year}";
- $form->{todate} = "31.12.$form->{year}";
+ $form->{fromdate} = "$form->{year}0101";
+ $form->{todate} = "$form->{year}1231";
}
#Quater reports
if ($form->{duetyp} eq "A") {
- $form->{fromdate} = "1.1.$form->{year}";
- $form->{todate} = "31.3.$form->{year}";
+ $form->{fromdate} = "$form->{year}0101";
+ $form->{todate} = "$form->{year}0331";
$form->{'0441'} = "X";
}
if ($form->{duetyp} eq "B") {
- $form->{fromdate} = "1.4.$form->{year}";
- $form->{todate} = "30.6.$form->{year}";
+ $form->{fromdate} = "$form->{year}0401";
+ $form->{todate} = "$form->{year}0630";
$form->{'0442'} = "X";
}
if ($form->{duetyp} eq "C") {
- $form->{fromdate} = "1.7.$form->{year}";
- $form->{todate} = "30.9.$form->{year}";
+ $form->{fromdate} = "$form->{year}0701";
+ $form->{todate} = "$form->{year}0930";
$form->{'0443'} = "X";
}
if ($form->{duetyp} eq "D") {
- $form->{fromdate} = "1.10.$form->{year}";
- $form->{todate} = "31.12.$form->{year}";
+ $form->{fromdate} = "$form->{year}1001";
+ $form->{todate} = "$form->{year}1231";
$form->{'0444'} = "X";
}
#Monthly reports
SWITCH: {
$form->{duetyp} eq "01" && do {
- $form->{fromdate} = "1.1.$form->{year}";
- $form->{todate} = "31.1.$form->{year}";
+ $form->{fromdate} = "$form->{year}0101";
+ $form->{todate} = "$form->{year}0131";
$form->{'0401'} = "X";
last SWITCH;
};
$form->{duetyp} eq "02" && do {
- $form->{fromdate} = "1.2.$form->{year}";
+ $form->{fromdate} = "$form->{year}0201";
#this works from 1901 to 2099, 1900 and 2100 fail.
my $leap = ($form->{year} % 4 == 0) ? "29" : "28";
- $form->{todate} = "$leap.2.$form->{year}";
+ $form->{todate} = "$form->{year}02$leap";
$form->{"0402"} = "X";
last SWITCH;
};
$form->{duetyp} eq "03" && do {
- $form->{fromdate} = "1.3.$form->{year}";
- $form->{todate} = "31.3.$form->{year}";
+ $form->{fromdate} = "$form->{year}0301";
+ $form->{todate} = "$form->{year}0331";
$form->{"0403"} = "X";
last SWITCH;
};
$form->{duetyp} eq "04" && do {
- $form->{fromdate} = "1.4.$form->{year}";
- $form->{todate} = "30.4.$form->{year}";
+ $form->{fromdate} = "$form->{year}0401";
+ $form->{todate} = "$form->{year}0430";
$form->{"0404"} = "X";
last SWITCH;
};
$form->{duetyp} eq "05" && do {
- $form->{fromdate} = "1.5.$form->{year}";
- $form->{todate} = "31.5.$form->{year}";
+ $form->{fromdate} = "$form->{year}0501";
+ $form->{todate} = "$form->{year}0531";
$form->{"0405"} = "X";
last SWITCH;
};
$form->{duetyp} eq "06" && do {
- $form->{fromdate} = "1.6.$form->{year}";
- $form->{todate} = "30.6.$form->{year}";
+ $form->{fromdate} = "$form->{year}0601";
+ $form->{todate} = "$form->{year}0630";
$form->{"0406"} = "X";
last SWITCH;
};
$form->{duetyp} eq "07" && do {
- $form->{fromdate} = "1.7.$form->{year}";
- $form->{todate} = "31.7.$form->{year}";
+ $form->{fromdate} = "$form->{year}0701";
+ $form->{todate} = "$form->{year}0731";
$form->{"0407"} = "X";
last SWITCH;
};
$form->{duetyp} eq "08" && do {
- $form->{fromdate} = "1.8.$form->{year}";
- $form->{todate} = "31.8.$form->{year}";
+ $form->{fromdate} = "$form->{year}0801";
+ $form->{todate} = "$form->{year}0831";
$form->{"0408"} = "X";
last SWITCH;
};
$form->{duetyp} eq "09" && do {
- $form->{fromdate} = "1.9.$form->{year}";
- $form->{todate} = "30.9.$form->{year}";
+ $form->{fromdate} = "$form->{year}0901";
+ $form->{todate} = "$form->{year}0930";
$form->{"0409"} = "X";
last SWITCH;
};
$form->{duetyp} eq "10" && do {
- $form->{fromdate} = "1.10.$form->{year}";
- $form->{todate} = "31.10.$form->{year}";
+ $form->{fromdate} = "$form->{year}1001";
+ $form->{todate} = "$form->{year}1031";
$form->{"0410"} = "X";
last SWITCH;
};
$form->{duetyp} eq "11" && do {
- $form->{fromdate} = "1.11.$form->{year}";
- $form->{todate} = "30.11.$form->{year}";
+ $form->{fromdate} = "$form->{year}1101";
+ $form->{todate} = "$form->{year}1130";
$form->{"0411"} = "X";
last SWITCH;
};
$form->{duetyp} eq "12" && do {
- $form->{fromdate} = "1.12.$form->{year}";
- $form->{todate} = "31.12.$form->{year}";
+ $form->{fromdate} = "$form->{year}1201";
+ $form->{todate} = "$form->{year}1231";
$form->{"0412"} = "X";
last SWITCH;
};
}
}
- #$myconfig = \%myconfig;
- RP->ustva(\%myconfig, \%$form);
-
- #??($form->{department}) = split /--/, $form->{department};
+ # using dates in ISO-8601 format: yyyymmmdd for Postgres...
+ USTVA->ustva(\%myconfig, \%$form);
+
+ # reformat Dates to dateformat
+ $form->{fromdate}= $locale->date(\%myconfig, $form->{fromdate}, 0, 0, 0);
+
+ $form->{todate} = $form->current_date($myconfig) unless $form->{todate};
+ $form->{todate}= $locale->date(\%myconfig, $form->{todate}, 0, 0, 0);
$form->{period} =
$locale->date(\%myconfig, $form->current_date(\%myconfig), 1, 0, 0);
- $form->{todate} = $form->current_date($myconfig) unless $form->{todate};
+
# if there are any dates construct a where
if ($form->{fromdate} || $form->{todate}) {
$form->{br} = '\\\\';
- my @numbers = qw(51r 86r 97r 93r 96 43 45
- 66 62 67);
+ my @numbers = qw(511 861 36 80 971 931 98 96 53 74
+ 85 65 66 61 62 Z67 63 64 59 69 39 83
+ Z43 Z45 Z53 Z62 Z65);
+
my $number = '';
# Zahlenformatierung für Latex USTVA Formulare
if ($myconfig{numberformat} eq '1.000,00' or
# Auf Übergabefehler checken
USTVA::info(
- $locale->text(
- 'Bitte das Bundesland UND die Stadt bzw. den Einzugsbereich Ihres zuständigen Finanzamts auswählen.'
- ))
+ $locale->text('Missing Tax Authoritys Preferences') . "\n" .
+ $locale->text('USTVA-Hint: Tax Authoritys'))
if ( $form->{elsterFFFF_new} eq 'Auswahl'
|| $form->{elsterland_new} eq 'Auswahl');
USTVA::info(
- $locale->text(
- 'Es fehlen Angaben zur Versteuerung.
- Wenn Sie Ist Versteuert sind, wählen Sie die Einnahmen/Überschuß-Rechnung aus.
- Sind Sie Soll-Versteuert und Bilanzverpflichtet, dann wählen Sie Bilanz aus.'
- ))
+ $locale->text('Missing Method!') . "\n" .
+ $locale->text('USTVA-Hint: Method'))
if ($form->{method} eq '');
# Klären, ob Variablen bereits befüllt sind UND ob veräderungen auf