Stammdaten -> Kunden um Textfelder Rechnungsmail und Herkunft personenbezogener Daten...
authorJan Büren <jan@kivitendo.de>
Fri, 14 Sep 2018 08:43:02 +0000 (10:43 +0200)
committerJan Büren <jan@kivitendo.de>
Mon, 14 Jan 2019 10:07:26 +0000 (11:07 +0100)
i)
Die Rechnungsmail ist die generische E-Mail des Kunden, welche die
Rechnung in der Regel bearbeitet (buchhaltung@, einkauf@).
ii)
Aufgrund der DSGVO ist es im Zweifel sinnvoll den Erstkontakt
des Kunden zu dokumentieren (Messe xyz, Telefon-Aktion beta, ...)
Die beiden Felder sind als Suchfeld anhakbar.

SL/DB/MetaSetup/Customer.pm
bin/mozilla/ct.pl
locale/de/all
sql/Pg-upgrade2/customer_add_fields.sql [new file with mode: 0644]
templates/webpages/ct/search.html
templates/webpages/customer_vendor/tabs/billing.html

index 1bf34fb..01b2b63 100644 (file)
@@ -23,6 +23,7 @@ __PACKAGE__->meta->columns(
   creditlimit               => { type => 'numeric', default => '0', precision => 15, scale => 5 },
   currency_id               => { type => 'integer', not_null => 1 },
   customernumber            => { type => 'text' },
+  contact_origin            => { type => 'text' },
   delivery_term_id          => { type => 'integer' },
   department_1              => { type => 'text' },
   department_2              => { type => 'text' },
@@ -38,6 +39,7 @@ __PACKAGE__->meta->columns(
   iban                      => { type => 'text' },
   id                        => { type => 'integer', not_null => 1, sequence => 'id' },
   itime                     => { type => 'timestamp', default => 'now()' },
+  invoice_mail              => { type => 'text' },
   language                  => { type => 'text' },
   language_id               => { type => 'integer' },
   mandate_date_of_signature => { type => 'date' },
index 558e524..c9d6539 100644 (file)
@@ -177,7 +177,7 @@ sub list_names {
     'id',        'name',    "$form->{db}number",   'contact',   'phone',    'discount',
     'fax',       'email',   'taxnumber',           'street',    'zipcode' , 'city',
     'business',  'payment', 'invnumber', 'ordnumber',           'quonumber', 'salesman',
-    'country',   'gln',     'insertdate',           'pricegroup'
+    'country',   'gln',     'insertdate',           'pricegroup', 'contact_origin', 'invoice_mail'
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -210,6 +210,8 @@ sub list_names {
     'payment'           => { 'text' => $locale->text('Payment Terms'), },
     'insertdate'        => { 'text' => $locale->text('Insert Date'), },
     'pricegroup'        => { 'text' => $locale->text('Pricegroup'), },
+    'invoice_mail'      => { 'text' => $locale->text('Email of the invoice recipient'), },
+    'contact_origin'    => { 'text' => $locale->text('Origin of personal data'), },
     %column_defs_cvars,
   );
 
index 0967e47..ccc6725 100755 (executable)
@@ -1221,6 +1221,7 @@ $self->{texts} = {
   'Element disabled'            => 'Element deaktiviert',
   'Email'                       => 'E-Mail',
   'Email journal'               => 'E-Mail-Journal',
+  'Email of the invoice recipient' => 'E-Mail des Rechnungsempfängers',
   'Employee'                    => 'Bearbeiter',
   'Employee #1 saved!'          => 'Benutzer #1 gespeichert!',
   'Employee (database ID)'      => 'Bearbeiter (Datenbank-ID)',
@@ -2146,6 +2147,7 @@ $self->{texts} = {
   'Orders to fetch'             => 'Anzahl Bestellungen holen',
   'Orientation'                 => 'Seitenformat',
   'Orig. Size w/h'              => 'Orig. Größe b/h',
+  'Origin of personal data'     => 'Herkunft der personenbezogenen Daten',
   'Orphaned'                    => 'Nie benutzt',
   'Orphaned currencies'         => 'Verwaiste Währungen',
   'Other Matches'               => 'Andere Treffer',
diff --git a/sql/Pg-upgrade2/customer_add_fields.sql b/sql/Pg-upgrade2/customer_add_fields.sql
new file mode 100644 (file)
index 0000000..5bfd622
--- /dev/null
@@ -0,0 +1,5 @@
+-- @tag: customer_add_fields
+-- @description: Rechnungsadresse (E-Mail-Empfänger) Herkunft der personenbezogenen Daten
+-- @depends: release_3_5_3
+ALTER TABLE customer ADD COLUMN invoice_mail text;
+ALTER TABLE customer ADD COLUMN contact_origin text;
index 988089d..81f402d 100644 (file)
         <input name="l_pricegroup" id="l_pricegroup" type="checkbox" class="checkbox" value="Y">
         <label for="l_pricegroup">[% 'Pricegroup' | $T8 %]</label>
        </td>
+       <td>
+        <input name="l_contact_origin" id="l_contact_origin" type="checkbox" class="checkbox" value="Y">
+        <label for="l_contact_origin">[% 'Origin of personal data' | $T8 %]</label>
+       </td>
+       <td>
+        <input name="l_invoice_mail" id="l_invoice_mail" type="checkbox" class="checkbox" value="Y">
+        <label for="l_invoice_mail">[% 'Email of the invoice recipient' | $T8 %]</label>
+       </td>
       </tr>
       [% END %]
 
index 3364df1..6981c59 100644 (file)
         [% L.input_tag('cv.bcc', SELF.cv.bcc, size = 45) %]
       </td>
     </tr>
-
+    [% IF ( SELF.is_customer() ) %]
+    <tr>
+      <th align="right">[% 'Email of the invoice recipient' | $T8 %]</th>
+      <td>[% L.input_tag('cv.invoice_mail', SELF.cv.invoice_mail, size = 45) %]</td>
+    </tr>
+    [% END %]
     <tr>
       <th align="right" nowrap>
         [% IF SELF.cv.homepage %]
   <table>
     <tr>
       <th align="left" nowrap>[% 'Internal Notes' | $T8 %]</th>
+    [% IF ( SELF.is_customer() ) %]
+      <th align="left">[% 'Origin of personal data' | $T8 %]</th>
+    [% END %]
     </tr>
-
     <tr>
       <td>
         [% L.textarea_tag('cv.notes', SELF.cv.notes, rows = 3 cols = 60 wrap = soft) %]
       </td>
+    [% IF ( SELF.is_customer() ) %]
+      <td>
+        [% L.textarea_tag('cv.contact_origin', SELF.cv.contact_origin,  rows = 3 cols = 60 wrap = soft) %]
+      </td>
+    [% END %]
     </tr>
   </table>
 </div>