Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden.
Falls es deaktiviert wird, kann man den Kunden / Lieferanten nur editieren wenn man selber als Verkäufer eingetragen ist.
["crm_notices", $locale->text("CRM notices")],
["crm_other", $locale->text("CRM other")],
["--master_data", $locale->text("Master Data")],
- ["customer_vendor_edit", $locale->text("Create and edit customers and vendors")],
+ ["customer_vendor_edit", $locale->text("Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)")],
+ ["customer_vendor_all_edit", $locale->text("Create customers and vendors. Edit all vendors. Edit all customers")],
["part_service_assembly_edit", $locale->text("Create and edit parts, services, assemblies")],
["project_edit", $locale->text("Create and edit projects")],
["--ar", $locale->text("AR")],
push(@values, conv_i($form->{business_id}));
}
+ # Nur Kunden finden, bei denen ich selber der Verkäufer bin
+ # Gilt nicht für Lieferanten
+ if ($cv eq 'customer' && !$main::auth->assert('customer_vendor_all_edit', 1)) {
+ $where .= qq| AND ct.salesman_id = (select id from employee where login= ?)|;
+ push(@values, $form->{login});
+ }
+
my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'CT',
'trans_id_field' => 'ct.id',
'filter' => $form);
- Mastertemplates für den Ausdruck sind in eigene Unterverzeichnisse gewandert.
Dadurch wird das Hinzufügen neuer Vorlagensätze einfacher.
+- Zwei Rechterweiterung für 'eingeschränktere' Vertriebspartnerfunktion
+ Schreibschutz für Preise in Angebot und Suchfunktion in Stammdaten Kunden nur für Mitarbeiter freigeben, die auch
+ gleichzeitig als Verkäufer für den Kunden eingetragen sind. Rechtebeschreibung im Admin-Menü wie folgt:
+ * 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 umgangen werden).
+ * Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Nur Kunden bearbeiten bei denen der Verkäufer gleich Bearbeiter (login) ist
Kleinere neue Features und Detailverbesserungen:
- á (LATIN SMALL LETTER A WITH ACUTE) wird in Latex-Vorlagen nicht mehr durch
'Create a new payment term' => 'Neue Zahlungsbedingungen anlegen',
'Create a standard group' => 'Eine Standard-Benutzergruppe anlegen',
'Create and edit RFQs' => 'Lieferantenanfragen erfassen und bearbeiten',
- 'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
'Create and edit dunnings' => 'Mahnungen erfassen und bearbeiten',
'Create and edit invoices and credit notes' => 'Rechnungen und Gutschriften erfassen und bearbeiten',
'Create and edit parts, services, assemblies' => 'Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten',
'Create bank collection via SEPA XML' => 'Bankeinzug via SEPA XML erstellen',
'Create bank transfer' => 'Überweisung erstellen',
'Create bank transfer via SEPA XML' => 'Überweisung via SEPA XML erzeugen',
+ 'Create customers and vendors. Edit all vendors. Edit all customers' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Alle Kunden bearbeiten',
+ 'Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Nur Kunden bearbeiten bei denen der Verkäufer gleich Bearbeiter (login) ist',
'Create invoice?' => 'Rechnung erstellen?',
'Create new' => 'Neu erfassen',
'Create new business' => 'Kunden-/Lieferantentyp erfassen',
'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 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 umgangen werden)',
'Edit rights' => 'Rechte bearbeiten',
'Edit templates' => 'Vorlagen bearbeiten',
'Edit the Delivery Order' => 'Lieferschein bearbeiten',
--- /dev/null
+# @tag: auth_enable_ct_all_edit
+# @description: Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden
+# falls es deaktiviert wird, kann ich den Kunden / Lieferanten nur editieren wenn ich selber als Verkäufer eingetragen bin
+# @depends: release_2_6_3
+# @charset: utf-8
+
+use utf8;
+use strict;
+use Data::Dumper;
+die("This script cannot be run from the command line.") unless ($main::form);
+
+sub mydberror {
+ my ($msg) = @_;
+ die($dbup_locale->text("Database update error:") .
+ "<br>$msg<br>" . $DBI::errstr);
+}
+
+sub do_update {
+ my $dbh = $main::auth->dbconnect();
+ my $query = <<SQL;
+ SELECT id
+ FROM auth."group"
+ WHERE NOT EXISTS(
+ SELECT group_id
+ FROM auth.group_rights
+ WHERE (auth.group_rights.group_id = auth."group".id)
+ AND (auth.group_rights."right" = 'customer_vendor_all_edit')
+ )
+SQL
+
+ my @group_ids = selectall_array_query($form, $dbh, $query);
+ if (@group_ids) {
+ $query = <<SQL;
+ INSERT INTO auth.group_rights (group_id, "right", granted)
+ VALUES (?, 'customer_vendor_all_edit', TRUE)
+SQL
+ my $sth = prepare_query($form, $dbh, $query);
+
+ foreach my $id (@group_ids) {
+ do_statement($form, $sth, $query, $id);
+ }
+
+ $sth->finish();
+ $dbh->commit();
+ }
+
+ return 1;
+}
+
+return do_update();
+