Revision d03b2877
Von Moritz Bunkus vor etwa 15 Jahren hinzugefügt
bin/mozilla/ir.pl | ||
---|---|---|
1136 | 1136 |
$main::lxdebug->leave_sub(); |
1137 | 1137 |
} |
1138 | 1138 |
|
1139 |
sub _max_datepaid { |
|
1140 |
my $form = $main::form; |
|
1141 |
|
|
1142 |
my @dates = sort { $b->[1] cmp $a->[1] } |
|
1143 |
map { [ $_, $main::locale->reformat_date(\%main::myconfig, $_, 'yyyy-mm-dd') ] } |
|
1144 |
grep { $_ } |
|
1145 |
map { $form->{"datepaid_${_}"} } |
|
1146 |
(1..$form->{rowcount}); |
|
1147 |
|
|
1148 |
return @dates ? $dates[0]->[0] : undef; |
|
1149 |
} |
|
1150 |
|
|
1151 |
|
|
1139 | 1152 |
sub post { |
1140 | 1153 |
$main::lxdebug->enter_sub(); |
1141 | 1154 |
|
... | ... | |
1162 | 1175 |
|
1163 | 1176 |
&validate_items; |
1164 | 1177 |
|
1165 |
my $closedto = $form->datetonum($form->{closedto}, \%myconfig); |
|
1166 |
my $invdate = $form->datetonum($form->{invdate}, \%myconfig); |
|
1167 |
my $i = $form->{rowcount};
|
|
1178 |
my $closedto = $form->datetonum($form->{closedto}, \%myconfig);
|
|
1179 |
my $invdate = $form->datetonum($form->{invdate}, \%myconfig);
|
|
1180 |
my $max_datepaid = _max_datepaid();
|
|
1168 | 1181 |
|
1169 |
$form->error($locale->text('Cannot post invoice for a closed period!')) |
|
1170 |
if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); |
|
1182 |
$form->error($locale->text('Cannot post invoice for a closed period!')) if $max_datepaid && $form->date_closed($max_datepaid, \%myconfig); |
|
1171 | 1183 |
|
1172 | 1184 |
$form->isblank("exchangerate", $locale->text('Exchangerate missing!')) |
1173 | 1185 |
if ($form->{currency} ne $form->{defaultcurrency}); |
1174 | 1186 |
|
1187 |
my $i; |
|
1175 | 1188 |
for $i (1 .. $form->{paidaccounts}) { |
1176 | 1189 |
if ($form->parse_amount(\%myconfig, $form->{"paid_$i"})) { |
1177 | 1190 |
my $datepaid = $form->datetonum($form->{"datepaid_$i"}, \%myconfig); |
Auch abrufbar als: Unified diff
Zum Vergleich des Buchabschlusses das höchste Zahlungsdatum heranziehen.
Fix für Bug 1229. Hintergrund:
$form->{"datepaid_" . $form->{rowcount}} muss nicht zwangsläufig
gesetzt sein, je nachdem, ob vor dem "Buchen" erneurt wird oder
nicht. Deshalb gab es den SQL-Fehler. Zusätzlich ist auch die
Überprüfung streng genommen nicht korrekt gewesen, weil niemand den
Benutzer zwingt, die Zahlung mit dem maximalen Datum auch als letzte
in der Liste zu haben.