From fd8bde53d5f22fe6923a904682dc25f2b3af8a3d Mon Sep 17 00:00:00 2001 From: "G. Richardson" Date: Tue, 3 Feb 2015 08:34:39 +0100 Subject: [PATCH] history_erp : Unterscheidung von id und glid MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit behebt #2493 Es gibt in der Datenbank zwei Sequenzen, mit der die ids von Datenbankeinträgen gespeichert werden, und die die Historiensuche betreffen: glid: ar,ap,gl id: delivery_orders parts oe customer vendor In der history_erp gibt es allerdings nur eine Datenbankspalte für trans_id, wo sowohl ids als auch glids gespeichert werden. (Wahrscheinlich wurde glid irgendwann mal neu eingeführt, damit man bei den Buchungen einen durchgängigen Buchungsnummernkreis hat, ohne dies für die Historie zu berücksichtigen.) Da das Historienfenster nur eine id als Parameter übergibt kann es also vorkommen, daß z.B. in einer Artikelhistorie eine Eintrag aus einer Buchungshistorie erscheint, wenn es eine Buchungs-glid gibt, die gleich der Artikel-id ist. Mit diesem Patch wird nun schon im Template festgelegt, ob es sich bei der Historie um eine Buchung (trans_id_type = glid) oder nicht (trans_id_type = id) handelt, und die Datenbankabfrage entsprechend modifiziert. Dies sollte nur die Historie von einzelnen Seiten betreffen (z.B. Artikel, Kunde, Verkaufsrechnung), nicht die Historiensuchmaschine unter dem Menüpunkt "System". Die Modifizierung des SQL-Statements ist allerdings noch recht unschön, da diese eventuell angepasst werden muß, wenn sich etwas an der Beschreibung der history_erp Zeilen ändert (wie beispielsweise in Commit 01b4e844b89 ). Wenn die Historie mal überarbeitet wird sollte besser direkt schon gespeichert werden, ob es sich um eine Buchung oder nicht handelt, bzw. den Typ des Objekts, um das es gerade geht. Und dann wäre es auch noch schön, die Historie in einen Tab zu verlagern, statt eines Knopfs im Workflow. --- bin/mozilla/common.pl | 12 +++++++++++- js/show_history.js | 3 ++- templates/webpages/ap/form_footer.html | 2 +- templates/webpages/ar/form_footer.html | 2 +- templates/webpages/do/form_footer.html | 2 +- templates/webpages/ic/form_footer.html | 2 +- templates/webpages/ir/form_footer.html | 2 +- templates/webpages/is/form_footer.html | 2 +- templates/webpages/oe/form_footer.html | 2 +- templates/webpages/pe/partsgroup_form.html | 2 +- templates/webpages/pe/pricegroup_form.html | 2 +- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/bin/mozilla/common.pl b/bin/mozilla/common.pl index c51b13f7a..9756f9216 100644 --- a/bin/mozilla/common.pl +++ b/bin/mozilla/common.pl @@ -385,8 +385,18 @@ sub show_history { $form->{title} = $locale->text("History"); $form->header(no_layout => 1); + + my $restriction; + if ( $form->{trans_id_type} eq 'glid' ) { + $restriction = "AND ( snumbers LIKE 'invnumber%' OR what_done LIKE '%Buchungsnummer%' OR snumbers LIKE 'gltransaction%' ) "; + } elsif ( $form->{trans_id_type} eq 'id' ) { + $restriction = " AND ( snumbers NOT LIKE 'invnumber_%' AND snumbers NOT LIKE 'gltransaction%' AND (what_done NOT LIKE '%Buchungsnummer%' OR what_done IS null))"; + } else { + $restriction = ''; + }; + print $form->parse_html_template( "common/show_history", { - "DATEN" => $form->get_history($dbh,$form->{input_name},"",$form->{order}), + "DATEN" => $form->get_history($dbh,$form->{input_name},$restriction,$form->{order}), "SUCCESS" => ($form->get_history($dbh,$form->{input_name}) ne "0"), uc($sort) => 1, uc($sort)."BY" => $sortby, diff --git a/js/show_history.js b/js/show_history.js index e0cfec45e..6985c6941 100644 --- a/js/show_history.js +++ b/js/show_history.js @@ -10,13 +10,14 @@ function centerParms(width,height,extra) { return string; } -function set_history_window(id) { +function set_history_window(id,trans_id_type) { var parm = centerParms(800,500) + ",width=800,height=500,status=yes,scrollbars=yes"; var name = "History"; url = "common.pl?" + "INPUT_ENCODING=UTF-8&" + "action=show_history&" + "longdescription=" + "&" + + "trans_id_type=" + encodeURIComponent(trans_id_type) + "&" + "input_name=" + encodeURIComponent(id) + "&" window.open(url, "_new_generic", parm); } diff --git a/templates/webpages/ap/form_footer.html b/templates/webpages/ap/form_footer.html index 336350315..d98e28393 100644 --- a/templates/webpages/ap/form_footer.html +++ b/templates/webpages/ap/form_footer.html @@ -41,7 +41,7 @@ [%- END %] [%- IF id %] - + [% IF INSTANCE_CONF.get_ap_show_mark_as_paid %] [% END %] diff --git a/templates/webpages/ar/form_footer.html b/templates/webpages/ar/form_footer.html index 6fa8b4441..9927cc852 100644 --- a/templates/webpages/ar/form_footer.html +++ b/templates/webpages/ar/form_footer.html @@ -37,7 +37,7 @@ - + [% ELSE %] [% IF ( !is_closed ) %] diff --git a/templates/webpages/do/form_footer.html b/templates/webpages/do/form_footer.html index e15b44099..7f6c9bd6c 100644 --- a/templates/webpages/do/form_footer.html +++ b/templates/webpages/do/form_footer.html @@ -89,7 +89,7 @@ [%- UNLESS closed %] [%- END %] - + [%- END %]

