# Copyright 2000-2002 Katipo Communications
# 2006 SAN-OP
# 2007-2010 BibLibre, Paul POULAIN
+# 2010 Catalyst IT
#
# This file is part of Koha.
#
if ( $messages->{'transfert'} ) {
$template->param(
itemtitle => $iteminfo->{'title'},
+ itemnumber => $iteminfo->{'itemnumber'},
itembiblionumber => $iteminfo->{'biblionumber'},
iteminfo => $iteminfo->{'author'},
tobranchname => GetBranchName($messages->{'transfert'}),
my $exemptfine = $query->param('exemptfine');
my $dropboxmode = $query->param('dropboxmode');
my $dotransfer = $query->param('dotransfer');
-my $calendar = C4::Calendar->new( branchcode => $userenv_branch );
+my $canceltransfer = $query->param('canceltransfer');
+my $dest = $query->param('dest');
+my $calendar = Koha::Calendar->new( branchcode => $userenv_branch );
#dropbox: get last open day (today - 1)
-my $today = C4::Dates->new();
-my $today_iso = $today->output('iso');
+my $today = DateTime=>now( time_zone => C4::Context->tz());
+#my $today_iso = $today->output('iso');
my $dropboxdate = $calendar->addDate($today, -1);
if ($dotransfer){
# An item has been returned to a branch other than the homebranch, and the librarian has chosen to initiate a transfer
ModItemTransfer($transferitem, $userenv_branch, $tobranch);
}
+if ($canceltransfer){
+ $itemnumber=$query->param('itemnumber');
+ DeleteTransfer($itemnumber);
+ if($dest eq "ttr"){
+ print $query->redirect("/cgi-bin/koha/circ/transferstoreceive.pl");
+ exit;
+ } else {
+ $template->param( transfercancelled => 1);
+ }
+}
+
# actually return book and prepare item table.....
if ($barcode) {
$barcode =~ s/^\s*|\s*$//g; # remove leading/trailing whitespace
itemtype => $biblio->{'itemtype'},
ccode => $biblio->{'ccode'},
itembiblionumber => $biblio->{'biblionumber'},
+ additional_materials => $biblio->{'materials'}
);
my %input = (
);
if ($returned) {
- my $duedate = $issueinformation->{'date_due'};
+ my $time_now = DateTime->now( time_zone => C4::Context->tz )->truncate( to => 'minutes');
+ my $duedate = $issueinformation->{date_due}->strftime('%Y-%m-%d %H:%M');
$returneditems{0} = $barcode;
$riborrowernumber{0} = $borrower->{'borrowernumber'};
$riduedate{0} = $duedate;
$input{borrowernumber} = $borrower->{'borrowernumber'};
$input{duedate} = $duedate;
- $input{return_overdue} = 1 if ($duedate and $duedate lt $today->output('iso'));
+ $input{return_overdue} = 1 if (DateTime->compare($issueinformation->{date_due}, $time_now) == -1);
push( @inputloop, \%input );
if ( C4::Context->preference("FineNotifyAtCheckin") ) {
$template->param( fineborrowernumber => $borrower->{'borrowernumber'} );
}
}
-
+
+ if (C4::Context->preference("WaitingNotifyAtCheckin") ) {
+ #Check for waiting holds
+ my @reserves = GetReservesFromBorrowernumber($borrower->{'borrowernumber'});
+ my $waiting_holds;
+ foreach my $num_res (@reserves) {
+ if ( $num_res->{'found'} eq 'W' && $num_res->{'branchcode'} eq $userenv_branch) {
+ $waiting_holds++;
+ }
+ }
+ if ($waiting_holds > 0) {
+ $template->param(
+ waiting_holds => $waiting_holds,
+ holdsborrowernumber => $borrower->{'borrowernumber'},
+ holdsfirstname => $borrower->{'firstname'},
+ holdssurname => $borrower->{'surname'},
+ );
+ }
+ }
}
elsif ( !$messages->{'BadBarcode'} ) {
$input{duedate} = 0;
$template->param(
found => 1,
transfer => 1,
+ itemnumber => $itemnumber,
);
}
WrongTransfer => 1,
TransferWaitingAt => $messages->{'WrongTransfer'},
WrongTransferItem => $messages->{'WrongTransferItem'},
+ itemnumber => $itemnumber,
);
my $reserve = $messages->{'ResFound'};
$err{notissued} = 1;
$err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
}
+ elsif ( $code eq 'LocalUse' ) {
+ $err{localuse} = 1;
+ }
elsif ( $code eq 'WasLost' ) {
$err{waslost} = 1;
}
}
elsif ( $code eq 'Wrongbranch' ) {
}
-
+ elsif ( $code eq 'Debarred' ) {
+ $err{debarred} = format_date( $messages->{'Debarred'} );
+ $err{debarcardnumber} = $borrower->{cardnumber};
+ $err{debarborrowernumber} = $borrower->{borrowernumber};
+ $err{debarname} = "$borrower->{firstname} $borrower->{surname}";
+ }
else {
die "Unknown error code $code"; # note we need all the (empty) elsif's above, or we die.
# This forces the issue of staying in sync w/ Circulation.pm
{
my $biblio = GetBiblioFromItemNumber( $item->{'itemnumber'});
push @itemloop, {
- duedate => format_date($item->{'date_due'}),
+ duedate => output_pref($item->{'date_due'}),
biblionum => $biblio->{'biblionumber'},
barcode => $biblio->{'barcode'},
title => $biblio->{'title'},
my $returned_counter = ( C4::Context->preference('numReturnedItemsToShow') ) ? C4::Context->preference('numReturnedItemsToShow') : 8;
my $count = 0;
my @riloop;
+my $shelflocations = GetKohaAuthorisedValues('items.location','');
foreach ( sort { $a <=> $b } keys %returneditems ) {
my %ri;
if ( $count++ < $returned_counter ) {
my $bar_code = $returneditems{$_};
- my $duedate = $riduedate{$_};
- if ($duedate) {
- my @tempdate = split( /-/, $duedate );
- $ri{year} = $tempdate[0];
- $ri{month} = $tempdate[1];
- $ri{day} = $tempdate[2];
- $ri{duedate} = format_date($duedate);
+ if ($riduedate{$_}) {
+ my $duedate = DateTime::Format::DateParse::MySQL( $riduedate{$_}, C4::Context->tz()->name());
+ $ri{year} = $duedate->year();
+ $ri{month} = $duedate->month();
+ $ri{day} = $duedate->day();
+ $ri{hour} = $duedate->hour();
+ $ri{minute} = $duedate->minute();
+ $ri{duedate} = output_pref($duedate);
my ($b) = GetMemberDetails( $riborrowernumber{$_}, 0 );
- $ri{return_overdue} = 1 if ($duedate lt $today->output('iso'));
+ $ri{return_overdue} = 1 if (DateTime->compare($duedate, DateTime->now()) == -1 );
$ri{borrowernumber} = $b->{'borrowernumber'};
$ri{borcnum} = $b->{'cardnumber'};
$ri{borfirstname} = $b->{'firstname'};
$ri{itembiblionumber} = $biblio->{'biblionumber'};
$ri{itemtitle} = $biblio->{'title'};
$ri{itemauthor} = $biblio->{'author'};
+ $ri{itemcallnumber} = $biblio->{'itemcallnumber'};
$ri{itemtype} = $biblio->{'itemtype'};
$ri{itemnote} = $biblio->{'itemnotes'};
$ri{ccode} = $biblio->{'ccode'};
$ri{itemnumber} = $biblio->{'itemnumber'};
$ri{barcode} = $bar_code;
+
+ $ri{location} = $biblio->{'location'};
+ my $shelfcode = $ri{'location'};
+ $ri{'location'} = $shelflocations->{$shelfcode} if ( defined( $shelfcode ) && defined($shelflocations) && exists( $shelflocations->{$shelfcode} ) );
+
}
else {
last;
errmsgloop => \@errmsgloop,
exemptfine => $exemptfine,
dropboxmode => $dropboxmode,
- dropboxdate => $dropboxdate->output(),
+ dropboxdate => output_pref($dropboxdate),
overduecharges => $overduecharges,
soundon => C4::Context->preference("SoundOn"),
);