fix for 394
authortipaul <tipaul>
Mon, 5 May 2003 11:21:31 +0000 (11:21 +0000)
committertipaul <tipaul>
Mon, 5 May 2003 11:21:31 +0000 (11:21 +0000)
koha-tmpl/opac-tmpl/default/en/opac-reserve.tmpl
koha-tmpl/opac-tmpl/default/fr/opac-reserve.tmpl
opac/opac-reserve.pl

index 7f84802..1439a27 100644 (file)
        <TMPL_IF NAME="too_many_reserves">Sorry, you cannot make more than <TMPL_VAR NAME="too_many_reserves"> reserves. </TMPL_IF>
        <TMPL_IF NAME="already_reserved">You already have a reserve placed on this item.</TMPL_IF>
        <TMPL_IF NAME="no_items_selected">You must select at least on item type!</TMPL_IF>
+       <TMPL_IF NAME="no_branch_selected">You must select a branch for pickup!</TMPL_IF>
        </B></font><P></td></tr></table>
 </TMPL_IF>
 <TMPL_IF NAME="select_item_types">
        <!-- The first time round you select which bibitems you want -->
-       <p>Reserve page for item: <b><TMPL_VAR NAME="title"> ( <TMPL_VAR NAME="author"> )</b></p>
+       <p>Reserve page for item: <b><TMPL_VAR NAME="title"> ( <TMPL_VAR NAME="author"> <TMPL_VAR name="biblionumber">)</b></p>
        <p> There are <b><TMPL_VAR NAME="rank"></b> reserves already on this item. </p>
        <p>Please select which item types are ok for you. The first of these item that matches one of these types that becomes available will be set kept for you.<p>
 
        <FORM ACTION="/cgi-bin/koha/opac-reserve.pl" method=post>
                <input type="hidden" name="item_types_selected" value="1">
-               <input type="hidden" name="bib" value="<TMPL_VAR NAME='biblionumber'>">
+               <input type="hidden" name="bib" value="<TMPL_VAR name="biblionumber">">
                <TABLE border=1>
                        <tr bgcolor="#99cccc" background='<TMPL_VAR NAME="themelang">/images/background-opac.gif'>
                                <th>Request</th>
@@ -47,7 +48,7 @@
                </table>
                <p>
                Please select the branch from which you want to collect the item:
-               <select name="branch"><TMPL_VAR NAME="branchoptions"></select><br>
+               <TMPL_VAR NAME="CGIbranch"><br>
                <p>
                <table border=0 cellpadding=0 cellspacing=0>
                        <tr>