diff --git a/templates/webpages/ic/form_footer.html b/templates/webpages/ic/form_footer.html index 32c19a7ac..0cdd026ff 100644 --- a/templates/webpages/ic/form_footer.html +++ b/templates/webpages/ic/form_footer.html @@ -93,7 +93,7 @@ [%- END %] [%- IF id != "" %] - + [%- END %] diff --git a/templates/webpages/ir/form_footer.html b/templates/webpages/ir/form_footer.html index ad241a17a..99767155d 100644 --- a/templates/webpages/ir/form_footer.html +++ b/templates/webpages/ir/form_footer.html @@ -143,7 +143,7 @@ [% IF id %] [%#- button for saving history %] - + [% IF INSTANCE_CONF.get_ir_show_mark_as_paid %] diff --git a/templates/webpages/is/form_footer.html b/templates/webpages/is/form_footer.html index d3c8ccf3a..bc69dfd80 100644 --- a/templates/webpages/is/form_footer.html +++ b/templates/webpages/is/form_footer.html @@ -185,7 +185,7 @@ [% IF id %] [%#- button for saving history %] - + [% IF INSTANCE_CONF.get_is_show_mark_as_paid %] [% END %] diff --git a/templates/webpages/oe/form_footer.html b/templates/webpages/oe/form_footer.html index 8a8dd0845..9f0b6db3a 100644 --- a/templates/webpages/oe/form_footer.html +++ b/templates/webpages/oe/form_footer.html @@ -152,7 +152,7 @@ [%- IF id %] - +
[% label_workflow %]
diff --git a/templates/webpages/pe/partsgroup_form.html b/templates/webpages/pe/partsgroup_form.html index 81fea2b98..632cd7afa 100644 --- a/templates/webpages/pe/partsgroup_form.html +++ b/templates/webpages/pe/partsgroup_form.html @@ -34,7 +34,7 @@ [%- END %] [%- IF ( id ) %] - + [%- END %] diff --git a/templates/webpages/pe/pricegroup_form.html b/templates/webpages/pe/pricegroup_form.html index 328c45a67..850275fbf 100644 --- a/templates/webpages/pe/pricegroup_form.html +++ b/templates/webpages/pe/pricegroup_form.html @@ -34,7 +34,7 @@ [%- END %] [%- IF ( id ) %] - + [%- END %] -- 2.20.1