Anpassung Rose-Funktionen auf Umstellung currencies
[kivitendo-erp.git] / SL / IC.pm
index d458862..74cfe17 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -157,7 +157,7 @@ SQL
   $trq->finish;
 
   # is it an orphan
-  my @referencing_tables = qw(invoice orderitems inventory rmaitems);
+  my @referencing_tables = qw(invoice orderitems inventory);
   my %column_map         = ( );
   my $parts_id           = conv_i($form->{id});
 
@@ -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};
@@ -1497,6 +1511,8 @@ sub retrieve_accounts {
     # if credit_note has a deliverydate, use this instead of invdate
     # useful for credit_notes of invoices from an old period with different tax
     # if there is no deliverydate then invdate is used, old default (see next elsif)
+    # Falls hier der Stichtag für Steuern anders bestimmt wird,
+    # entsprechend auch bei Taxkeys.pm anpassen
     $transdate = $form->{deliverydate};
   } elsif (($form->{type} eq "credit_note") || ($form->{script} eq 'ir.pl')) {
     $transdate = $form->{invdate};
@@ -1616,8 +1632,8 @@ sub prepare_parts_for_printing {
   my $self     = shift;
   my %params   = @_;
 
-  my $myconfig = \%main::myconfig;
-  my $form     = $main::form;
+  my $myconfig = $params{myconfig} || \%main::myconfig;
+  my $form     = $params{form}     || $main::form;
 
   my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);