[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha C4/Circulation/Circ2.pm C4/Reserves2.pm ko...
From: |
LAURIN arnaud |
Subject: |
[Koha-cvs] koha C4/Circulation/Circ2.pm C4/Reserves2.pm ko... |
Date: |
Fri, 19 May 2006 17:01:03 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch:
Changes by: LAURIN arnaud <address@hidden> 06/05/19 17:01:03
Modified files:
C4/Circulation : Circ2.pm
C4 : Reserves2.pm
koha-tmpl/intranet-tmpl/prog/en/includes: menus.inc
koha-tmpl/intranet-tmpl/prog/en: intranet-main.tmpl
Added files:
circ : branchreserves.pl currenttransfers.pl
waitingreservestransfers.pl
koha-tmpl/intranet-tmpl/prog/en/circ: branchreserves.tmpl
currenttransfers.tmpl
waitingreservestransfers.tmpl
koha-tmpl/intranet-tmpl/prog/en/includes: menu-circ.inc
Log message:
new dev : create 3 new program for circulation :
branchreserves : to see reserves for one library (with the branchip
selection or librarian preferences)
currenttransfers : show all the transfers are waiting in the library
waitingreservetransfers: show all the book the librarian have to
transfer to an another library .
"actions" are bugged, will be corrected .
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Circulation/Circ2.pm.diff?tr1=1.102&tr2=1.103&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Reserves2.pm.diff?tr1=1.42&tr2=1.43&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/circ/branchreserves.pl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/circ/currenttransfers.pl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/circ/waitingreservestransfers.pl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/circ/branchreserves.tmpl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/circ/currenttransfers.tmpl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/circ/waitingreservestransfers.tmpl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/includes/menu-circ.inc?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: koha/C4/Circulation/Circ2.pm
diff -u koha/C4/Circulation/Circ2.pm:1.102 koha/C4/Circulation/Circ2.pm:1.103
--- koha/C4/Circulation/Circ2.pm:1.102 Wed May 17 16:06:23 2006
+++ koha/C4/Circulation/Circ2.pm Fri May 19 17:01:02 2006
@@ -3,7 +3,7 @@
package C4::Circulation::Circ2;
-# $Id: Circ2.pm,v 1.102 2006/05/17 16:06:23 plg Exp $
+# $Id: Circ2.pm,v 1.103 2006/05/19 17:01:02 alaurin Exp $
#package to deal with Returns
#written 3/11/99 by address@hidden
@@ -83,8 +83,13 @@
&fixdate
get_return_date_of
get_transfert_infos
+ &checktransferts
+ &GetReservesForBranch
+ &GetReservesToBranch
+ &GetTransfersFromBib
+ &getBranchIp
+ &dotranfer
);
-
# &getbranches &getprinters &getbranch &getprinter => moved to C4::Koha.pm
=head2 itemseen
@@ -503,11 +508,11 @@
my ($resfound, $resrec) =
CheckReserves($iteminformation->{'itemnumber'});
if ($resfound and not $ignoreRs) {
$resrec->{'ResFound'} = $resfound;
- $messages->{'ResFound'} = $resrec;
- $dotransfer = 0;
+# $messages->{'ResFound'} = $resrec;
+ $dotransfer = 1;
}
- #actually do the transfer....
- if ($dotransfer) {
+
+ if ($dotransfer and not $resfound) {
dotransfer($iteminformation->{'itemnumber'}, $fbr, $tbr);
$messages->{'WasTransfered'} = 1;
}
@@ -524,10 +529,10 @@
$fbr = $dbh->quote($fbr);
$tbr = $dbh->quote($tbr);
#new entry in branchtransfers....
- $dbh->do("INSERT INTO branchtransfers (itemnumber, frombranch,
datearrived, tobranch)
+ $dbh->do("INSERT INTO branchtransfers (itemnumber, frombranch,
datesent, tobranch)
VALUES ($itm, $fbr, now(), $tbr)");
#update holdingbranch in items .....
- $dbh->do("UPDATE items set holdingbranch = $tbr WHERE
items.itemnumber = $itm");
+ $dbh->do("UPDATE items set holdingbranch = $tbr WHERE items.itemnumber
= $itm");
&itemseen($itm);
&domarctransfer($dbh,$itm);
return;
@@ -897,7 +902,7 @@
CancelReserve(0, $res->{'itemnumber'},
$res->{'borrowernumber'});
}
} elsif ($restype eq "Reserved") {
- warn "Reserved";
+# warn "Reserved";
# The item is on reserve for someone else.
my ($resborrower,
$flags)=getpatroninformation($env, $resbor,0);
my $branches = getbranches();
@@ -914,7 +919,7 @@
} else {
# my $tobrcd =
ReserveWaiting($res->{'itemnumber'}, $res->{'borrowernumber'});
# transferbook($tobrcd,$barcode, 1);
- warn "transferbook";
+# warn "transferbook";
}
}
}
@@ -934,8 +939,8 @@
$sth->execute($borrower->{'borrowernumber'},
$iteminformation->{'itemnumber'}, $dateduef, $env->{'branchcode'});
$sth->finish;
$iteminformation->{'issues'}++;
- $sth=$dbh->prepare("update items set issues=? where
itemnumber=?");
-
$sth->execute($iteminformation->{'issues'},$iteminformation->{'itemnumber'});
+ $sth=$dbh->prepare("update items set issues=?, holdingbranch=?
where itemnumber=?");
+
$sth->execute($iteminformation->{'issues'},C4::Context->userenv->{'branch'},$iteminformation->{'itemnumber'});
$sth->finish;
&itemseen($iteminformation->{'itemnumber'});
itemborrowed($iteminformation->{'itemnumber'});
@@ -1092,28 +1097,64 @@
$messages->{'wthdrawn'} = 1;
$doreturn = 0;
}
+# new op dev : if the book returned in an other branch update the holding
branch
+
# update issues, thereby returning book (should push this out into
another subroutine
my ($borrower) = getpatroninformation(\%env, $currentborrower, 0);
if ($doreturn) {
my $sth = $dbh->prepare("update issues set returndate = now()
where (borrowernumber = ?) and (itemnumber = ?) and (returndate is null)");
$sth->execute($borrower->{'borrowernumber'},
$iteminformation->{'itemnumber'});
+
+# FIXME the holdingbranch is updated if the document is returned in an
other location .
+ if ( $iteminformation->{'holdingbranch'} ne
C4::Context->userenv->{'branch'}){
+ my $sth_upd_location = $dbh->prepare("UPDATE items SET
holdingbranch=? WHERE itemnumber=?");
+
$sth_upd_location->execute(C4::Context->userenv->{'branch'},$iteminformation->{'itemnumber'});
+ $sth_upd_location->finish;
+ $iteminformation->{'holdingbranch'} =
C4::Context->userenv->{'branch'};
+ }
+
$messages->{'WasReturned'} = 1; # FIXME is the "= 1" right?
}
itemseen($iteminformation->{'itemnumber'});
($borrower) = getpatroninformation(\%env, $currentborrower, 0);
# transfer book to the current branch
- my ($transfered, $mess, $item) = transferbook($branch, $barcode, 1);
- if ($transfered) {
- $messages->{'WasTransfered'} = 1; # FIXME is the "= 1" right?
- }
+
+# FIXME function transfered still always used ????
+# my ($transfered, $mess, $item) = transferbook($branch, $barcode, 1);
+# if ($transfered) {
+# $messages->{'WasTransfered'} = 1; # FIXME is the "= 1" right?
+# }
+
# fix up the accounts.....
if ($iteminformation->{'itemlost'}) {
fixaccountforlostandreturned($iteminformation, $borrower);
$messages->{'WasLost'} = 1; # FIXME is the "= 1" right?
}
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# check if we have a transfer for this document
+ my $checktransfer = checktransferts($iteminformation->{'itemnumber'});
+# if we have a return, we update the line of transfers with the
datearrived
+ if ($checktransfer){
+ my $sth = $dbh->prepare("update branchtransfers set datearrived
= now() where itemnumber= ? AND datearrived IS NULL");
+ $sth->execute($iteminformation->{'itemnumber'});
+ $sth->finish;
+# now we check if there is a reservation with the validate of
transfer if we have one, we can set it with the status 'W'
+ my $updateWaiting =
SetWaitingStatus($iteminformation->{'itemnumber'});
+ }
+# if we don't have a transfer on run, we check if the document is not in
his homebranch and there is not a reservation, we transfer this one to his home
branch directly .
+ else {
+ # new op dev
+ my $checkreserves =
CheckReserves($iteminformation->{'itemnumber'});
+ if (($iteminformation->{'homebranch'} ne
$iteminformation->{'holdingbranch'}) and (not $checkreserves)){
+ my $automatictransfer =
dotransfer($iteminformation->{'itemnumber'},$iteminformation->{'holdingbranch'},$iteminformation->{'homebranch'});
+ $messages->{'WasTransfered'} = 1;
+ }
+ }
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# fix up the overdues in accounts...
fixoverduesonreturn($borrower->{'borrowernumber'},
$iteminformation->{'itemnumber'});
# find reserves.....
+# if we don't have a reserve with the status W, we launch the
Checkreserves routine
my ($resfound, $resrec) =
CheckReserves($iteminformation->{'itemnumber'});
if ($resfound) {
# my $tobrcd = ReserveWaiting($resrec->{'itemnumber'},
$resrec->{'borrowernumber'});
@@ -1967,6 +2008,87 @@
return @row;
}
+
+sub DeleteTransfer {
+ my($itemnumber) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("DELETE FROM branchtransfers
+ where itemnumber=?
+ AND datearrived is null ");
+ $sth->execute($itemnumber);
+ $sth->finish;
+}
+
+sub GetTransfersFromBib {
+ my($frombranch,$tobranch) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("SELECT itemnumber,datesent,frombranch FROM
+ branchtransfers
+ where frombranch=?
+ AND tobranch=?
+ AND datearrived is null ");
+ $sth->execute($frombranch,$tobranch);
+ my @gettransfers;
+ my $i=0;
+ while (my $data=$sth->fetchrow_hashref){
+ $gettransfers[$i]=$data;
+ $i++;
+ }
+ $sth->finish;
+ return(@gettransfers);
+}
+
+sub GetReservesToBranch {
+ my($frombranch,$default) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("SELECT
borrowernumber,reservedate,itemnumber,timestamp FROM
+ reserves
+ where priority='0' AND cancellationdate is null
+ AND branchcode=?
+ AND branchcode!=?
+ AND found is null ");
+ $sth->execute($frombranch,$default);
+ my @transreserv;
+ my $i=0;
+ while (my $data=$sth->fetchrow_hashref){
+ $transreserv[$i]=$data;
+ $i++;
+ }
+ $sth->finish;
+ return(@transreserv);
+}
+
+sub GetReservesForBranch {
+ my($frombranch) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("SELECT
borrowernumber,reservedate,itemnumber,waitingdate FROM
+ reserves
+ where priority='0' AND cancellationdate is null
+ AND found='W'
+ AND branchcode=? order by reservedate");
+ $sth->execute($frombranch);
+ my @transreserv;
+ my $i=0;
+ while (my $data=$sth->fetchrow_hashref){
+ $transreserv[$i]=$data;
+ $i++;
+ }
+ $sth->finish;
+ return(@transreserv);
+}
+
+sub checktransferts{
+ my($itemnumber) = @_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("SELECT datesent,frombranch,tobranch FROM
branchtransfers
+ WHERE itemnumber = ? AND datearrived IS NULL");
+ $sth->execute($itemnumber);
+ my @tranferts = $sth->fetchrow_array;
+ $sth->finish;
+
+ return (@tranferts);
+}
+
1;
__END__
@@ -1977,3 +2099,4 @@
Koha Developement team <address@hidden>
=cut
+
Index: koha/C4/Reserves2.pm
diff -u koha/C4/Reserves2.pm:1.42 koha/C4/Reserves2.pm:1.43
--- koha/C4/Reserves2.pm:1.42 Wed May 17 16:06:24 2006
+++ koha/C4/Reserves2.pm Fri May 19 17:01:03 2006
@@ -3,7 +3,7 @@
package C4::Reserves2;
-# $Id: Reserves2.pm,v 1.42 2006/05/17 16:06:24 plg Exp $
+# $Id: Reserves2.pm,v 1.43 2006/05/19 17:01:03 alaurin Exp $
# Copyright 2000-2002 Katipo Communications
#
@@ -66,11 +66,153 @@
&UpdateReserve
&getreservetitle
&Findgroupreserve
+ &FastFindReserves
+ &SetWaitingStatus
+ &GlobalCancel
+ &MinusPriority
+ &OtherReserves
GetFirstReserveDateFromItem
GetNumberReservesFromBorrower
);
# make all your functions, whether exported or not;
+=item GlobalCancel
+ New op dev for the circulation based on item, global is a function to
cancel reserv,check other reserves, and transfer document if it's necessary
+=cut
+#'
+sub GlobalCancel {
+ my $messages;
+ my $nextreservinfo;
+ my ($itemnumber,$borrowernumber)address@hidden;
+
+# step 1 : cancel the reservation
+ my $CancelReserve = CancelReserve(0,$itemnumber,$borrowernumber);
+
+# step 2 launch the subroutine of the others reserves
+ my ($messages,$nextreservinfo) = OtherReserves($itemnumber);
+
+return ($messages,$nextreservinfo);
+}
+
+=item OtherReserves
+ New op dev: check queued list of this document and check if this
document must be transfered
+=cut
+#'
+sub OtherReserves {
+ my ($itemnumber)address@hidden;
+ my $messages;
+ my $nextreservinfo;
+ my ($restype,$checkreserves) = CheckReserves($itemnumber);
+ if ($checkreserves){
+ my %env;
+ my $iteminfo =
C4::Circulation::Circ2::getiteminformation(\%env,$itemnumber);
+ if ($iteminfo->{'holdingbranch'} ne
$checkreserves->{'branchcode'}){
+ $messages->{'transfert'} = $checkreserves->{'branchcode'};
+
+# minus priorities of others reservs
+
MinusPriority($itemnumber,$checkreserves->{'borrowernumber'},$iteminfo->{'biblionumber'});
+# launch the subroutine dotransfer
+
C4::Circulation::Circ2::dotransfer($itemnumber,$iteminfo->{'holdingbranch'},$checkreserves->{'branchcode'}),
+ }
+
+# step 2b : case of a reservation on the same branch, set the waiting
status
+ else{
+ $messages->{'waiting'} = 1;
+
MinusPriority($itemnumber,$checkreserves->{'borrowernumber'},$iteminfo->{'biblionumber'});
+ SetWaitingStatus($itemnumber);
+ }
+
+ $nextreservinfo = $checkreserves->{'borrowernumber'};
+ }
+
+ return ($messages,$nextreservinfo);
+}
+
+=item MinusPriority
+ Reduce the values of queuded list
+=cut
+#'
+sub MinusPriority{
+ my ($itemnumber,$borrowernumber,$biblionumber)address@hidden;
+# first step update the value of the first person on reserv
+ my $dbh = C4::Context->dbh;
+ my $sth_upd=$dbh->prepare("UPDATE reserves SET priority = 0 ,
itemnumber = ?
+ WHERE cancellationdate is NULL
+ AND borrowernumber=?
+ AND biblionumber=?");
+ $sth_upd->execute($itemnumber,$borrowernumber,$biblionumber);
+ $sth_upd->finish;
+
+# second step update all others reservs
+ my $sth_oth=$dbh->prepare("SELECT
priority,borrowernumber,biblionumber,reservedate FROM reserves WHERE priority
!='0' AND cancellationdate is NULL");
+ $sth_oth->execute();
+ while (my
($priority,$borrowernumber,$biblionumber,$reservedate)=$sth_oth->fetchrow_array){
+ $priority--;
+ my $sth_upd_oth = $dbh->prepare("UPDATE reserves SET priority
= ?
+ WHERE biblionumber = ?
+ AND borrowernumber = ?
+ AND reservedate = ?");
+
$sth_upd_oth->execute($priority,$biblionumber,$borrowernumber,$reservedate);
+ $sth_upd_oth->finish;
+ }
+ $sth_oth->finish;
+
+}
+
+
+=item GlobalCancel
+ New op dev for the circulation based on item, global is a function to
cancel reserv,check other reserves, and transfer document if it's necessary
+=cut
+#'
+# New op dev :
+# we check if we have a reserves with itemnumber (New op system of reserves),
if we found one, we update the status of the reservation when we have :
'priority' = 0, and we have an itemnumber
+sub SetWaitingStatus{
+# first : check if we have a reservation for this item .
+ my ($itemnumber)address@hidden;
+ my $dbh = C4::Context->dbh;
+ my $sth_find=$dbh->prepare("SELECT priority,borrowernumber from
reserves WHERE itemnumber=? and cancellationdate is NULL and found is NULL and
priority='0'");
+ $sth_find->execute($itemnumber);
+ my ($priority,$borrowernumber) = $sth_find->fetchrow_array;
+ $sth_find->finish;
+ if (not $borrowernumber){
+ return();
+ }
+ else{
+# step 2 : if we have a borrowernumber, we update the value found
to 'W' for notify the borrower
+ my $sth_set=$dbh->prepare("UPDATE reserves SET
found='W',waitingdate = now() where borrowernumber=? AND itemnumber=? AND found
is null");
+ $sth_set->execute($borrowernumber,$itemnumber);
+ $sth_set->finish;
+ }
+
+}
+
+sub FastFindReserves {
+ my ($itemnumber,$borrowernumber)address@hidden;
+ if ($itemnumber){
+ my $dbh = C4::Context->dbh;
+ my $sth_res=$dbh->prepare("SELECT reservedate,borrowernumber
from reserves WHERE itemnumber=? and cancellationdate is NULL AND (found != 'F'
or found is null)");
+ $sth_res->execute($itemnumber);
+ my ($reservedate,$borrowernumber)=$sth_res->fetchrow_array;
+ $sth_res->finish;
+ return($reservedate,$borrowernumber);
+ }
+ if ($borrowernumber){
+ my $dbh = C4::Context->dbh;
+ my $sth_find=$dbh->prepare("SELECT * from reserves WHERE
borrowernumber=? and cancellationdate is NULL and (found != 'F' or found is
null) order by reservedate");
+ $sth_find->execute($borrowernumber);
+ my @borrowerreserv;
+ my $i=0;
+ while (my $data=$sth_find->fetchrow_hashref){
+ $borrowerreserv[$i]=$data;
+ $i++;
+ }
+ $sth_find->finish;
+ return (@borrowerreserv);
+ }
+
+}
+
+
=item FindReserves
@@ -551,13 +693,17 @@
# C4::Reserves. Pick one and stick with it.
# XXX - POD
sub CreateReserve {
- my
-($env,$branch,$borrnum,$biblionumber,$constraint,$bibitems,$priority,$notes,$title)=
@_;
+ my
($env,$branch,$borrnum,$biblionumber,$constraint,$bibitems,$priority,$notes,$title,$checkitem,$found)=
@_;
my $fee=CalcReserveFee($env,$borrnum,$biblionumber,$constraint,$bibitems);
my $dbh = C4::Context->dbh;
my $const = lc substr($constraint,0,1);
my @datearr = localtime(time);
my $resdate =(1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
+ my $waitingdate;
+# If the reserv had the waiting status, we had the value of the resdate
+ if ($found eq 'W'){
+ $waitingdate = $resdate;
+ }
#eval {
# updates take place here
if ($fee > 0) {
@@ -572,9 +718,9 @@
}
#if ($const eq 'a'){
my $sth = $dbh->prepare("insert into reserves
-
(borrowernumber,biblionumber,reservedate,branchcode,constrainttype,priority,reservenotes)
- values (?,?,?,?,?,?,?)");
-
$sth->execute($borrnum,$biblionumber,$resdate,$branch,$const,$priority,$notes);
+
(borrowernumber,biblionumber,reservedate,branchcode,constrainttype,priority,reservenotes,itemnumber,found,waitingdate)
+ values (?,?,?,?,?,?,?,?,?,?)");
+
$sth->execute($borrnum,$biblionumber,$resdate,$branch,$const,$priority,$notes,$checkitem,$found,$waitingdate);
$sth->finish;
#}
if (($const eq "o") || ($const eq "e")) {
Index: koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc
diff -u koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc:1.3
koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc:1.4
--- koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc:1.3 Tue May 9
13:28:08 2006
+++ koha/koha-tmpl/intranet-tmpl/prog/en/includes/menus.inc Fri May 19
17:01:03 2006
@@ -1,4 +1,5 @@
<script language="JavaScript" type="text/javascript">
+function _(s) { return s } // dummy function for gettext
function Help() {
newin=window.open("/cgi-bin/koha/help.pl","Koha
Help",'width=600,height=600,toolbar=false,scrollbars=yes');
}
Index: koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl
diff -u koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl:1.5
koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl:1.6
--- koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl:1.5 Fri Apr 14
09:37:14 2006
+++ koha/koha-tmpl/intranet-tmpl/prog/en/intranet-main.tmpl Fri May 19
17:01:03 2006
@@ -7,14 +7,19 @@
<li><a
href="/cgi-bin/koha/circ/circulation.pl">Issues</a></li>
<li><a
href="/cgi-bin/koha/circ/returns.pl">Returns</a></li>
<li><a
href="/cgi-bin/koha/circ/branchtransfers.pl">Transfers</a></li>
- <li><a
href="/cgi-bin/koha/circ/selectbranchprinter.pl">Set Branch</a></li>
+ <li><a
href="/cgi-bin/koha/circ/selectbranchprinter.pl">Set branch</a></li>
+ <li><a
href="/cgi-bin/koha/circ/branchreserves.pl">Waiting reserves</a></li>
+ <li><a
href="/cgi-bin/koha/circ/waitingreservestransfers.pl">Transfers to do</a></li>
+ <li><a
href="/cgi-bin/koha/circ/currenttransfers.pl">Transfers to recieve</a></li>
</ul>
</li>
<li>Members
<ul>
- <li><a
href="/cgi-bin/koha/members/members-home.pl">Member Search</a></li>
- <li><a
href="/cgi-bin/koha/members/memberentry.pl?actionType=Add">Add Member</a></li>
- <li><a
href="/cgi-bin/koha/members/memberentry.pl?categorycode=I&actionType=Add">Add
Institution</a></li>
+ <li><a
href="/cgi-bin/koha/members/members-home.pl">Search</a></li>
+ <li><a
href="/cgi-bin/koha/members/memberentry.pl?op=add&category_type=A"/>Add
adult</a></li>
+ <li><a
href="/cgi-bin/koha/members/memberentry.pl?op=add&category_type=C"/>Add
child</a></li>
+ <li><a
href="/cgi-bin/koha/members/memberentry.pl?op=add&category_type=P"/>Add
prof</a></li>
+ <li><a
href="/cgi-bin/koha/members/memberentry.pl?op=add&category_type=I"/>Add
org</a></li>
</ul>
</li>
<li>Catalogue
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] koha C4/Circulation/Circ2.pm C4/Reserves2.pm ko...,
LAURIN arnaud <=