Kunden Mandanten ID fuer SEPA Lastschrift implementiert.
authorWaldemar Toews <waldemar.toews@opendynamic.de>
Tue, 7 Jan 2014 15:58:42 +0000 (16:58 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 7 Jan 2014 16:01:54 +0000 (17:01 +0100)
SL/DB/MetaSetup/Customer.pm
SL/DB/MetaSetup/Vendor.pm
SL/SEPA.pm
SL/SEPA/XML.pm
bin/mozilla/sepa.pl
locale/de/all
sql/Pg-upgrade2/add_customer_mandator_id.sql [new file with mode: 0644]
templates/webpages/sepa/bank_transfer_create.html
templates/webpages/sepa/bank_transfer_edit.html

index 3652c7a..52414ea 100644 (file)
@@ -39,6 +39,7 @@ __PACKAGE__->meta->columns(
   klass               => { type => 'integer', default => '0' },
   language            => { type => 'varchar', length => 5 },
   language_id         => { type => 'integer' },
+  mandator_id         => { type => 'text' },
   mtime               => { type => 'timestamp' },
   name                => { type => 'text', not_null => 1 },
   notes               => { type => 'text' },
index 0493aa3..8d451ad 100644 (file)
@@ -36,6 +36,7 @@ __PACKAGE__->meta->columns(
   itime            => { type => 'timestamp', default => 'now()' },
   language         => { type => 'varchar', length => 5 },
   language_id      => { type => 'integer' },
+  mandator_id      => { type => 'text' },
   mtime            => { type => 'timestamp' },
   name             => { type => 'varchar', length => 75, not_null => 1 },
   notes            => { type => 'text' },
index d31204e..21629ba 100644 (file)
@@ -177,8 +177,10 @@ sub retrieve_export {
   if ($export->{id}) {
     my ($columns, $joins);
 
+    my $mandator_id = $params{vc} eq 'customer' ? ', mandator_id' : '';
+
     if ($params{details}) {
-      $columns = qq|, arap.invnumber, arap.invoice, arap.transdate AS reference_date, vc.name AS vc_name, vc.${vc}number AS vc_number, c.accno AS chart_accno, c.description AS chart_description|;
+      $columns = qq|, arap.invnumber, arap.invoice, arap.transdate AS reference_date, vc.name AS vc_name, vc.${vc}number AS vc_number, c.accno AS chart_accno, c.description AS chart_description, ${mandator_id}|;
       $joins   = qq|LEFT JOIN ${arap} arap ON (sei.${arap}_id = arap.id)
                     LEFT JOIN ${vc} vc     ON (arap.${vc}_id  = vc.id)
                     LEFT JOIN chart c      ON (sei.chart_id   = c.id)|;
index 90c77ec..f939453 100644 (file)
@@ -223,7 +223,7 @@ sub to_xml {
         $xml->startTag('DrctDbtTx');
 
         $xml->startTag('MndtRltdInf');
-        $xml->dataElement('MndtId', $self->_restricted_identification_sepa2($transaction->get('company_number')));
+        $xml->dataElement('MndtId', $self->_restricted_identification_sepa2($transaction->get('mandator_id')));
         $xml->dataElement('DtOfSgntr', $transaction->get('reference_date', 2010-12-02));
         $xml->endTag('MndtRltdInf');
 
index 3ac7c3e..e7ca5ec 100755 (executable)
@@ -496,6 +496,7 @@ sub bank_transfer_download_sepa_xml {
 
   foreach my $item (@items) {
     my $requested_execution_date;
+    my $mandator_id;
     if ($item->{requested_execution_date}) {
       my ($yy, $mm, $dd)        = $locale->parse_date($myconfig, $item->{requested_execution_date});
       $requested_execution_date = sprintf '%04d-%02d-%02d', $yy, $mm, $dd;
@@ -504,6 +505,7 @@ sub bank_transfer_download_sepa_xml {
     if ($vc eq 'customer') {
       my ($yy, $mm, $dd)      = $locale->parse_date($myconfig, $item->{reference_date});
       $item->{reference_date} = sprintf '%04d-%02d-%02d', $yy, $mm, $dd;
+      $mandator_id = $item->{mandator_id};
     }
 
     $sepa_xml->add_transaction({ 'src_iban'       => $item->{our_iban},
@@ -514,6 +516,7 @@ sub bank_transfer_download_sepa_xml {
                                  'company_number' => $item->{vc_number},
                                  'amount'         => $item->{amount},
                                  'reference'      => $item->{reference},
+                                 'mandator_id'    => $mandator_id,
                                  'reference_date' => $item->{reference_date},
                                  'execution_date' => $requested_execution_date,
                                  'end_to_end_id'  => $item->{end_to_end_id} });
index 9e50555..0528230 100755 (executable)
@@ -1286,6 +1286,7 @@ $self->{texts} = {
   'Make default profile'        => 'Zu Standardprofil machen',
   'Manage Custom Variables'     => 'Benutzerdefinierte Variablen',
   'Mandantennummer'             => 'Mandantennummer',
+  'Mandator ID'                 => 'Mandanten-ID',
   'Mandatory Departments'       => 'Benutzer muss Abteilungen vergeben',
   'Map'                         => 'Karte',
   'Mar'                         => 'März',
diff --git a/sql/Pg-upgrade2/add_customer_mandator_id.sql b/sql/Pg-upgrade2/add_customer_mandator_id.sql
new file mode 100644 (file)
index 0000000..e27eba5
--- /dev/null
@@ -0,0 +1,6 @@
+-- @tag: add_customer_mandator_id
+-- @description: Einführen einer Mandanten ID Spalte bei Kunden und Lieferanten.
+-- @depends: release_3_0_0
+
+ALTER TABLE customer ADD mandator_id text;
+ALTER TABLE vendor   ADD mandator_id text;
index 0924982..e5ef656 100644 (file)
@@ -47,6 +47,9 @@
      <th class="listheading">[% 'IBAN' | $T8 %]</th>
      <th class="listheading">[% 'BIC' | $T8 %]</th>
      <th class="listheading">[% 'Bank' | $T8 %]</th>
+     [% IF vc == 'customer' %]
+      <th class="listheading">[% 'Mandator ID' | $T8 %]</th>
+     [%- END %]
     </tr>
 
     [%- FOREACH vbi = VC_BANK_INFO %]
@@ -59,6 +62,9 @@
      <td><input name="vc_bank_info[].iban" size="34" value="[% HTML.escape(vbi.iban.substr(0, 34)) %]" maxlength="34"></td>
      <td><input name="vc_bank_info[].bic" size="20" value="[% HTML.escape(vbi.bic.substr(0, 20)) %]" maxlength="20"></td>
      <td><input name="vc_bank_info[].bank" size="30" value="[% HTML.escape(vbi.bank) %]"></td>
+     [% IF vc == 'customer' %]
+      <td><input name="vc_bank_info[].mandator_id" size="30" value="[% HTML.escape(vbi.mandator_id) %]"></td>
+     [%- END %]
     </tr>
     [%- END %]
    </table>
index b8f209d..589b358 100644 (file)
@@ -33,6 +33,9 @@
       <th class="listheading" colspan="2">[% 'Source bank account' | $T8 %]</th>
      [%- END %]
      <th class="listheading" align="right">[% 'Amount' | $T8 %]</th>
+     [% IF vc == 'customer' %]
+      <th class="listheading" align="right">[% 'Mandator ID' | $T8 %]</th>
+     [%- END %]
      <th class="listheading">[% 'Reference' | $T8 %]</th>
      <th class="listheading" align="right">[% 'Requested execution date' | $T8 %]</th>
      <th class="listheading" align="right">[% 'Execution date' | $T8 %]</th>
@@ -44,7 +47,7 @@
      <th class="listheading">[% 'IBAN' | $T8 %]</th>
      <th class="listheading">[% 'BIC' | $T8 %]</th>
      [%- IF show_post_payments_button %]
-      <th class="listheading" colspan="3">&nbsp;</th>
+      <th class="listheading" colspan="[% IF vc == 'customer' %]4[% ELSE %]3[% END %]">&nbsp;</th>
       <th class="listheading">
         [% L.date_tag('set_all_execution_date', '', onchange='set_all_execution_date_fields(this);') %]
       </th>
@@ -73,6 +76,9 @@
       <td>[% HTML.escape(item.vc_iban) %]</td>
       <td>[% HTML.escape(item.vc_bic) %]</td>
       <td align="right">[% HTML.escape(LxERP.format_amount(item.amount, 2)) %]</td>
+      [% IF vc == 'customer' %]
+       <td>[% HTML.escape(item.mandator_id) %]</td>
+      [%- END %]
       <td>[% HTML.escape(item.reference) %]</td>
       <td align="right">[% HTML.escape(item.requested_execution_date) %]</td>
       <td align="right" nowrap>