From 3b31a829befaac03cfaee61c8a267b2593143569 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Thu, 22 Oct 2015 13:26:34 +0200 Subject: [PATCH] Einkaufsrechnungen: Neu buchen SQL Fehler behoben MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- SL/IR.pm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) 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); } -- 2.20.1