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;
$storno_row->{storno} = 't';
$storno_row->{reference} = 'Storno-' . $storno_row->{reference};
$storno_row->{storno} = 't';
$storno_row->{reference} = 'Storno-' . $storno_row->{reference};
- delete @$storno_row{qw(itime mtime)};
+ delete @$storno_row{qw(itime mtime gldate)};
$query = sprintf 'INSERT INTO gl (%s) VALUES (%s)', join(', ', keys %$storno_row), join(', ', map '?', values %$storno_row);
do_query($form, $dbh, $query, (values %$storno_row));
$query = sprintf 'INSERT INTO gl (%s) VALUES (%s)', join(', ', keys %$storno_row), join(', ', map '?', values %$storno_row);
do_query($form, $dbh, $query, (values %$storno_row));
my $rowref = selectall_hashref_query($form, $dbh, $query, $id);
for my $row (@$rowref) {
my $rowref = selectall_hashref_query($form, $dbh, $query, $id);
for my $row (@$rowref) {
- delete @$row{qw(itime mtime acc_trans_id)};
+ delete @$row{qw(itime mtime acc_trans_id gldate)};
$query = sprintf 'INSERT INTO acc_trans (%s) VALUES (%s)', join(', ', keys %$row), join(', ', map '?', values %$row);
$row->{trans_id} = $new_id;
$row->{amount} *= -1;
$query = sprintf 'INSERT INTO acc_trans (%s) VALUES (%s)', join(', ', keys %$row), join(', ', map '?', values %$row);
$row->{trans_id} = $new_id;
$row->{amount} *= -1;