From a2ab888de6fd1664a7b902ea1aad37b42872f4cc Mon Sep 17 00:00:00 2001 From: digifoto Date: Mon, 26 Nov 2012 17:33:59 +0100 Subject: [PATCH] Lieferdatum in Gutschrift und Einkaufsrechnung MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bei der Verkaufsgutschrift und der Einkaufsrechnung hat jetzt das Lieferdatum (oder Leistungsdatum) wie bei der Rechnung Vorrang vor dem Rechnungsdatum, wenn es gesetzt ist. Einkaufsgutschriften gibt es noch nicht. Anwendungsbeispiele: * nach einer Mehrwertsteueränderung möchte man eine Rechnung mit dem alten Steuersatz gutschreiben, und braucht dafür natürlich noch den alten Steuersatz. * nach einer Mehrwertsteueränderung muß man eine Einkaufsrechnung mit dem alten Steuersatz buchen Bei Erstellung von Verkaufsgutschrift aus Verkaufsrechnung wird das Lieferdatum jetzt übernommen und mit gespeichert. Bei Einkaufsrechnungen (ap) wird jetzt auch Lieferdatum gespeichert, neue Spalte deliverydate. --- SL/IC.pm | 18 ++++++++++++++++-- SL/IR.pm | 4 +++- sql/Pg-upgrade2/ap_deliverydate.sql | 5 +++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 sql/Pg-upgrade2/ap_deliverydate.sql diff --git a/SL/IC.pm b/SL/IC.pm index 7a52096a0..96e3a94a1 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -1487,8 +1487,22 @@ sub retrieve_accounts { # transdate madness. my $transdate = ""; - if ($form->{type} eq "invoice") { - if (($form->{vc} eq "vendor") || !$form->{deliverydate}) { + if ($form->{type} eq "invoice" or $form->{type} eq "credit_note") { + # use deliverydate for sales and purchase invoice, if it exists + # also use deliverydate for credit notes + if (!$form->{deliverydate}) { + $transdate = $form->{invdate}; + } else { + $transdate = $form->{deliverydate}; + } + } elsif ($form->{script} eq 'ir.pl') { + # when a purchase invoice is opened from the report of purchase invoices + # $form->{type} isn't set, but $form->{script} is, not sure why this is or + # whether this distinction matters in some other scenario. Otherwise one + # could probably take out this elsif and add a + # " or $form->{script} eq 'ir.pl' " + # to the above if-statement + if (!$form->{deliverydate}) { $transdate = $form->{invdate}; } else { $transdate = $form->{deliverydate}; diff --git a/SL/IR.pm b/SL/IR.pm index 1f0ae58f7..22c5dc124 100644 --- a/SL/IR.pm +++ b/SL/IR.pm @@ -1218,7 +1218,9 @@ sub retrieve_item { my $transdate = ""; if ($form->{type} eq "invoice") { - $transdate = $form->{invdate} ? $dbh->quote($form->{invdate}) : "current_date"; + $transdate = $form->{deliverydate} ? $dbh->quote($form->{deliverydate}) + : $form->{invdate} ? $dbh->quote($form->{invdate}) + : "current_date"; } else { $transdate = $form->{transdate} ? $dbh->quote($form->{transdate}) : "current_date"; } diff --git a/sql/Pg-upgrade2/ap_deliverydate.sql b/sql/Pg-upgrade2/ap_deliverydate.sql new file mode 100644 index 000000000..9d06aa19d --- /dev/null +++ b/sql/Pg-upgrade2/ap_deliverydate.sql @@ -0,0 +1,5 @@ +-- @tag: ap_deliverydate +-- @description: deliverydate zu Einkaufsrechnung hinzufügen +-- @depends: release_3_0_0 +-- @charset: utf-8 +ALTER TABLE ap ADD COLUMN deliverydate date; -- 2.20.1