Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ee056f23

Von Jan Büren vor mehr als 7 Jahren hinzugefügt

  • ID ee056f2390b1c698e70b1914a73f1a6f0c016f4b
  • Vorgänger ba489e3a
  • Nachfolger 8ec984ac

GenericTranslation um Vorbelegungen für E-Mail-Texte erweitert

Neuer Menüpunkt:
System-> Sprachen und Übersetzungen > Vorbelegte Texte für E-Mail
Falls ein Ansprechpartner hinterlegt ist, wird entsprechend des
Geschlechts und der vorbelegten Textbaustein die Anrede zusammengesetzt.
Falls kein Ansprechpartner gewählt ist, kommt die allgemeine Grußformel.
Bis auf Gutschrift und Mahnung(en) sind alle Workflow Masken im Ein
und
Verkauf umgesetzt.

Unterschiede anzeigen:

bin/mozilla/generictranslations.pl
5 5

  
6 6
use strict;
7 7

  
8
# convention:
9
# preset_text_$formname will generate a input textarea
10
# and will be preset in $form email dialog if the form name matches
11

  
12
my %mail_strings = (
13
  salutation_male                     => t8('Salutation male'),
14
  salutation_female                   => t8('Salutation female'),
15
  salutation_general                  => t8('Salutation general'),
16
  salutation_punctuation_mark         => t8('Salutation punctuation mark'),
17
  preset_text_sales_quotation         => t8('Preset email text for sales quotations'),
18
  preset_text_sales_order             => t8('Preset email text for sales orders'),
19
  preset_text_sales_delivery_order    => t8('Preset email text for sales delivery orders'),
20
  preset_text_invoice                 => t8('Preset email text for sales invoices'),
21
  preset_text_request_quotation       => t8('Preset email text for requests (rfq)'),
22
  preset_text_purchase_order          => t8('Preset email text for purchase orders'),
23
);
24

  
8 25
sub edit_greetings {
9 26
  $main::lxdebug->enter_sub();
10 27

  
......
135 152

  
136 153
  $main::lxdebug->leave_sub();
137 154
}
155
sub edit_email_strings {
156
  $main::lxdebug->enter_sub();
157

  
158
  $main::auth->assert('config');
159

  
160
  my $form     = $main::form;
161
  my $locale   = $main::locale;
162

  
163
  $form->get_lists('languages' => 'LANGUAGES');
164
  unshift @{ $form->{LANGUAGES} }, { 'id' => 'default', };
165

  
166
  my (%translations, $translation_list);
167
  foreach (keys %mail_strings)  {
168
    $translation_list = GenericTranslations->list(translation_type => $_);
169
    %translations     = map { ( ($_->{language_id} || 'default') => $_->{translation} ) } @{ $translation_list };
170

  
171
    foreach my $language (@{ $form->{LANGUAGES} }) {
172
      $language->{$_} = $translations{$language->{id}};
173
    }
174
  }
175
  setup_generictranslations_edit_email_strings_action_bar();
176

  
177
  $form->{title} = $locale->text('Edit preset email strings');
178
  $form->header();
179
  print $form->parse_html_template('generictranslations/edit_email_strings',{ 'MAIL_STRINGS' => \%mail_strings });
180

  
181
  $main::lxdebug->leave_sub();
182
}
183

  
184
sub save_email_strings {
185
  $main::lxdebug->enter_sub();
186

  
187
  $main::auth->assert('config');
188

  
189
  my $form     = $main::form;
190
  my $locale   = $main::locale;
191

  
192
  $form->get_lists('languages' => 'LANGUAGES');
193

  
194
  unshift @{ $form->{LANGUAGES} }, { };
195
  foreach my $language (@{ $form->{LANGUAGES} }) {
196
    foreach (keys %mail_strings)  {
197
      GenericTranslations->save('translation_type' => $_,
198
                                'translation_id'   => undef,
199
                                'language_id'      => $language->{id},
200
                                'translation'      => $form->{"translation__" . ($language->{id} || 'default') . "__" . $_},
201
                               );
202
    }
203
  }
204
  $form->{message} = $locale->text('The Mail strings have been saved.');
205

  
206
  edit_email_strings();
207

  
208
  $main::lxdebug->leave_sub();
209
}
138 210

  
139 211
sub setup_generictranslations_edit_greetings_action_bar {
140 212
  my %params = @_;
......
163 235
    );
164 236
  }
165 237
}
238
sub setup_generictranslations_edit_email_strings_action_bar {
239
  my %params = @_;
240

  
241
  for my $bar ($::request->layout->get('actionbar')) {
242
    $bar->add(
243
      action => [
244
        t8('Save'),
245
        submit    => [ '#form', { action => "save_email_strings" } ],
246
        accesskey => 'enter',
247
      ],
248
    );
249
  }
250
}
166 251

  
167 252
1;
doc/changelog
9 9
  - SEPA-XML: alle Sonderzeichen filtern
10 10
  - SEPA-Export: Export wieder rückgängig machen, falls noch Status offen
11 11
  - Stammdaten -> Berichte -> Artikel: Standardlager und Lagerplatz optional anzeigen
12
  - Vorbelegte Texte inkl. Ansprechpartner für den E-Mail-Versand bei allen Workflows hinzugefügt.
12 13

  
13 14
2017-07-17 - Release 3.5.0
14 15

  
locale/de/all
1132 1132
  'Edit payment term'           => 'Zahlungsbedingungen bearbeiten',
1133 1133
  'Edit picture'                => 'Bild bearbeiten',
1134 1134
  'Edit pre-defined text'       => 'Vordefinierten Textblock bearbeiten',
