Lieferdatum in Gutschrift und Einkaufsrechnung
authordigifoto <digifoto@kivitendo.digifoto24.com>
Mon, 26 Nov 2012 16:33:59 +0000 (17:33 +0100)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Tue, 19 Mar 2013 14:46:18 +0000 (15:46 +0100)
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
SL/IR.pm
sql/Pg-upgrade2/ap_deliverydate.sql [new file with mode: 0644]

index 7a52096..96e3a94 100644 (file)
--- 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};
index 1f0ae58..22c5dc1 100644 (file)
--- 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 (file)
index 0000000..9d06aa1
--- /dev/null
@@ -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;