$query = qq|UPDATE ar SET paid = ? WHERE id = ?|;
do_query($form, $dbh, $query, $form->{paid}, conv_i($form->{id}));
- if (!$provided_dbh) {
- $dbh->commit();
- $dbh->disconnect();
- }
+ $dbh->commit if !$provided_dbh;
$main::lxdebug->leave_sub();
return;
'table' => 'ar',);
my $rc = 1;
- if (!$provided_dbh) {
- $dbh->commit();
- $dbh->disconnect();
- }
+ $dbh->commit if !$provided_dbh;
$main::lxdebug->leave_sub();
my @values = (conv_i($form->{id}));
+ # Falls wir ein Storno haben, müssen zwei Felder in der stornierten Rechnung wieder
+ # zurückgesetzt werden. Vgl:
+ # id | storno | storno_id | paid | amount
+ #----+--------+-----------+---------+-----------
+ # 18 | f | | 0.00000 | 119.00000
+ # ZU:
+ # 18 | t | | 119.00000 | 119.00000
+ #
+ if($form->{storno}){
+ # storno_id auslesen und korrigieren
+ my ($invoice_id) = selectfirst_array_query($form, $dbh, qq|SELECT storno_id FROM ar WHERE id = ?|,@values);
+ do_query($form, $dbh, qq|UPDATE ar SET storno = 'f', paid = 0 WHERE id = ?|, $invoice_id);
+ }
+
# delete AR record
do_query($form, $dbh, qq|DELETE FROM ar WHERE id = ?|, @values);