Bug 6894: Order from suggestion defaulting to wrong currency
authorKatrin Fischer <Katrin.Fischer.83@web.de>
Tue, 25 Oct 2011 15:38:04 +0000 (17:38 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Mon, 28 Nov 2011 09:22:04 +0000 (10:22 +0100)
This problem turned out to be a bit different, than I initally thought.

This patch fixes the currency selections for new orders created in staff.
Before this patch, the first currency in the list was selected instead
of the active currency. So you needed to change it explicitly.

After patch it should work like this:

1) Suggestion created in OPAC - currency defaults to NULL in database
2) Editing a suggestion created in OPAC will default to active currency.
3) Creating a new suggestion in staff will default to active currency.
4) When ordering, the currency will default to the vendor currency, if no
currency is set in the suggestion. (still happens, when suggestions are accepted
in batch from the list.

I hope this is right - comments and testing appreciated.

Signed-off-by: Liz Rea <lrea@nekls.org>
Verified that in the above places, active currency was displayed or selected. Tested both suggestions entered from the OPAC and from the intranet.

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Verified the existence of the bug, and that the fix works as advertised.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>

suggestion/suggestion.pl

index 18f71b0..272ca6f 100755 (executable)
@@ -307,13 +307,21 @@ $template->param( "statusselected_$$suggestion_ref{'STATUS'}" =>1);
 # get currencies and rates
 my @rates = GetCurrencies();
 my $count = scalar @rates;
+my $active_currency = GetCurrency();
+my $selected_currency;
+if ($$suggestion_ref{'currency'}) {
+    $selected_currency = $$suggestion_ref{'currency'};
+}
+else {
+    $selected_currency = $active_currency->{currency};
+}
 
 my @loop_currency = ();
 for ( my $i = 0 ; $i < $count ; $i++ ) {
     my %line;
     $line{currcode} = $rates[$i]->{'currency'};
     $line{rate}     = $rates[$i]->{'rate'};
-       $line{selected} = 1 if ($$suggestion_ref{'currency'} && $line{'currcode'} eq $$suggestion_ref{'currency'});
+       $line{selected} = 1 if ($line{'currcode'} eq $selected_currency);
     push @loop_currency, \%line;
 }