Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5310fca1

Von G. Richardson vor mehr als 12 Jahren hinzugefügt

  • ID 5310fca1a500d5a9692359258fae7345dbfcc268
  • Vorgänger 7ecc9c39
  • Nachfolger 2193f03f

Falsches Buchungsdatum bei stornierten Dialogbuchungen

Storniert man eine Dialogbuchung wurde für die Stornobuchung als Buchungsdatum
nicht das aktuelle Tagesdatum sondern das Buchungsdatum der zu stornierenden
Buchung übernommen. Vor dem Speichern des Stornos wird deswegen jetzt gldate
geleert und dann automatisch mit dem korrekten Tagesdatum gefüllt.

Kontrolle im Datenbestand wo das vorkommt:

select reference,gldate,transdate,storno from gl where date_trunc('day',itime) != gldate;

Unterschiede anzeigen:

SL/GL.pm
720 720
  $storno_row->{storno}    = 't';
721 721
  $storno_row->{reference} = 'Storno-' . $storno_row->{reference};
722 722

  
723
  delete @$storno_row{qw(itime mtime)};
723
  delete @$storno_row{qw(itime mtime gldate)};
724 724

  
725 725
  $query = sprintf 'INSERT INTO gl (%s) VALUES (%s)', join(', ', keys %$storno_row), join(', ', map '?', values %$storno_row);
726 726
  do_query($form, $dbh, $query, (values %$storno_row));
......
733 733
  my $rowref = selectall_hashref_query($form, $dbh, $query, $id);
734 734

  
735 735
  for my $row (@$rowref) {
736
    delete @$row{qw(itime mtime acc_trans_id)};
736
    delete @$row{qw(itime mtime acc_trans_id gldate)};
737 737
    $query = sprintf 'INSERT INTO acc_trans (%s) VALUES (%s)', join(', ', keys %$row), join(', ', map '?', values %$row);
738 738
    $row->{trans_id}   = $new_id;
739 739
    $row->{amount}    *= -1;

Auch abrufbar als: Unified diff