my ($biblioitemnumber) = @_;
my $dbh = C4::Context->dbh;
my $query = "SELECT *,biblioitems.notes AS bnotes
- FROM biblio, biblioitems ";
+ FROM biblio LEFT JOIN biblioitems on biblio.biblionumber=biblioitems.biblioitemnumber ";
unless(C4::Context->preference('item-level_itypes')) {
$query .= "LEFT JOIN itemtypes on biblioitems.itemtype=itemtypes.itemtype ";
}
- $query .= " WHERE biblio.biblionumber = biblioitems.biblionumber
- AND biblioitemnumber = ? ";
+ $query .= " WHERE biblioitemnumber = ? ";
my $sth = $dbh->prepare($query);
my $data;
$sth->execute($biblioitemnumber);
<!-- TMPL_IF NAME="patronimages" -->$(window).load(function() {
verify_patron_images();
});<!-- /TMPL_IF -->
+function uncheck_sibling(me){
+nodename=me.getAttribute("name");
+if (nodename =="barcodes[]"){
+ var Node=me.parentNode.previousSibling;
+ while (Node.nodeName!="TD"){Node=Node.previousSibling}
+ var Nodes=Node.childNodes;
+ for (var i=0;i<Nodes.length;i++){
+ if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
+ Nodes[i].checked=false;
+ }
+ }
+
+}else {
+ var Node=me.parentNode.nextSibling;
+ while (Node.nodeName!="TD"){Node=Node.nextSibling}
+ var Nodes=Node.childNodes;
+ for (var i=0;i<Nodes.length;i++){
+ if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
+ Nodes[i].checked=false;
+ }
+ }
+}
+}
+function checkall(myname){
+var ItemsNodes=document.getElementsByName('items[]');
+var BarcodesNodes=document.getElementsByName('barcodes[]');
+if (myname =="barcodes[]"){
+for (var i=0;i<ItemsNodes.length;i++){
+ ItemsNodes[i].checked=false;
+}
+for (var i=0;i<BarcodesNodes.length;i++){
+ BarcodesNodes[i].checked=true;
+}
+}else {
+for (var i=0;i<BarcodesNodes.length;i++){
+ BarcodesNodes[i].checked=false;
+}
+for (var i=0;i<ItemsNodes.length;i++){
+ ItemsNodes[i].checked=true;
+}
+}
+}
+function uncheckall(myname){
+var ItemsNodes=document.getElementsByName('items[]');
+var BarcodesNodes=document.getElementsByName('barcodes[]');
+if (myname =="barcodes[]"){
+for (var i=0;i<BarcodesNodes.length;i++){
+ BarcodesNodes[i].checked=false;
+}
+}else {
+for (var i=0;i<ItemsNodes.length;i++){
+ ItemsNodes[i].checked=false;
+}
+}
+}
//]]>
</script>
<a href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">On Hold</a>
<!-- TMPL_ELSE -->
<!-- TMPL_IF NAME="red" -->
- <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" />
+ <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" onClick="javascript:uncheck_sibling(this);" />
<!-- TMPL_ELSE -->
- <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
+ <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" onClick="javascript:uncheck_sibling(this);" />
<!-- /TMPL_IF -->
- <input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
<!-- /TMPL_IF -->
</td>
- <td><a href="/cgi-bin/koha/circ/returns.pl?barcode=<!-- TMPL_VAR NAME="barcode" -->">Check In</a></td>
+ <td><input type="checkbox" name="barcodes[]" value="<!-- TMPL_VAR NAME="barcode" -->" onClick="javascript:uncheck_sibling(this);" /></td>
<!-- TMPL_IF NAME="renew_failed" -->
<td>Renewal Failed</td>
<!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="return_failed" -->
+ <td>Return Failed</td>
+ <!-- /TMPL_IF -->
</tr>
<!-- /tmpl_loop -->
<tr>
</tr>
</table>
<fieldset class="action">
- <input type="submit" name="renew_checked" value="Renew checked items" />
- <input type="submit" name="renew_all" value="Renew all" />
+ <input type="submit" name="renew_checked" value="Renew or Return checked items" />
+ <input type="submit" name="renew_all" value="Renew all" onClick="checkall('items[]');"/>
+ <input type="submit" name="return_all" value="Return all" onClick="checkall('barcodes[]');"/>
+ <input type="button" name="renew_all" value="Uncheck all Renew" onClick="uncheckall('items[]');"/>
+ <input type="button" name="return_all" value="Uncheck all Returns" onClick="uncheckall('barcodes[]');"/>
</fieldset>
</form><!-- TMPL_ELSE --><p>Patron has nothing checked out.</p><!-- /TMPL_IF -->
</div>
$debug or $debug = $input->param('debug') || 0;
my $print = $input->param('print');
my @failedrenews = $input->param('failedrenew');
+my @failedreturns = $input->param('failedreturn');
my $error = $input->param('error');
my @renew_failed;
-for (@failedrenews) { $renew_failed[$_] = 1; }
+for my $renew (@failedrenews) { $renew_failed[$renew] = 1; }
+my @return_failed;
+for my $failedret (@failedreturns) { $return_failed[$failedret] = 1; }
my $template_name;
my ( $restype, $reserves ) = CheckReserves( $issue->[$i]{'itemnumber'} );
$row{'norenew'} = ($restype) ? 1 : 0;
$row{'renew_failed'} = $renew_failed[$issue->[$i]{'itemnumber'}];
+ $row{'return_failed'} = $return_failed[$issue->[$i]{'barcode'}];
push( @issuedata, \%row );
}
use CGI;
use C4::Circulation;
+use C4::Auth;
my $input = new CGI;
+#Set Up User_env
+# And assures user is loggedin and has correct accreditations.
+
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+ {
+ template_name => "members/moremember.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { borrowers => 1 },
+ debug => 1,
+ }
+);
+
#
# find items to renew, all items or a selection of items
#
else {
@data = $input->param('items[]');
}
+my @barcodes = $input->param('barcodes[]');
my $branch=$input->param('branch');
+
+# warn "barcodes : @barcodes";
#
# renew items
#
$failedrenews.="&failedrenew=$itemno";
}
}
+my $failedreturn;
+foreach my $barcode (@barcodes) {
+ # check status before renewing issue
+ my ( $returned, $messages, $issueinformation, $borrower ) =
+ AddReturn($barcode,$branch,1);
+ $failedreturn.="&failedreturn=$barcode" unless ($returned);
+}
#
# redirection to the referrer page
#
if ($input->param('destination') eq "circ"){
print $input->redirect(
- '/cgi-bin/koha/circ/circulation.pl?findborrower='.$cardnumber.$failedrenews
+ '/cgi-bin/koha/circ/circulation.pl?findborrower='.$cardnumber.$failedrenews.$failedreturn
);
}
else {
print $input->redirect(
- '/cgi-bin/koha/members/moremember.pl?borrowernumber='.$borrowernumber.$failedrenews
+ '/cgi-bin/koha/members/moremember.pl?borrowernumber='.$borrowernumber.$failedrenews.$failedreturn
);
}