index ff9b270..b5ced47 100755 (executable)
-<TMPL_INCLUDE NAME="members-top.inc">\r
-\r
-<center>\r
-\r
-<TMPL_IF NAME="loggedinuser">\r
-    <p align=left>Connect&eacute;: <TMPL_VAR NAME="loggedinuser"> [<a href=/cgi-bin/koha/opac-user.pl>Accueil usagers</a>][<a href=/cgi-bin/koha/opac-logout.pl>D&eacute;connexion</a>]</p>\r
-<TMPL_ELSE>\r
-    <p align=left><a href=/cgi-bin/koha/opac-user.pl>Se connecter</a> &agrave; Koha</p>\r
-</TMPL_IF>\r
-\r
-<TMPL_IF NAME="message">\r
-<table  cellpadding=5 cellspacing=0 border=1 >\r
-<tr bgcolor="#fecc99" >\r
-<td><font face="arial,helvetica" color="red" size=+1><B>\r
-<TMPL_IF NAME="too_much_oweing">D&eacute;sol&eacute;, vous ne pouvez pas r&eacute;server, vous avez une amende de  <TMPL_VAR NAME="too_much_oweing">.  </TMPL_IF>\r
-<TMPL_IF NAME="too_many_reserves">D&eacute;sol&eacute;, vous ne pouvez pas faire plus de <TMPL_VAR NAME="too_many_reserves"> r&eacute;servations. </TMPL_IF>\r
-<TMPL_IF NAME="already_reserved">Vous avez d&eacute;j&agrave; une r&eacute;servation en cours pour ce document.</TMPL_IF>\r
-<TMPL_IF NAME="no_items_selected">Vous devez s&eacute;lectionner au moins un type de document!</TMPL_IF>\r
-</B></font><P></td></tr></table>\r
-</TMPL_IF>\r
-\r
-\r
-<TMPL_IF NAME="select_item_types">\r
-<!-- The first time round you select which biblitems you want -->\r
-\r
-<p>\r
-R&eacute;servation du document suivant: <b><TMPL_VAR NAME="title"> ( <TMPL_VAR NAME="author"> )</b>\r
-</p>\r
-<p> Il y a d&eacute;j&agrave; <b><TMPL_VAR NAME="rank"></b> r&eacute;servations pour ce document. </p>\r
-<p>\r
-Veuillez s&eacute;lectionner les types de documents qui vous conviennent. Le premier document qui correspond &agrave; l'un de ces types sera mis de c&ocirc;t&eacute; pour vous.\r
-<p>\r
-\r
-<FORM ACTION="/cgi-bin/koha/opac-reserve.pl" method=post>\r
-<input type="hidden" name="item_types_selected" value="1">\r
-<input type="hidden" name="bib" value="<TMPL_VAR NAME='biblionumber'>">\r
-<TABLE border=1>\r
-<tr bgcolor="#99cccc" background='<TMPL_VAR NAME="themelang">/images/background-opac.gif'><th>R&eacute;servation</th><th>Type de document</th><th>Exemplaires</th></tr>\r
-\r
-<TMPL_LOOP NAME="TYPES">\r
-\r
-  <tr>\r
-  <TMPL_UNLESS NAME="notforloan">\r
-    <td><input type="checkbox" name="itemtype" value="<TMPL_VAR NAME='itemtype'>"></td>\r
-  <TMPL_ELSE>\r
-    <td>Exclu du pr&ecirc;t</td>\r
-  </TMPL_UNLESS>\r
-  <td><TMPL_VAR NAME="description"></td>\r
-  <td><TMPL_VAR NAME="copies"></td>\r
-\r
-  </tr>\r
-\r
-</TMPL_LOOP>\r
-\r
-</table>\r
-Veuillez s&eacute;lectionner la biblioth&egrave;que dans laquelle vous voulez retirer le document:\r
-<select name="branch"><TMPL_VAR NAME="branchoptions"></select><br>\r
-\r
-\r
-<font size=4 face="arial,helvetica"><INPUT type="submit" value="Submit"></font>\r
-\r
-</FORM>\r
-\r
-</TMPL_IF>\r
-\r
-<!-- if the bibitems have already been selected -->\r
-<TMPL_IF NAME="item_types_selected">\r
-\r
-<p>\r
-Veuillez confirmer que vous souhaitez r&eacute;server ces types de documents:\r
-<p>\r
-\r
-<FORM ACTION="/cgi-bin/koha/opac-reserve.pl" method=post>\r
-<input type="hidden" name="place_reserve" value="1">\r
-<input type="hidden" name="bib" value="<TMPL_VAR NAME='biblionumber'>">\r
-<TABLE border=1>\r
-<tr><th bgcolor="#99cccc" background='<TMPL_VAR NAME="themelang">/images/background-opac.gif'>Type de document</th></tr>\r
-\r
-<TMPL_LOOP NAME="TYPES">\r
-\r
-  <tr>\r
-  <input type="hidden" name="itemtype" value="<TMPL_VAR NAME='itemtype'>"></td>\r
-  <td><TMPL_VAR NAME="description"></td>\r
-  </tr>\r
-\r
-</TMPL_LOOP>\r
-\r
-</table>\r
-\r
-Qui devra &ecirc;tre retir&eacute; à la biblioth&egrave;que :  <b><TMPL_VAR NAME="branchname"></b>.<br>\r
-<input type="hidden" name="bib" value="<TMPL_VAR NAME='branch'>">\r
-\r
-<TMPL_IF NAME="fee">\r
-<br>Attention, il y aura des frais de r&eacute;servation de <b><TMPL_VAR NAME="fee">&euro;</b><br>\r
-</TMPL_IF>\r
-\r
-<font size=4 face="arial,helvetica"><INPUT type="submit" value="R&eacute;server"></font>\r
-\r
-</FORM>\r
-\r
-</TMPL_IF>\r
+<TMPL_INCLUDE NAME="members-top.inc">
+
+<center>
+
+<TMPL_IF NAME="loggedinuser">
+    <p align=left>Connect&eacute;: <TMPL_VAR NAME="loggedinuser"> [<a href=/cgi-bin/koha/opac-user.pl>Accueil usagers</a>][<a href=/cgi-bin/koha/opac-logout.pl>D&eacute;connexion</a>]</p>
+<TMPL_ELSE>
+    <p align=left><a href=/cgi-bin/koha/opac-user.pl>Se connecter</a> &agrave; Koha</p>
+</TMPL_IF>
+
+<TMPL_IF NAME="message">
+<table  cellpadding=5 cellspacing=0 border=1 >
+<tr bgcolor="#fecc99" >
+<td><font face="arial,helvetica" color="red" size=+1><B>
+<TMPL_IF NAME="too_much_oweing">D&eacute;sol&eacute;, vous ne pouvez pas r&eacute;server, vous avez une amende de  <TMPL_VAR NAME="too_much_oweing">.  </TMPL_IF>
+<TMPL_IF NAME="too_many_reserves">D&eacute;sol&eacute;, vous ne pouvez pas faire plus de <TMPL_VAR NAME="too_many_reserves"> r&eacute;servations. </TMPL_IF>
+<TMPL_IF NAME="already_reserved">Vous avez d&eacute;j&agrave; une r&eacute;servation en cours pour ce document.</TMPL_IF>
+<TMPL_IF NAME="no_items_selected">Vous devez s&eacute;lectionner au moins un type de document!</TMPL_IF>
+<TMPL_IF NAME="no_items_selected">Vous devez s&eacute;lectionner une  biblioth&egrave;que où prendre le document!</TMPL_IF></B></font><P></td></tr></table>
+</TMPL_IF>
+
+
+<TMPL_IF NAME="select_item_types">
+<!-- The first time round you select which biblitems you want -->
+
+<p>
+R&eacute;servation du document suivant: <b><TMPL_VAR NAME="title"> ( <TMPL_VAR NAME="author"> )</b>
+</p>
+<p> Il y a d&eacute;j&agrave; <b><TMPL_VAR NAME="rank"></b> r&eacute;servations pour ce document. </p>
+<p>
+Veuillez s&eacute;lectionner les types de documents qui vous conviennent. Le premier document qui correspond &agrave; l'un de ces types sera mis de c&ocirc;t&eacute; pour vous.
+<p>
+
+<FORM ACTION="/cgi-bin/koha/opac-reserve.pl" method=post>
+<input type="hidden" name="item_types_selected" value="1">
+<input type="hidden" name="bib" value="<TMPL_VAR NAME='biblionumber'>">
+<TABLE border=1>
+<tr bgcolor="#99cccc" background='<TMPL_VAR NAME="themelang">/images/background-opac.gif'><th>R&eacute;servation</th><th>Type de document</th><th>Exemplaires</th></tr>
+
+<TMPL_LOOP NAME="TYPES">
+
+  <tr>
+  <TMPL_UNLESS NAME="notforloan">
+    <td><input type="checkbox" name="itemtype" value="<TMPL_VAR NAME='itemtype'>"></td>
+  <TMPL_ELSE>
+    <td>Exclu du pr&ecirc;t</td>
+  </TMPL_UNLESS>
+  <td><TMPL_VAR NAME="description"></td>
+  <td><TMPL_VAR NAME="copies"></td>
+
+  </tr>
+
+</TMPL_LOOP>
+
+</table>
+Veuillez s&eacute;lectionner la biblioth&egrave;que dans laquelle vous voulez retirer le document:
+<TMPL_VAR NAME="CGIbranch"><br>
+
+<font size=4 face="arial,helvetica"><INPUT type="submit" value="Submit"></font>
+
+</FORM>
+
+</TMPL_IF>
+
+<!-- if the bibitems have already been selected -->
+<TMPL_IF NAME="item_types_selected">
+
+<p>
+Veuillez confirmer que vous souhaitez r&eacute;server ces types de documents:
+<p>
+
+<FORM ACTION="/cgi-bin/koha/opac-reserve.pl" method=post>
+<input type="hidden" name="place_reserve" value="1">
+<input type="hidden" name="bib" value="<TMPL_VAR NAME='biblionumber'>">
+<TABLE border=1>
+<tr><th bgcolor="#99cccc" background='<TMPL_VAR NAME="themelang">/images/background-opac.gif'>Type de document</th></tr>
+
+<TMPL_LOOP NAME="TYPES">
+
+  <tr>
+  <input type="hidden" name="itemtype" value="<TMPL_VAR NAME='itemtype'>"></td>
+  <td><TMPL_VAR NAME="description"></td>
+  </tr>
+
+</TMPL_LOOP>
+
+</table>
+
+Qui devra &ecirc;tre retir&eacute; à la biblioth&egrave;que :  <b><TMPL_VAR NAME="branchname"></b>.<br>
+<input type="hidden" name="bib" value="<TMPL_VAR NAME='branch'>">
+
+<TMPL_IF NAME="fee">
+<br>Attention, il y aura des frais de r&eacute;servation de <b><TMPL_VAR NAME="fee">&euro;</b><br>
+</TMPL_IF>
+
+<font size=4 face="arial,helvetica"><INPUT type="submit" value="R&eacute;server"></font>
+
+</FORM>
+
+</TMPL_IF>
index 0c23b76..58015da 100755 (executable)
@@ -16,10 +16,8 @@ use C4::Date;
 
 my $MAXIMUM_NUMBER_OF_RESERVES = 5;
 
