Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d03b2877

Von Moritz Bunkus vor etwa 15 Jahren hinzugefügt

  • ID d03b28772dce973bf100e338e0d09112f06eb328
  • Vorgänger 24bd55f7
  • Nachfolger 3bd2330e

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.

Unterschiede anzeigen:

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