From: Jan Büren Date: Wed, 30 Nov 2011 11:27:54 +0000 (+0100) Subject: Programmlogik für Recht 'Schreibgeschützte Preise' (s.a. Commit davor) X-Git-Tag: release-2.7.0beta1~155^2~9 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=2ff140f1582f1136f7cf987a827aa06a7ec4e588;p=kivitendo-erp.git Programmlogik für Recht 'Schreibgeschützte Preise' (s.a. Commit davor) Details: Vergessen bei dem Commit von gerade, die entsprechenden Programmänderungen auch zu committen, betrifft: Übersetzungen, Recht in Auth.pm sowie die entsprechende neue Logik in io.pl->display_row --- diff --git a/SL/Auth.pm b/SL/Auth.pm index 7e46c125e..1577eb862 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -953,6 +953,7 @@ sub all_rights_full { ["invoice_edit", $locale->text("Create and edit invoices and credit notes")], ["dunning_edit", $locale->text("Create and edit dunnings")], ["sales_all_edit", $locale->text("View/edit all employees sales documents")], + ["edit_prices", $locale->text("Edit prices and discount (if not used, textfield is ONLY set readonly)")], ["--ap", $locale->text("AP")], ["request_quotation_edit", $locale->text("Create and edit RFQs")], ["purchase_order_edit", $locale->text("Create and edit purchase orders")], diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 5df76ed77..bef9a849d 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -277,12 +277,16 @@ sub display_row { } # build in drop down list for pricesgroups + # $sellprice_value setzt den Wert etwas unabhängiger von der Darstellung. + # Hintergrund: Preisgruppen werden hier überprüft und neu berechnet. + # Vorher wurde der ganze cgi->textfield Block zweimal identisch eingebaut, dass passiert + # jetzt nach der Abfrage. + my $sellprice_value; if ($form->{"prices_$i"}) { $column_data{sellprice_pg} = qq||; - $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => 'check_right_number_format(this)', -value => - (($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"}) + $sellprice_value =($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"}) ? $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces) - : $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces))); + : $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces); } else { # for last row and report # set pricegroup drop down list from report menu @@ -295,11 +299,22 @@ sub display_row { } else { $column_data{sellprice_pg} = qq| |; } - $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value => - $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces)); + $sellprice_value = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces); } - $column_data{discount} = $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"})); + # Falls der Benutzer die Preise nicht anpassen sollte, wird das entsprechende + # Textfield auf readonly gesetzt. Anm. von Sven: Manipulation der Preise ist + # immer noch möglich, konsequenterweise sollten diese NUR aus der Datenbank + # geholt werden. + my $edit_prices = $main::auth->assert('edit_prices', 1); + $column_data{sellprice} = (!$edit_prices) + ? $cgi->textfield(-readonly => "readonly", + -name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value => $sellprice_value) + : $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value => $sellprice_value); + $column_data{discount} = (!$edit_prices) + ? $cgi->textfield(-readonly => "readonly", + -name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"})) + : $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"})); $column_data{linetotal} = $form->format_amount(\%myconfig, $linetotal, 2); $column_data{bin} = $form->{"bin_$i"}; diff --git a/locale/de/all b/locale/de/all index dde662e34..9e7229662 100644 --- a/locale/de/all +++ b/locale/de/all @@ -721,6 +721,7 @@ $self->{texts} = { 'Edit membership' => 'Mitgliedschaft bearbeiten', 'Edit note' => 'Notiz bearbeiten', 'Edit payment term' => 'Zahlungsbedingungen bearbeiten', + 'Edit prices and discount (if not used, textfield is ONLY set readonly)' => 'Preise und Rabatt in Formularen frei anpassen (falls deaktiviert, wird allerdings NUR das textfield auf READONLY gesetzt / kann je nach Browserversion und technischen Fähigkeiten des Anwenders noch gehackt werden).', 'Edit rights' => 'Rechte bearbeiten', 'Edit templates' => 'Vorlagen bearbeiten', 'Edit the Delivery Order' => 'Lieferschein bearbeiten', @@ -996,7 +997,6 @@ $self->{texts} = { 'KNr. beim Kunden' => 'KNr. beim Kunden', 'Keine Suchergebnisse gefunden!' => 'Keine Suchergebnisse gefunden!', 'Konten' => 'Konten', - 'Kontonummernerweiterung (KNE)' => 'Kontonummernerweiterung (KNE)', 'L' => 'L', 'LIABILITIES' => 'PASSIVA', 'LP' => 'LP', @@ -1358,7 +1358,6 @@ $self->{texts} = { 'Preferences saved!' => 'Einstellungen gespeichert!', 'Prefix for the new bins\' names' => 'Namenspräfix für die neuen Lagerplätze', 'Preis' => 'Preis', - 'Preisgruppe' => 'Preisgruppe', 'Preisklasse' => 'Preisgruppe', 'Prepare bank collection via SEPA XML' => 'Einzug via SEPA XML vorbereiten', 'Prepare bank transfer via SEPA XML' => 'Überweisung via SEPA XML vorbereiten',