CRM-Menü in der ERP speichern inklusive der Übersetzungen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 17 Jul 2013 09:35:55 +0000 (11:35 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 17 Jul 2013 09:37:03 +0000 (11:37 +0200)
Fixt #2328.

SL/InstanceConfiguration.pm
SL/Layout/Base.pm
image/icons/16x16/CRM--E-mail.png [new file with mode: 0644]
image/icons/16x16/CRM--eMail.png [deleted file]
locale/de/all
menus/crm.ini [new file with mode: 0644]

index 13c4d1c..6995689 100644 (file)
@@ -4,10 +4,11 @@ use strict;
 
 use Carp;
 use SL::DBUtils ();
+use SL::System::Process;
 
 use parent qw(Rose::Object);
 use Rose::Object::MakeMethods::Generic (
-  'scalar --get_set_init' => [ qw(data currencies default_currency _table_currencies_exists) ],
+  'scalar --get_set_init' => [ qw(data currencies default_currency _table_currencies_exists crm_installed) ],
 );
 
 sub init_data {
@@ -34,6 +35,10 @@ sub init_default_currency {
   return (SL::DBUtils::selectfirst_array_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies WHERE id = ?|, $self->data->{currency_id}))[0];
 }
 
+sub crm_installed {
+  return -f (SL::System::Process->exe_dir . '/crm/Changelog');
+}
+
 sub reload {
   my ($self) = @_;
 
@@ -93,9 +98,9 @@ C<$::instance_conf>.
 
 Creates a new instance. Does not read the configuration.
 
-=item C<init>
+=item C<crm_installed>
 
-Reads the configuration from the database. Returns C<$self>.
+Returns trueish if the CRM component is installed.
 
 =item C<get_currencies>
 
index 2312ecf..7932aff 100644 (file)
@@ -29,7 +29,9 @@ sub new {
 }
 
 sub init_menu {
-  Menu->new('crm/update/menu.ini', 'menus/erp.ini');
+  my @menu_files = qw(menus/erp.ini);
+  unshift @menu_files, 'menus/crm.ini' if $::instance_conf->crm_installed;
+  Menu->new(@menu_files);
 }
 
 sub init_auto_reload_resources_param {
diff --git a/image/icons/16x16/CRM--E-mail.png b/image/icons/16x16/CRM--E-mail.png
new file mode 100644 (file)
index 0000000..8bbabc0
Binary files /dev/null and b/image/icons/16x16/CRM--E-mail.png differ
diff --git a/image/icons/16x16/CRM--eMail.png b/image/icons/16x16/CRM--eMail.png
deleted file mode 100644 (file)
index 8bbabc0..0000000
Binary files a/image/icons/16x16/CRM--eMail.png and /dev/null differ
index 272c20f..0471881 100755 (executable)
@@ -170,6 +170,7 @@ $self->{texts} = {
   'Add note'                    => 'Notiz erfassen',
   'Add unit'                    => 'Einheit hinzuf&uuml;gen',
   'Address'                     => 'Adresse',
+  'Admin'                       => 'Administration',
   'Administration'              => 'Administration',
   'Administration area'         => 'Administration',
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
@@ -338,6 +339,7 @@ $self->{texts} = {
   'CB Transaction'              => 'SB-Buchung',
   'CB Transactions'             => 'SB-Buchungen',
   'CR'                          => 'H',
+  'CRM'                         => 'CRM',
   'CRM admin'                   => 'Administration',
   'CRM create customers, vendors and contacts' => 'Erfassen (Kunden, Lieferanten, Personen)',
   'CRM follow up'               => 'Wiedervorlage',
@@ -347,7 +349,7 @@ $self->{texts} = {
   'CRM optional software'       => 'CRM optionale Software',
   'CRM other'                   => 'alles Andere',
   'CRM search'                  => 'Adresssuche',
-  'CRM send email'              => 'eMail',
+  'CRM send email'              => 'E-Mail',
   'CRM services'                => 'Dienstleistung',
   'CRM status'                  => 'Admin Status',
   'CRM termin'                  => 'Termine',
@@ -588,6 +590,7 @@ $self->{texts} = {
   'DATEX - Export Assistent'    => 'DATEV-Exportassistent',
   'DELETED'                     => 'Gelöscht',
   'DFV-Kennzeichen'             => 'DFV-Kennzeichen',
+  'DHL'                         => 'DHL',
   'DR'                          => 'S',
   'DUNNING STARTED'             => 'Mahnprozess gestartet',
   'DUNS number'                 => 'DUNS-Nummer',
@@ -711,11 +714,11 @@ $self->{texts} = {
   'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?',
   'Do you want to store the existing onhand values into a new warehouse?' => 'M&ouml;chten Sie die vorhandenen Mengendaten in ein Lager &uuml;bertragen?',
   'Document'                    => 'Dokument',
-  'Document Template'           => 'Dokumentvorlage',
-  'Documents'                   => 'Dokumente',
   'Document Project Number'     => 'Projektnummer des Belegs',
+  'Document Template'           => 'Dokumentvorlage',
   'Documentation'               => 'Dokumentation',
   'Documentation (in German)'   => 'Dokumentation',
+  'Documents'                   => 'Dokumente',
   'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
   'Done'                        => 'Fertig',
   'Double partnumbers'          => 'Doppelte Artikelnummern',
@@ -746,8 +749,8 @@ $self->{texts} = {
   'Duplicate in CSV file'       => 'Duplikat in CSV-Datei',
   'Duplicate in database'       => 'Duplikat in Datenbank',
   'During the next update a taxkey 0 with tax rate of 0 will automatically created.' => 'Beim nächsten Ausführen des Updates wird ein Steuerschlüssel 0 mit einem Steuersatz von 0% automatisch erzeugt.',
-  'E-mail'                      => 'eMail',
-  'E-mail Statement to'         => 'Fälligkeitsabrechnung als eMail an',
+  'E-mail'                      => 'E-Mail',
+  'E-mail Statement to'         => 'Fälligkeitsabrechnung als E-Mail an',
   'E-mail address missing!'     => 'E-Mail-Adresse fehlt!',
   'EAN'                         => 'EAN',
   'EAN-Code'                    => 'EAN-Code',
@@ -1140,12 +1143,13 @@ $self->{texts} = {
   'KNE-Export erfolgreich!'     => 'KNE-Export erfolgreich!',
   'KNr. beim Kunden'            => 'KNr. beim Kunden',
   'Keine Suchergebnisse gefunden!' => 'Keine Suchergebnisse gefunden!',
+  'Knowledge'                   => 'Wissen',
   'Konten'                      => 'Konten',
   'L'                           => 'L',
   'LIABILITIES'                 => 'PASSIVA',
   'LP'                          => 'LP',
-  'Label'                       => 'Etikett',
   'LaTeX Templates'             => 'LaTeX-Vorlagen',
+  'Label'                       => 'Etikett',
   'Landscape'                   => 'Querformat',
   'Language'                    => 'Sprache',
   'Language (database ID)'      => 'Sprache (Datenbank-ID)',
@@ -1215,9 +1219,9 @@ $self->{texts} = {
   'Logout now'                  => 'kivitendo jetzt verlassen',
   'Long Dates'                  => 'Lange Monatsnamen',
   'Long Description'            => 'Langtext',
-  'Machine'                     => 'Maschine',
   'MAILED'                      => 'Gesendet',
   'MD'                          => 'PT',
+  'Machine'                     => 'Maschine',
   'Main Preferences'            => 'Grundeinstellungen',
   'Main sorting'                => 'Hauptsortierung',
   'Make'                        => 'Lieferant',
@@ -1245,7 +1249,7 @@ $self->{texts} = {
   'Maximum future booking interval' => 'Maximale Anzahl von Tagen an denen Buchungen in der Zukunft erlaubt sind.',
   'May'                         => 'Mai',
   'May '                        => 'Mai',
-  'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
+  'May set the BCC field when sending emails' => 'Beim Verschicken von E-Mails das Feld \'BCC\' setzen',
   'Meaning'                     => 'Bedeutung',
   'Medium Number'               => 'Datentr&auml;gernummer',
   'Memo'                        => 'Memo',
@@ -1486,6 +1490,7 @@ $self->{texts} = {
   'Periodic invoices inactive'  => 'Wiederkehrende Rechnungen inaktiv',
   'Periodicity'                 => 'Periodizität',
   'Perpetual inventory'         => 'Bestandsmethode',
+  'Person'                      => 'Person',
   'Personal settings'           => 'Pers&ouml;nliche Einstellungen',
   'Phone'                       => 'Telefon',
   'Phone1'                      => 'Telefon 1 ',
@@ -1576,7 +1581,7 @@ $self->{texts} = {
   'Printer Management'          => 'Druckeradministration',
   'Printer management'          => 'Druckerverwaltung',
   'Printing ... '               => 'Es wird gedruckt.',
-  'Private E-mail'              => 'Private eMail',
+  'Private E-mail'              => 'Private E-Mail',
   'Private Phone'               => 'Privates Tel.',
   'Problem'                     => 'Problem',
   'Produce Assembly'            => 'Erzeugnis fertigen',
@@ -1799,7 +1804,7 @@ $self->{texts} = {
   'Service, assembly or part'   => 'Dienstleistung, Erzeugnis oder Ware',
   'Services'                    => 'Dienstleistungen',
   'Set Language Values'         => 'Spracheinstellungen',
-  'Set eMail text'              => 'eMail Text eingeben',
+  'Set eMail text'              => 'E-Mail Text eingeben',
   'Settings'                    => 'Einstellungen',
   'Setup Menu'                  => 'Menü-Variante',
   'Ship to'                     => 'Lieferadresse',
@@ -2226,8 +2231,8 @@ $self->{texts} = {
   'This user will have access to the following clients' => 'Dieser Benutzer wird Zugriff auf die folgenden Mandanten haben',
   'This vendor number is already in use.' => 'Diese Lieferantennummer wird bereits verwendet.',
   'Three Options:'              => 'Drei Optionen:',
+  'Time Tracking'               => 'Zeiterfassung',
   'Time period for the analysis:' => 'Analysezeitraum:',
-  'Time Track'                  => 'Zeiterfassung',
   'Timestamp'                   => 'Uhrzeit',
   'Title'                       => 'Titel',
   'To'                          => 'An',
@@ -2330,9 +2335,9 @@ $self->{texts} = {
   'Use master default bin for Default Transfer, if no default bin for the part is configured' => 'Standardlagerplatz für Ein- / Auslagern über Standard-Lagerplatz, falls für die Ware kein expliziter Lagerplatz konfiguriert ist',
   'User'                        => 'Benutzer',
   'User Config'                 => 'Einstellungen',
+  'User Groups'                 => 'Gruppen',
   'User Preferences'            => 'Benutzereinstellungen',
   'User access'                 => 'Benutzerzugriff',
-  'User Groups'                 => 'Gruppen',
   'User list'                   => 'Benutzerliste',
   'User login'                  => 'Benutzeranmeldung',
   'User name'                   => 'Benutzername',
@@ -2517,8 +2522,9 @@ $self->{texts} = {
   'done'                        => 'erledigt',
   'down'                        => 'runter',
   'dunning_list'                => 'mahnungsliste',
-  'eMail Send?'                 => 'eMail-Versand?',
-  'eMail?'                      => 'eMail?',
+  'eBayImporter'                => 'eBay-Importierer',
+  'eMail Send?'                 => 'E-Mail-Versand?',
+  'eMail?'                      => 'E-Mail?',
   'ea'                          => 'St.',
   'emailed to'                  => 'gemailt an',
   'empty'                       => 'leer',
@@ -2554,7 +2560,6 @@ $self->{texts} = {
   'kivitendo v#1 administration' => 'kivitendo v#1 Administration',
   'kivitendo website (external)' => 'kivitendo-Webseite (extern)',
   'kivitendo will then update the database automatically.' => 'kivitendo wird die Datenbank daraufhin automatisch aktualisieren.',
-  'Knowledge'                   => 'Wissen',
   'lead deleted!'               => 'Kundenquelle gelöscht',
   'lead saved!'                 => 'Kundenquelle geichert',
   'list'                        => 'auflisten',
diff --git a/menus/crm.ini b/menus/crm.ini
new file mode 100644 (file)
index 0000000..fcb0acf
--- /dev/null
@@ -0,0 +1,120 @@
+[CRM]
+
+[CRM--Search]
+ACCESS=crm_search
+module=crm/getData.php
+
+[CRM--Add]
+submenu=1
+
+[CRM--Add--Customer]
+ACCESS=crm_new
+module=crm/firmen3.php
+Q=C
+
+[CRM--Add--Vendor]
+ACCESS=crm_new
+module=crm/firmen3.php
+Q=V
+
+[CRM--Add--Person]
+ACCESS=crm_new
+module=crm/personen3.php
+
+[CRM--Appointments]
+ACCESS=crm_termin
+module=crm/termin.php
+
+[CRM--Opportunity]
+ACCESS=crm_opportunity
+module=crm/opportunity.php
+
+[CRM--Follow-Up]
+ACCESS=crm_follow
+module=crm/wvl1.php
+
+[CRM--E-mail]
+ACCESS=crm_email
+module=crm/mail.php
+
+[CRM--Knowledge]
+ACCESS=crm_knowhow
+module=crm/wissen.php
+
+[CRM--Memo]
+ACCESS=crm_notices
+module=crm/postit.php
+
+[CRM--Documents]
+ACCESS=crm_other
+module=crm/dokument.php
+
+[CRM--Time Tracking]
+ACCESS=crm_service
+module=crm/timetrack.php
+
+[CRM--DHL]
+ACCESS=crm_otje
+module=crm/dhl.php
+
+[CRM--eBayImporter]
+ACCESS=crm_other
+module=crm/ebayImporter.php
+
+[CRM--Service]
+submenu=1
+
+[CRM--Service--Service Contract]
+ACCESS=crm_service
+module=crm/vertrag1.php
+
+[CRM--Service--Add Service Contract]
+ACCESS=crm_service
+module=crm/vertrag3.php
+
+[CRM--Service--Machine]
+ACCESS=crm_service
+module=crm/maschine1.php
+
+[CRM--Service--Add Machine]
+ACCESS=crm_service
+module=crm/maschine3.php
+
+[CRM--Admin]
+submenu=1
+
+[CRM--Admin--Document Template]
+ACCESS=crm_admin
+module=crm/dokument1.php
+
+[CRM--Admin--Label]
+ACCESS=crm_admin
+module=crm/aufkleber_def.php
+
+[CRM--Admin--Appointment Category]
+ACCESS=crm_admin
+module=crm/tcatedit.php
+
+[CRM--Admin--Message]
+ACCESS=crm_admin
+module=crm/user3.php
+
+[CRM--Admin--Client]
+ACCESS=crm_adminstatus
+module=crm/mandant.php
+
+[CRM--Admin--User Groups]
+ACCESS=crm_admin
+module=crm/user2.php
+
+[CRM--Admin--User]
+ACCESS=crm_adminuser
+module=crm/user1.php
+
+[CRM--Admin--DHL]
+ACCESS=crm_admin
+module=crm/dhladm.php
+
+[CRM--Admin--Status]
+ACCESS=crm_adminstatus
+module=crm/status.php