1135
  'Edit preset email strings'   => 'Vorbelegte Texte für E-Mails editieren',
1135 1136
  'Edit price rule'             => 'Preisregel bearbeiten',
1136 1137
  'Edit pricegroup'             => 'Preisgruppe bearbeiten',
1137 1138
  '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)',
......
2200 2201
  'Prepare bank collection via SEPA XML' => 'Einzug via SEPA XML vorbereiten',
2201 2202
  'Prepare bank transfer via SEPA XML' => 'Überweisung via SEPA XML vorbereiten',
2202 2203
  'Prepayment'                  => 'Vorauszahlung',
2204
  'Preset email strings'        => 'Vorbelegte E-Mail-Texte',
2205
  'Preset email text for purchase orders' => 'Vorbelegter E-Mail-Text für Einkaufsaufträge',
2206
  'Preset email text for requests (rfq)' => 'Vorbelegter E-Mail-Text für Anfragen',
2207
  'Preset email text for sales delivery orders' => 'Vorbelegter E-Mail-Text für Verkaufs-Lieferscheine',
2208
  'Preset email text for sales invoices' => 'Vorbelegter E-Mail-Text für Rechnungen',
2209
  'Preset email text for sales orders' => 'Vorbelegter E-Mail-Text für Aufträge',
2210
  'Preset email text for sales quotations' => 'Vorbelegter E-Mail-Text für Angebote',
2203 2211
  'Preview'                     => 'Vorschau',
2204 2212
  'Preview Mode'                => 'Vorschaumodus',
2205 2213
  'Previous transdate text'     => 'wurde gespeichert am',
......
2530 2538
  'Sales quotation #1 has been deleted.' => 'Angebot #1 wurde gelöscht.',
2531 2539
  'Sales quotation #1 has been updated.' => 'Angebot #1 wurde aktualisiert.',
2532 2540
  'Salesman'                    => 'Verkäufer/in',
2533
  'Salesman (ID)'               => 'Verkäufer/in (ID)',
2534 2541
  'Salesman (database ID)'      => 'Verkäufer/in (Datenbank-ID)',
2535 2542
  'Salesman (login)'            => 'Verkäufer/in (Login)',
2536 2543
  'Salesperson'                 => 'Verkäufer',
2544
  'Salutation female'           => 'Anrede weiblich',
2545
  'Salutation general'          => 'Anrede anonym (personenlos)',
2546
  'Salutation male'             => 'Anrede männlich',
2547
  'Salutation punctuation mark' => 'Zeichensetzungs-Trenner nach der Anrede-Formel (Punkt, Ausrufezeichen, etc)',
2537 2548
  'Same Filename !'             => 'unveränderter Dateiname !',
2538 2549
  'Same as the quote character' => 'Wie Anführungszeichen',
2539 2550
  'Sat. Fax'                    => 'Sat. Fax',
......
2901 2912
  'The ID #1 is not a valid database ID.' => 'Die ID #1 ist keine gültige Datenbank-ID.',
2902 2913
  'The LDAP server "#1:#2" is unreachable. Please check config/kivitendo.conf.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/kivitendo.conf.',
2903 2914
  'The MT940 import needs an import profile called MT940' => 'Der MT940 Import benötigt ein Importprofil mit dem Namen "MT940"',
2915
  'The Mail strings have been saved.' => 'Die vorbelegten E-Mail-Texte wurden gespeichert.',
2904 2916
  'The PDF has been created'    => 'Die PDF-Datei wurde erstellt.',
2905 2917
  'The PDF has been printed'    => 'Das PDF-Dokument wurde gedruckt.',
2906 2918
  'The SEPA export has been created.' => 'Der SEPA-Export wurde erstellt',
menus/user/00-erp.yaml
1200 1200
  module: generictranslations.pl
1201 1201
  params:
1202 1202
    action: edit_sepa_strings
1203
- parent: system_languages_and_translations
1204
  id: system_languages_and_translations_email_strings
1205
  name: Preset email strings
1206
  order: 500
1207
  module: generictranslations.pl
1208
  params:
1209
    action: edit_email_strings
1203 1210
- parent: system
1204 1211
  id: system_payment_terms
1205 1212
  name: Payment Terms
templates/webpages/generictranslations/edit_email_strings.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
<h1>[% HTML.escape(title) %]</h1>
4
[%- IF message %]
5
 <p>
6
 [% HTML.escape(message) %]
7
 </p>
8
[%- END %]
9
 <form method="post" action="generictranslations.pl" id="form">
10
  <table>
11
   [%- FOREACH mail_string IN MAIL_STRINGS.keys.sort %]
12
    <tr>
13
      <th class="listheading">&nbsp;</th>
14
      <th class="listheading">[% MAIL_STRINGS.$mail_string %]</th>
15
     </tr>
16

  
17
     [%- FOREACH language = LANGUAGES %]
18
     <tr>
19
      <td>
20
       [%- IF language.id == 'default' %]
21
       [% 'Default (no language selected)' | $T8 %]
22
       [%- ELSE %]
23
       [%- HTML.escape(language.description) %]
24
       [%- END %]
25
      </td>
26
      <td>
27
       [%- IF mail_string.search('preset') %]
28
        <textarea name="translation__[% language.id %]__[% mail_string %]" rows="4" cols="60">[% HTML.escape(language.$mail_string) %]</textarea>
29
       [%- ELSE %]
30
        <input name="translation__[% language.id %]__[% mail_string %]" size="40" value="[% HTML.escape(language.$mail_string) %]">
31
       [%- END %]
32
      </td>
33
     </tr>
34
     [%- END %]
35
   [%- END %]
36
  </table>
37
 </form>

Auch abrufbar als: Unified diff