From: Sven Schöling Date: Thu, 22 Oct 2015 11:26:34 +0000 (+0200) Subject: Einkaufsrechnungen: Neu buchen SQL Fehler behoben X-Git-Tag: release-3.4.1~602 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/3b31a829befaac03cfaee61c8a267b2593143569?ds=inline;hp=67588d37a1fcdaed2ffdac55feaea26e488537d4 Einkaufsrechnungen: Neu buchen SQL Fehler behoben Fehler trat auf, wenn Aufwandsmethode eingestellt war, und eine Einkaufsrechnung, für die bereits eine Verkaufsrechnung existierte geändert wurde. Dann wurde fälschlicherweise beim Umkehren der Rechnung versucht die Warenbestandsbuchungen zu ändern. Ohne Verkaufsrechnung existieren die allocated < 0 Positionen nicht. --- diff --git a/SL/IR.pm b/SL/IR.pm index ad28c968b..fbff03e1b 100644 --- a/SL/IR.pm +++ b/SL/IR.pm @@ -873,17 +873,20 @@ sub reverse_invoice { #adjust allocated $form->update_balance($dbh, "invoice", "allocated", qq|id = $pthref->{id}|, $qty); - $form->update_balance($dbh, "acc_trans", "amount", - qq| (trans_id = $pthref->{trans_id}) - AND (chart_id = $ref->{expense_accno_id}) - AND (transdate = '$pthref->{transdate}')|, - $amount); - - $form->update_balance($dbh, "acc_trans", "amount", - qq| (trans_id = $pthref->{trans_id}) - AND (chart_id = $ref->{inventory_accno_id}) - AND (transdate = '$pthref->{transdate}')|, - $amount * -1); + if ( $::instance_conf->get_inventory_system eq 'perpetual' ) { + + $form->update_balance($dbh, "acc_trans", "amount", + qq| (trans_id = $pthref->{trans_id}) + AND (chart_id = $ref->{expense_accno_id}) + AND (transdate = '$pthref->{transdate}')|, + $amount); + + $form->update_balance($dbh, "acc_trans", "amount", + qq| (trans_id = $pthref->{trans_id}) + AND (chart_id = $ref->{inventory_accno_id}) + AND (transdate = '$pthref->{transdate}')|, + $amount * -1); + } last if (($ref->{allocated} -= $qty) <= 0); }