From a7b17d8cf379dfc5f34bb3179537148d0a986786 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Mon, 10 Sep 2018 21:23:04 +0200 Subject: [PATCH] =?utf8?q?SEPA-Export:=20=C3=9Cberweisungen=20via=20SEPA?= =?utf8?q?=20-=20Feature=20=C3=9Cberweisungsdatum=20vorbelegen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 3 +++ bin/mozilla/sepa.pl | 14 ++++++++++++++ doc/changelog | 6 +++++- locale/de/all | 3 +++ .../sepa_recommended_execution_date.sql | 7 +++++++ templates/webpages/client_config/_features.html | 13 ++++++++++++- templates/webpages/sepa/bank_transfer_create.html | 2 +- 7 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 sql/Pg-upgrade2/sepa_recommended_execution_date.sql diff --git a/SL/DB/MetaSetup/Default.pm b/SL/DB/MetaSetup/Default.pm index 8f052b67a..d1f8db557 100644 --- a/SL/DB/MetaSetup/Default.pm +++ b/SL/DB/MetaSetup/Default.pm @@ -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 }, diff --git a/bin/mozilla/sepa.pl b/bin/mozilla/sepa.pl index 36f2ff4c6..7218846a9 100755 --- a/bin/mozilla/sepa.pl +++ b/bin/mozilla/sepa.pl @@ -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; diff --git a/doc/changelog b/doc/changelog index b51f1364d..45aa5180a 100644 --- a/doc/changelog +++ b/doc/changelog @@ -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 diff --git a/locale/de/all b/locale/de/all index 4811fdef0..f8ce2d640 100755 --- a/locale/de/all +++ b/locale/de/all @@ -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 index 000000000..af28a6abd --- /dev/null +++ b/sql/Pg-upgrade2/sepa_recommended_execution_date.sql @@ -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; diff --git a/templates/webpages/client_config/_features.html b/templates/webpages/client_config/_features.html index 1b685bd3a..045c54299 100644 --- a/templates/webpages/client_config/_features.html +++ b/templates/webpages/client_config/_features.html @@ -302,7 +302,18 @@ [% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %] [% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %] - + + [% LxERP.t8('Set the invoice duedate as the default execution date for SEPA export.') %] + [% L.yes_no_tag('defaults.sepa_set_duedate_as_default_exec_date', SELF.defaults.sepa_set_duedate_as_default_exec_date) %] + + + [% LxERP.t8('Set the invoice skonto date (if exists) as the default execution date for SEPA export.') %] + [% L.yes_no_tag('defaults.sepa_set_skonto_date_as_default_exec_date', SELF.defaults.sepa_set_skonto_date_as_default_exec_date) %] + + + [% LxERP.t8('In addition to the above date functions, subtract the following amount of days from the calculated date as a buffer.') %] + [% 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) %] + [% LxERP.t8("Experimental Features") %] [% LxERP.t8('Enable experimental features') %] diff --git a/templates/webpages/sepa/bank_transfer_create.html b/templates/webpages/sepa/bank_transfer_create.html index 9e0aa87ff..0eab6ffb5 100644 --- a/templates/webpages/sepa/bank_transfer_create.html +++ b/templates/webpages/sepa/bank_transfer_create.html @@ -124,7 +124,7 @@ [%- 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 %] - [% 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) %] [%- END %] -- 2.20.1