INSTALL.fcgi encoding
[kivitendo-erp.git] / bin / mozilla / is.pl
index b5e0927..740002b 100644 (file)
@@ -155,14 +155,6 @@ sub invoice_links {
     $ref->{name} = $form->quote($ref->{name});
   }
 
-  # Load data for a specific order and update form fields
-  my $order_data = OE->get_order_data_by_ordnumber(%$form) if $form->{ordnumber};
-
-  # Copy the fields we need to %form
-  for my $key (qw(payment_id salesman_id orddate taxzone_id quonumber)) {
-    $form->{$key} = $order_data->{$key};
-  }
-
   $form->restore_vars(qw(id));
 
   IS->retrieve_invoice(\%myconfig, \%$form);
@@ -274,7 +266,13 @@ sub prepare_invoice {
 
     # get pricegroups for parts
     IS->get_pricegroups_for_parts(\%myconfig, \%$form);
-    set_pricegroup($_) for 1 .. $form->{rowcount};
+
+    # Problem: set_pricegroup resets the sellprice of old invoices to the price
+    # currently defined in the pricegroup, which is a problem if the price has
+    # changed, as the old invoice gets the new price
+    # set_pricegroup must never be called, when an old invoice is initially loaded
+
+    # set_pricegroup($_) for 1 .. $form->{rowcount};
   }
   $main::lxdebug->leave_sub();
 }
@@ -476,7 +474,7 @@ sub update {
 
   my ($recursive_call) = shift;
 
-#  map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining) unless $recursive_call;
+  $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}) unless $recursive_call;
 
   $form->{print_and_post} = 0         if $form->{second_run};
   my $taxincluded            = "checked" if $form->{taxincluded};
@@ -639,7 +637,7 @@ sub post_payment {
   # Das Problem hierbei ist, dass in IS.pm post_invoice IMMER alle Zahlungseingänge aus $form
   # erneut gespeichert werden. Prinzipiell wäre es besser NUR die Änderungen des Rechnungs-
   # belegs (neue Zahlung aber nichts anderes) zu speichern ...
-  # Vielleicht könnte man ähnlich wie bei Rechnung löschen verfahren 
+  # Vielleicht könnte man ähnlich wie bei Rechnung löschen verfahren
   $form->error($locale->text('Cannot post payment for a closed period!'))
     if ($form->date_closed($form->{"datepaid_$form->{paidaccounts}"}, \%myconfig));
 
@@ -788,6 +786,11 @@ sub use_as_template {
   $form->{paidaccounts} = 1;
   $form->{rowcount}--;
   $form->{invdate} = $form->current_date(\%myconfig);
+
+  # remember pricegroups for "use as template"
+  IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+  set_pricegroup($_) for 1 .. $form->{rowcount};
+
   &display_form;
 
   $main::lxdebug->leave_sub();