[Koha-patches] [PATCH] Bug 2930: add other name to CKO screen

PlanoISD dschust1 at gmail.com
Wed Feb 10 22:42:53 CET 2010


From: root <root at koha1.pisd.edu>

This patch adds "othername" to the circulation.pl so that circulation.tmpl can display David "Doofus" Schuster if there is something in othername in the Borrower record on the checkout screen.  If there is nothing in the other name field it shows as David Schuster
---
 dws/circulation.pl   |  719 ++++++++++++++++++++++++++++++++++++++++++
 dws/circulation.tmpl |  854 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1573 insertions(+), 0 deletions(-)
 create mode 100644 dws/circulation.pl
 create mode 100644 dws/circulation.tmpl

diff --git a/dws/circulation.pl b/dws/circulation.pl
new file mode 100644
index 0000000..5057beb
--- /dev/null
+++ b/dws/circulation.pl
@@ -0,0 +1,719 @@
+#!/usr/bin/perl
+
+# written 8/5/2002 by Finlay
+# script to execute issuing of books
+
+# Copyright 2000-2002 Katipo Communications
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+
+use strict;
+# use warnings;  # FIXME
+use CGI;
+use C4::Output;
+use C4::Print;
+use C4::Auth qw/:DEFAULT get_session/;
+use C4::Dates qw/format_date/;
+use C4::Branch; # GetBranches
+use C4::Koha;   # GetPrinter
+use C4::Circulation;
+use C4::Members;
+use C4::Biblio;
+use C4::Reserves;
+use C4::Context;
+use CGI::Session;
+
+use Date::Calc qw(
+  Today
+  Add_Delta_YM
+  Add_Delta_Days
+  Date_to_Days
+);
+
+
+#
+# PARAMETERS READING
+#
+my $query = new CGI;
+
+my $sessionID = $query->cookie("CGISESSID") ;
+my $session = get_session($sessionID);
+
+# branch and printer are now defined by the userenv
+# but first we have to check if someone has tried to change them
+
+my $branch = $query->param('branch');
+if ($branch){
+    # update our session so the userenv is updated
+    $session->param('branch', $branch);
+    $session->param('branchname', GetBranchName($branch));
+}
+
+my $printer = $query->param('printer');
+if ($printer){
+    # update our session so the userenv is updated
+    $session->param('branchprinter', $printer);
+}
+
+if (!C4::Context->userenv && !$branch){
+    if ($session->param('branch') eq 'NO_LIBRARY_SET'){
+        # no branch set we can't issue
+        print $query->redirect("/cgi-bin/koha/circ/selectbranchprinter.pl");
+        exit;
+    }
+}
+
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user (
+    {
+        template_name   => 'circ/circulation.tmpl',
+        query           => $query,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { circulate => 'circulate_remaining_permissions' },
+    }
+);
+
+my $branches = GetBranches();
+
+my @failedrenews = $query->param('failedrenew');    # expected to be itemnumbers 
+my %renew_failed;
+for (@failedrenews) { $renew_failed{$_} = 1; }
+
+my $findborrower = $query->param('findborrower');
+$findborrower =~ s|,| |g;
+my $borrowernumber = $query->param('borrowernumber');
+
+$branch  = C4::Context->userenv->{'branch'};  
+$printer = C4::Context->userenv->{'branchprinter'};
+
+
+# If AutoLocation is not activated, we show the Circulation Parameters to chage settings of librarian
+if (C4::Context->preference("AutoLocation") != 1) {
+    $template->param(ManualLocation => 1);
+}
+
+if (C4::Context->preference("DisplayClearScreenButton")) {
+    $template->param(DisplayClearScreenButton => 1);
+}
+
+my $barcode        = $query->param('barcode') || '';
+$barcode =~  s/^\s*|\s*$//g; # remove leading/trailing whitespace
+
+$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter'));
+my $stickyduedate  = $query->param('stickyduedate') || $session->param('stickyduedate');
+my $duedatespec    = $query->param('duedatespec')   || $session->param('stickyduedate');
+my $issueconfirmed = $query->param('issueconfirmed');
+my $cancelreserve  = $query->param('cancelreserve');
+my $organisation   = $query->param('organisations');
+my $print          = $query->param('print');
+my $newexpiry      = $query->param('dateexpiry');
+my $debt_confirmed = $query->param('debt_confirmed') || 0; # Don't show the debt error dialog twice
+
+# Check if stickyduedate is turned off
+if ( $barcode ) {
+    # was stickyduedate loaded from session?
+    if ( $stickyduedate && ! $query->param("stickyduedate") ) {
+        $session->clear( 'stickyduedate' );
+        $stickyduedate  = $query->param('stickyduedate');
+        $duedatespec    = $query->param('duedatespec');
+    }
+}
+
+my ($datedue,$invalidduedate,$globalduedate);
+
+if(C4::Context->preference('globalDueDate') && (C4::Context->preference('globalDueDate') =~ C4::Dates->regexp('syspref'))){
+        $globalduedate = C4::Dates->new(C4::Context->preference('globalDueDate'));
+}
+my $duedatespec_allow = C4::Context->preference('SpecifyDueDate');
+if($duedatespec_allow){
+    if ($duedatespec) {
+        if ($duedatespec =~ C4::Dates->regexp('syspref')) {
+            my $tempdate = C4::Dates->new($duedatespec);
+            if ($tempdate and $tempdate->output('iso') gt C4::Dates->new()->output('iso')) {
+                # i.e., it has to be later than today/now
+                $datedue = $tempdate;
+            } else {
+                $invalidduedate = 1;
+                $template->param(IMPOSSIBLE=>1, INVALID_DATE=>$duedatespec);
+            }
+        } else {
+            $invalidduedate = 1;
+            $template->param(IMPOSSIBLE=>1, INVALID_DATE=>$duedatespec);
+        }
+    } else {
+        # pass global due date to tmpl if specifyduedate is true 
+        # and we have no barcode (loading circ page but not checking out)
+        if($globalduedate &&  ! $barcode ){
+            $duedatespec = $globalduedate->output();
+            $stickyduedate = 1;
+        }
+    }
+} else {
+    $datedue = $globalduedate if ($globalduedate);
+}
+
+my $todaysdate = C4::Dates->new->output('iso');
+
+# check and see if we should print
+if ( $barcode eq '' && $print eq 'maybe' ) {
+    $print = 'yes';
+}
+
+my $inprocess = ($barcode eq '') ? '' : $query->param('inprocess');
+if ( $barcode eq '' && $query->param('charges') eq 'yes' ) {
+    $template->param(
+        PAYCHARGES     => 'yes',
+        borrowernumber => $borrowernumber
+    );
+}
+
+if ( $print eq 'yes' && $borrowernumber ne '' ) {
+    printslip( $borrowernumber );
+    $query->param( 'borrowernumber', '' );
+    $borrowernumber = '';
+}
+
+#
+# STEP 2 : FIND BORROWER
+# if there is a list of find borrowers....
+#
+my $borrowerslist;
+my $message;
+if ($findborrower) {
+    my ($count, $borrowers) = SearchMember($findborrower, 'cardnumber', 'web');
+    my @borrowers = @$borrowers;
+    if (C4::Context->preference("AddPatronLists")) {
+        $template->param(
+            "AddPatronLists_".C4::Context->preference("AddPatronLists")=> "1",
+        );
+        if (C4::Context->preference("AddPatronLists")=~/code/){
+            my $categories = GetBorrowercategoryList;
+            $categories->[0]->{'first'} = 1;
+            $template->param(categories=>$categories);
+        }
+    }
+    if ( $#borrowers == -1 ) {
+        $query->param( 'findborrower', '' );
+        $message = "'$findborrower'";
+    }
+    elsif ( $#borrowers == 0 ) {
+        $query->param( 'borrowernumber', $borrowers[0]->{'borrowernumber'} );
+        $query->param( 'barcode',           '' );
+        $borrowernumber = $borrowers[0]->{'borrowernumber'};
+    }
+    else {
+        $borrowerslist = \@borrowers;
+    }
+}
+
+# get the borrower information.....
+my $borrower;
+if ($borrowernumber) {
+    $borrower = GetMemberDetails( $borrowernumber, 0 );
+    my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber );
+
+    # Warningdate is the date that the warning starts appearing
+    my (  $today_year,   $today_month,   $today_day) = Today();
+    my ($warning_year, $warning_month, $warning_day) = split /-/, $borrower->{'dateexpiry'};
+    my (  $enrol_year,   $enrol_month,   $enrol_day) = split /-/, $borrower->{'dateenrolled'};
+    # Renew day is calculated by adding the enrolment period to today
+    my (  $renew_year,   $renew_month,   $renew_day);
+    if ($enrol_year*$enrol_month*$enrol_day>0) {
+        (  $renew_year,   $renew_month,   $renew_day) =
+        Add_Delta_YM( $enrol_year, $enrol_month, $enrol_day,
+            0 , $borrower->{'enrolmentperiod'});
+    }
+    # if the expiry date is before today ie they have expired
+    if ( $warning_year*$warning_month*$warning_day==0 
+        || Date_to_Days($today_year,     $today_month, $today_day  ) 
+         > Date_to_Days($warning_year, $warning_month, $warning_day) )
+    {
+        #borrowercard expired, no issues
+        $template->param(
+            flagged  => "1",
+            noissues => "1",
+            expired     => format_date($borrower->{dateexpiry}),
+            renewaldate => format_date("$renew_year-$renew_month-$renew_day")
+        );
+    }
+    # check for NotifyBorrowerDeparture
+    elsif ( C4::Context->preference('NotifyBorrowerDeparture') &&
+            Date_to_Days(Add_Delta_Days($warning_year,$warning_month,$warning_day,- C4::Context->preference('NotifyBorrowerDeparture'))) <
+            Date_to_Days( $today_year, $today_month, $today_day ) ) 
+    {
+        # borrower card soon to expire warn librarian
+        $template->param("warndeparture" => format_date($borrower->{dateexpiry}),
+        flagged       => "1",);
+        if (C4::Context->preference('ReturnBeforeExpiry')){
+            $template->param("returnbeforeexpiry" => 1);
+        }
+    }
+    $template->param(
+        overduecount => $od,
+        issuecount   => $issue,
+        finetotal    => $fines
+    );
+}
+
+#
+# STEP 3 : ISSUING
+#
+#
+if ($barcode) {
+    # always check for blockers on issuing
+    my ( $error, $question ) =
+    CanBookBeIssued( $borrower, $barcode, $datedue , $inprocess );
+    my $blocker = $invalidduedate ? 1 : 0;
+
+    delete $question->{'DEBT'} if ($debt_confirmed);
+    foreach my $impossible ( keys %$error ) {
+        $template->param(
+            $impossible => $$error{$impossible},
+            IMPOSSIBLE  => 1
+        );
+        $blocker = 1;
+    }
+    if( !$blocker ){
+        my $confirm_required = 0;
+        unless($issueconfirmed){
+            #  Get the item title for more information
+            my $getmessageiteminfo  = GetBiblioFromItemNumber(undef,$barcode);
+            $template->param( itemhomebranch => $getmessageiteminfo->{'homebranch'} );
+
+            # pass needsconfirmation to template if issuing is possible and user hasn't yet confirmed.
+            foreach my $needsconfirmation ( keys %$question ) {
+                $template->param(
+                    $needsconfirmation => $$question{$needsconfirmation},
+                    getTitleMessageIteminfo => $getmessageiteminfo->{'title'},
+                    NEEDSCONFIRMATION  => 1
+                );
+                $confirm_required = 1;
+            }
+        }
+        unless($confirm_required) {
+            AddIssue( $borrower, $barcode, $datedue, $cancelreserve );
+            $inprocess = 1;
+            if($globalduedate && ! $stickyduedate && $duedatespec_allow ){
+                $duedatespec = $globalduedate->output();
+                $stickyduedate = 1;
+            }
+        }
+    }
+    
+    # FIXME If the issue is confirmed, we launch another time GetMemberIssuesAndFines, now display the issue count after issue 
+    my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber );
+    $template->param( issuecount   => $issue );
+}
+
+# reload the borrower info for the sake of reseting the flags.....
+if ($borrowernumber) {
+    $borrower = GetMemberDetails( $borrowernumber, 0 );
+}
+
+##################################################################################
+# BUILD HTML
+# show all reserves of this borrower, and the position of the reservation ....
+if ($borrowernumber) {
+
+    # new op dev
+    # now we show the status of the borrower's reservations
+    my @borrowerreserv = GetReservesFromBorrowernumber($borrowernumber );
+    my @reservloop;
+    my @WaitingReserveLoop;
+    
+    foreach my $num_res (@borrowerreserv) {
+        my %getreserv;
+        my %getWaitingReserveInfo;
+        my $getiteminfo  = GetBiblioFromItemNumber( $num_res->{'itemnumber'} );
+        my $itemtypeinfo = getitemtypeinfo( (C4::Context->preference('item-level_itypes')) ? $getiteminfo->{'itype'} : $getiteminfo->{'itemtype'} );
+        my ( $transfertwhen, $transfertfrom, $transfertto ) =
+          GetTransfers( $num_res->{'itemnumber'} );
+
+        $getreserv{waiting}       = 0;
+        $getreserv{transfered}    = 0;
+        $getreserv{nottransfered} = 0;
+
+        $getreserv{reservedate}    = format_date( $num_res->{'reservedate'} );
+        $getreserv{title}          = $getiteminfo->{'title'};
+        $getreserv{itemtype}       = $itemtypeinfo->{'description'};
+        $getreserv{author}         = $getiteminfo->{'author'};
+        $getreserv{barcodereserv}  = $getiteminfo->{'barcode'};
+        $getreserv{itemcallnumber} = $getiteminfo->{'itemcallnumber'};
+        $getreserv{biblionumber}   = $getiteminfo->{'biblionumber'};
+        $getreserv{waitingat}      = GetBranchName( $num_res->{'branchcode'} );
+        #         check if we have a waiting status for reservations
+        if ( $num_res->{'found'} eq 'W' ) {
+            $getreserv{color}   = 'reserved';
+            $getreserv{waiting} = 1;
+#     genarate information displaying only waiting reserves
+        $getWaitingReserveInfo{title}        = $getiteminfo->{'title'};
+        $getWaitingReserveInfo{biblionumber} = $getiteminfo->{'biblionumber'};
+        $getWaitingReserveInfo{itemtype}     = $itemtypeinfo->{'description'};
+        $getWaitingReserveInfo{author}       = $getiteminfo->{'author'};
+        $getWaitingReserveInfo{reservedate}  = format_date( $num_res->{'reservedate'} );
+        $getWaitingReserveInfo{waitingat}    = GetBranchName( $num_res->{'branchcode'} );
+        $getWaitingReserveInfo{waitinghere}  = 1 if $num_res->{'branchcode'} eq $branch;
+        }
+        #         check transfers with the itemnumber foud in th reservation loop
+        if ($transfertwhen) {
+            $getreserv{color}      = 'transfered';
+            $getreserv{transfered} = 1;
+            $getreserv{datesent}   = format_date($transfertwhen);
+            $getreserv{frombranch} = GetBranchName($transfertfrom);
+        } elsif ($getiteminfo->{'holdingbranch'} ne $num_res->{'branchcode'}) {
+            $getreserv{nottransfered}   = 1;
+            $getreserv{nottransferedby} = GetBranchName( $getiteminfo->{'holdingbranch'} );
+        }
+
+#         if we don't have a reserv on item, we put the biblio infos and the waiting position
+        if ( $getiteminfo->{'title'} eq '' ) {
+            my $getbibinfo = GetBiblioData( $num_res->{'biblionumber'} );
+
+            $getreserv{color}           = 'inwait';
+            $getreserv{title}           = $getbibinfo->{'title'};
+            $getreserv{nottransfered}   = 0;
+            $getreserv{itemtype}        = $itemtypeinfo->{'description'};
+            $getreserv{author}          = $getbibinfo->{'author'};
+            $getreserv{biblionumber}    = $num_res->{'biblionumber'};
+        }
+        $getreserv{waitingposition} = $num_res->{'priority'};
+        push( @reservloop, \%getreserv );
+
+#         if we have a reserve waiting, initiate waitingreserveloop
+        if ($getreserv{waiting} == 1) {
+        push (@WaitingReserveLoop, \%getWaitingReserveInfo)
+        }
+      
+    }
+
+    # return result to the template
+    $template->param( 
+        countreserv => scalar @reservloop,
+        reservloop  => \@reservloop ,
+        WaitingReserveLoop  => \@WaitingReserveLoop,
+    );
+    $template->param( adultborrower => 1 ) if ( $borrower->{'category_type'} eq 'A' );
+}
+
+# make the issued books table.
+my $todaysissues = '';
+my $previssues   = '';
+my @todaysissues;
+my @previousissues;
+## ADDED BY JF: new itemtype issuingrules counter stuff
+my $issued_itemtypes_count;
+my @issued_itemtypes_count_loop;
+my $totalprice = 0;
+
+if ($borrower) {
+# get each issue of the borrower & separate them in todayissues & previous issues
+    my ($issueslist) = GetPendingIssues($borrower->{'borrowernumber'});
+    # split in 2 arrays for today & previous
+    foreach my $it ( @$issueslist ) {
+        my $itemtypeinfo = getitemtypeinfo( (C4::Context->preference('item-level_itypes')) ? $it->{'itype'} : $it->{'itemtype'} );
+        # set itemtype per item-level_itype syspref - FIXME this is an ugly hack
+        $it->{'itemtype'} = ( C4::Context->preference( 'item-level_itypes' ) ) ? $it->{'itype'} : $it->{'itemtype'};
+
+        ($it->{'charge'}, $it->{'itemtype_charge'}) = GetIssuingCharges(
+            $it->{'itemnumber'}, $borrower->{'borrowernumber'}
+        );
+        $it->{'charge'} = sprintf("%.2f", $it->{'charge'});
+        my ($can_renew, $can_renew_error) = CanBookBeRenewed( 
+            $borrower->{'borrowernumber'},$it->{'itemnumber'}
+        );
+        $it->{"renew_error_${can_renew_error}"} = 1 if defined $can_renew_error;
+        my ( $restype, $reserves ) = CheckReserves( $it->{'itemnumber'} );
+        $it->{'can_renew'} = $can_renew;
+        $it->{'can_confirm'} = !$can_renew && !$restype;
+        $it->{'renew_error'} = $restype;
+        $it->{'checkoutdate'} = C4::Dates->new($it->{'issuedate'},'iso')->output('syspref');
+
+        $totalprice += $it->{'replacementprice'};
+        $it->{'itemtype'} = $itemtypeinfo->{'description'};
+        $it->{'itemtype_image'} = $itemtypeinfo->{'imageurl'};
+        $it->{'dd'} = format_date($it->{'date_due'});
+        $it->{'displaydate'} = format_date($it->{'issuedate'});
+        $it->{'od'} = ( $it->{'date_due'} lt $todaysdate ) ? 1 : 0 ;
+        ($it->{'author'} eq '') and $it->{'author'} = ' ';
+        $it->{'renew_failed'} = $renew_failed{$it->{'itemnumber'}};
+        # ADDED BY JF: NEW ITEMTYPE COUNT DISPLAY
+        $issued_itemtypes_count->{ $it->{'itemtype'} }++;
+
+        if ( $todaysdate eq $it->{'issuedate'} or $todaysdate eq $it->{'lastreneweddate'} ) {
+            push @todaysissues, $it;
+        } else {
+            push @previousissues, $it;
+        }
+    }
+    if ( C4::Context->preference( "todaysIssuesDefaultSortOrder" ) eq 'asc' ) {
+        @todaysissues   = sort { $a->{'timestamp'} cmp $b->{'timestamp'} } @todaysissues;
+    }
+    else {
+        @todaysissues   = sort { $b->{'timestamp'} cmp $a->{'timestamp'} } @todaysissues;
+    }
+    if ( C4::Context->preference( "previousIssuesDefaultSortOrder" ) eq 'asc' ){
+        @previousissues = sort { $a->{'date_due'} cmp $b->{'date_due'} } @previousissues;
+    }
+    else {
+        @previousissues = sort { $b->{'date_due'} cmp $a->{'date_due'} } @previousissues;
+    }
+}
+
+#### ADDED BY JF FOR COUNTS BY ITEMTYPE RULES
+# FIXME: This should utilize all the issuingrules options rather than just the defaults
+# and it should be moved to a module
+my $dbh = C4::Context->dbh;
+
+# how many of each is allowed?
+my $issueqty_sth = $dbh->prepare(
+    'SELECT itemtypes.description AS description,issuingrules.itemtype,maxissueqty ' .
+    'FROM issuingrules LEFT JOIN itemtypes ON (itemtypes.itemtype=issuingrules.itemtype) ' .
+    'WHERE categorycode=?'
+);
+$issueqty_sth->execute(q{*}); # This is a literal asterisk, not a wildcard.
+
+while ( my $data = $issueqty_sth->fetchrow_hashref() ) {
+
+    # subtract how many of each this borrower has
+    $data->{'count'} = $issued_itemtypes_count->{ $data->{'description'} };  
+    $data->{'left'}  =
+      ( $data->{'maxissueqty'} -
+          $issued_itemtypes_count->{ $data->{'description'} } );
+
+    # can't have a negative number of remaining
+    if ( $data->{'left'} < 0 ) { $data->{'left'} = '0' }
+    if ( $data->{maxissueqty} <= $data->{count} ) {
+        $data->{flag} = 1;
+    }
+    if ( $data->{maxissueqty} > 0 && $data->{itemtype} !~m/^(\*|CIRC)$/ ) {
+        push @issued_itemtypes_count_loop, $data;
+    }
+}
+
+#### / JF
+
+my @values;
+my %labels;
+my $CGIselectborrower;
+if ($borrowerslist) {
+    foreach (
+        sort {(lc $a->{'surname'} cmp lc $b->{'surname'} || lc $a->{'firstname'} cmp lc $b->{'firstname'})
+        } @$borrowerslist
+      )
+    {
+        push @values, $_->{'borrowernumber'};
+        $labels{ $_->{'borrowernumber'} } =
+"$_->{'surname'}, $_->{'firstname'} ... ($_->{'cardnumber'} - $_->{'categorycode'}) ...  $_->{'address'} ";
+    }
+    $CGIselectborrower = CGI::scrolling_list(
+        -name     => 'borrowernumber',
+        -class    => 'focus',
+        -id       => 'borrowernumber',
+        -values   => \@values,
+        -labels   => \%labels,
+	-onclick  => "window.location = '/cgi-bin/koha/circ/circulation.pl?borrowernumber=' + this.value;",
+        -size     => 7,
+        -tabindex => '',
+        -multiple => 0
+    );
+}
+
+#title
+my $flags = $borrower->{'flags'};
+foreach my $flag ( sort keys %$flags ) {
+    $template->param( flagged=> 1);
+    $flags->{$flag}->{'message'} =~ s#\n#<br />#g;
+    if ( $flags->{$flag}->{'noissues'} ) {
+        $template->param(
+            flagged  => 1,
+            noissues => 'true',
+        );
+        if ( $flag eq 'GNA' ) {
+            $template->param( gna => 'true' );
+        }
+        elsif ( $flag eq 'LOST' ) {
+            $template->param( lost => 'true' );
+        }
+        elsif ( $flag eq 'DBARRED' ) {
+            $template->param( dbarred => 'true' );
+        }
+        elsif ( $flag eq 'CHARGES' ) {
+            $template->param(
+                charges    => 'true',
+                chargesmsg => $flags->{'CHARGES'}->{'message'},
+                chargesamount => $flags->{'CHARGES'}->{'amount'},
+                charges_is_blocker => 1
+            );
+        }
+        elsif ( $flag eq 'CREDITS' ) {
+            $template->param(
+                credits    => 'true',
+                creditsmsg => $flags->{'CREDITS'}->{'message'}
+            );
+        }
+    }
+    else {
+        if ( $flag eq 'CHARGES' ) {
+            $template->param(
+                charges    => 'true',
+                flagged    => 1,
+                chargesmsg => $flags->{'CHARGES'}->{'message'},
+                chargesamount => $flags->{'CHARGES'}->{'amount'},
+            );
+        }
+        elsif ( $flag eq 'CREDITS' ) {
+            $template->param(
+                credits    => 'true',
+                creditsmsg => $flags->{'CREDITS'}->{'message'}
+            );
+        }
+        elsif ( $flag eq 'ODUES' ) {
+            $template->param(
+                odues    => 'true',
+                flagged  => 1,
+                oduesmsg => $flags->{'ODUES'}->{'message'}
+            );
+
+            my $items = $flags->{$flag}->{'itemlist'};
+            if ( ! $query->param('module') || $query->param('module') ne 'returns' ) {
+                $template->param( nonreturns => 'true' );
+            }
+        }
+        elsif ( $flag eq 'NOTES' ) {
+            $template->param(
+                notes    => 'true',
+                flagged  => 1,
+                notesmsg => $flags->{'NOTES'}->{'message'}
+            );
+        }
+    }
+}
+
+my $amountold = $borrower->{flags}->{'CHARGES'}->{'message'} || 0;
+$amountold =~ s/^.*\$//;    # remove upto the $, if any
+
+my ( $total, $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
+
+if ( $borrower->{'category_type'} eq 'C') {
+    my  ( $catcodes, $labels ) =  GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
+    my $cnt = scalar(@$catcodes);
+    $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
+    $template->param( 'catcode' =>    $catcodes->[0])  if $cnt == 1;
+}
+
+my $CGIorganisations;
+my $member_of_institution;
+if ( C4::Context->preference("memberofinstitution") ) {
+    my $organisations = get_institutions();
+    my @orgs;
+    my %org_labels;
+    foreach my $organisation ( keys %$organisations ) {
+        push @orgs, $organisation;
+        $org_labels{$organisation} = $organisations->{$organisation}->{'surname'};
+    }
+    $member_of_institution = 1;
+    $CGIorganisations      = CGI::popup_menu(
+        -id     => 'organisations',
+        -name   => 'organisations',
+        -labels => \%org_labels,
+        -values => \@orgs,
+    );
+}
+
+my $lib_messages_loop = GetMessages( $borrowernumber, 'L', $branch );
+if($lib_messages_loop){ $template->param(flagged => 1 ); }
+
+my $bor_messages_loop = GetMessages( $borrowernumber, 'B', $branch );
+if($bor_messages_loop){ $template->param(flagged => 1 ); }
+
+# Computes full borrower address
+my (undef, $roadttype_hashref) = &GetRoadTypes();
+my $address = $borrower->{'streetnumber'}.' '.$roadttype_hashref->{$borrower->{'streettype'}}.' '.$borrower->{'address'};
+
+$template->param(
+    issued_itemtypes_count_loop => \@issued_itemtypes_count_loop,
+    lib_messages_loop => $lib_messages_loop,
+    bor_messages_loop => $bor_messages_loop,
+    all_messages_del  => C4::Context->preference('AllowAllMessageDeletion'),
+    findborrower      => $findborrower,
+    borrower          => $borrower,
+    borrowernumber    => $borrowernumber,
+    branch            => $branch,
+    branchname        => GetBranchName($borrower->{'branchcode'}),
+    printer           => $printer,
+    printername       => $printer,
+    firstname         => $borrower->{'firstname'},
+    surname           => $borrower->{'surname'},
+    othernames        => $borrower->{'othernames'},    
+    dateexpiry        => format_date($newexpiry),
+    expiry            => format_date($borrower->{'dateexpiry'}),
+    categorycode      => $borrower->{'categorycode'},
+    categoryname      => $borrower->{description},
+    address           => $address,
+    address2          => $borrower->{'address2'},
+    email             => $borrower->{'email'},
+    emailpro          => $borrower->{'emailpro'},
+    borrowernotes     => $borrower->{'borrowernotes'},
+    city              => $borrower->{'city'},
+    zipcode           => $borrower->{'zipcode'},
+    country           => $borrower->{'country'},
+    phone             => $borrower->{'phone'} || $borrower->{'mobile'},
+    cardnumber        => $borrower->{'cardnumber'},
+    amountold         => $amountold,
+    barcode           => $barcode,
+    stickyduedate     => $stickyduedate,
+    duedatespec       => $duedatespec,
+    message           => $message,
+    CGIselectborrower => $CGIselectborrower,
+    totalprice        => sprintf('%.2f', $totalprice),
+    totaldue          => sprintf('%.2f', $total),
+    todayissues       => \@todaysissues,
+    previssues        => \@previousissues,
+    inprocess         => $inprocess,
+    memberofinstution => $member_of_institution,
+    CGIorganisations  => $CGIorganisations,
+    is_child          => ($borrower->{'category_type'} eq 'C'),
+    circview => 1,
+);
+
+# save stickyduedate to session
+if ($stickyduedate) {
+    $session->param( 'stickyduedate', $duedatespec );
+}
+
+my ($picture, $dberror) = GetPatronImage($borrower->{'cardnumber'});
+$template->param( picture => 1 ) if $picture;
+
+# get authorised values with type of BOR_NOTES
+my @canned_notes;
+my $sth = $dbh->prepare('SELECT * FROM authorised_values WHERE category = "BOR_NOTES"');
+$sth->execute();
+while ( my $row = $sth->fetchrow_hashref() ) {
+  push @canned_notes, $row;
+}
+if ( scalar( @canned_notes ) ) {
+  $template->param( canned_bor_notes_loop => \@canned_notes );
+}
+
+$template->param(
+    debt_confirmed            => $debt_confirmed,
+    SpecifyDueDate            => $duedatespec_allow,
+    CircAutocompl             => C4::Context->preference("CircAutocompl"),
+	AllowRenewalLimitOverride => C4::Context->preference("AllowRenewalLimitOverride"),
+    dateformat                => C4::Context->preference("dateformat"),
+    DHTMLcalendar_dateformat  => C4::Dates->DHTMLcalendar(),
+);
+output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/dws/circulation.tmpl b/dws/circulation.tmpl
new file mode 100644
index 0000000..31341d9
--- /dev/null
+++ b/dws/circulation.tmpl
@@ -0,0 +1,854 @@
+<!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
+<title>Koha &rsaquo; Circulation
+<!-- TMPL_IF NAME="borrowernumber" -->
+&rsaquo; Checking out to <!-- TMPL_VAR name="surname" -->, <!-- TMPL_IF NAME="othernames" -->"<!--TMPL_VAR NAME="othernames" -->"<!-- /TMPL_IF --><!-- TMPL_VAR name="firstname" -->
+(<!-- TMPL_VAR NAME="cardnumber" -->)
+<!-- /TMPL_IF --></title>
+<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
+<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
+<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
+<script type="text/javascript">
+//<![CDATA[
+$.tablesorter.addParser({
+    id: 'articles',
+    is: function(s) {return false;  },
+    format: function(s) { return s.toLowerCase().replace(/^(the|an|a) /,''); },
+    type: 'text'
+});
+<!-- TMPL_UNLESS NAME="borrowernumber" --><!-- TMPL_UNLESS NAME="CGIselectborrower" -->window.onload=function(){ $('#findborrower').focus(); };<!-- /TMPL_UNLESS --><!-- /TMPL_UNLESS -->
+	 $(document).ready(function() {
+ 		$('#patronlists > ul').tabs();
+		$.tablesorter.defaults.widgets = ['zebra'];
+		$("#issuest").tablesorter({<!-- TMPL_IF NAME="dateformat_metric" -->
+		dateFormat: 'uk',<!-- /TMPL_IF -->
+		headers: { 1: { sorter: 'articles' },5: { sorter: false },6:{sorter:false},7:{sorter:false},8:{sorter:false}}
+		});
+		$("#issuest").bind("sortEnd",function() {
+        	$("#previous").parents("tr").remove();  // 'previous checkouts' header chokes table sorter
+	    });
+		$("#holdst").tablesorter({<!-- TMPL_IF NAME="dateformat_metric" -->
+		dateFormat: 'uk',<!-- /TMPL_IF -->
+			sortList: [[0,0]],
+			headers: { 1: { sorter: 'articles' }}
+		});
+
+        <!-- TMPL_IF NAME="AllowRenewalLimitOverride" -->
+        $( '#override_limit' ).click( function () {
+            if ( this.checked ) {
+                $( '.renewals-allowed' ).show(); $( '.renewals-disabled' ).hide();
+            } else {
+                $( '.renewals-allowed' ).hide(); $( '.renewals-disabled' ).show();
+            }
+        } ).attr( 'checked', false );
+        <!-- /TMPL_IF -->
+
+var allcheckboxes = $(".checkboxed");
+	$("#renew_all").click(function(){
+		$(allcheckboxes).checkCheckboxes(":input[name*=items]"); 
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=barcodes]");
+	});
+	$("#return_all").click(function(){
+		$(allcheckboxes).checkCheckboxes(":input[name*=barcodes]");
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=items]");
+	});
+	$("#CheckAllitems").click(function(){
+		$(allcheckboxes).checkCheckboxes(":input[name*=items]");
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=barcodes]"); return false;
+	});
+    $("#CheckNoitems").click(function(){
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=items]"); return false;
+	});
+	$("#CheckAllreturns").click(function(){
+		$(allcheckboxes).checkCheckboxes(":input[name*=barcodes]");
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=items]"); return false;
+	});
+    $("#CheckNoreturns" ).click(function(){
+		$(allcheckboxes).unCheckCheckboxes(":input[name*=barcodes]"); return false;
+	});
+
+    <!-- TMPL_IF NAME="CAN_user_circulate_override_renewals" -->
+    <!-- TMPL_IF NAME="AllowRenewalLimitOverride" -->
+    $( '#override_limit' ).click( function () {
+        if ( this.checked ) {
+           $( '.renewals-allowed' ).show(); $( '.renewals-disabled' ).hide();
+        } else {
+           $( '.renewals-allowed' ).hide(); $( '.renewals-disabled' ).show();
+        }
+    } ).attr( 'checked', false );
+    <!-- /TMPL_IF -->
+    <!-- /TMPL_IF -->
+	$("td").click(function(e){
+		if(e.target.tagName.toLowerCase() == 'td'){
+           $(this).find("input:checkbox").each( function() {
+               $(this).attr('checked', !$(this).attr('checked'));
+			   if($(this).attr('checked')){
+                    $(this).parent().siblings().find("input:checkbox").each(function(){
+                       if($(this).attr('checked')){ $(this).attr('checked',''); }
+                   });
+			   }
+           });
+		}
+	});
+	$("#messages ul").after("<a href=\"#\" id=\"addmessage\">"+_("Add a new message")+"</a>");
+	$("#borrower_messages .cancel").click(function(){
+		$("#add_message_form").hide();
+        $("#addmessage").show();
+	});
+	$("#addmessage").click(function (){
+        $(this).hide();
+		$("#add_message_form").show();
+	 });
+ });
+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 validate1(date) {
+    var today = new Date();
+    if ( date < today ) {
+        return true;
+     } else {
+        return false;
+     }
+};
+function refocus(calendar) {
+   document.getElementById('barcode').focus();
+   calendar.hide();
+};
+//]]>
+</script>
+
+<!-- TMPL_INCLUDE NAME="calendar.inc" -->
+</head>
+<body>
+
+<!-- TMPL_INCLUDE NAME="header.inc" -->
+<!-- TMPL_INCLUDE NAME="circ-search.inc" -->
+
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo;<!-- TMPL_IF NAME="borrowernumber" --> <a href="/cgi-bin/koha/circ/circulation.pl">Checkouts</a> &rsaquo; <!-- TMPL_VAR name="firstname" --> <!--TMPL_IF NAME="othernames" -->"<!--TMPL_VAR NAME="othernames" -->" <!-- /TMPL_IF --><!-- TMPL_VAR name="surname" --><!-- TMPL_ELSE --> <strong>Checkouts</strong><!-- /TMPL_IF --></div>
+
+
+<!-- TMPL_IF NAME="CGIselectborrower" -->
+<div id="doc" class="yui-t7">
+
+   <div id="bd">
+	<div id="yui-main">
+	<div class="yui-g">
+<!-- TMPL_ELSE -->
+<div id="doc3" class="yui-t2">
+
+   <div id="bd">
+	<div id="yui-main">
+	<div class="yui-b">
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="borrowernumber" -->
+<!-- TMPL_INCLUDE NAME="circ-toolbar.inc" -->
+<!-- /TMPL_IF -->
+
+<!--  INITIAL BLOC : PARAMETERS & BORROWER INFO -->
+<div style="display: none;" id="add_message_form">
+<form method="post" action="/cgi-bin/koha/circ/add_message.pl" id="message_form" name="message_f">
+<fieldset id="borrower_messages" class="brief">
+<legend>Leave a message</legend>
+	<ol>
+    <li>
+            <label for="message_type">Add a message for:</label>
+          <select name="message_type" id="message_type">
+            <option value="L">Other Librarians</option>
+            <option value="B"><!-- TMPL_VAR name="firstname" --></option>
+        </select>
+    </li>
+    <!-- TMPL_IF NAME="canned_bor_notes_loop" -->
+        <li>
+                <label for="canned_notes">Predefined notes: </label>
+                <select name="type" id="type" onchange="this.form.borrower_message.value=this.options[this.selectedIndex].value;">
+                    <option value="">Select Note</option>
+                    <!-- TMPL_LOOP NAME="canned_bor_notes_loop" -->
+                    <option value="<!-- TMPL_VAR NAME="lib" -->"><!--TMPL_VAR NAME="authorised_value" --></option>
+                    <!-- /TMPL_LOOP -->
+                </select>
+        </li>
+    <!-- /TMPL_IF -->
+    <li>
+        <textarea rows="3" cols="60" name="borrower_message" id="borrower_message" ></textarea>
+    </li>
+	</ol>
+    <fieldset class="action">
+        <input type="submit" value="Save" /> <a href="#" class="cancel">Cancel</a>
+    </fieldset>
+
+        <input type="hidden" name="borrowernumber" id="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" -->" />
+        <input type="hidden" name="branchcode" value="<!-- TMPL_VAR NAME="branch" -->" />
+</fieldset>
+</form>
+</div>
+
+<!-- TMPL_IF NAME="dateexpiry" --><div class="dialog message">Patron's account has been renewed until <!-- TMPL_VAR NAME="dateexpiry" --></div><!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="NEEDSCONFIRMATION" -->
+<div class="yui-g">
+
+<div id="circ_needsconfirmation" class="dialog alert">
+<h3>Please Confirm Checkout</h3>
+
+<ul>
+<!-- TMPL_IF NAME="DEBT" -->
+    <li>The patron has a debt of <!-- TMPL_VAR name="DEBT" --></li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="RENEW_ISSUE" -->
+    <li>Item is currently checked out to this patron.  Renew?</li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="RESERVE_WAITING" -->
+    <li>Item is consigned for <!-- TMPL_VAR NAME="RESERVE_WAITING" --></li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="RESERVED" -->
+    <li>Item is on reserve for <!-- TMPL_VAR NAME="RESERVED" --></li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="ISSUED_TO_ANOTHER" -->
+    <li>Item ( <!-- TMPL_VAR NAME="getTitleMessageIteminfo" --> ) checked out to <!-- TMPL_VAR NAME="ISSUED_TO_ANOTHER" -->. Check in and check out?</li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="TOO_MANY" -->
+    <li>Too many checked out (already checked out / max : <!-- TMPL_VAR name="TOO_MANY" -->)</li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="PATRON_CANT" -->
+    <li>This patron can't check out this item per library circulation policy</i>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="NOT_FOR_LOAN_FORCING" -->
+    <li>Item is normally not for loan.  Check out anyway?</li>
+<!-- /TMPL_IF -->
+</ul>
+
+<form method="post" action="/cgi-bin/koha/circ/circulation.pl">
+
+<!-- TMPL_IF NAME="RESERVED" -->
+    <p>
+    <input type="checkbox" id="cancelreserve" name="cancelreserve" value="1" />
+    <label for="cancelreserve">Cancel Reserve</label>
+    </p>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="RESERVE_WAITING" -->
+    <p>
+    <input type="checkbox" id="cancelreserve" name="cancelreserve" value="1" />
+    <label for="cancelreserve">Cancel Reserve</label>
+    </p>
+<!-- /TMPL_IF -->
+
+    <input type="hidden" name="barcode" value="<!-- TMPL_VAR NAME="barcode" -->" />
+    <input type="hidden" name="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" -->" />
+    <input type="hidden" name="issueconfirmed" value="1" />
+    <!-- TMPL_IF NAME="DEBT" --><input type="hidden" name="debt_confirmed" value="1" /><!-- /TMPL_IF -->
+    <input type="hidden" name="duedatespec" value="<!-- TMPL_VAR NAME="duedatespec" -->" />
+    <input type="hidden" name="stickyduedate" value="<!-- TMPL_VAR NAME="stickyduedate" -->" />
+    <input type="hidden" name="branch" value="<!-- TMPL_VAR NAME="branch" -->" />
+    <input type="submit" class="approve" value="Yes, Check Out (Y)" accesskey="y" />
+</form>
+
+<form method="get" action="/cgi-bin/koha/circ/circulation.pl">
+    <input type="hidden" name="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" -->" />
+    <input type="hidden" name="duedatespec" value="<!-- TMPL_VAR NAME="duedatespec" -->" />
+    <input type="hidden" name="stickyduedate" value="<!-- TMPL_VAR NAME="stickyduedate" -->" />
+    <input type="submit" class="deny" value="No, Don't Check Out (N)" accesskey="n" />
+</form>
+
+</div></div>
+<!-- /TMPL_IF --> <!-- NEEDSCONFIRMATION -->
+
+        <!-- TMPL_IF NAME="IMPOSSIBLE" -->
+<div class="yui-g">
+<div id="circ_impossible" class="dialog alert">
+<!-- RESULT OF ISSUING REQUEST -->
+        <ul>
+        <!-- TMPL_IF NAME="STATS" -->
+            <li>Local Use Recorded</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="INVALID_DATE" -->
+            <li>The due date &quot;<!-- TMPL_VAR NAME="INVALID_DATE" -->&quot; is invalid</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="UNKNOWN_BARCODE" -->
+            <li>The barcode was not found</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="NOT_FOR_LOAN" -->
+            <li>Item not for loan</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="WTHDRAWN" -->
+            <li>Item has been withdrawn</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="RESTRICTED" -->
+            <li>Item is restricted</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="GNA" -->
+            <li>Patron's address is in doubt</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="CARD_LOST" -->
+            <li>Patron's card is lost</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="DEBARRED" -->
+            <li>Patron is restricted</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="NO_MORE_RENEWALS" -->
+            <li>No more renewals possible</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="EXPIRED" -->
+            <li>Patron's card is expired</li>
+        <!-- /TMPL_IF -->
+
+        <!-- TMPL_IF NAME="NOTSAMEBRANCH" -->
+            <li>This item belongs to <!-- TMPL_VAR NAME="itemhomebranch" --> and cannot be issued from this location.</li>
+        <!-- /TMPL_IF -->
+        </ul>
+
+    <!-- TMPL_IF NAME="memberofinstution" -->
+    <p><!-- TMPL_VAR NAME="CGIorganisations" --></p>
+    <!-- /TMPL_IF -->
+
+</div></div>
+    <!--/TMPL_IF --> <!-- /impossible -->
+
+<!-- TMPL_IF NAME="issued" -->
+<p>Item Checked out</p>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="message" -->
+<!-- TMPL_INCLUDE NAME="patron-toolbar.inc" -->
+<h4>
+No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span>
+</h4>
+<!-- /TMPL_IF -->
+
+
+<!-- TMPL_IF NAME="CGIselectborrower" -->
+<!-- TMPL_INCLUDE NAME="patron-toolbar.inc" -->
+
+<form method="post" action="/cgi-bin/koha/circ/circulation.pl" id="mainform" name="mainform">
+<fieldset id="circ_circulation_selectborrower" class="brief">
+    <legend>Patron selection</legend>
+
+    <input type="hidden" name="branch" value="<!-- TMPL_VAR NAME="branch" -->" />
+    <input type="hidden" name="printer" value="<!-- TMPL_VAR NAME="printer" -->" />
+    <input type="hidden" name="duedatespec" value="<!-- TMPL_VAR NAME="duedatespec" -->" />
+    <input type="hidden" name="stickyduedate" value="<!-- TMPL_VAR NAME="stickyduedate" -->" />
+
+<ol>    <li>
+    <label for="borrowernumber">Select a patron: </label>
+    <!-- TMPL_VAR name="CGIselectborrower" -->
+    </li>
+</ol>
+<p><input type="submit" value="Select" /></p>
+</fieldset>
+</form>
+<!-- TMPL_ELSE --> <!-- CGIselectborrower -->
+
+<!-- BARCODE ENTRY -->
+
+<!-- TMPL_IF NAME="borrowernumber" -->
+<div class="yui-g">
+<!-- TMPL_UNLESS NAME="noissues" -->
+<!-- TMPL_IF NAME="flagged" -->
+<div class="yui-u first">
+<!-- TMPL_ELSE -->
+<div>
+
+<!-- /TMPL_IF -->
+
+
+<form method="post" action="/cgi-bin/koha/circ/circulation.pl" name="mainform">
+<fieldset id="circ_circulation_issue">
+    <!-- TMPL_IF NAME="DisplayClearScreenButton" -->
+	    <input type=button value="Clear Screen" onClick="window.location = '/cgi-bin/koha/circ/circulation.pl'">
+    <!-- /TMPL_IF -->
+
+    <label for="barcode">Checking out to <!-- TMPL_VAR name="firstname" --> <!--TMPL_IF NAME="othernames" -->"<!--TMPL_VAR NAME="othernames" -->"<!-- /TMPL_IF --><!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->) </label>
+	<div class="hint">Enter item barcode:</div>
+
+	<input type="text" name="barcode" id="barcode" class="barcode focus" size="14" /> <input type="submit" value="Check Out" />
+
+    <!-- TMPL_IF NAME="SpecifyDueDate" --><div class="date-select">
+        <div class="hint">Specify Due Date <!-- TMPL_INCLUDE NAME="date-format.inc" -->: </div>
+		<!-- TMPL_IF NAME="duedatespec" --><input type="text" size="10" id="duedatespec" name="duedatespec" value="<!-- TMPL_VAR NAME="duedatespec" -->" /><!-- TMPL_ELSE --><input type="text" size="10" id="duedatespec" name="duedatespec" value="" />
+<!-- /TMPL_IF -->
+		<img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar"  border="0" id="CalendarDueDate" style="cursor: pointer;" />
+             <script language="JavaScript" type="text/javascript">
+			 //<![CDATA[
+                   function validate1(date) {
+                         var today = new Date();
+                         if ( date < today ) {
+                             return true;
+                          } else {
+                             return false;
+                          }
+                     };
+                     function refocus(calendar) {
+                        $('#barcode').focus();
+                        calendar.hide();
+                     };
+				//#TODO - ADD syspref (AllowPostDatedCheckouts).
+                     Calendar.setup(
+                          {
+                             inputField : "duedatespec",
+                             ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                             button : "CalendarDueDate",
+                             disableFunc : validate1,
+                             dateStatusFunc : validate1,
+                             onClose : refocus
+                           }
+                        );
+				//]]>
+                 </script>
+
+          <label for="stickyduedate"> Remember for Session:</label>
+<!-- TMPL_IF NAME="stickyduedate" -->
+<input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" checked="checked" />
+<!-- TMPL_ELSE -->
+<input type="checkbox" id="stickyduedate" onclick="this.form.barcode.focus();" name="stickyduedate" />
+<!-- /TMPL_IF -->
+          <input type="button" class="action" id="cleardate" value="Clear" name="cleardate" onclick="this.checked = false; this.form.duedatespec.value = ''; this.form.stickyduedate.checked = false; this.form.barcode.focus(); return false;" />
+</div><!-- /TMPL_IF -->
+          <input type="hidden" name="borrowernumber" id="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" -->" />
+          <input type="hidden" name="branch" value="<!-- TMPL_VAR NAME="branch" -->" />
+          <input type="hidden" name="printer" value="<!-- TMPL_VAR NAME="printer" -->" />
+          <input type="hidden" name="print" value="maybe" />
+          <input type="hidden" name="debt_confirmed" value="<!-- TMPL_VAR NAME="debt_confirmed" -->" />
+                <!-- TMPL_IF NAME="CHARGES" -->
+                        <input type="hidden" name="charges" value="yes" />
+                        <input type="hidden" name="oldamount" value="<!-- TMPL_VAR NAME="amountold" -->" />
+                <!-- /TMPL_IF -->
+</fieldset>
+</form></div><!-- /TMPL_UNLESS --><!-- /unless noissues -->
+
+<!-- TMPL_IF NAME="noissues" --><div><!-- TMPL_ELSE --><div class="yui-u"><!-- /TMPL_IF -->
+
+    <!-- TMPL_IF NAME="flagged" -->
+		<!-- TMPL_IF NAME="noissues" -->
+		 <h4>Checking out to <!-- TMPL_VAR name="firstname" --> <!-- TMPL_IF NAME="othernames" -->"<!--TMPL_VAR NAME="othernames" -->"<!--/TMPL_IF--><!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->)</h4>
+        <div id="circmessages" class="circmessage warning">
+		<!-- TMPL_ELSE -->
+        <div id="circmessages" class="circmessage attention">
+		<!-- /TMPL_IF -->
+
+		<h3><!-- TMPL_IF NAME="noissues" -->Cannot Check Out!<!-- TMPL_ELSE -->Attention:<!-- /TMPL_IF --></h3>
+		<ul>
+
+			<!-- TMPL_IF NAME = "warndeparture" -->
+			<li><span class="circ-hlt">Expiration:</span> Patron's card will expire soon.
+			Patron's card expires on <!-- TMPL_VAR NAME="expiry" --> <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&amp;cardnumber=<!-- TMPL_VAR NAME="cardnumber" -->&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&amp;categorycode=<!-- TMPL_VAR NAME="categorycode" -->">Edit Details</a>
+
+			</li>
+			<!-- /TMPL_IF -->
+
+			<!-- TMPL_IF NAME="returnbeforeexpiry" -->
+			 <li><span class="circ-hlt">Set due date to expiry:</span> You have the ReturnBeforeExpiry system preference enabled this means if the
+			 expiry date is before the date due, the date due will be set to the expiry date
+			 </li>
+			<!-- /TMPL_IF -->
+
+			<!-- TMPL_IF NAME = "expired" -->
+			<li><span class="circ-hlt">Expiration:</span> Patron's card has expired.
+			Patron's card expired on <!-- TMPL_VAR NAME="expiry" --> <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&amp;cardnumber=<!-- TMPL_VAR NAME="cardnumber" -->&amp;destination=circ&amp;reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&amp;categorycode=<!-- TMPL_VAR NAME="categorycode" -->">Edit Details</a>
+
+			</li>
+			<!-- /TMPL_IF -->
+
+            <!-- TMPL_IF NAME="gna" -->
+			<li class="blocker"><span class="circ-hlt">Address:</span> Patron's address in doubt</li>
+			<!-- /TMPL_IF -->
+
+            <!-- TMPL_IF NAME="lost" -->
+			<li class="blocker"><span class="circ-hlt">Lost: </span>Patron's card is lost</li>
+			<!-- /TMPL_IF -->
+
+            <!-- TMPL_IF NAME="dbarred" --><li class="blocker">
+               <span class="circ-hlt"> Restricted:</span> Patron's account is restricted <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&amp;cardnumber=<!-- TMPL_VAR NAME="cardnumber" -->&amp;destination=circ&amp;status=0">Lift restriction</a>
+</li><!-- /TMPL_IF -->
+
+        	<!-- TMPL_IF name="odues" --><li><!-- TMPL_IF name="nonreturns" --><span class="circ-hlt">Overdues:</span> Patron has <span class="circ-hlt">ITEMS OVERDUE</span>. See highlighted items <a href="#checkouts">below</a><!-- /TMPL_IF --></li>
+            <!-- /TMPL_IF -->
+
+        	<!-- TMPL_IF NAME="charges" -->
+                <!-- TMPL_IF NAME="charges_is_blocker" -->
+			        <li class="blocker">
+                <!-- TMPL_ELSE -->
+			        <li>
+                <!-- /TMPL_IF -->
+            <span class="circ-hlt">Fines:</span> Patron has  <a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=<!-- TMPL_VAR name="borrowernumber" -->">Outstanding fines<!-- TMPL_IF NAME="chargesamount" --> of <!-- TMPL_VAR NAME="chargesamount" --><!-- /TMPL_IF --></a>.
+                <!-- TMPL_IF NAME="charges_is_blocker" -->
+                    Checkouts are blocked because fine balance is over the limit.
+                <!-- /TMPL_IF -->
+            Make <a href="/cgi-bin/koha/members/pay.pl?borrowernumber=<!-- TMPL_VAR name="borrowernumber" -->">Payment</a></li>
+			<!-- /TMPL_IF -->
+
+        	<!-- TMPL_IF NAME="credits" -->
+			<li><span class="circ-hlt">Credits:</span> Patron has a credit</li>
+			<!-- /TMPL_IF -->
+
+
+
+			</ul>
+        </div>
+
+			<!-- TMPL_IF NAME="WaitingReserveLoop" -->
+			<div id="holdswaiting" class="circmessage">
+		    <h4>Holds waiting:</h4>
+			        <!-- TMPL_LOOP NAME="WaitingReserveLoop" -->
+			            <ul>
+			                <li> <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" escape="html" --></a> (<!-- TMPL_VAR NAME="itemtype"-->), <!-- TMPL_IF NAME="author" -->by <!-- TMPL_VAR NAME="author"--><!-- /TMPL_IF --> Hold placed on <!-- TMPL_VAR NAME="reservedate"-->.
+			            <!-- TMPL_IF NAME="waitingat" -->
+			                <br /><!-- TMPL_IF NAME="waitinghere" --><strong class="waitinghere"><!-- TMPL_ELSE --><strong><!-- /TMPL_IF -->Waiting at <!-- TMPL_VAR NAME="waitingat" --></strong>
+			            <!-- /TMPL_IF -->
+			                </li>
+			            </ul>
+			    <!-- /TMPL_LOOP -->
+			</div>
+			<!-- /If WaitingReserveLoop --><!-- /TMPL_IF -->
+	<!-- TMPL_IF name="notes" -->
+			<div id="circnotes" class="circmessage">
+			<h4>Notes:</h4>
+            <p><span class="circ-hlt"><!-- TMPL_VAR name="notesmsg" --></span></p>
+			</div>
+
+
+    <!-- /If notes --><!-- /TMPL_IF -->
+
+	<div id="messages" class="circmessage">
+		<h4>Messages:</h4>
+		<ul>
+			<!--TMPL_LOOP NAME="lib_messages_loop" -->
+				<li>
+					<span class="circ-hlt">
+						<!--TMPL_VAR NAME="message_date_formatted"-->
+						<!--TMPL_VAR NAME="branchcode"-->
+						<i>"<!--TMPL_VAR NAME="message"-->"</i>
+					</span>
+					<!-- TMPL_IF NAME="can_delete" -->
+						<a href="/cgi-bin/koha/circ/del_message.pl?message_id=<!--TMPL_VAR NAME="message_id" -->&amp;borrowernumber=<!--TMPL_VAR NAME="borrowernumber" -->">[Delete]</a>
+					<!-- TMPL_ELSE -->
+						<!-- TMPL_IF NAME="all_messages_del" -->
+							<a href="/cgi-bin/koha/circ/del_message.pl?message_id=<!--TMPL_VAR NAME="message_id" -->&amp;borrowernumber=<!--TMPL_VAR NAME="borrowernumber" -->">[Delete]</a>
+						<!-- /TMPL_IF -->
+					<!-- /TMPL_IF -->
+				</li>
+			<!-- /TMPL_LOOP -->
+			<!--TMPL_LOOP NAME="bor_messages_loop" -->
+				<li><span class=""><!--TMPL_VAR NAME="message_date_formatted"--> <!--TMPL_VAR NAME="branchcode"--> <i>"<!--TMPL_VAR NAME="message"-->"</i></span> <!-- TMPL_IF NAME="can_delete" --><a href="/cgi-bin/koha/circ/del_message.pl?message_id=<!--TMPL_VAR NAME="message_id" -->&amp;borrowernumber=<!--TMPL_VAR NAME="borrowernumber" -->">[Delete]</a><!-- /TMPL_IF --></li>
+			<!-- /TMPL_LOOP -->
+
+		</ul>
+	</div>	
+	
+     <!-- /If flagged --><!-- /TMPL_IF -->
+
+	
+
+</div>
+</div>
+
+<div class="yui-g"><div id="patronlists" class="toptabs">
+
+<ul>
+<li>    <!--TMPL_IF NAME="issuecount"-->
+            <a href="/cgi-bin/koha/circ/circulation.pl#checkouts"><!-- TMPL_VAR NAME="issuecount"--> Checkout(s)</a>
+    <!-- TMPL_ELSE -->
+            <a href="/cgi-bin/koha/circ/circulation.pl#checkouts">0 Checkouts</a>
+    <!-- /TMPL_IF --></li>
+<li><!-- TMPL_IF NAME="countreserv"-->
+            <a href="/cgi-bin/koha/circ/circulation.pl#reserves"><!--TMPL_VAR NAME="countreserv"--> Hold(s)</a>
+    <!-- TMPL_ELSE -->
+            <a href="/cgi-bin/koha/circ/circulation.pl#reserves">0 Holds</a>
+    <!-- /TMPL_IF --></li>
+
+</ul>
+
+<!-- SUMMARY : TODAY & PREVIOUS ISSUES -->
+<div id="checkouts">
+<!--TMPL_IF NAME="issuecount"-->
+    <form action="/cgi-bin/koha/reserve/renewscript.pl" method="post" class="checkboxed">
+    <input type="hidden" value="circ" name="destination" />
+    <input type="hidden" name="cardnumber" value="<!-- TMPL_VAR NAME="cardnumber" -->" />
+    <input type="hidden" name="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" -->" />
+    <input type="hidden" name="branch" value="<!-- TMPL_VAR NAME="branch" -->" />
+        <table id="issuest">
+    <thead><tr>
+        <th scope="col">Due date</th>
+        <th scope="col">Title</th>
+        <th scope="col">Item Type</th>
+        <th scope="col">Checked out on</th> 
+        <th scope="col">Call no</th>
+        <th scope="col">Charge</th>
+        <th scope="col">Price</th>
+        <th scope="col">Renew <p class="column-tool"><a href="#" id="CheckAllitems">select all</a> | <a href="#" id="CheckNoitems">none</a></p></th>
+        <th scope="col">Check in <p class="column-tool"><a href="#" id="CheckAllreturns">select all</a> | <a href="#" id="CheckNoreturns">none</a></p></th>
+    </tr>
+<!-- TMPL_IF NAME="todayissues" --></thead>
+<tfoot>
+		<tr>
+            <td colspan="5" style="text-align: right; font-weight:bold;">Totals:</td>
+			<td><!-- TMPL_VAR NAME="totaldue" --></td>
+            <td><!-- TMPL_VAR NAME="totalprice" --></td>
+            <td colspan="2">      
+                <p>
+                    Renewal due date: <input type="text" size="8" id="newduedate" name="newduedate" value="<!-- TMPL_VAR Name="newduedate" -->" />
+                    <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="newduedate_button" alt="Show Calendar" />
+ <script type="text/javascript"> //<![CDATA[
+				//#TODO - ADD syspref (AllowPostDatedCheckouts).
+                     Calendar.setup(
+                          {
+                             inputField : "newduedate",
+                             ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                             button : "newduedate_button",
+                             disableFunc : validate1,
+                             dateStatusFunc : validate1,
+                             onClose : refocus
+                           }
+                        );
+				//]]>
+				 </script>
+                </p>
+                <p>
+                    <label>Forgive fines on return: <input type="checkbox" name="exemptfine" value="1" /></label>
+                </p>
+            </td>
+        </tr>
+		</tfoot>
+	<tbody>
+
+    <!-- TMPL_LOOP NAME="todayissues" -->
+    <!-- TMPL_IF NAME="__odd__" -->
+    <tr>
+    <!-- TMPL_ELSE -->
+    <tr class="highlight">
+    <!-- /TMPL_IF -->
+        <td><!-- TMPL_VAR NAME="dd" --></td>
+        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;type=intra"><strong><!-- TMPL_VAR NAME="title" escape="html" --></strong></a><!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="itemnotes" -->- <span class="circ-hlt"><!-- TMPL_VAR name="itemnotes" --></span><!-- /TMPL_IF --> <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR NAME="barcode" --></a></td>
+        <td><!-- TMPL_UNLESS NAME="noItemTypeImages" --> <!-- TMPL_IF NAME="itemtype_image" --><img src="<!-- TMPL_VAR NAME="itemtype_image" -->" alt="" /><!-- /TMPL_IF --><!-- /TMPL_UNLESS --><!-- TMPL_VAR NAME="itemtype" --></td>
+        <td><!-- TMPL_VAR NAME="checkoutdate" --></td>
+        <td><!-- TMPL_VAR NAME="itemcallnumber" --></td>
+            <td><!-- TMPL_VAR NAME="charge" --></td>
+            <td><!-- TMPL_VAR NAME="replacementprice" --></td>
+      <!-- TMPL_IF NAME="renew_failed" -->
+            <td class="problem">Renewal Failed</td>
+      <!-- TMPL_ELSE -->
+        <td><span style="padding: 0 1em;"><!-- TMPL_VAR NAME="renewals" --></span>
+        <!-- TMPL_IF NAME="can_renew" -->
+        <input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
+        <!-- TMPL_IF NAME="od" -->
+            <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" />
+        <!-- TMPL_ELSE -->
+            <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
+        <!-- /TMPL_IF -->
+        <!-- TMPL_ELSE -->
+            <!-- TMPL_IF NAME="can_confirm" --><span class="renewals-allowed" style="display: none">
+                <input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
+                <!-- TMPL_IF NAME="od" -->
+                    <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" />
+                <!-- TMPL_ELSE -->
+                    <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
+                <!-- /TMPL_IF -->
+                </span>
+                <span class="renewals-disabled">
+            <!-- /TMPL_IF -->
+		<!-- TMPL_IF NAME="renew_error_on_reserve" -->
+			On Hold
+		<!-- /TMPL_IF -->
+                <!-- TMPL_IF NAME="renew_error_too_many" -->
+			Not Renewable
+                <!-- /TMPL_IF -->
+            <!-- TMPL_IF NAME="can_confirm" -->
+                </span>
+            <!-- /TMPL_IF -->
+        <!-- /TMPL_IF -->
+        </td>
+        <!-- /TMPL_IF -->
+  <!-- TMPL_IF NAME="return_failed" -->
+            <td class="problem">Checkin Failed</td>
+      <!--TMPL_ELSE-->
+            <td><input type="checkbox" name="barcodes[]"  value="<!-- TMPL_VAR NAME="barcode" -->" onclick="uncheck_sibling(this);" />
+                <input type="checkbox" name="all_barcodes[]" value="<!-- TMPL_VAR NAME="barcode" -->" checked="checked" style="display: none;" />
+            </td>
+      <!-- /TMPL_IF -->
+    </tr>
+    <!-- /TMPL_LOOP --> <!-- /loop todayissues -->
+    <!-- /if todayissues --><!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="previssues" -->
+<!-- TMPL_IF NAME="todayissues" --><tr><th colspan="10"><a name="previous" id="previous"></a>Previous checkouts</th></tr><!-- TMPL_ELSE -->
+<tr><th class="{sorter: false}" colspan="10"><a name="previous" id="previous"></a>Previous checkouts</th></tr></thead>
+	<tbody>
+<!-- /TMPL_IF -->
+    <!-- TMPL_LOOP NAME="previssues" -->
+    <!-- TMPL_IF NAME="__odd__" -->
+        <tr>
+    <!-- TMPL_ELSE -->
+        <tr class="highlight">
+    <!-- /TMPL_IF -->
+        <!-- TMPL_IF NAME="od" --><td class="od"><!-- TMPL_ELSE --><td><!-- /TMPL_IF -->
+        <!-- TMPL_VAR NAME="dd" -->
+        </td>
+        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;type=intra"><strong><!-- TMPL_VAR NAME="title" escape="html" --></strong></a><!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF --> <!-- TMPL_IF NAME="itemnotes" -->- <!-- TMPL_VAR name="itemnotes" --><!-- /TMPL_IF --> <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR NAME="barcode" --></a></td>
+        <td>
+            <!-- TMPL_VAR NAME="itemtype" -->
+        </td>
+        <td><!-- TMPL_VAR NAME="displaydate" --></td>
+        <td><!-- TMPL_VAR NAME="itemcallnumber" --></td>
+        <td><!-- TMPL_VAR NAME="charge" --></td>
+        <td><!-- TMPL_VAR NAME="replacementprice" --></td>
+      <!-- TMPL_IF NAME="renew_failed" -->
+            <td class="problem">Renewal Failed</td>
+      <!-- TMPL_ELSE -->
+        <td><span style="padding: 0 1em;"><!-- TMPL_IF NAME="renewals" --><!-- TMPL_VAR NAME="renewals" --><!-- TMPL_ELSE -->0<!-- /TMPL_IF --></span>
+        <!-- TMPL_IF NAME="can_renew" -->
+        <input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
+        <!-- TMPL_IF NAME="od" -->
+            <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" />
+        <!-- TMPL_ELSE -->
+            <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
+        <!-- /TMPL_IF -->
+        <!-- TMPL_ELSE -->
+            <!-- TMPL_IF NAME="can_confirm" --><span class="renewals-allowed" style="display: none">
+                <input type="checkbox" name="all_items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" style="display: none;" />
+                <!-- TMPL_IF NAME="od" -->
+                    <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" checked="checked" />
+                <!-- TMPL_ELSE -->
+                    <input type="checkbox" name="items[]" value="<!-- TMPL_VAR NAME="itemnumber" -->" />
+                <!-- /TMPL_IF -->
+                </span>
+                <span class="renewals-disabled">
+            <!-- /TMPL_IF -->
+		<!-- TMPL_IF NAME="renew_error_on_reserve" -->
+			On Hold
+		<!-- /TMPL_IF -->
+                <!-- TMPL_IF NAME="renew_error_too_many" -->
+			Not Renewable
+                <!-- /TMPL_IF -->
+            <!-- TMPL_IF NAME="can_confirm" -->
+                </span>
+            <!-- /TMPL_IF -->
+        <!-- /TMPL_IF -->
+        </td>
+        <!-- /TMPL_IF -->
+		  <!-- TMPL_IF NAME="return_failed" -->
+            <td class="problem">Checkin Failed</td>
+        <!--TMPL_ELSE-->
+            <td><input type="checkbox" name="barcodes[]"  value="<!-- TMPL_VAR NAME="barcode" -->" onclick="uncheck_sibling(this);" />
+                <input type="checkbox" name="all_barcodes[]" value="<!-- TMPL_VAR NAME="barcode" -->" checked="checked" style="display: none;" />
+            </td>
+      <!-- /TMPL_IF -->
+    </tr>
+    <!-- /loop previssues --><!-- /TMPL_LOOP -->
+<!--/if previssues --><!-- /TMPL_IF -->
+      </tbody>
+    </table>
+    <!--TMPL_IF NAME="issuecount"-->
+    <fieldset class="action">
+        <!-- TMPL_IF NAME="CAN_user_circulate_override_renewals" -->
+        <!-- TMPL_IF NAME="AllowRenewalLimitOverride" -->
+        <label for="override_limit">Override Renewal Limit:</label>
+        <input type="checkbox" name="override_limit" id="override_limit" value="1" />
+        <!-- /TMPL_IF -->
+        <!-- /TMPL_IF -->
+        <input type="submit" name="renew_checked" value="Renew or Return checked items" />
+        <input type="submit" id="renew_all" name="renew_all" value="Renew all" />
+        <input type="submit" id="return_all" name="return_all" value="Return all" />
+        </fieldset>
+    <!-- /TMPL_IF -->
+</form>
+<!-- TMPL_ELSE -->
+<p>Patron has nothing checked out.</p>
+<!-- /TMPL_IF -->
+</div>
+
+
+<div id="reserves">
+<!-- TMPL_IF NAME="reservloop" -->
+<form action="/cgi-bin/koha/reserve/modrequest.pl" method="post">
+	<input type="hidden" name="from" value="circ" />
+    <table id="holdst">
+        <thead><tr>
+            <th>Hold date</th>
+            <th>Title</th>
+            <th>Call Number</th>
+			<th>Barcode</th>
+            <th>Priority</th>
+			<th>Delete?</th>
+        </tr></thead>
+		<tbody>
+        <!-- TMPL_LOOP NAME="reservloop" -->
+        <tr class="<!-- TMPL_VAR NAME="color" -->">
+                    <td><!-- TMPL_VAR NAME="reservedate" --></td>
+                    <td><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><strong><!-- TMPL_VAR NAME="title" escape="html" --></strong></a><!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF --></td>
+                    <td><!-- TMPL_VAR NAME="itemcallnumber" --></td>
+					<td><em><!-- TMPL_IF name="barcodereserv" -->Item <!-- TMPL_VAR NAME="barcodereserv" -->
+                        <!-- /TMPL_IF --><!-- TMPL_IF name="waiting" --> <strong>waiting at <!-- TMPL_VAR NAME="waitingat" --></strong>
+                        <!-- /TMPL_IF -->
+                        <!-- TMPL_IF name="transfered" --> <strong>in transit</strong> from
+                        <!-- TMPL_VAR NAME="frombranch" --> since <!-- TMPL_VAR NAME="datesent" -->
+                        <!-- /TMPL_IF -->
+                        <!-- TMPL_IF name="nottransfered" --> hasn't been transfered yet from <!-- TMPL_VAR NAME="nottransferedby" --></i>
+                        <!-- /TMPL_IF --></em></td>
+                    <td>
+                        <!-- TMPL_IF NAME="waitingposition" --><b> <!-- TMPL_VAR NAME="waitingposition" --> </b><!-- /TMPL_IF -->
+                    </td>
+				<td><select name="rank-request">
+                    <option value="n">No</option>
+                    <option value="del">Yes</option>
+                </select>
+                <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR name="biblionumber" -->" />
+                <input type="hidden" name="borrowernumber" value="<!-- TMPL_VAR name="borrowernumber" -->" />
+            </td>
+            </tr>
+        <!-- /TMPL_LOOP --></tbody>
+    </table>
+	        <fieldset class="action"><input type="submit" class="cancel" name="submit" value="Cancel Marked Requests" /></fieldset>
+    </form>
+	<!-- TMPL_ELSE -->
+	<p>Patron has nothing on hold.</p>
+<!-- /TMPL_IF -->
+</div> <!-- reservesloop -->
+
+<!-- /TMPL_IF --> <!-- borrowernumber -->
+</div></div>
+<!--/TMPL_IF -->
+
+
+
+</div>
+</div>
+<!-- TMPL_UNLESS NAME="CGIselectborrower" --><!-- TMPL_IF NAME="borrowernumber" --><div class="yui-b">
+<!-- TMPL_INCLUDE NAME="circ-menu.inc" -->
+</div><!-- /TMPL_IF --><!-- /TMPL_UNLESS -->
+</div>
+<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
-- 
1.5.6.5




More information about the Koha-patches mailing list