[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha C4/Reserves2.pm koha-tmpl/intranet-tmpl/pr... [rel_3_0]
From: |
LAURIN arnaud |
Subject: |
[Koha-cvs] koha C4/Reserves2.pm koha-tmpl/intranet-tmpl/pr... [rel_3_0] |
Date: |
Tue, 05 Dec 2006 14:39:56 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch: rel_3_0
Changes by: LAURIN arnaud <alaurin> 06/12/05 14:39:56
Modified files:
C4 : Reserves2.pm
koha-tmpl/intranet-tmpl/prog/en/includes: intranet.css
koha-tmpl/intranet-tmpl/prog/en/reserve: request.tmpl
reserve : modrequest.pl placerequest.pl request.pl
Log message:
bugfix sanop : #80; #81; #82; #84 :
New interface for management of reserves :
- now we cancel an item reserve , with a new link "cancel a
reserve", on roll over, we have the name of the borrower who made this reserve
.... (this function is displayed in "items")
- new management of "queue list" (replace : "modify existing
reserves") :
now, queue list display only reserves with a priority >
1 (queue list), with this fonction you can modify the pickup location or delete
a reservation (we don't have anymore the possibility to change the rank of a
reserve !!!!!)
- the workflow of reserves seems to be ok (management of queue
list, reattribute itemnumber, if we have a cancel on item, ....)
- Warn ..., the cancellation system Manage the transfers too,
but a this time, we don't have any messages of confirmation, will be commited
soon ....
-modify intranet.css to display informations of borrower
this programm will be improved soon ...
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Reserves2.pm?cvsroot=koha&only_with_tag=rel_3_0&r1=1.46.2.8&r2=1.46.2.9
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/prog/en/includes/intranet.css?cvsroot=koha&only_with_tag=rel_3_0&r1=1.7.2.18&r2=1.7.2.19
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/prog/en/reserve/request.tmpl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.3.2.11&r2=1.3.2.12
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/modrequest.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.2.2.4&r2=1.2.2.5
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/placerequest.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.3.2.6&r2=1.3.2.7
http://cvs.savannah.gnu.org/viewcvs/koha/reserve/request.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.6.2.11&r2=1.6.2.12
Patches:
Index: C4/Reserves2.pm
===================================================================
RCS file: /sources/koha/koha/C4/Reserves2.pm,v
retrieving revision 1.46.2.8
retrieving revision 1.46.2.9
diff -u -b -r1.46.2.8 -r1.46.2.9
--- C4/Reserves2.pm 5 Dec 2006 11:35:30 -0000 1.46.2.8
+++ C4/Reserves2.pm 5 Dec 2006 14:39:55 -0000 1.46.2.9
@@ -20,18 +20,19 @@
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
-# $Id: Reserves2.pm,v 1.46.2.8 2006/12/05 11:35:30 toins Exp $
+# $Id: Reserves2.pm,v 1.46.2.9 2006/12/05 14:39:55 alaurin Exp $
use strict;
require Exporter;
use C4::Context;
use C4::Biblio;
use C4::Search;
+use C4::Circulation::Circ2;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
my $library_name = C4::Context->preference("LibraryName");
# set the version for version checking
-$VERSION = do { my @v = '$Revision: 1.46.2.8 $' =~ /\d+/g; shift(@v) . "." .
join( "_", map { sprintf "%03d", $_ } @v ); };
+$VERSION = do { my @v = '$Revision: 1.46.2.9 $' =~ /\d+/g; shift(@v) . "." .
join( "_", map { sprintf "%03d", $_ } @v ); };
=head1 NAME
@@ -72,6 +73,8 @@
&OtherReserves
&GetFirstReserveDateFromItem
&CountReservesFromBorrower
+ &FixPriority
+ &FindReservesInQueue
);
# make all your functions, whether exported or not;
@@ -114,7 +117,7 @@
my $nextreservinfo;
my ( $restype, $checkreserves ) = CheckReserves($itemnumber);
if ($checkreserves) {
- my $iteminfo = C4::Circulation::Circ2::getiteminformation($itemnumber);
+ my $iteminfo =
C4::Circulation::Circ2::getiteminformation($itemnumber,undef);
if ( $iteminfo->{'holdingbranch'} ne $checkreserves->{'branchcode'} ) {
$messages->{'transfert'} = $checkreserves->{'branchcode'};
@@ -330,7 +333,8 @@
borrowernumber,
reservedate,
constrainttype,
- found
+ found,
+ itemnumber
FROM reserves
WHERE cancellationdate IS NULL
AND (found <> \'F\' OR found IS NULL)
@@ -453,7 +457,8 @@
my $dbh = C4::Context->dbh;
my $query = '
- SELECT reservedate
+ SELECT reservedate,
+ borrowernumber
FROM reserves
WHERE itemnumber = ?
AND cancellationdate IS NULL
@@ -463,7 +468,7 @@
$sth->execute($itemnumber);
my $row = $sth->fetchrow_hashref;
- return $row->{reservedate};
+ return ($row->{reservedate},$row->{borrowernumber});
}
#-------------------------------------------------------------------------------------
@@ -612,8 +617,8 @@
my ( $biblio, $item, $borr ) = @_;
my $dbh = C4::Context->dbh;
- if ( ( $item and $borr ) and ( not $biblio ) ) {
+ if ( ( $item and $borr ) and ( not $biblio ) ) {
# removing a waiting reserve record....
# update the database...
my $query = qq/
@@ -629,7 +634,6 @@
$sth->finish;
}
if ( ( $biblio and $borr ) and ( not $item ) ) {
-
# removing a reserve record....
# get the prioritiy on this record....
my $priority;
@@ -661,7 +665,7 @@
$sth->finish;
# now fix the priority on the others....
- fixpriority( $priority, $biblio );
+ FixPriority( $priority, $biblio );
}
}
@@ -739,9 +743,9 @@
my ( $biblio, $borrowernumber, $rank ) = @_;
my $dbh = C4::Context->dbh;
- if ( $rank eq "del" ) {
- CancelReserve( $biblio, undef, $borrowernumber );
- }
+# if ( $rank eq "del" ) {
+# CancelReserve( $biblio, undef, $borrowernumber );
+# }
if ( $rank eq "W" || $rank eq "0" ) {
# make sure priority for waiting items is 0
@@ -1193,7 +1197,6 @@
if ( $matchno > 0 ) {
$fee = 0;
}
- warn "BOB DEBUG: Fee is $fee";
return $fee;
}
@@ -1228,9 +1231,8 @@
=cut
sub UpdateReserve {
-
#subroutine to update a reserve
- my ( $rank, $biblio, $borrower, $branch ) = @_;
+ my ( $rank, $biblio, $borrower, $branch , $itemnumber) = @_;
return if $rank eq "W";
return if $rank eq "n";
my $dbh = C4::Context->dbh;
@@ -1249,15 +1251,16 @@
}
else {
my $query = qq/
- UPDATE reserves SET priority = ? ,branchcode = ?,
itemnumber = NULL, found = NULL
+ UPDATE reserves SET priority = ? ,branchcode = ?, itemnumber =
?, found = NULL
WHERE biblionumber = ?
AND borrowernumber = ?
AND cancellationdate is NULL
AND (found <> 'F' or found is NULL)
/;
my $sth = $dbh->prepare($query);
- $sth->execute( $rank, $branch, $biblio, $borrower );
+ $sth->execute( $rank, $branch,$itemnumber, $biblio, $borrower);
$sth->finish;
+ FixPriority( $biblio, $borrower, $rank);
}
}
@@ -1286,6 +1289,95 @@
return $data;
}
+=item FindReservesInQueue
+
+ $results = &FindReservesInQueue($biblionumber);
+
+Simple variant of FindReserves, exept the result is now displaying only the
queue list of reservations with the same biblionumber (At this time only
displayed in request.pl)
+
+C<&FindReservesInQueue> returns a two-element array:
+
+C<$results> is a reference to an array of references of hashes. Each hash
+has for keys a list of column from reserves table (see details in function).
+
+=cut
+
+#'
+
+sub FindReservesInQueue {
+ my ($biblionumber) = @_;
+ my $dbh = C4::Context->dbh;
+
+ # Find the desired items in the reserves
+ my $query = qq/
+ SELECT branchcode,
+ timestamp AS rtimestamp,
+ priority,
+ biblionumber,
+ borrowernumber,
+ reservedate,
+ constrainttype,
+ found,
+ itemnumber
+ FROM reserves
+ WHERE cancellationdate IS NULL
+ AND biblionumber = ?
+ AND (found <> \'F\' OR found IS NULL)
+ AND priority <> \'0\'
+ ORDER BY priority
+ /;
+ my $sth = $dbh->prepare($query);
+ $sth->execute($biblionumber);
+ my @results;
+ my $i = 0;
+ while ( my $data = $sth->fetchrow_hashref ) {
+
+ # FIXME - What is this if-statement doing? How do constraints work?
+ if ( $data->{constrainttype} eq 'o' ) {
+ $query = '
+ SELECT biblioitemnumber
+ FROM reserveconstraints
+ WHERE biblionumber = ?
+ AND borrowernumber = ?
+ AND reservedate = ?
+ ';
+ my $csth = $dbh->prepare($query);
+ $csth->execute( $data->{biblionumber}, $data->{borrowernumber},
+ $data->{reservedate}, );
+
+ my @bibitemno;
+ while ( my $bibitemnos = $csth->fetchrow_array ) {
+ push( @bibitemno, $bibitemnos );
+ }
+ my $count = @bibitemno;
+
+ # if we have two or more different specific itemtypes
+ # reserved by same person on same day
+ my $bdata;
+ if ( $count > 1 ) {
+ $bdata = GetBiblioItemData( $bibitemno[$i] );
+ $i++;
+ }
+ else {
+ # Look up the book we just found.
+ $bdata = GetBiblioItemData( $bibitemno[0] );
+ }
+ $csth->finish;
+
+ # Add the results of this latest search to the current
+ # results.
+ # FIXME - An 'each' would probably be more efficient.
+ foreach my $key ( keys %$bdata ) {
+ $data->{$key} = $bdata->{$key};
+ }
+ }
+ push @results, $data;
+ }
+ $sth->finish;
+
+ return ( $#results + 1, address@hidden );
+}
+
=back
=head1 AUTHOR
Index: koha-tmpl/intranet-tmpl/prog/en/includes/intranet.css
===================================================================
RCS file:
/sources/koha/koha/koha-tmpl/intranet-tmpl/prog/en/includes/intranet.css,v
retrieving revision 1.7.2.18
retrieving revision 1.7.2.19
diff -u -b -r1.7.2.18 -r1.7.2.19
--- koha-tmpl/intranet-tmpl/prog/en/includes/intranet.css 27 Nov 2006
09:37:28 -0000 1.7.2.18
+++ koha-tmpl/intranet-tmpl/prog/en/includes/intranet.css 5 Dec 2006
14:39:55 -0000 1.7.2.19
@@ -327,3 +327,30 @@
.lineSelected {
background-color:yellow;
}
+
+
+/* display more informations with css layer */
+a.info {
+position: relative;
+text-decoration: none;
+color: black;
+border-bottom: 1px gray dotted;
+}
+a.info span {
+display: none;
+width:300px;
+}
+a.info:hover {
+background: none; /* correcting IE bug*/
+z-index: 500;
+}
+a.info:hover span {
+display: inline;
+position: absolute;
+top: 2em;
+left: 1em;
+background: orange;
+text-align: center;
+color: white;
+padding: 2px;
+}
Index: koha-tmpl/intranet-tmpl/prog/en/reserve/request.tmpl
===================================================================
RCS file:
/sources/koha/koha/koha-tmpl/intranet-tmpl/prog/en/reserve/request.tmpl,v
retrieving revision 1.3.2.11
retrieving revision 1.3.2.12
diff -u -b -r1.3.2.11 -r1.3.2.12
--- koha-tmpl/intranet-tmpl/prog/en/reserve/request.tmpl 23 Nov 2006
13:55:52 -0000 1.3.2.11
+++ koha-tmpl/intranet-tmpl/prog/en/reserve/request.tmpl 5 Dec 2006
14:39:56 -0000 1.3.2.12
@@ -152,7 +152,7 @@
</p>
<p>
<label>Notes</label>
- <textarea name="notes" cols="40" rows="5"></textarea>
+ <textarea name="notes" cols="20" rows="2"></textarea>
</p>
<p>
<label>Pickup at</label>
@@ -175,6 +175,7 @@
<th>Holding branch</th>
<th>Call number</th>
<th>Information</th>
+ <th>Cancel a Reserve</th>
</tr>
<!-- TMPL_LOOP Name="itemloop" -->
<tr class="<!-- TMPL_VAR NAME="backgroundcolor" -->">
@@ -219,6 +220,17 @@
to : <!-- TMPL_VAR NAME="transfertto" -->, the : <!-- TMPL_VAR
NAME="transfertwhen" -->
<!-- /TMPL_IF -->
</td>
+ <td>
+ <!-- TMPL_IF NAME="reservedate"-->
+ <a class="info" href="modrequest.pl?CancelBiblioNumber=<!--
TMPL_VAR NAME="biblionumber" -->&CancelBorrowerNumber=<!-- TMPL_VAR
NAME="ReservedForBorrowernumber" -->&CancelItemnumber=<!-- TMPL_VAR
NAME="itemnumber"-->" >Cancel A reserve
+ <span> Item reserved for :
+ <!-- TMPL_VAR NAME="ReservedForSurname" --> <!--
TMPL_VAR NAME="ReservedForFirstname" -->
+ </span>
+ </a>
+ <!-- TMPL_ELSE -->
+ No reserves
+ <!-- /TMPL_IF -->
+ </td>
</tr>
<!-- /TMPL_LOOP --> <!-- itemloop -->
</table>
@@ -249,7 +261,7 @@
<!-- TMPL_IF name="reserveloop" -->
<form name="T<!-- TMPL_VAR NAME="time" -->" action="modrequest.pl"
method="post">
<fieldset>
- <legend>Modify existing reserves</legend>
+ <legend>Queue list</legend>
<table>
<tr>
@@ -268,25 +280,27 @@
<select name="rank-request">
<!-- TMPL_IF Name="wait" -->
<option value="W" selected>Waiting</option>
- <!-- /TMPL_IF -->
-
- <!-- TMPL_LOOP Name="optionloop" -->
- <option value="<!-- TMPL_VAR NAME="num" -->" <!-- TMPL_IF
Name="selected" --> selected <!-- /TMPL_IF -->>
- <!-- TMPL_VAR NAME="num" -->
+ <!-- TMPL_ELSE -->
+ <option value="<!-- TMPL_VAR NAME="priority" -->" <!-- TMPL_IF
Name="selected" --> selected <!-- /TMPL_IF -->>
+ <!-- TMPL_VAR NAME="priority" -->
</option>
- <!-- /TMPL_LOOP -->
+ <!-- /TMPL_IF -->
<option value="del">del</option>
</select>
</td>
<td>
- <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!--
TMPL_VAR NAME="borrowernumber" -->" ><!-- TMPL_VAR NAME="borrowernumber" --></a>
+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!--
TMPL_VAR NAME="borrowernumber" -->" ><!-- TMPL_VAR NAME="surname" -->, <!--
TMPL_VAR NAME="firstname" --></a>
</td>
<td><!-- TMPL_VAR NAME="notes" --></td>
<td><!-- TMPL_VAR NAME="date" --></td>
<td>
<!-- TMPL_IF Name="wait" -->
+ <!-- TMPL_IF NAME="atdestination" -->
Document waiting at <b> <!-- TMPL_VAR NAME="wbrname" --></b> <input
type="hidden" name="pickup" value=<!-- TMPL_VAR NAME="wbrcd" -->>
<!-- TMPL_ELSE -->
+ Document will be transfered to <b> <!-- TMPL_VAR NAME="wbrname"
--></b> <input type="hidden" name="pickup" value=<!-- TMPL_VAR NAME="wbrcd" -->>
+ <!-- /TMPL_IF -->
+ <!-- TMPL_ELSE -->
<select name="pickup">
<!-- TMPL_LOOP Name="branchloop" -->
<!-- TMPL_IF Name="selected" -->
@@ -303,8 +317,9 @@
<td>
<!-- TMPL_IF Name="wait" -->
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!--
TMPL_VAR NAME='biblionumber' -->&type='intra'" onclick="openWindow(this,
'Item', 480, 640); return false;">
- <!-- TMPL_IF NAME="barcode" -->
- <!-- TMPL_VAR NAME="barcode" -->
+ <!-- TMPL_IF NAME="barcodenumber" -->
+ <!-- TMPL_VAR NAME="barcodenumber" -->
+ <input type="hidden" name="itemnumber" value=<!-- TMPL_VAR
NAME="itemnumber" -->>
<!-- TMPL_ELSE -->
No Barcode
<!-- /TMPL_IF -->
Index: reserve/modrequest.pl
===================================================================
RCS file: /sources/koha/koha/reserve/modrequest.pl,v
retrieving revision 1.2.2.4
retrieving revision 1.2.2.5
diff -u -b -r1.2.2.4 -r1.2.2.5
--- reserve/modrequest.pl 30 Nov 2006 18:23:52 -0000 1.2.2.4
+++ reserve/modrequest.pl 5 Dec 2006 14:39:56 -0000 1.2.2.5
@@ -34,14 +34,27 @@
my @biblionumber=$input->param('biblionumber');
my @borrower=$input->param('borrowernumber');
my @branch=$input->param('pickup');
+my @itemnumber=$input->param('itemnumber');
my address@hidden;
-# goes through and manually changes the reserves record....
-# no attempt is made to check consistency.
-for (my $i=0;$i<$count;$i++){
- UpdateReserve($rank[$i],$biblionumber[$i],$borrower[$i],$branch[$i]);
#from C4::Reserves2
+my $CancelBiblioNumber=$input->param('CancelBiblioNumber');
+my $CancelBorrowerNumber=$input->param('CancelBorrowerNumber');
+my $CancelItemnumber=$input->param('CancelItemnumber');
+
+# 2 possibilitys : cancel an item reservation, or modify or cancel the queded
list
+
+# 1) cancel an item reservation by fonction GlobalCancel (in reserves2.pm)
+if ($CancelBorrowerNumber) {
+ GlobalCancel($CancelItemnumber, $CancelBorrowerNumber);
+ $biblionumber[0] = $CancelBiblioNumber,
}
+# 2) Cancel or modify the queue list of reserves (without otem linked)
+else {
+ for (my $i=0;$i<$count;$i++){
+
UpdateReserve($rank[$i],$biblionumber[$i],$borrower[$i],$branch[$i],$itemnumber[$i]);
#from C4::Reserves2
+ }
+}
my $from=$input->param('from');
if ($from eq 'borrower'){
print
$input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrower[0]");
Index: reserve/placerequest.pl
===================================================================
RCS file: /sources/koha/koha/reserve/placerequest.pl,v
retrieving revision 1.3.2.6
retrieving revision 1.3.2.7
diff -u -b -r1.3.2.6 -r1.3.2.7
--- reserve/placerequest.pl 30 Nov 2006 18:23:52 -0000 1.3.2.6
+++ reserve/placerequest.pl 5 Dec 2006 14:39:56 -0000 1.3.2.7
@@ -43,7 +43,6 @@
my $title=$input->param('title');
my $borrowernumber=borrdata($borrower,'');
my $checkitem=$input->param('checkitem');
-# my $priority;
my $found;
#new op : if we have an item selectionned, and the pickup branch is the same
as the holdingbranch of the document, we force the value $rank and $found .
Index: reserve/request.pl
===================================================================
RCS file: /sources/koha/koha/reserve/request.pl,v
retrieving revision 1.6.2.11
retrieving revision 1.6.2.12
diff -u -b -r1.6.2.11 -r1.6.2.12
--- reserve/request.pl 5 Dec 2006 11:35:31 -0000 1.6.2.11
+++ reserve/request.pl 5 Dec 2006 14:39:56 -0000 1.6.2.12
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# $Id: request.pl,v 1.6.2.11 2006/12/05 11:35:31 toins Exp $
+# $Id: request.pl,v 1.6.2.12 2006/12/05 14:39:56 alaurin Exp $
#writen 2/1/00 by address@hidden
# Copyright 2000-2002 Katipo Communications
@@ -162,7 +162,7 @@
}
# get existing reserves .....
-my ( $count, $reserves ) = FindReserves( $biblionumber, undef );
+my ( $count, $reserves ) = FindReservesInQueue($biblionumber);
my $totalcount = $count;
my $alreadyreserved;
@@ -260,11 +260,16 @@
}
# checking reserve
- my $reservedate = GetFirstReserveDateFromItem($itemnumber);
+ my ($reservedate,$reservedfor) =
GetFirstReserveDateFromItem($itemnumber);
+ my $ItemBorrowerReserveInfo = getpatroninformation( \%env,
$reservedfor, 0);
if ( defined $reservedate ) {
$item->{backgroundcolor} = 'reserved';
$item->{reservedate} = format_date($reservedate);
+ $item->{ReservedForBorrowernumber} = $reservedfor;
+ $item->{ReservedForSurname} =
$ItemBorrowerReserveInfo->{'surname'};
+ $item->{ReservedForFirstname} =
$ItemBorrowerReserveInfo->{'firstname'};
+
}
# Management of the notforloan document
@@ -344,25 +349,28 @@
if ( ( $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) ) {
my %env;
my $item = $res->{'itemnumber'};
- $item = getiteminformation($item);
+ $item = getiteminformation($item,undef);
+ $reserve{'wait'}= 1;
$reserve{'holdingbranch'}=$item->{'holdingbranch'};
$reserve{'biblionumber'}=$item->{'biblionumber'};
- $reserve{'barcode'}=$item->{'barcode'};
+ $reserve{'barcodenumber'} = $item->{'barcode'};
$reserve{'wbrcode'} = $res->{'branchcode'};
+ $reserve{'itemnumber'} = $res->{'itemnumber'};
$reserve{'wbrname'} =
$branches->{$res->{'branchcode'}}->{'branchname'};
if($reserve{'holdingbranch'} eq $reserve{'wbrcode'}){
$reserve{'atdestination'} = 1;
}
}
+# get borrowers info
+my $reserveborrowerinfo = getpatroninformation( \%env,
$res->{'borrowernumber'}, 0);
$reserve{'date'} = format_date( $res->{'reservedate'} );
$reserve{'borrowernumber'} = $res->{'borrowernumber'};
$reserve{'biblionumber'} = $res->{'biblionumber'};
$reserve{'borrowernumber'} = $res->{'borrowernumber'};
- $reserve{'firstname'} = $res->{'firstname'};
- $reserve{'surname'} = $res->{'surname'};
- $reserve{'borrowernumber'} = $res->{'borrowernumber'};
+ $reserve{'firstname'} = $reserveborrowerinfo->{'firstname'};
+ $reserve{'surname'} = $reserveborrowerinfo->{'surname'};
$reserve{'notes'} = $res->{'reservenotes'};
$reserve{'wait'} =
( ( $res->{'found'} eq 'W' ) or ( $res->{'priority'} eq '0' ) );
@@ -371,7 +379,7 @@
$reserve{'voldesc'} = $res->{'volumeddesc'};
$reserve{'ccode'} = $res->{'ccode'};
$reserve{'barcode'} = $res->{'barcode'};
-
+ $reserve{'priority'} = $res->{'priority'};
$reserve{'branchloop'} = address@hidden;
$reserve{'optionloop'} = address@hidden;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] koha C4/Reserves2.pm koha-tmpl/intranet-tmpl/pr... [rel_3_0],
LAURIN arnaud <=