]> wagnertech.de Git - kivitendo-erp.git/commitdiff
SEPA-Export: Überweisungen via SEPA - Feature Überweisungsdatum vorbelegen
authorJan Büren <jan@kivitendo.de>
Mon, 10 Sep 2018 19:23:04 +0000 (21:23 +0200)
committerJan Büren <jan@kivitendo.de>
Mon, 10 Sep 2018 19:23:04 +0000 (21:23 +0200)
Muss aktiv in der Mandantenkonfiguration (Feature -> SEPA) aktiviert werden.
Entweder wird ein vorhandenes Skontoziel als Ausführungsdatum an
die Bank/Export übergeben oder die Netto-Fälligkeit.
Skonto geht vor Netto. Bei beiden Verfahren wird ein Puffer
in Tagen (Standard 0) abgezogen.

SL/DB/MetaSetup/Default.pm
bin/mozilla/sepa.pl
doc/changelog
locale/de/all
sql/Pg-upgrade2/sepa_recommended_execution_date.sql [new file with mode: 0644]
templates/webpages/client_config/_features.html
templates/webpages/sepa/bank_transfer_create.html

index 8f052b67abb81ce77b4613aa16e668f3fa539767..d1f8db557184aa438962a79654327d10b2ff15a7 100644 (file)
@@ -126,6 +126,9 @@ __PACKAGE__->meta->columns(
   sdonumber                                 => { type => 'text' },
   sepa_creditor_id                          => { type => 'text' },
   sepa_reference_add_vc_vc_id               => { type => 'boolean', default => 'false' },
+  sepa_set_duedate_as_default_exec_date     => { type => 'boolean', default => 'false' },
+  sepa_set_skonto_date_as_default_exec_date => { type => 'boolean', default => 'false' },
+  sepa_set_skonto_date_buffer_in_days       => { type => 'integer', default => '0' },
   servicenumber                             => { type => 'text' },
   shipped_qty_fill_up                       => { type => 'boolean', default => 'true', not_null => 1 },
   shipped_qty_item_identity_fields          => { type => 'array', default => '{parts_id}', not_null => 1 },
index 36f2ff4c604a6c404d55354e082ec62c92b2b2b9..7218846a97fbadc47d671a3bbb430bebb45fba2b 100755 (executable)
@@ -116,7 +116,21 @@ sub bank_transfer_create {
 
   # override default payment_type selection and set it to the one chosen by the user
   # in the previous step, so that we don't need the logic in the template
+  my $subtract_days   = $::instance_conf->get_sepa_set_skonto_date_buffer_in_days;
+  my $set_skonto_date = $::instance_conf->get_sepa_set_skonto_date_as_default_exec_date;
+  my $set_duedate     = $::instance_conf->get_sepa_set_duedate_as_default_exec_date;
   foreach my $bt (@bank_transfers) {
+    # add a good recommended exec date
+    # set to skonto date if exists or to duedate
+    # in both cases subtract the same buffer (if configured, default 0)
+    $bt->{recommended_execution_date} =
+      $set_skonto_date && $bt->{payment_type} eq 'with_skonto_pt' ?
+                   DateTime->from_kivitendo($bt->{skonto_date})->subtract(days => $subtract_days)->to_kivitendo
+   :  $set_duedate && $bt->{duedate}                              ?
+                   DateTime->from_kivitendo($bt->{duedate}    )->subtract(days => $subtract_days)->to_kivitendo
+   :  undef;
+
+
     foreach my $type ( @{$bt->{payment_select_options}} ) {
       if ( $type->{payment_type} eq $bt->{payment_type} ) {
         $type->{selected} = 1;
index b51f1364df0d03a62f12ce0352cd47a41e7678cf..45aa5180a921068997c0e2b3b319dc6ad119a5a0 100644 (file)
@@ -30,12 +30,16 @@ Kleinere neue Features und Detailverbesserungen:
   - Verknüpfte Belege um die Verknüpfung von Beleg nach E-Mail-Journal erweitert.
   - Filter nach Abteilungen für Lieferplan
   - Eindeutigkeit bei Rechnungsnummern von Kreditoren. (Es erfolgt eine  Warnung bei Duplikaten (Überprüfung auf Lieferant mit Rechnungsnummer))
-  - Mit SEPA-Export verknüpft Kreditorenbelege (Einkaufsrechnung oder Kreditorenbuchungen) können nicht mehr gelöscht oder storniert werden.
+  - Mit dem SEPA-Export verknüpfte Kreditorenbelege (Einkaufsrechnung oder Kreditorenbuchungen) können nicht mehr gelöscht oder storniert werden.
   - Tab "Belege" beim Kunden und Lieferanten. Offene Rechnungen, Aufträge
     werden angezeigt. Eine Umsatz und Mahnstatistik können in Tabs geöffnet
     werden. Belegtypen Angebote, Aufträge (Kunden), bzw Preisanfragen,
     Lieferantenaufträge (Lieferanten) sowie die Belege Rechnungen, Emails,
     Briefe können in weiteren Tabs angezeigt werden.
+  - SEPA-Export. Überweisungsdatum vorbelegen, entweder die Fälligkeit oder falls vorhanden das Skonto-Datum.
+    Das Skonto-Datum hat Priorität vor der letzten Fälligkeit.
+    Zusätzlich kann ein Puffer in Tagen vom Zahlungsziel abgezogen werden (Standard 0). Das Verhalten muss für jeden
+    Mandanten unter Mandantenkonfiguration -> Features -> SEPA aktiv eingeschaltet werden.
 
 Bugfixes:
 - Bugfix #336 Beim Drucken mehrerer Rechnung aus dem Bericht heraus mit aktiviertem DMS bricht mit Fehlermeldung ab
index 4811fdef00358339443f239418f370f05d5e57a7..f8ce2d640deee4cc49f9a8b6fc69b4a493e4cb42 100755 (executable)
@@ -1599,6 +1599,7 @@ $self->{texts} = {
   'Import result'               => 'Import-Ergebnis',
   'Import scanned documents'    => 'Importiere gescannte Dateien',
   'Importdate'                  => 'Importdatum',
+  'In addition to the above date functions, subtract the following amount of days from the calculated date as a buffer.' => 'Der folgende Puffer in Tagen wird von den beiden obigen vorausberechneten Daten abgezogen.',
   'In order to do that hit the button "Delete transaction".' => 'Drücken Sie dafür auf den Button "Buchung löschen".',
   'In order to migrate the old folder structure into the new structure you have to chose which client the old structure will be assigned to.' => 'Um die alte Ordnerstruktur in die neue Struktur zu migrieren, müssen Sie festlegen, welchem Mandanten die bisherige Struktur zugewiesen wird.',
   'In order to use kivitendo you have to create at least a client, a user and a group.' => 'Um kivitendo zu nutzen, müssen Sie mindestens einen Mandanten, einen Benutzer und eine Gruppe anlegen.',
@@ -2791,6 +2792,8 @@ $self->{texts} = {
   'Set fields'                  => 'Felder setzen',
   'Set lastcost'                => 'EK-Preis übernehmen',
   'Set sellprice'               => 'VK-Preis übernehmen',
+  'Set the invoice duedate as the default execution date for SEPA export.' => 'Das Fälligkeitsdatum des Belegs als Ausführungsdatum im SEPA-Export setzen.',
+  'Set the invoice skonto date (if exists) as the default execution date for SEPA export.' => 'Das Skonto-Datum des Belegs als Ausführungsdatum im SEPA-Export setzen. Hat Priorität vor dem Fälligkeitsdatum.',
   'Set to paid missing'         => 'Fehlbetrag setzen',
   'Settings'                    => 'Einstellungen',
   'Setup Menu'                  => 'Menü-Variante',
diff --git a/sql/Pg-upgrade2/sepa_recommended_execution_date.sql b/sql/Pg-upgrade2/sepa_recommended_execution_date.sql
new file mode 100644 (file)
index 0000000..af28a6a
--- /dev/null
@@ -0,0 +1,7 @@
+-- @tag: sepa_recommended_execution_date
+-- @description: Einstellung, ob bei SEPA Überweisungen zusätzlich die Lieferanten-/Kundennummer im Verwendungszweck angezeigt wird
+-- @depends: release_3_5_2
+
+ALTER TABLE defaults ADD COLUMN sepa_set_duedate_as_default_exec_date boolean DEFAULT FALSE;
+ALTER TABLE defaults ADD COLUMN sepa_set_skonto_date_as_default_exec_date boolean DEFAULT FALSE;
+ALTER TABLE defaults ADD COLUMN sepa_set_skonto_date_buffer_in_days integer DEFAULT 0;
index 1b685bd3a3c1b31669ba9caddb726e7c975ebd52..045c542994412ddd1d6e65ed9f28e8f1af5cf234 100644 (file)
    <td align="right">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
    <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
   </tr>
-
+  <tr>
+   <td align="right">[% LxERP.t8('Set the invoice duedate as the default execution date for SEPA export.') %]</td>
+   <td>[% L.yes_no_tag('defaults.sepa_set_duedate_as_default_exec_date', SELF.defaults.sepa_set_duedate_as_default_exec_date) %]</td>
+  </tr>
+  <tr>
+   <td align="right">[% LxERP.t8('Set the invoice skonto date (if exists) as the default execution date for SEPA export.') %]</td>
+   <td>[% L.yes_no_tag('defaults.sepa_set_skonto_date_as_default_exec_date', SELF.defaults.sepa_set_skonto_date_as_default_exec_date) %]</td>
+  </tr>
+  <tr>
+   <td align="right">[% LxERP.t8('In addition to the above date functions, subtract the following amount of days from the calculated date as a buffer.') %]</td>
+   <td>[% L.input_tag('defaults.sepa_set_skonto_date_buffer_in_days', LxERP.format_amount(SELF.defaults.sepa_set_skonto_date_buffer_in_days, 0), style=style) %]</td>
+  </tr>
   <tr><td class="listheading" colspan="4">[% LxERP.t8("Experimental Features") %]</td></tr>
   <tr>
    <td align="right">[% LxERP.t8('Enable experimental features') %]</td>
index 9e0aa87fff161b6f9d5b242badac00aa3b1c53c6..0eab6ffb58643b9716a7f6a505c7270eab249840 100644 (file)
       </td>
       <td align="left" [%- IF bank_transfer.within_skonto_period %]style="background-color: LightGreen"[%- END %]>[%- IF bank_transfer.skonto_amount %] [% LxERP.format_amount(bank_transfer.percent_skonto, 2) %] % = [% LxERP.format_amount(bank_transfer.skonto_amount, 2) %] € [% 'until' | $T8 %] [% bank_transfer.skonto_date %] [% END %]</td>
       <td nowrap>
-        [% L.date_tag('bank_transfers[].requested_execution_date', bank_transfer.requested_execution_date) %]
+        [% L.date_tag('bank_transfers[].requested_execution_date', bank_transfer.recommended_execution_date) %]
       </td>
      </tr>
     [%- END %]