From 3797ba4f07eabe9ebc3c5ac58ffb0d8bbd0366f6 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Thu, 21 Mar 2013 04:04:59 -0700
Subject: [PATCH] Bug 9261 - Allow librarians to make purchase suggestions for patrons - QA Followup

---
 .../intranet-tmpl/prog/en/includes/circ-menu.inc   |    2 +-
 .../en/modules/members/purchase-suggestions.tt     |    4 +-
 .../prog/en/modules/suggestion/suggestion.tt       |    1 +
 members/purchase-suggestions.pl                    |    2 +-
 suggestion/suggestion.pl                           |   50 ++++++++++---------
 5 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
index 19b7fbc..ac9cd4b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
@@ -83,7 +83,7 @@
     [% IF EnableBorrowerFiles %]
         [% IF ( borrower_files ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% borrowernumber %]">Files</a></li>
     [% END %]
-    [% IF (  suggestions ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=[% borrowernumber %]">Purchase suggestions</a></li>
+    [% IF (  suggestions ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=[% borrowernumber %]">Purchase<br/>suggestions</a></li>
 </ul></div>
 [% END %]
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/purchase-suggestions.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/purchase-suggestions.tt
index 225ab1d..7125c1c 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/purchase-suggestions.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/purchase-suggestions.tt
@@ -11,8 +11,6 @@
 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
 [% INCLUDE 'datatables-strings.inc' %]
 <script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
-[% INCLUDE 'calendar.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
 <script type="text/javascript">
     $(document).ready(function() {
         $("#suggestions").dataTable($.extend(true, {}, dataTablesDefaults, {
@@ -46,7 +44,7 @@
 
                 <div id="toolbar">
                     <ul class="toolbar">
-                        <li><a id="newsuggestion" href="/cgi-bin/koha/suggestion/suggestion.pl?op=add&suggestedby=[% borrowernumber %]&redirect=[% borrowernumber %]">New purchase suggestion</a></li>
+                        <li><a id="newsuggestion" href="/cgi-bin/koha/suggestion/suggestion.pl?op=add&suggestedby=[% borrowernumber %]&redirect=purchase_suggestions&borrowernumber=[% borrowernumber %]">New purchase suggestion</a></li>
                     </ul>
                 </div>
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
index b32eaf8..c5cf82e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
@@ -257,6 +257,7 @@ $(document).ready(function() { calcNewsuggTotal(); });
 [% IF ( op_save ) %]
     <form id="add_edit" action="suggestion.pl" method="post">
     <input type="hidden" name="redirect" id="redirect" value="[% redirect %]" />
+    <input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" />
     [% IF ( suggestionid ) %]
         <h1>Edit purchase suggestion #[% suggestionid %]</h1>
         <input type="hidden" name="suggestionid" value="[% suggestionid %]"/>
diff --git a/members/purchase-suggestions.pl b/members/purchase-suggestions.pl
index 8a55075..52feafe 100755
--- a/members/purchase-suggestions.pl
+++ b/members/purchase-suggestions.pl
@@ -30,7 +30,7 @@ use C4::Suggestions;
 my $input = new CGI;
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
-    {   template_name   => "members/purchase-suggestions.tmpl",
+    {   template_name   => "members/purchase-suggestions.tt",
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
diff --git a/suggestion/suggestion.pl b/suggestion/suggestion.pl
index 4f198ae..23c74ce 100755
--- a/suggestion/suggestion.pl
+++ b/suggestion/suggestion.pl
@@ -100,12 +100,15 @@ my ( $template, $borrowernumber, $cookie, $userflags ) = get_template_and_user(
             flagsrequired   => { catalogue => 1 },
         }
     );
+    
+$borrowernumber = $input->param('borrowernumber') if ( $input->param('borrowernumber') );
+$template->param('borrowernumber' => $borrowernumber);
 
 #########################################
 ##  Operations
 ##
 if ( $op =~ /save/i ) {
-	if ( $$suggestion_ref{"STATUS"} ) {
+        if ( $$suggestion_ref{"STATUS"} ) {
         if ( my $tmpstatus = lc( $$suggestion_ref{"STATUS"} ) =~ /ACCEPTED|REJECTED/i ) {
             $$suggestion_ref{ lc( $$suggestion_ref{"STATUS"}) . "date" } = C4::Dates->today;
             $$suggestion_ref{ lc( $$suggestion_ref{"STATUS"}) . "by" }   = C4::Context->userenv->{number};
@@ -120,7 +123,7 @@ if ( $op =~ /save/i ) {
         my $suggestions_loop =
             SearchSuggestion( $suggestion_ref );
         if (@$suggestions_loop>=1){
-            #some suggestion are answering the request Donot Add	
+            #some suggestion are answering the request Donot Add
         } 
         else {    
             ## Adding some informations related to suggestion
@@ -131,8 +134,8 @@ if ( $op =~ /save/i ) {
     map{delete $$suggestion_ref{$_}} keys %$suggestion_ref;
     $op = 'else';
 
-    if( $redirect ) {
-        print $input->redirect("/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=$redirect");
+    if( $redirect eq 'purchase_suggestions' ) {
+        print $input->redirect("/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=$borrowernumber");
     }
             
 }
@@ -157,20 +160,20 @@ elsif ($op eq "change" ) {
         $$suggestion_ref{"rejecteddate"}=C4::Dates->today;
         $$suggestion_ref{"rejectedby"}=C4::Context->userenv->{number};
     }
-	if ($$suggestion_ref{"STATUS"}){
-		$$suggestion_ref{"manageddate"}=C4::Dates->today;
-		$$suggestion_ref{"managedby"}=C4::Context->userenv->{number};
-	}
-	if ( my $reason = $$suggestion_ref{"reason$tabcode"}){
-		if ( $reason eq "other" ) {
-				$reason = $$suggestion_ref{"other_reason$tabcode"};
-		}
-		$$suggestion_ref{'reason'}=$reason;
-	}
-	delete $$suggestion_ref{$_} foreach ("reason$tabcode", "other_reason$tabcode");
- 	foreach (keys %$suggestion_ref){
-		delete $$suggestion_ref{$_} unless ($$suggestion_ref{$_});
-	}
+    if ($$suggestion_ref{"STATUS"}){
+        $$suggestion_ref{"manageddate"}=C4::Dates->today;
+        $$suggestion_ref{"managedby"}=C4::Context->userenv->{number};
+    }
+    if ( my $reason = $$suggestion_ref{"reason$tabcode"}){
+        if ( $reason eq "other" ) {
+                $reason = $$suggestion_ref{"other_reason$tabcode"};
+        }
+        $$suggestion_ref{'reason'}=$reason;
+    }
+    delete $$suggestion_ref{$_} foreach ("reason$tabcode", "other_reason$tabcode");
+     foreach (keys %$suggestion_ref){
+        delete $$suggestion_ref{$_} unless ($$suggestion_ref{$_});
+    }
     foreach my $suggestionid (@editsuggestions) {
         next unless $suggestionid;
         $$suggestion_ref{'suggestionid'}=$suggestionid;
@@ -274,7 +277,7 @@ $template->param(
 
 if(defined($returnsuggested) and $returnsuggested ne "noone")
 {
-	print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=".$returnsuggested."#suggestions");
+    print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=".$returnsuggested."#suggestions");
 }
 
 ####################
@@ -362,13 +365,13 @@ for ( my $i = 0 ; $i < $count ; $i++ ) {
     my %line;
     $line{currcode} = $rates[$i]->{'currency'};
     $line{rate}     = $rates[$i]->{'rate'};
-	$line{selected} = 1 if ($line{'currcode'} eq $selected_currency);
+    $line{selected} = 1 if ($line{'currcode'} eq $selected_currency);
     push @loop_currency, \%line;
 }
 $template->param(
-        loop_currency => \@loop_currency,
-	price        => sprintf("%.2f", $$suggestion_ref{'price'}||0),
-	total            => sprintf("%.2f", $$suggestion_ref{'total'}||0),
+    loop_currency => \@loop_currency,
+    price        => sprintf("%.2f", $$suggestion_ref{'price'}||0),
+    total            => sprintf("%.2f", $$suggestion_ref{'total'}||0),
 );
 
 # lists of distinct values (without empty) for filters
@@ -386,7 +389,6 @@ foreach my $field ( qw(managedby acceptedby suggestedby budgetid) ) {
     } @$values_list;
     $hashlists{ lc($field) . "_loop" } = \@codes_list;
 }
-$template->param(%hashlists);
 
 $template->param(
     %hashlists,
-- 
1.7.2.5