-my $MAXIMUM_NUMBER_OF_RESERVES = 10;
-
 my $query = new CGI;
-my ($template, $borrowernumber, $cookie) 
+my ($template, $borrowernumber, $cookie)
     = get_template_and_user({template_name => "opac-reserve.tmpl",
                             query => $query,
                             type => "opac",
@@ -55,7 +53,6 @@ foreach my $res (@$reserves) {
 $rank++;
 $template->param(rank => $rank);
 
-
 # pass the pickup branch along....
 my $branch = $query->param('branch');
 $template->param(branch => $branch);
@@ -65,19 +62,21 @@ $template->param(branchname => $branches->{$branch}->{'branchname'});
 
 
 # make branch selection options...
-my $branchoptions = '';
+#my $branchoptions = '';
 my @branches;
-foreach my $br (keys %$branches) {
-    #(next) unless $branches->{$br}->{'IS'}; # FIXME disabled to fix bug 202
-    my $selected = "";
-    if ($br eq $branch) {
-       $selected = "selected";
-    }
-    $branchoptions .= "<option value=$br $selected>$branches->{$br}->{'branchname'}</option>\n";
-    push @branches, {branchcode => $br, branchname => $branches->{$br}->{'branchname'}, selected => $selected};
+my @select_branch;
+my %select_branches;
+
+foreach my $branch (keys %$branches) {
+       push @select_branch, $branch;
+       $select_branches{$branch} = $branches->{$branch}->{'branchname'};
 }
-$template->param( branchoptions => $branchoptions);
-$template->param(BRANCHES => \@branches);
+my $CGIbranch=CGI::scrolling_list( -name     => 'branch',
+                       -values   => \@select_branch,
+                       -labels   => \%select_branches,
+                       -size     => 1,
+                       -multiple => 0 );
+$template->param( CGIbranch => $CGIbranch);
 
 #### THIS IS A BIT OF A HACK BECAUSE THE BIBLIOITEMS DATA IS A LITTLE MESSED UP!
 # get the itemtype data....
@@ -172,86 +171,86 @@ $width = 2*$width -1;
 $template->param(totalwidth => 2*$width-1);
 
 if ($query->param('item_types_selected')) {
-# this is what happens after the itemtypes have been selected. Stage 2
-    my @itemtypes = $query->param('itemtype');
-    my $fee = 0;
-    my $proceed = 0;
-    if (@itemtypes) {
-       my %newtypes;
-       foreach my $itmtype (@itemtypes) {
-           $newtypes{$itmtype} = $itemtypes{$itmtype};
+       # this is what happens after the itemtypes have been selected. Stage 2
+       my @itemtypes = $query->param('itemtype');
+       my $fee = 0;
+       my $proceed = 0;
+       if (@itemtypes) {
+               my %newtypes;
+               foreach my $itmtype (@itemtypes) {
+               $newtypes{$itmtype} = $itemtypes{$itmtype};
+               }
+               my @types = values %newtypes;
+               $template->param(TYPES => \@types);
+               foreach my $type (@itemtypes) {
+               my @reqbibs;
+               foreach my $item (@items) {
+                       if ($item->{'itemtype'} eq $type) {
+                       push @reqbibs, $item->{'biblioitemnumber'};
+                       }
+               }
+               $fee += CalcReserveFee(undef,$borrowernumber,$biblionumber,'o',\@reqbibs);
+               }
+               $proceed = 1;
+       } elsif ($query->param('all')) {
+               $template->param(all => 1);
+               $fee = 1;
+               $proceed = 1;
        }
-       my @types = values %newtypes;
-       $template->param(TYPES => \@types);
+       warn "branch :$branch:";
+       if ($proceed && $branch) {
+               $fee = sprintf "%.02f", $fee;
+               $template->param(fee => $fee);
+               $template->param(item_types_selected => 1);
+       } else {
+               $template->param(message => 1);
+               $template->param(no_items_selected => 1) unless ($proceed);
+               $template->param(no_branch_selected =>1) unless ($branch);
+       }
+} elsif ($query->param('place_reserve')) {
+       # here we actually do the reserveration. Stage 3.
+       my $title = $bibdata->{'title'};
+       my @itemtypes = $query->param('itemtype');
        foreach my $type (@itemtypes) {
-           my @reqbibs;
-           foreach my $item (@items) {
+               my @reqbibs;
+               foreach my $item (@items) {
                if ($item->{'itemtype'} eq $type) {
-                   push @reqbibs, $item->{'biblioitemnumber'};
+                       push @reqbibs, $item->{'biblioitemnumber'};
+               }
                }
-           }
-           $fee += CalcReserveFee(undef,$borrowernumber,$biblionumber,'o',\@reqbibs);
+               CreateReserve(undef,$branch,$borrowernumber,$biblionumber,'o',\@reqbibs,$rank,'',$title);
        }
-       $proceed = 1;
-    } elsif ($query->param('all')) {
-       $template->param(all => 1);
-       $fee = 1;
-       $proceed = 1;
-    }
-    if ($proceed) {
-       $fee = sprintf "%.02f", $fee;
-       $template->param(fee => $fee);
-       $template->param(item_types_selected => 1);
-    } else {
-       $template->param(message => 1);
-       $template->param(no_items_selected => 1);
-    }
-
-
-} elsif ($query->param('place_reserve')) {
-# here we actually do the reserveration. Stage 3.
-    my $title = $bibdata->{'title'};
-    my @itemtypes = $query->param('itemtype');
-    foreach my $type (@itemtypes) {
-       my @reqbibs;
-       foreach my $item (@items) {
-           if ($item->{'itemtype'} eq $type) {
-               push @reqbibs, $item->{'biblioitemnumber'};
-           }
+       if ($query->param('all')) {
+               CreateReserve(undef,$branch,$borrowernumber,$biblionumber,'a', undef, $rank,'',$title);
        }
-       CreateReserve(undef,$branch,$borrowernumber,$biblionumber,'o',\@reqbibs,$rank,'',$title);
-    }
-    if ($query->param('all')) {
-       CreateReserve(undef,$branch,$borrowernumber,$biblionumber,'a', undef, $rank,'',$title);
-    }
-    print $query->redirect("/cgi-bin/koha/opac-user.pl");
+       print $query->redirect("/cgi-bin/koha/opac-user.pl");
 } else {
-# Here we check that the borrower can actually make reserves Stage 1.
-    my $noreserves = 0;
-    if ($borr->{'amountoutstanding'} > 5) {
-       my $amount = sprintf "\$%.02f", $borr->{'amountoutstanding'};
-       $template->param(message => 1);
-       $noreserves = 1;
-       $template->param(too_much_oweing => $amount);
-    }
-    my ($resnum, $reserves) = FindReserves('', $borrowernumber);
-    $template->param(RESERVES => $reserves);
-    if ($resnum >= $MAXIMUM_NUMBER_OF_RESERVES) {
-       $template->param(message => 1);
-       $noreserves = 1;
-       $template->param(too_many_reserves => $resnum);
-    }
-    foreach my $res (@$reserves) {
-       if ($res->{'biblionumber'} == $biblionumber) {
-           $template->param(message => 1);
-           $noreserves = 1;
-           $template->param(already_reserved => 1);
+       # Here we check that the borrower can actually make reserves Stage 1.
+       my $noreserves = 0;
+       if ($borr->{'amountoutstanding'} > 5) {
+               my $amount = sprintf "\$%.02f", $borr->{'amountoutstanding'};
+               $template->param(message => 1);
+               $noreserves = 1;
+               $template->param(too_much_oweing => $amount);
+       }
+       my ($resnum, $reserves) = FindReserves('', $borrowernumber);
+       $template->param(RESERVES => $reserves);
+       if ($resnum >= $MAXIMUM_NUMBER_OF_RESERVES) {
+               $template->param(message => 1);
+               $noreserves = 1;
+               $template->param(too_many_reserves => $resnum);
+       }
+       foreach my $res (@$reserves) {
+               if ($res->{'biblionumber'} == $biblionumber) {
+               $template->param(message => 1);
+               $noreserves = 1;
+               $template->param(already_reserved => 1);
+               }
+       }
+       unless ($noreserves) {
+               $template->param(TYPES => \@types_old);
+               $template->param(select_item_types => 1);
        }
-    }
-    unless ($noreserves) {
-       $template->param(TYPES => \@types_old);
-       $template->param(select_item_types => 1);
-    }
 }
 
 # check that you can actually make the reserve.