From 26456e6e241a4487e5b52c70e36d275eb073db5b Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 5 Mar 2010 15:01:47 +0100 Subject: [PATCH] =?utf8?q?Bei=20Zahlungseingang/-ausgang=20Meldung=20anzei?= =?utf8?q?gen,=20wenn=20offene=20Rechnungen=20in=20anderen=20W=C3=A4hrunge?= =?utf8?q?n=20vorhanden=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fix für Bug 1050. --- SL/CP.pm | 18 +++++++++++++----- bin/mozilla/cp.pl | 13 +++++++++++++ locale/de/all | 2 ++ locale/de/cp | 3 +++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/SL/CP.pm b/SL/CP.pm index b7e6241de..f6c8c1a8e 100644 --- a/SL/CP.pm +++ b/SL/CP.pm @@ -160,16 +160,14 @@ sub get_openinvoices { my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell"; my $arap = $form->{arap} eq "ar" ? "ar" : "ap"; - my $curr_null = $form->{curreny} ? '' : ' OR a.curr IS NULL'; # fix: after sql-injection fix, curr is inserted as NULL, before that as '' - my $query = qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | . qq|FROM $arap a | . - qq|WHERE (a.${vc}_id = ?) AND (a.curr = ? $curr_null) AND NOT (a.amount = paid)| . + qq|WHERE (a.${vc}_id = ?) AND (COALESCE(a.curr, '') = ?) AND NOT (a.amount = a.paid)| . qq|ORDER BY a.id|; my $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{"${vc}_id"}), - $form->{currency}); + "$form->{currency}"); $form->{PR} = []; while (my $ref = $sth->fetchrow_hashref("NAME_lc")) { @@ -182,6 +180,16 @@ sub get_openinvoices { } $sth->finish; + + $query = < ?) + AND (amount <> paid) +SQL + ($form->{openinvoices_other_currencies}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{"${vc}_id"}), "$form->{currency}"); + $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -363,7 +371,7 @@ sub process_payment { # Hier werden negativen Zahlungseingänge abgefangen # Besser: in Oberfläche schon prüfen # Zahlungsein- und ausgänge sind immer positiv - $dbh->rollback; + $dbh->rollback; $rc = 0; } if ($form->round_amount($paymentamount, 2) == 0) { diff --git a/bin/mozilla/cp.pl b/bin/mozilla/cp.pl index 51624331c..f4a9efb20 100644 --- a/bin/mozilla/cp.pl +++ b/bin/mozilla/cp.pl @@ -317,6 +317,19 @@ sub form_header { $jsscript |; + if ($form->{openinvoices_other_currencies}) { + my $warning = $form->{vc} eq 'customer' ? $::locale->text('There are #1 more open invoices for this customer with other currencies.', $form->{openinvoices_other_currencies}) + : $::locale->text('There are #1 more open invoices from this vendor with other currencies.', $form->{openinvoices_other_currencies}); + + print qq| + + + + | . $::locale->text('Note') . qq|: $warning + +|; + } + $lxdebug->leave_sub(); } diff --git a/locale/de/all b/locale/de/all index 4d3e03959..35e8d33f9 100644 --- a/locale/de/all +++ b/locale/de/all @@ -1644,6 +1644,8 @@ $self->{texts} = { 'The wrong taxkeys for AP and AR transactions have been fixed.' => 'Die Probleme mit falschen Steuerschlüssel bei Kreditoren- und Debitorenbuchungen wurden behoben.', 'The wrong taxkeys for inventory transactions for sales and purchase invoices have been fixed.' => 'Die falschen Steuerschlüssel für Warenbestandsbuchungen bei Einkaufs- und Verkaufsrechnungen wurden behoben.', 'The wrong taxkeys have been fixed.' => 'Die Steuerschlüssel wurden nach Ihrer Auswahl korrigiert.', + 'There are #1 more open invoices for this customer with other currencies.' => 'Es gibt #1 weitere offene Rechnungen für diesen Kunden, die in anderen Währungen ausgestellt wurden.', + 'There are #1 more open invoices from this vendor with other currencies.' => 'Es gibt #1 weitere offene Rechnungen von diesem Lieferanten, die in anderen Währungen ausgestellt wurden.', 'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.', 'There are four tax zones.' => 'Es gibt vier Steuerzonen.', 'There are no items in stock.' => 'Dieser Artikel ist nicht eingelagert.', diff --git a/locale/de/cp b/locale/de/cp index 9de006c67..11ee88810 100644 --- a/locale/de/cp +++ b/locale/de/cp @@ -106,6 +106,7 @@ $self->{texts} = { 'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.', 'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.', 'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.', + 'Note' => 'Hinweis', 'Number' => 'Nummer', 'Others' => 'Andere', 'PAYMENT POSTED' => 'Rechung gebucht', @@ -159,6 +160,8 @@ $self->{texts} = { 'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:', 'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:', 'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:', + 'There are #1 more open invoices for this customer with other currencies.' => 'Es gibt #1 weitere offene Rechnungen für diesen Kunden, die in anderen Währungen ausgestellt wurden.', + 'There are #1 more open invoices from this vendor with other currencies.' => 'Es gibt #1 weitere offene Rechnungen von diesem Lieferanten, die in anderen Währungen ausgestellt wurden.', 'To (email)' => 'An', 'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen', 'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.', -- 2.20.1