Bugzilla – Attachment 973 Details for
Bug 2930
Put 'other name' on checkout screen
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for this bug - modifies circulation.pl and circulation.tmpl
0034-Bug-2930-Add-other-name-to-Checkout-Screen.patch (text/plain), 55.32 KB, created by
Chris Cormack
on 2010-02-11 14:25:00 UTC
(
hide
)
Description:
patch for this bug - modifies circulation.pl and circulation.tmpl
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2010-02-11 14:25:00 UTC
Size:
55.32 KB
patch
obsolete
>From fb74c7df5039a13ac52415a0cbf54fe66e075489 Mon Sep 17 00:00:00 2001 >From: root <root@koha2.pisd.edu> >Date: Thu, 11 Feb 2010 07:53:14 -0600 >Subject: [PATCH] Bug 2930:Add other name to Checkout Screen > >This patch adds "othername" to the circulation.pl so that circulation.tmpl can display David "Doofus" Schuster if ther eis 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. >--- > circ/circulation.pl | 294 ++++++++-------- > .../prog/en/modules/circ/circulation.tmpl | 360 ++++++++++++++++---- > 2 files changed, 430 insertions(+), 224 deletions(-) > >diff --git a/circ/circulation.pl b/circ/circulation.pl >index 39dfbfc..5057beb 100755 >--- a/circ/circulation.pl >+++ b/circ/circulation.pl >@@ -52,29 +52,28 @@ my $query = new CGI; > my $sessionID = $query->cookie("CGISESSID") ; > my $session = get_session($sessionID); > >-# new op dev the branch and the printer are now defined by the userenv >+# 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); >- my $branchname = GetBranchName($branch); >- $session->param('branchname',$branchname); >+ $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); >+ $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; >- } >+ 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 ( >@@ -88,26 +87,28 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user ( > ); > > my $branches = GetBranches(); >-my $printers = GetPrinters(); > >-my @failedrenews = $query->param('failedrenew'); >+my @failedrenews = $query->param('failedrenew'); # expected to be itemnumbers > my %renew_failed; >-for (@failedrenews) { $renew_failed{$_} = 1; } >+for (@failedrenews) { $renew_failed{$_} = 1; } > > my $findborrower = $query->param('findborrower'); > $findborrower =~ s|,| |g; >-#$findborrower =~ s|'| |g; > my $borrowernumber = $query->param('borrowernumber'); > > $branch = C4::Context->userenv->{'branch'}; > $printer = C4::Context->userenv->{'branchprinter'}; > > >-# If Autolocated is not activated, we show the Circulation Parameters to chage settings of librarian >-if (C4::Context->preference("AutoLocation") ne 1) { # FIXME: string comparison to number >+# 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 > >@@ -131,15 +132,6 @@ if ( $barcode ) { > } > } > >-#set up cookie..... >-# my $branchcookie; >-# my $printercookie; >-# if ($query->param('setcookies')) { >-# $branchcookie = $query->cookie(-name=>'branch', -value=>"$branch", -expires=>'+1y'); >-# $printercookie = $query->cookie(-name=>'printer', -value=>"$printer", -expires=>'+1y'); >-# } >-# >- > my ($datedue,$invalidduedate,$globalduedate); > > if(C4::Context->preference('globalDueDate') && (C4::Context->preference('globalDueDate') =~ C4::Dates->regexp('syspref'))){ >@@ -148,19 +140,19 @@ if(C4::Context->preference('globalDueDate') && (C4::Context->preference('globalD > 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); >- } >+ 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) >@@ -170,7 +162,7 @@ if($duedatespec_allow){ > } > } > } else { >- $datedue = $globalduedate if($globalduedate); >+ $datedue = $globalduedate if ($globalduedate); > } > > my $todaysdate = C4::Dates->new->output('iso'); >@@ -229,7 +221,6 @@ if ($findborrower) { > > # get the borrower information..... > my $borrower; >-my @lines; > if ($borrowernumber) { > $borrower = GetMemberDetails( $borrowernumber, 0 ); > my ( $od, $issue, $fines ) = GetMemberIssuesAndFines( $borrowernumber ); >@@ -239,9 +230,12 @@ if ($borrowernumber) { > 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) = >- Add_Delta_YM( $enrol_year, $enrol_month, $enrol_day, >- 0 , $borrower->{'enrolmentperiod'}) if ($enrol_year*$enrol_month*$enrol_day>0); >+ 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 ) >@@ -266,7 +260,7 @@ if ($borrowernumber) { > if (C4::Context->preference('ReturnBeforeExpiry')){ > $template->param("returnbeforeexpiry" => 1); > } >- } >+ } > $template->param( > overduecount => $od, > issuecount => $issue, >@@ -279,44 +273,44 @@ if ($borrowernumber) { > # > # > if ($barcode) { >- # always check for blockers on issuing >- my ( $error, $question ) = >+ # always check for blockers on issuing >+ my ( $error, $question ) = > CanBookBeIssued( $borrower, $barcode, $datedue , $inprocess ); >- my $blocker = $invalidduedate ? 1 : 0; >+ 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; >- } >+ 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){ >+ 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; >- } >- } >+ $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; >+ $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 >@@ -332,8 +326,6 @@ if ($borrowernumber) { > ################################################################################## > # BUILD HTML > # show all reserves of this borrower, and the position of the reservation .... >-my $borrowercategory; >-my $category_type; > if ($borrowernumber) { > > # new op dev >@@ -361,7 +353,7 @@ if ($borrowernumber) { > $getreserv{barcodereserv} = $getiteminfo->{'barcode'}; > $getreserv{itemcallnumber} = $getiteminfo->{'itemcallnumber'}; > $getreserv{biblionumber} = $getiteminfo->{'biblionumber'}; >- $getreserv{waitingat} = GetBranchName( $num_res->{'branchcode'} ); >+ $getreserv{waitingat} = GetBranchName( $num_res->{'branchcode'} ); > # check if we have a waiting status for reservations > if ( $num_res->{'found'} eq 'W' ) { > $getreserv{color} = 'reserved'; >@@ -373,7 +365,7 @@ if ($borrowernumber) { > $getWaitingReserveInfo{author} = $getiteminfo->{'author'}; > $getWaitingReserveInfo{reservedate} = format_date( $num_res->{'reservedate'} ); > $getWaitingReserveInfo{waitingat} = GetBranchName( $num_res->{'branchcode'} ); >- if($num_res->{'branchcode'} eq $branch){ $getWaitingReserveInfo{waitinghere} = 1; } >+ $getWaitingReserveInfo{waitinghere} = 1 if $num_res->{'branchcode'} eq $branch; > } > # check transfers with the itemnumber foud in th reservation loop > if ($transfertwhen) { >@@ -381,24 +373,19 @@ if ($borrowernumber) { > $getreserv{transfered} = 1; > $getreserv{datesent} = format_date($transfertwhen); > $getreserv{frombranch} = GetBranchName($transfertfrom); >- } >- >- if ( ( $getiteminfo->{'holdingbranch'} ne $num_res->{'branchcode'} ) >- and not $transfertwhen ) >- { >+ } elsif ($getiteminfo->{'holdingbranch'} ne $num_res->{'branchcode'}) { > $getreserv{nottransfered} = 1; >- $getreserv{nottransferedby} = >- GetBranchName( $getiteminfo->{'holdingbranch'} ); >+ $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'} ); >- my $getbibtype = getitemtypeinfo( $getbibinfo->{'itemtype'} ); # fixme - we should have item-level reserves here ? >+ > $getreserv{color} = 'inwait'; > $getreserv{title} = $getbibinfo->{'title'}; > $getreserv{nottransfered} = 0; >- $getreserv{itemtype} = $getbibtype->{'description'}; >+ $getreserv{itemtype} = $itemtypeinfo->{'description'}; > $getreserv{author} = $getbibinfo->{'author'}; > $getreserv{biblionumber} = $num_res->{'biblionumber'}; > } >@@ -406,7 +393,7 @@ if ($borrowernumber) { > push( @reservloop, \%getreserv ); > > # if we have a reserve waiting, initiate waitingreserveloop >- if ($getreserv{waiting} eq 1) { >+ if ($getreserv{waiting} == 1) { > push (@WaitingReserveLoop, \%getWaitingReserveInfo) > } > >@@ -426,21 +413,17 @@ my $todaysissues = ''; > my $previssues = ''; > my @todaysissues; > my @previousissues; >-my $allowborrow; > ## ADDED BY JF: new itemtype issuingrules counter stuff >-my $issued_itemtypes_loop; > my $issued_itemtypes_count; >-my $issued_itemtypes_allowed_count; # hashref with total allowed by itemtype >-my $issued_itemtypes_remaining; # hashref with remaining >-my $issued_itemtypes_flags; #hashref that stores flags > 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'}; > >@@ -453,11 +436,16 @@ if ($borrower) { > ); > $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->{'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'}}; >@@ -490,13 +478,12 @@ if ($borrower) { > 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("*"); # This is a literal asterisk, not a wildcard. >+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() ) { > >@@ -507,16 +494,14 @@ while ( my $data = $issueqty_sth->fetchrow_hashref() ) { > $issued_itemtypes_count->{ $data->{'description'} } ); > > # can't have a negative number of remaining >- if ( $data->{'left'} < 0 ) { $data->{'left'} = "0" } >- $data->{'flag'} = 1 unless ( $data->{'maxissueqty'} > $data->{'count'} ); >- unless ( ( $data->{'maxissueqty'} < 1 ) >- || ( $data->{'itemtype'} eq "*" ) >- || ( $data->{'itemtype'} eq "CIRC" ) ) >- { >+ 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; > } > } >-$issued_itemtypes_loop = \@issued_itemtypes_count_loop; > > #### / JF > >@@ -548,9 +533,7 @@ if ($borrowerslist) { > > #title > my $flags = $borrower->{'flags'}; >-my $flag; >- >-foreach $flag ( sort keys %$flags ) { >+foreach my $flag ( sort keys %$flags ) { > $template->param( flagged=> 1); > $flags->{$flag}->{'message'} =~ s#\n#<br />#g; > if ( $flags->{$flag}->{'noissues'} ) { >@@ -561,13 +544,13 @@ foreach $flag ( sort keys %$flags ) { > if ( $flag eq 'GNA' ) { > $template->param( gna => 'true' ); > } >- if ( $flag eq 'LOST' ) { >+ elsif ( $flag eq 'LOST' ) { > $template->param( lost => 'true' ); > } >- if ( $flag eq 'DBARRED' ) { >+ elsif ( $flag eq 'DBARRED' ) { > $template->param( dbarred => 'true' ); > } >- if ( $flag eq 'CHARGES' ) { >+ elsif ( $flag eq 'CHARGES' ) { > $template->param( > charges => 'true', > chargesmsg => $flags->{'CHARGES'}->{'message'}, >@@ -575,7 +558,7 @@ foreach $flag ( sort keys %$flags ) { > charges_is_blocker => 1 > ); > } >- if ( $flag eq 'CREDITS' ) { >+ elsif ( $flag eq 'CREDITS' ) { > $template->param( > credits => 'true', > creditsmsg => $flags->{'CREDITS'}->{'message'} >@@ -591,13 +574,13 @@ foreach $flag ( sort keys %$flags ) { > chargesamount => $flags->{'CHARGES'}->{'amount'}, > ); > } >- if ( $flag eq 'CREDITS' ) { >+ elsif ( $flag eq 'CREDITS' ) { > $template->param( > credits => 'true', > creditsmsg => $flags->{'CREDITS'}->{'message'} > ); > } >- if ( $flag eq 'ODUES' ) { >+ elsif ( $flag eq 'ODUES' ) { > $template->param( > odues => 'true', > flagged => 1, >@@ -605,20 +588,11 @@ foreach $flag ( sort keys %$flags ) { > ); > > my $items = $flags->{$flag}->{'itemlist'}; >-# useless ??? >-# { >-# my @itemswaiting; >-# foreach my $item (@$items) { >-# my ($iteminformation) = >-# getiteminformation( $item->{'itemnumber'}, 0 ); >-# push @itemswaiting, $iteminformation; >-# } >-# } >- if ( $query->param('module') ne 'returns' ) { >+ if ( ! $query->param('module') || $query->param('module') ne 'returns' ) { > $template->param( nonreturns => 'true' ); > } > } >- if ( $flag eq 'NOTES' ) { >+ elsif ( $flag eq 'NOTES' ) { > $template->param( > notes => 'true', > flagged => 1, >@@ -629,7 +603,9 @@ foreach $flag ( sort keys %$flags ) { > } > > my $amountold = $borrower->{flags}->{'CHARGES'}->{'message'} || 0; >-my @temp = split( /\$/, $amountold ); >+$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 = ?' ); >@@ -646,8 +622,7 @@ if ( C4::Context->preference("memberofinstitution") ) { > my %org_labels; > foreach my $organisation ( keys %$organisations ) { > push @orgs, $organisation; >- $org_labels{$organisation} = >- $organisations->{$organisation}->{'surname'}; >+ $org_labels{$organisation} = $organisations->{$organisation}->{'surname'}; > } > $member_of_institution = 1; > $CGIorganisations = CGI::popup_menu( >@@ -658,30 +633,43 @@ if ( C4::Context->preference("memberofinstitution") ) { > ); > } > >-$amountold = $temp[1]; >+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_loop, >- findborrower => $findborrower, >- borrower => $borrower, >- borrowernumber => $borrowernumber, >- branch => $branch, >- branchname => GetBranchName($borrower->{'branchcode'}), >- printer => $printer, >- printername => $printer, >- firstname => $borrower->{'firstname'}, >- surname => $borrower->{'surname'}, >+ 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 => $borrower->{'address'}, >+ address => $address, > address2 => $borrower->{'address2'}, > email => $borrower->{'email'}, > emailpro => $borrower->{'emailpro'}, > borrowernotes => $borrower->{'borrowernotes'}, > city => $borrower->{'city'}, >- zipcode => $borrower->{'zipcode'}, >+ zipcode => $borrower->{'zipcode'}, >+ country => $borrower->{'country'}, > phone => $borrower->{'phone'} || $borrower->{'mobile'}, > cardnumber => $borrower->{'cardnumber'}, > amountold => $amountold, >@@ -690,12 +678,14 @@ $template->param( > 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'), >+ is_child => ($borrower->{'category_type'} eq 'C'), > circview => 1, > ); > >@@ -704,13 +694,19 @@ if ($stickyduedate) { > $session->param( 'stickyduedate', $duedatespec ); > } > >-#if ($branchcookie) { >-#$cookie=[$cookie, $branchcookie, $printercookie]; >-#} >- > 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, >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl >index b93488c..31341d9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl >@@ -1,13 +1,13 @@ > <!-- TMPL_INCLUDE NAME="doc-head-open.inc" --> > <title>Koha › Circulation > <!-- TMPL_IF NAME="borrowernumber" --> >-› Checking out to <!-- TMPL_VAR name="surname" -->, <!-- TMPL_VAR name="firstname" --> >+› 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.pack.js"></script> >-<script type="text/JavaScript" language="JavaScript"> >+<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', >@@ -19,14 +19,14 @@ $.tablesorter.addParser({ > $(document).ready(function() { > $('#patronlists > ul').tabs(); > $.tablesorter.defaults.widgets = ['zebra']; >- $("#issuest").tablesorter({<!-- TMPL_IF EXPR="dateformat eq 'metric'" --> >+ $("#issuest").tablesorter({<!-- TMPL_IF NAME="dateformat_metric" --> > dateFormat: 'uk',<!-- /TMPL_IF --> >- headers: { 1: { sorter: 'articles' },5: { sorter: false },6:{sorter:false}} >+ 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 EXPR="dateformat eq 'metric'" --> >+ $("#holdst").tablesorter({<!-- TMPL_IF NAME="dateformat_metric" --> > dateFormat: 'uk',<!-- /TMPL_IF --> > sortList: [[0,0]], > headers: { 1: { sorter: 'articles' }} >@@ -41,16 +41,102 @@ $.tablesorter.addParser({ > } > } ).attr( 'checked', false ); > <!-- /TMPL_IF --> >- $("td").click(function(e){ >- if(e.target.tagName.toLowerCase() == 'td'){ >- $(this).find("input:checkbox").each( function() { >- $(this).attr('checked', !$(this).attr('checked')); >- }); >- } >- }); >+ >+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> >@@ -58,7 +144,8 @@ $.tablesorter.addParser({ > <!-- TMPL_INCLUDE NAME="header.inc" --> > <!-- TMPL_INCLUDE NAME="circ-search.inc" --> > >-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> ›<!-- TMPL_IF NAME="borrowernumber" --> <a href="/cgi-bin/koha/circ/circulation.pl">Checkouts</a> › <!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR name="surname" --><!-- TMPL_ELSE --> <strong>Checkouts</strong><!-- /TMPL_IF --></div> >+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> ›<!-- TMPL_IF NAME="borrowernumber" --> <a href="/cgi-bin/koha/circ/circulation.pl">Checkouts</a> › <!-- 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"> >@@ -79,6 +166,43 @@ $.tablesorter.addParser({ > <!-- /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"> >@@ -88,7 +212,7 @@ $.tablesorter.addParser({ > > <ul> > <!-- TMPL_IF NAME="DEBT" --> >- <li>The patron has a debt of $<!-- TMPL_VAR name="DEBT" --></li> >+ <li>The patron has a debt of <!-- TMPL_VAR name="DEBT" --></li> > <!-- /TMPL_IF --> > > <!-- TMPL_IF NAME="RENEW_ISSUE" --> >@@ -259,15 +383,24 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <!-- 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"> >+<div> >+ >+<!-- /TMPL_IF --> >+ >+ >+<form method="post" action="/cgi-bin/koha/circ/circulation.pl" name="mainform"> > <fieldset id="circ_circulation_issue"> >- <label for="barcode">Checking out to <!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->) </label> >+ <!-- 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:</div> >+ <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;" /> >@@ -282,7 +415,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > } > }; > function refocus(calendar) { >- document.getElementById('barcode').focus(); >+ $('#barcode').focus(); > calendar.hide(); > }; > //#TODO - ADD syspref (AllowPostDatedCheckouts). >@@ -323,7 +456,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > > <!-- TMPL_IF NAME="flagged" --> > <!-- TMPL_IF NAME="noissues" --> >- <h4>Checking out to <!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->)</h4> >+ <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"> >@@ -373,7 +506,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <!-- 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>. >+ <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 --> >@@ -393,7 +526,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <div id="holdswaiting" class="circmessage"> > <h4>Holds waiting:</h4> > <!-- TMPL_LOOP NAME="WaitingReserveLoop" --> >- <ul> >+ <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> >@@ -408,9 +541,39 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <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" -->&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" -->&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" -->&borrowernumber=<!--TMPL_VAR NAME="borrowernumber" -->">[Delete]</a><!-- /TMPL_IF --></li> >+ <!-- /TMPL_LOOP --> >+ >+ </ul> >+ </div> >+ > <!-- /If flagged --><!-- /TMPL_IF --> > >+ > > </div> > </div> >@@ -424,7 +587,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <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"--> Holds(s)</a> >+ <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> >@@ -434,23 +597,54 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <!-- SUMMARY : TODAY & PREVIOUS ISSUES --> > <div id="checkouts"> > <!--TMPL_IF NAME="issuecount"--> >- <form action="/cgi-bin/koha/reserve/renewscript.pl" method="post"> >+ <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>Due date</th> >- <th>Title</th> >- <th>Item Type</th> >- <th>Call no</th> >- <th>Barcode</th> >- <th>Renewals</th> >- <th>Renew?</th> >- <th>Check In?</th> >+ <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" --> >@@ -460,17 +654,16 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <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" -->&type=intra"><!-- TMPL_VAR NAME="title" escape="html" --></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 --></td> >- <td> >- <!-- TMPL_VAR NAME="itemtype" --> >- <!-- TMPL_UNLESS NAME="noItemTypeImages" --> <!-- TMPL_IF NAME="itemtype_image" --> >- <img src="<!-- TMPL_VAR NAME="itemtype_image" -->" /> >- <!-- /TMPL_IF --><!-- /TMPL_UNLESS --> >- </td> >+ <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&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" -->&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><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR NAME="barcode" --></a></td> >- <td><!-- TMPL_VAR NAME="renewals" --></td> >- <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" --> >@@ -493,23 +686,27 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > On Hold > <!-- /TMPL_IF --> > <!-- TMPL_IF NAME="renew_error_too_many" --> >- Too Many Renewals >+ Not Renewable > <!-- /TMPL_IF --> > <!-- TMPL_IF NAME="can_confirm" --> > </span> > <!-- /TMPL_IF --> > <!-- /TMPL_IF --> > </td> >- <td><a href="/cgi-bin/koha/circ/returns.pl?barcode=<!-- TMPL_VAR NAME="barcode" -->">Check In</a></td> >- <!-- TMPL_IF NAME="renew_failed" --> >- <td>Renewal Failed</td> >- <!-- /TMPL_IF --> >+ <!-- /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 --> >+ <!-- /if todayissues --><!-- /TMPL_IF --> > <!-- TMPL_IF NAME="previssues" --> >-<!-- TMPL_IF NAME="todayissues" --><tr><th colspan="8"><a name="previous" id="previous"></a>Previous checkouts</th></tr><!-- TMPL_ELSE --> >-<tr><th class="{sorter: false}" colspan="8"><a name="previous" id="previous"></a>Previous checkouts</th></tr></thead> >+<!-- 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" --> >@@ -521,17 +718,18 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <!-- 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" -->&type=intra"><!-- TMPL_VAR NAME="title" escape="html" --></a><br /><!-- TMPL_IF NAME="author" --><!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF --> <!-- TMPL_IF NAME="itemnotes" -->- <!-- TMPL_VAR name="itemnotes" --><!-- /TMPL_IF --></td> >+ <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&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" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR NAME="barcode" --></a></td> > <td> > <!-- TMPL_VAR NAME="itemtype" --> >- <!-- TMPL_IF NAME="itemtype_image" --> >- <img src="<!-- TMPL_VAR NAME="itemtype_image" -->" /> >- <!-- /TMPL_IF --> > </td> >+ <td><!-- TMPL_VAR NAME="displaydate" --></td> > <td><!-- TMPL_VAR NAME="itemcallnumber" --></td> >- <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR NAME="barcode" --></a></td> >- <td><!-- TMPL_VAR NAME="renewals" --></td> >- <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" --> >@@ -554,18 +752,21 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > On Hold > <!-- /TMPL_IF --> > <!-- TMPL_IF NAME="renew_error_too_many" --> >- Too Many Renewals >+ Not Renewable > <!-- /TMPL_IF --> > <!-- TMPL_IF NAME="can_confirm" --> > </span> > <!-- /TMPL_IF --> > <!-- /TMPL_IF --> > </td> >- <td><a href="/cgi-bin/koha/circ/returns.pl?barcode=<!-- TMPL_VAR NAME="barcode" -->">Check In</a></td> >- <!-- TMPL_IF NAME="renew_failed" --> >- <td>Renewal Failed</td> >- <!-- /TMPL_IF --> >- >+ <!-- /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 --> >@@ -573,15 +774,16 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > </table> > <!--TMPL_IF NAME="issuecount"--> > <fieldset class="action"> >- <!-- TMPL_IF NAME="CAN_user_circulate_override_renewals" --> >+ <!-- 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 Checked Items" /> >- <input type="submit" name="renew_all" value="Renew All" /> >- </fieldset> >+ <!-- /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 --> >@@ -592,21 +794,22 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > > <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>Item Type</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" -->"><!-- TMPL_VAR NAME="title" escape="html" --></a><!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF --></td> >- <td><!-- TMPL_VAR NAME="itemtype" --></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> >@@ -617,15 +820,22 @@ No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> > <!-- TMPL_IF name="nottransfered" --> hasn't been transfered yet from <!-- TMPL_VAR NAME="nottransferedby" --></i> > <!-- /TMPL_IF --></em></td> > <td> >- <!-- TMPL_IF NAME="waitingposition" --> >- Hold priority >- <b> <!-- TMPL_VAR NAME="waitingposition" --> </b><!-- /TMPL_IF --> >+ <!-- 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 no pending holds.</p> >+ <p>Patron has nothing on hold.</p> > <!-- /TMPL_IF --> > </div> <!-- reservesloop --> > >-- >1.5.6.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 2930
:
973
|
11783
|
12021
|
12321