koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/intranet/cgi-bin circ/branchreserves.pl ci... [rel_TG]


From: Tumer Garip
Subject: [Koha-cvs] koha/intranet/cgi-bin circ/branchreserves.pl ci... [rel_TG]
Date: Sat, 10 Mar 2007 11:54:17 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         rel_TG
Changes by:     Tumer Garip <tgarip1957>        07/03/10 11:54:16

Added files:
        intranet/cgi-bin/circ: branchreserves.pl branchtransfers.pl 
                               circulation.pl currenttransfers.pl 
                               renewscript.pl rescirculation.pl 
                               resreturns.pl returns.pl 
                               selectbranchprinter.pl 
                               waitingreservestransfers.pl 
Removed files:
        intranet/cgi-bin: get-imdb.php 

Log message:
        

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/branchreserves.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/branchtransfers.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/circulation.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/currenttransfers.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/renewscript.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/rescirculation.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/resreturns.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/returns.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/selectbranchprinter.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/circ/waitingreservestransfers.pl?cvsroot=koha&only_with_tag=rel_TG&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/intranet/cgi-bin/get-imdb.php?cvsroot=koha&only_with_tag=rel_TG&r1=1.1.2.1&r2=0

Patches:
Index: circ/branchreserves.pl
===================================================================
RCS file: circ/branchreserves.pl
diff -N circ/branchreserves.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/branchreserves.pl      10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,136 @@
+#!/usr/bin/perl
+
+# $Id: branchreserves.pl,v 1.1.2.1 2007/03/10 11:54:16 tgarip1957 Exp $
+
+# 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 C4::Context;
+use CGI;
+use C4::Auth;
+use C4::Date;
+use C4::Circulation::Circ2;
+use C4::Reserves2;
+use C4::Search;
+use C4::Koha;
+
+my $input = new CGI;
+
+my $item=$input->param('itemnumber');
+my $borrowernumber=$input->param('borrowernumber');
+my $fbr=$input->param('fbr');
+my $tbr=$input->param('tbr');
+
+my $cancel;
+
+
+my $theme = $input->param('theme'); # only used if allowthemeoverride is set
+
+my ($template, $loggedinuser, $cookie)
+      = get_template_and_user({template_name => "circ/branchreserves.tmpl",
+                                        query => $input,
+                                        type => "intranet",
+                                        authnotrequired => 0,
+                                        flagsrequired => {borrowers => 1},
+                                        debug => 1,
+                                        });
+
+my $default = C4::Context->userenv->{'branch'};
+my $dbh=C4::Context->dbh;
+my $todaysdate = get_today();
+
+
+# if we have a return from the form we launch the subroutine CancelReserve
+       if ($item){
+               my $messages;
+               my $nextreservinfo;
+               my %env;
+               my $waiting;
+               ($messages,$nextreservinfo) = 
GlobalCancel($item,$borrowernumber);
+#              if we have a result 
+               if ($nextreservinfo){
+                       my $borrowerinfo = 
getpatroninformation(\%env,$nextreservinfo);
+                       my $iteminfo = 
C4::Circulation::Circ2::getiteminformation(\%env,$item);
+                       if ($messages->{'transfert'}){
+                       my $branchname = 
getbranchname($messages->{'transfert'});
+                               $template->param(
+                                       messagetransfert => 
$messages->{'transfert'},
+                                       branchname      => $branchname,
+                               );
+                       }
+                       if ($messages->{'waiting'}){
+                       $waiting = 1;
+                       }
+
+                               $template->param(
+                                       message                 => 1,
+                                       nextreservnumber  =>  $nextreservinfo,
+                                       nextreservsurname => 
$borrowerinfo->{'surname'},
+                                       nextreservfirstname => 
$borrowerinfo->{'firstname'},
+                                       nextreservitem          => $item,
+                                       nextreservtitle         => 
$iteminfo->{'title'},
+                                       waiting                 => $waiting
+                               );
+                       }
+#              if the document is not in his homebranch location and there is 
not reservation after, we transfer it
+               if (($fbr ne $tbr) and (not $nextreservinfo)){
+                       C4::Circulation::Circ2::dotransfer($item,$fbr,$tbr);
+                       C4::Circulation::Circ2::itemseen($dbh,$itm);
+               }
+       }
+       
+my @reservloop;
+my @getreserves = GetReservesForBranch($default);
+foreach my $num (@getreserves) {
+       my %getreserv;
+       my %env;
+       my $gettitle = getiteminformation(\%env,$num->{'itemnumber'});
+       my $getborrower = getpatroninformation (\%env,$num->{'borrowernumber'});
+       my $itemtypeinfo = getitemtypeinfo($gettitle->{'ctype'});
+       $getreserv{'waitingdate'} = format_date($num->{'waitingdate'});
+       my 
$calcDate=DateCalc($num->{'waitingdate'},"+".C4::Context->preference('ReservesMaxPickUpDelay')."
  days");
+       my $warning=Date_Cmp(ParseDate("today"),$calcDate);
+       if ($warning>0){
+               $getreserv{'messcompa'} = 1;
+       }
+       $getreserv{'title'} = $gettitle->{'title'};
+       $getreserv{'itemnumber'} = $gettitle->{'itemnumber'};
+       $getreserv{'biblionumber'} = $gettitle->{'biblionumber'};
+       $getreserv{'barcode'} = $gettitle->{'barcode'};
+       $getreserv{'itemtype'} = $itemtypeinfo->{'description'};
+       $getreserv{'homebranch'} = $gettitle->{'homebranch'};
+       $getreserv{'holdingbranch'} = $gettitle->{'holdingbranch'};
+       if ($gettitle->{'homebranch'} ne $gettitle->{'holdingbranch'}){
+               $getreserv{'dotransfer'} = 1;
+               }
+       $getreserv{'itemcallnumber'} = $gettitle->{'itemcallnumber'};
+       $getreserv{'borrowernum'} = $getborrower->{'borrowernumber'};
+       $getreserv{'borrowername'} = $getborrower->{'surname'};
+       $getreserv{'borrowerfirstname'} =  $getborrower->{'firstname'} ;
+       if ($getborrower->{'emailaddress'}){
+               $getreserv{'borrowermail'} =  $getborrower->{'emailaddress'} ;
+       }
+       $getreserv{'borrowerphone'} = $getborrower->{'phone'};
+       push(@reservloop, \%getreserv);
+}
+
+       $template->param( reserveloop       => address@hidden,
+                       show_date       => format_date($todaysdate),    
+                        );
+       
+output_html_with_http_headers $input, $cookie, $template->output;
\ No newline at end of file

Index: circ/branchtransfers.pl
===================================================================
RCS file: circ/branchtransfers.pl
diff -N circ/branchtransfers.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/branchtransfers.pl     10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,283 @@
+#!/usr/bin/perl
+# WARNING: This file uses 4-character tabs!
+
+#written 11/3/2002 by Finlay
+#script to execute branch transfers 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 CGI;
+use C4::Circulation::Circ2;
+use C4::Reserves2;
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Koha;
+use C4::Members;
+###############################################
+# constants
+
+my %env;
+my $linecolor1='#ffffcc';
+my $linecolor2='white';
+
+my $branches = GetBranches();
+my $printers = getprinters(\%env);
+
+
+###############################################
+#  Getting state
+
+my $query=new CGI;
+
+
+my $branch = getbranch($query, $branches);
+my $printer = getprinter($query, $printers);
+
+my $genbrname = $branches->{$branch}->{'branchname'} ;
+my $genprname = $printers->{$printer}->{'printername'};
+
+my $messages;
+my $found;
+my $reserved;
+my $waiting;
+my $reqmessage;
+my $cancelled;
+my $setwaiting;
+my $reqbrchname;
+my $user=$query->param('loggedinuser');
+my $request=$query->param('request');
+my $borrnum = $query->param('borrowernumber');
+
+my $tobranchcd=$query->param('tobranchcd');
+my $frbranchcd='';
+my $dbh=C4::Context->dbh;
+############
+# Deal with the requests....
+if ($request eq "KillWaiting") {
+    my $item = $query->param('itemnumber');
+    CancelReserve(0, $item, $borrnum);
+       $cancelled = 1;
+       $reqmessage =1;
+}
+
+my $ignoreRs = 0;
+if ($request eq "SetWaiting") {
+    my $item = $query->param('itemnumber');
+    $tobranchcd = ReserveWaiting($item, $borrnum);
+       $reqbrchname = $branches->{$tobranchcd}->{'branchname'};
+    $ignoreRs = 1;
+       $setwaiting = 1;
+       $reqmessage =1;
+}
+if ($request eq 'KillReserved'){
+    my $biblio = $query->param('biblionumber');
+    CancelReserve($biblio, 0, $borrnum);
+       $cancelled = 1;
+       $reqmessage =1;
+}
+
+
+
+# set up the branchselect options....
+my @branchoptionloop;
+foreach my $br (keys %$branches) {
+    #(next) unless $branches->{$br}->{'CU'}; #FIXME disabled to fix bug 202
+    my %branch;
+    $branch{selected}=($br eq $tobranchcd);
+       $branch{code}=$br;
+       $branch{name}=$branches->{$br}->{'branchname'};
+       push (@branchoptionloop, \%branch);
+}
+
+
+# collect the stack of books already transfered so they can printed...
+my @trsfitemloop;
+my %transfereditems;
+my %frbranchcds;
+my %tobranchcds;
+my $color=$linecolor2;
+
+my $barcode = $query->param('barcode');
+if ($barcode) {
+       my $transfered;
+       my $iteminformation;
+       ($transfered, $messages, $iteminformation)
+                       = transferbook($tobranchcd, $barcode, $ignoreRs,$user);
+       $found = $messages->{'ResFound'};
+       if ($transfered) {
+               my %item;
+               my $frbranchcd = $iteminformation->{'holdingbranch'};
+               if (not ($found)) {
+                       ($color eq $linecolor1) ? ($color=$linecolor2) : 
($color=$linecolor1);
+                       $item{'color'}=$color;
+                       
$item{'biblionumber'}=$iteminformation->{'biblionumber'};
+                       $item{'title'}=$iteminformation->{'title'};
+                       $item{'author'}=$iteminformation->{'author'};
+                       $item{'itemtype'}=$iteminformation->{'ctype'};
+                       
$item{'frbrname'}=$branches->{$frbranchcd}->{'branchname'};
+                       
$item{'tobrname'}=$branches->{$tobranchcd}->{'branchname'};
+               }
+               $item{counter}=0;
+               $item{barcode}=$barcode;
+               $item{frombrcd}=$frbranchcd;
+               $item{tobrcd}=$tobranchcd;
+##########
+#Are these lines still useful ???
+               $transfereditems{0}=$barcode;
+               $frbranchcds{0}=$frbranchcd;
+               $tobranchcds{0}=$tobranchcd;
+##########
+               push (@trsfitemloop, \%item);
+       }
+}
+
+foreach ($query->param){
+       (next) unless (/bc-(\d*)/);
+       my $counter=$1;
+       my %item;
+       my $bc=$query->param("bc-$counter");
+       my $frbcd=$query->param("fb-$counter");
+       my $tobcd=$query->param("tb-$counter");
+       $counter++;
+       $item{counter}=$counter;
+       $item{barcode}=$bc;
+       $item{frombrcd}=$frbcd;
+       $item{tobrcd}=$tobcd;
+       my ($iteminformation) = getiteminformation(\%env, 0, $bc);
+       ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
+       $item{'color'}=$color;
+       $item{'biblionumber'}=$iteminformation->{'biblionumber'};
+       $item{'title'}=$iteminformation->{'title'};
+       $item{'author'}=$iteminformation->{'author'};
+       $item{'itemtype'}=$iteminformation->{'ctype'};
+       $item{'frbrname'}=$branches->{$frbcd}->{'branchname'};
+       $item{'tobrname'}=$branches->{$tobcd}->{'branchname'};
+##########
+#Are these lines still useful ???
+       $transfereditems{$counter}=$bc;
+       $frbranchcds{$counter}=$frbcd;
+       $tobranchcds{$counter}=$tobcd;
+#########
+       push (@trsfitemloop, \%item);
+}
+
+
+my $name;
+my $bornum;
+my $borcnum;
+my $itemnumber;
+my $biblionum;
+my $branchname;
+
+
+#####################
+
+if ($found) {
+    my $res = $messages->{'ResFound'};
+       $branchname = $branches->{$res->{'branchcode'}}->{'branchname'};
+       my ($borr) = getpatroninformation(\%env, $res->{'borrowernumber'}, 0);
+       $name = name($borr);
+       $bornum = $borr->{'borrowernumber'}; #Hopefully, 
borr->{borrowernumber}=res->{borrowernumber}
+       $borcnum = $borr->{'cardnumber'};
+       $itemnumber = $res->{'itemnumber'};
+
+       if ($res->{'ResFound'} eq "Waiting") {
+               $waiting = 1;
+       }
+       if ($res->{'ResFound'} eq "Reserved") {
+               $reserved = 1;
+               $biblionum = $res->{'biblionumber'};
+       }
+}
+
+#####################
+
+my @errmsgloop;
+foreach my $code (keys %$messages) {
+       my %err;
+    $err{errbadcode} = ($code eq 'BadBarcode');
+       if ($code eq 'BadBarcode') {
+               $err{msg}=$messages->{'BadBarcode'};
+       }
+
+    $err{errispermanent} = ($code eq 'IsPermanent');
+    if ($code eq 'IsPermanent'){
+               $err{msg} = 
$branches->{$messages->{'IsPermanent'}}->{'branchname'};
+               # Here, msg contains the branchname
+               # Not so satisfied with this... But should work
+    }
+    $err{errdesteqholding} = ($code eq 'DestinationEqualsHolding');
+
+       $err{errwasreturned} = ($code eq 'WasReturned');
+       if ($code eq 'WasReturned') {
+               my ($borrowerinfo) = getpatroninformation(\%env, 
$messages->{'WasReturned'}, 0);
+               $name =name($borrowerinfo);
+               $bornum =$borrowerinfo->{'borrowernumber'};
+               $borcnum =$borrowerinfo->{'cardnumber'};
+    }
+    if ($code eq 'WasTransfered'){
+# Put code here if you want to notify the user that item was transfered...
+    }
+       push (@errmsgloop, \%err);
+}
+
+
+#######################################################################################
+# Make the page .....
+my ($template, $borrowernumber, $cookie)
+    = get_template_and_user({template_name => "circ/branchtransfers.tmpl",
+                                                       query => $query,
+                            type => "intranet",
+                            authnotrequired => 0,
+                            flagsrequired => {editcatalogue => 1},
+                         });
+$template->param(      genbrname => $genbrname,
+                                                               genprname => 
$genprname,
+                                                               branch => 
$branch,
+                                                               printer => 
$printer,
+                                                               found => $found,
+                                                               reserved => 
$reserved,
+                                                               waiting => 
$waiting,
+                                                               name => $name,
+                                                               bornum => 
$bornum,
+                                                               borcnum => 
$borcnum,
+                                                               branchname => 
$branchname,
+                                                               itemnumber => 
$itemnumber,
+                                                               barcode => 
$barcode,
+                                                               biblionumber => 
$biblionum,
+                                                               tobranchcd => 
$tobranchcd,
+                                                               reqmessage => 
$reqmessage,
+                                                               cancelled => 
$cancelled,
+                                                               setwaiting => 
$setwaiting,
+                                                               trsfitemloop => 
address@hidden,
+                                                               
branchoptionloop => address@hidden,
+                                                               errmsgloop => 
address@hidden
+                                                       );
+output_html_with_http_headers $query, $cookie, $template->output;
+
+
+sub name {
+       my ($borinfo) = @_;
+       return $borinfo->{'surname'}." ".$borinfo->{'title'}." 
".$borinfo->{'firstname'};
+}
+
+# Local Variables:
+# tab-width: 4
+# End:

Index: circ/circulation.pl
===================================================================
RCS file: circ/circulation.pl
diff -N circ/circulation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/circulation.pl 10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,486 @@
+#!/usr/bin/perl
+
+# Please use 8-character tabs for this file (indents are every 4 characters)
+
+#written 8/5/2002 by Finlay
+#script to execute issuing of books
+# New functions (renew etc.) added 07-08-2005 Tumer Garip address@hidden
+
+# 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 CGI;
+use C4::Circulation::Circ2;
+use C4::Search;
+use C4::Output;
+use C4::Print;
+
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Koha;
+
+use C4::Date;
+use C4::Context;
+use C4::Members;
+# PARAMETERS READING
+#
+my $query=new CGI;
+
+my ($template, $loggedinuser, $cookie) = get_template_and_user
+    ({
+       template_name   => 'circ/circulation.tmpl',
+       query           => $query,
+       type            => "intranet",
+       authnotrequired => 0,
+       flagsrequired   => { circulate => 1 },
+    });
+my $branches = GetBranches();
+my $printers = getprinters();
+#my $branch = getbranch($query, $branches);
+my $branch=C4::Context->preference("defaultBranch");
+my $printer = getprinter($query, $printers);
+
+my $findborrower = $query->param('findborrower');
+
+$findborrower =~ s|,| |g;
+$findborrower =~ s|'| |g;
+my $borrowernumber = $query->param('borrnumber');
+
+my $print=$query->param('print');
+my $barcode = $query->param('barcode');
+my $year=$query->param('year');
+my $month=$query->param('month');
+my $day=$query->param('day');
+my $stickyduedate=$query->param('stickyduedate');
+my $issueconfirmed = $query->param('issueconfirmed');
+my $cancelreserve = $query->param('cancelreserve');
+my %error;
+my  $errorflag=$query->param('error');
+## The following er
+if ( $errorflag gt "1"){
+%error=(TOO_EARLY=>{1},) if ($errorflag eq "2");
+%error=(NO_MORE_RENEWALS=>{1},) if ($errorflag eq "3");
+%error=(RESERVE_FOUND=>{1},) if ($errorflag eq "4");
+}elsif ( $errorflag eq "1"){
+%error=(SUCCESFULL_RENEW=>{1},)
+}
+#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 %env; # FIXME env is used as an "environment" variable. Could be dropped 
probably...
+
+$env{'branchcode'}=$branch;
+$env{'printer'}=$printer;
+$env{'queue'}=$printer;
+
+
+my $todaysdate =get_today();
+
+
+# check and see if we should print
+ if ($barcode eq ''  && $print eq 'maybe'){
+       $print = 'yes';
+ }
+ if ($print eq 'yes' && $borrowernumber ne ''){
+       printslip(\%env,$borrowernumber);
+       $query->param('borrnumber','');
+       $borrowernumber='';
+ }
+
+#
+# STEP 2 : FIND BORROWER
+# if there is a list of find borrowers....
+#
+my $borrowerslist;
+my $message;
+if ($findborrower) {
+       my 
($count,$borrowers)=BornameSearch(\%env,$findborrower,'cardnumber','web');
+       my @address@hidden;
+       if ($#borrowers == -1) {
+               $query->param('findborrower', '');
+               $message =  "'$findborrower'";
+       } elsif ($#borrowers == 0) {
+               $query->param('borrnumber', $borrowers[0]->{'borrowernumber'});
+               $query->param('barcode','');
+               $borrowernumber=$borrowers[0]->{'borrowernumber'};
+       } else {
+               $borrowerslist = address@hidden;
+       }
+}
+
+# get the borrower information.....
+my $borrower;
+my $bornum=$query->param('bornum');
+if ($bornum){
+$borrowernumber=$bornum;
+}
+my $issues;
+if ($borrowernumber) {
+       $borrower = getpatroninformation(\%env,$borrowernumber,0);
+       my ($od,$issue,$fines)=borrdata2(\%env,$borrowernumber);
+       my ($resod,$resissue,$fines,$resfine)=borrdata3(\%env,$borrowernumber);
+
+       $template->param(overduecount => 
$od,resoverdue=>$resod,resissuecount=>$resissue,resfine=>$resfine,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines);
+$issues=$issue;
+my $picture;
+ my $htdocs = C4::Context->config('opacdir');
+
+$picture =$htdocs. 
"/htdocs/uploaded-files/users-photo/".$borrower->{'cardnumber'}.".jpg";
+ if (-e $picture)
+{ 
+   $template->param(borrowerphoto => 
"http://library.neu.edu.tr/uploaded-files/users-photo/".$borrower->{'cardnumber'}.".jpg");
+ }else{
+$picture = 
"http://cc.neu.edu.tr/stdpictures/".$borrower->{'cardnumber'}.".jpg";
+  $template->param(borrowerphoto => $picture);
+}
+}
+
+#
+# STEP 3 : ISSUING
+#
+#Try to  issue
+
+
+if ($barcode) {
+
+       $barcode = cuecatbarcodedecode($barcode);
+       my ($datedue, $invalidduedate) = fixdate($year, $month, $day);
+       if ($issueconfirmed) {
+               issuebook(\%env, $borrower, $barcode, $datedue,$cancelreserve);
+               my ($od,$issue,$fines)=borrdata2(\%env,$borrowernumber);
+
+
+       $template->param(overduecount => $od,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines);   
+
+       } else {
+               my ($error, $question) = canbookbeissued(\%env, $borrower, 
$barcode, $year, $month, $day) unless %error;
+               $error=\%error if %error;
+
+               my $noerror=1;
+               my $noquestion = 1;
+               foreach my $impossible (keys %$error) {
+                       $template->param($impossible => $$error{$impossible},
+                                                       IMPOSSIBLE => 1) unless 
($impossible eq 'SUCCESFULL_RENEW');
+                       $noerror = 0;
+               }
+               foreach my $needsconfirmation (keys %$question) {
+                       $template->param($needsconfirmation => 
$$question{$needsconfirmation},
+                                                       NEEDSCONFIRMATION => 1);
+                       $noquestion = 0;
+               }
+               $template->param(day => $day,
+                                               month => $month,
+                                               year => $year);
+               if ($noerror && ($noquestion || $issueconfirmed)) {
+
+                       issuebook(\%env, $borrower, $barcode, $datedue);
+               my ($od,$issue,$fines)=borrdata2(\%env,$borrowernumber);
+       
+
+       $template->param(overduecount => $od,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines);
+               }
+       }
+
+}
+
+
+
+
+##################################################################################
+# BUILD HTML
+
+# make the issued books table.....
+my $todaysissues='';
+my $previssues='';
+my @realtodayissues;
+my @realprevissues;
+#my @renewissues;
+my $allowborrow;
+if ($borrower) {
+
+# get each issue of the borrower & separate them in todayissues & previous 
issues
+       my @todaysissues;
+       my @previousissues;
+       my $issueslist = getissues($borrower);
+       # split in 2 arrays for today & previous
+       foreach my $it (keys %$issueslist) {
+               my $issuedate = $issueslist->{$it}->{'issue_date'};
+#              $issuedate = substr($issuedate, 0, 10);
+       
+               if ($todaysdate eq $issuedate) {
+                       push @todaysissues, $issueslist->{$it};
+               } else { 
+                       push @previousissues, $issueslist->{$it};
+               }
+    }
+
+
+       my $od; # overdues
+       my $i = 0;
+       my $togglecolor;
+       # parses today & build Template array
+       foreach my $book (sort {$b->{'timestamp'} <=> $a->{'timestamp'}} 
@todaysissues){
+               my $dd = $book->{'date_due'};
+               my $datedue = $book->{'date_due'};
+
+               $dd=format_date($dd);
+#              $datedue=~s/-//g;
+               if ($datedue lt $todaysdate) {
+                       $od = 1;
+               } else {
+                       $od=0;
+               }
+               $book->{'od'}=$od;
+               $book->{'dd'}=$dd;
+               
+               if ($togglecolor) {
+                       $togglecolor=0;
+               } else {
+                       $togglecolor=1;
+               }
+               $book->{'tcolor'}=$togglecolor;
+               if ($book->{'author'} eq ''){
+                       $book->{'author'}=' ';
+               }    
+               push @realtodayissues,$book;
+       $i++;
+       }
+
+
+
+       # parses previous & build Template array
+       $i=0;
+    foreach my $book (sort {$a->{'date_due'} cmp $b->{'date_due'}} 
@previousissues){
+               my $dd = $book->{'date_due'};
+               my $datedue = $book->{'date_due'};
+               $dd=format_date($dd);
+               my $pcolor = '';
+               my $od = '';
+#              $datedue=~s/-//g;
+               if ($datedue lt $todaysdate) {
+               
+                       $od = 1;
+               } else {
+                       $od = 0;
+               }
+       
+               if ($togglecolor) {
+                       $togglecolor=0;
+               } else {
+                       $togglecolor=1;
+               }
+       $book->{'tcolor'}=$togglecolor;
+               $book->{'dd'}=$dd; 
+               $book->{'od'}=$od;
+               #$book->{'tcolor'}=$pcolor;
+               if ($book->{'author'} eq ''){
+                       $book->{'author'}=' ';
+               }    
+
+               push @realprevissues,$book;
+       $i++;
+       }
+
+}#borrower
+
+
+my @values;
+my %labels;
+my $CGIselectborrower;
+if ($borrowerslist) {
+       foreach (sort {$a->{'surname'}.$a->{'firstname'} cmp 
$b->{'surname'}.$b->{'firstname'}} @$borrowerslist){
+               push @values,$_->{'borrowernumber'};
+               $labels{$_->{'borrowernumber'}} ="$_->{'surname'}, 
$_->{'firstname'} ... ($_->{'cardnumber'} - $_->{'categorycode'}) ...  
$_->{'streetaddress'} ";
+       }
+       $CGIselectborrower=CGI::scrolling_list( -name     => 'borrnumber',
+                               -values   => address@hidden,
+                               -labels   => \%labels,
+                               -size     => 7,
+                               -multiple => 0 );
+}
+#title
+
+my ($patrontable, $flaginfotable) = patrontable($borrower);
+my $amountold=$borrower->{flags}->{'CHARGES'}->{'message'};
+my @temp=split(/\$/,$amountold);
+$amountold=$temp[1];
+$template->param( today=>format_date($todaysdate),
+               findborrower => $findborrower,
+               borrower => $borrower,
+               borrowernumber => $borrowernumber,
+               branch => $branch,
+               printer => $printer,
+               branchname => $branches->{$branch}->{'branchname'},
+               printername => $printers->{$printer}->{'printername'},
+               firstname => $borrower->{'firstname'},
+               surname => $borrower->{'surname'},
+               categorycode => 
getborrowercategory($borrower->{'categorycode'}),
+               streetaddress => $borrower->{'streetaddress'},
+               emailaddress => $borrower->{'emailaddress'},
+               borrowernotes => $borrower->{'borrowernotes'},
+               city => $borrower->{'city'},
+               phone => $borrower->{'phone'},
+               cardnumber => $borrower->{'cardnumber'},
+               amountold => $amountold,
+               barcode => $barcode,
+               stickyduedate => $stickyduedate,
+               message => $message,
+               CGIselectborrower => $CGIselectborrower,
+               todayissues => address@hidden,
+               previssues => address@hidden,
+               
+       );
+# set return date if stickyduedate
+if ($stickyduedate) {
+       my $t_year = "year".$year;
+       my $t_month = "month".$month;
+       my $t_day = "day".$day;
+       $template->param(
+               $t_year => 1,
+               $t_month => 1,
+               $t_day => 1,
+       );
+}
+
+
+if ($branchcookie) {
+    $cookie=[$cookie, $branchcookie, $printercookie];
+}
+
+output_html_with_http_headers $query, $cookie, $template->output;
+
+####################################################################
+# Extra subroutines,,,
+
+sub patrontable {
+    my ($borrower) = @_;
+    my $flags = $borrower->{'flags'};
+    my $flaginfotable='';
+    my $flaginfotext;
+    #my $flaginfotext='';
+    my $flag;
+    my $color='';
+    foreach $flag (sort keys %$flags) {
+#      my @itemswaiting='';
+       $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'
+                               );
+                       }
+               if ($flag eq 'LOST'){
+                       $template->param(
+                               lost => 'true'
+                       );
+                       }
+               if ($flag eq 'DBARRED'){
+                       $template->param(
+                               dbarred => 'true'
+                       );
+                       }
+               if ($flag eq 'CHARGES') {
+                       $template->param(
+                               charges => 'true',
+                               chargesmsg => $flags->{'CHARGES'}->{'message'}
+                                );
+               }
+       } else {
+                if ($flag eq 'CHARGES') {
+                       $template->param(
+                               charges => 'true',
+                               flagged => 1,
+                               chargesmsg => $flags->{'CHARGES'}->{'message'}
+                        );
+               }
+               if ($flag eq 'WAITING') {
+                       my $items=$flags->{$flag}->{'itemlist'};
+                       my @itemswaiting;
+                       foreach my $item (@$items) {
+                       my ($iteminformation) = getiteminformation(\%env, 
$item->{'itemnumber'}, 0);
+                       $iteminformation->{'branchname'} = 
$branches->{$iteminformation->{'holdingbranch'}}->{'branchname'};
+                       push @itemswaiting, $iteminformation;
+                       }
+                       $template->param(
+                               flagged => 1,
+                               waiting => 'true',
+                               waitingmsg => $flags->{'WAITING'}->{'message'},
+                               itemswaiting => address@hidden,
+                                );
+               }
+               if ($flag eq 'ODUES') {
+                       $template->param(
+                               odues => 'true',
+                               flagged => 1,
+                               oduesmsg => $flags->{'ODUES'}->{'message'}
+                                );
+
+                       my $items=$flags->{$flag}->{'itemlist'};
+                       {
+                           my @itemswaiting;
+                       foreach my $item (@$items) {
+                               my ($iteminformation) = 
getiteminformation(\%env, $item->{'itemnumber'}, 0);
+                               push @itemswaiting, $iteminformation;
+                       }
+                       }
+                       if ($query->param('module') ne 'returns'){
+                               $template->param( nonreturns => 'true' );
+                       }
+               }
+               if ($flag eq 'NOTES') {
+                       $template->param(
+                               notes => 'true',
+                               flagged => 1,
+                               notesmsg => $flags->{'NOTES'}->{'message'}
+                                );
+               }
+       }
+    }
+    return($patrontable, $flaginfotext);
+}
+
+sub cuecatbarcodedecode {
+    my ($barcode) = @_;
+    chomp($barcode);
+    my @fields = split(/\./,$barcode);
+    my @results = map(decode($_), @fields[1..$#fields]);
+    if ($#results == 2){
+       return $results[2];
+    } else {
+       return $barcode;
+    }
+}
+
+# Local Variables:
+# tab-width: 8
+# End:

Index: circ/currenttransfers.pl
===================================================================
RCS file: circ/currenttransfers.pl
diff -N circ/currenttransfers.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/currenttransfers.pl    10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,123 @@
+#!/usr/bin/perl
+
+# $Id: currenttransfers.pl,v 1.1.2.1 2007/03/10 11:54:16 tgarip1957 Exp $
+
+# 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 C4::Context;
+use C4::Interface::CGI::Output;
+use CGI;
+use C4::Auth;
+use C4::Date;
+use C4::Circulation::Circ2;
+use C4::Date;
+use C4::Koha;
+use C4::Search;
+use C4::Reserves2;
+
+my $input = new CGI;
+
+my $theme = $input->param('theme'); # only used if allowthemeoverride is set
+my $itemnumber = $input->param('itemnumber');
+# if we have a resturn of the form to delete the transfer, we launch the 
subrroutine
+if ($itemnumber){
+       C4::Circulation::Circ2::DeleteTransfer($itemnumber);
+}
+
+my ($template, $loggedinuser, $cookie)
+      = get_template_and_user({template_name => "circ/currenttransfers.tmpl",
+                                        query => $input,
+                                        type => "intranet",
+                                        authnotrequired => 0,
+                                        flagsrequired => {borrowers => 1},
+                                        debug => 1,
+                                        });
+
+
+# set the userenv branch
+my $default = C4::Context->userenv->{'branch'};
+
+
+
+my $todaysdate = get_today();
+
+# get the all the branches for reference
+my $branches = GetBranches();
+my @branchesloop;
+foreach my $br (keys %$branches) {
+       my @transferloop;
+       my %branchloop;
+       $branchloop{'branchname'} = $branches->{$br}->{'branchname'};
+       $branchloop{'branchcode'} = $branches->{$br}->{'branchcode'};
+       # # # # # # # # # # # # # # # # # # # # # # 
+       my @gettransfers = 
GetTransfersFromBib($branches->{$br}->{'branchcode'},$default);
+               if (@gettransfers){
+               foreach my $num (@gettransfers) {
+                       my %getransf;
+                       my %env;
+                       my 
$calcDate=DATE_Add($num->{'datesent'},C4::Context->preference('TransfersMaxDaysWarning'));
+                       my $warning=DATE_Diff($todaysdate,$calcDate);
+                       if ($warning>0){
+                               $getransf{'messcompa'} = 1;
+                       }
+                       my $gettitle = 
getiteminformation(\%env,$num->{'itemnumber'});
+                       my $itemtypeinfo = 
getitemtypeinfo($gettitle->{'ctype'});
+                       
+                               $getransf{'title'} = $gettitle->{'title'};
+                               $getransf{'datetransfer'} = 
format_date($num->{'datesent'});
+                               $getransf{'biblionumber'} = 
$gettitle->{'biblionumber'};
+                               $getransf{'itemnumber'} = 
$gettitle->{'itemnumber'};
+                               $getransf{'barcode'} = $gettitle->{'barcode'};
+                               $getransf{'itemtype'} = 
$itemtypeinfo->{'description'};
+                               $getransf{'homebranch'} = 
$gettitle->{'homebranch'};
+                               $getransf{'holdingbranch'} = 
$gettitle->{'holdingbranch'};
+                               $getransf{'itemcallnumber'} = 
$gettitle->{'itemcallnumber'};
+
+#                              we check if we have a reserv for this transfer
+                               my @checkreserv = 
FastFindReserves($num->{'itemnumber'});
+                               if (@checkreserv[0]){
+                                       my $getborrower = getpatroninformation 
(\%env,$checkreserv[1]);
+                                       $getransf{'borrowernum'} = 
$getborrower->{'borrowernumber'};
+                                       $getransf{'borrowername'} = 
$getborrower->{'surname'};
+                                       $getransf{'borrowerfirstname'} =  
$getborrower->{'firstname'};
+                                               if 
($getborrower->{'emailaddress'}){
+                                                       
$getransf{'borrowermail'} =  $getborrower->{'emailaddress'} ;
+                                               }
+                                       $getransf{'borrowerphone'} = 
$getborrower->{'phone'};   
+
+                               }
+                               push(@transferloop, \%getransf);
+                       }
+#              If we have a return of reservloop we put it in the branchloop 
sequence
+               $branchloop{'reserv'} = address@hidden ;
+               }               
+       else {
+#      if we don't have a retrun from reservestobranch we unset branchname and 
branchcode
+       $branchloop{'branchname'} = 0;
+       $branchloop{'branchcode'} = 0;
+       }
+push(@branchesloop, \%branchloop);
+}
+       $template->param( branchesloop  => address@hidden,
+                       show_date       => format_date($todaysdate)     
+                        );
+       
+output_html_with_http_headers $input, $cookie, $template->output;
+
+

Index: circ/renewscript.pl
===================================================================
RCS file: circ/renewscript.pl
diff -N circ/renewscript.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/renewscript.pl 10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,78 @@
+#!/usr/bin/perl
+
+# $Id: renewscript.pl,v 1.1.2.1 2007/03/10 11:54:16 tgarip1957 Exp $
+
+#written 18/1/2000 by address@hidden
+#script to renew items from the web
+
+
+# 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 CGI;
+use C4::Circulation::Circ2;
+use C4::Date;
+use C4::Members;
+use C4::Log;
+use C4::Context;
+use C4::Auth;
+#get input
+my $input= new CGI;
+my $flagsrequired;
+# $flagsrequired->{circulation}=1;
+#my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, 
$flagsrequired);
+
+my @names=$input->param();
+my address@hidden;
+my %data;
+my $dbh = C4::Context->dbh;
+for (my $i=0;$i<$count;$i++){
+  if ($names[$i] =~ /renew/){
+    my $temp=$names[$i];
+    $temp=~ s/renew_item_//;
+    $data{$temp}=$input->param($names[$i]);
+  }
+}
+my %env;
+my $barcode;
+my $destination = $input->param("destination");
+my $cardnumber = $input->param("cardnumber");
+my $bornum=$input->param("bornum");
+my $error;
+my $status=0;
+
+while ( my ($itemno, $value) = each %data) {
+
+   if ($value eq 'y'){
+my $iteminformation = getiteminformation($env, $itemno,0);
+$barcode=$iteminformation->{'barcode'};
+        $status=renewstatus(\%env,$bornum,$itemno);
+       if ($status==1){
+     renewbook($env,$bornum,$itemno);  
+
+# logaction($loggedinuser,"circulation","renew",$barcode,$bornum) if 
(&logstatus);
+       }else{
+       last;
+       }   
+}
+}
+
+if($destination eq "circ" || $status>1){
+       print 
$input->redirect("/cgi-bin/koha/circ/circulation.pl?bornum=$bornum&error=$status&barcode=$barcode");
+} else {
+       print 
$input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$bornum");
+}
\ No newline at end of file

Index: circ/rescirculation.pl
===================================================================
RCS file: circ/rescirculation.pl
diff -N circ/rescirculation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/rescirculation.pl      10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,465 @@
+#!/usr/bin/perl
+
+# Please use 8-character tabs for this file (indents are every 4 characters)
+
+#written 8/5/2002 by Finlay
+#script to execute issuing of books
+# New functions added 07-08-2005 Tumer Garip address@hidden
+
+# 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 CGI;
+use C4::Circulation::Circ3;
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Koha;
+use C4::Date;
+use C4::Context;
+use C4::Members;
+use C4::Print;
+use C4::Log;
+#
+# PARAMETERS READING
+#
+my $query=new CGI;
+
+my ($template, $loggedinuser, $cookie) = get_template_and_user
+    ({
+       template_name   => 'circ/rescirculation.tmpl',
+       query           => $query,
+       type            => "intranet",
+       authnotrequired => 0,
+       flagsrequired   => { circulate => 1 },
+    });
+my $branches = GetBranches();
+my $printers = getprinters();
+my $branch=C4::Context->preference("defaultBranch");
+my $printer = getprinter($query, $printers);
+
+my $findborrower = $query->param('findborrower');
+$findborrower =~ s|,| |g;
+$findborrower =~ s|'| |g;
+my $borrowernumber = $query->param('borrnumber');
+
+my $print=$query->param('print');
+my $barcode = $query->param('barcode');
+my $year=$query->param('year');
+my $month=$query->param('month');
+my $day=$query->param('day');
+my $stickyduedate=$query->param('stickyduedate');
+my $issueconfirmed = $query->param('issueconfirmed');
+my $cancelreserve = $query->param('cancelreserve');
+
+my $renew=0;
+ 
+#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 %env; # FIXME env is used as an "environment" variable. Could be dropped 
probably...
+
+$env{'branchcode'}=$branch;
+$env{'printer'}=$printer;
+$env{'queue'}=$printer;
+
+my $todaysdate =get_today();
+
+
+# check and see if we should print
+ if ($barcode eq ''  && $print eq 'maybe'){
+       $print = 'yes';
+ }
+ if ($print eq 'yes' && $borrowernumber ne ''){
+       printslip(\%env,$borrowernumber);
+       $query->param('borrnumber','');
+       $borrowernumber='';
+ }
+
+#
+# STEP 2 : FIND BORROWER
+# if there is a list of find borrowers....
+#
+my $borrowerslist;
+my $message;
+if ($findborrower) {
+       my 
($count,$borrowers)=BornameSearch(\%env,$findborrower,'cardnumber','web');
+       my @address@hidden;
+       if ($#borrowers == -1) {
+               $query->param('findborrower', '');
+               $message =  "'$findborrower'";
+       } elsif ($#borrowers == 0) {
+               $query->param('borrnumber', $borrowers[0]->{'borrowernumber'});
+               $query->param('barcode','');
+               $borrowernumber=$borrowers[0]->{'borrowernumber'};
+       } else {
+               $borrowerslist = address@hidden;
+       }
+}
+
+# get the borrower information.....
+my $borrower;
+my $bornum=$query->param('bornum');
+if ($bornum){
+$borrowernumber=$bornum;
+}
+
+if ($borrowernumber) {
+       $borrower = C4::Members::getpatroninformation(\%env,$borrowernumber,0);
+       my ($od,$issue,$fines,$resfine)=borrdata3(\%env,$borrowernumber);
+if ($resfine >0 || $fines) {
+$template->param(
+                       flagged => 1,
+                       noissues => 'true',
+                        );
+}
+       $template->param(overduecount => $od,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines,
+                                                       resfine => $resfine);
+my $picture;
+ my $htdocs = C4::Context->config('opacdir');
+
+$picture =$htdocs. 
"/htdocs/uploaded-files/users-photo/".$borrower->{'cardnumber'}.".jpg";
+ if (-e $picture)
+{ 
+
+   $template->param(borrowerphoto => 
"http://library.neu.edu.tr/uploaded-files/users-photo/".$borrower->{'cardnumber'}.".jpg");
+ }else{
+$picture = 
"http://cc.neu.edu.tr/stdpictures/".$borrower->{'cardnumber'}.".jpg";
+  $template->param(borrowerphoto => $picture);
+}
+}
+$renew=$query->param('renew');
+
+#
+# STEP 3 : ISSUING
+#
+#Try to issue
+
+if ($barcode) {
+
+       $barcode = cuecatbarcodedecode($barcode);
+#      my ($datedue, $invalidduedate) = fixdate($year, $month, $day);
+       if ($issueconfirmed) {
+                       issuebookr(\%env, $borrower, $barcode, $cancelreserve);
+my ($od,$issue,$fines,$resfine)=borrdata3(\%env,$borrowernumber);
+       $template->param(overduecount => $od,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines,
+                                                       resfine => $resfine);
+logaction($loggedinuser,"circulation","issue",$barcode,$borrowernumber) if 
(&logstatus);
+
+       } else {
+               my ($error, $question) = canbookbeissuedr(\%env, $borrower, 
$barcode, $year, $month, $day);
+               my $noerror=1;
+               my $noquestion = 1;
+               foreach my $impossible (keys %$error) {
+                       $template->param($impossible => $$error{$impossible},
+                                                       IMPOSSIBLE => 1);
+                       $noerror = 0;
+               }
+               foreach my $needsconfirmation (keys %$question) {
+                       $template->param($needsconfirmation => 
$$question{$needsconfirmation},
+                                                       NEEDSCONFIRMATION => 1);
+                       $noquestion = 0;
+               }
+               $template->param(day => $day,
+                                               month => $month,
+                                               year => $year);
+               if ($noerror && ($noquestion || $issueconfirmed)) {
+                       issuebookr(\%env, $borrower, $barcode);
+               
logaction($loggedinuser,"circulation","issue",$barcode,$borrowernumber) if 
(&logstatus);
+
+                       my 
($od,$issue,$fines,$resfine)=borrdata3(\%env,$borrowernumber);
+                               $template->param(overduecount => $od,
+                                                       issuecount => $issue,
+                                                       finetotal => $fines,
+                                                       resfine => $resfine);
+               }
+       }
+       }#barcode
+
+
+
+
+
+##################################################################################
+# BUILD HTML
+
+# make the issued books table.....
+my $todaysissues='';
+my $previssues='';
+my @realtodayissues;
+my @realprevissues;
+my $allowborrow;
+if ($borrower) {
+# get each issue of the borrower & separate them in todayissues & previous 
issues
+       my @todaysissues;
+       my @previousissues;
+       my $issueslist = getissuesr($borrower);
+       
+       # split in 2 arrays for today & previous
+       foreach my $it (keys %$issueslist) {
+               my $issuedate = $issueslist->{$it}->{'timestamp'};
+               $issuedate = substr($issuedate, 0, 10);
+#warn "$todaysdate,$issuedate";
+               if ($todaysdate == $issuedate) {
+                       push @todaysissues, $issueslist->{$it};
+               } else {
+                       push @previousissues, $issueslist->{$it};
+               }
+    }
+
+
+       my $od; # overdues
+       my $togglecolor;
+       # parses today & build Template array
+       foreach my $book (sort {$b->{'timestamp'} <=> $a->{'timestamp'}} 
@todaysissues){
+               my $dd = $book->{'duetime'};
+               my $overdue = $book->{'overdue'};
+#              $dd=format_date($dd);
+#              $datedue=~s/-//g;
+               if ($overdue) {
+                       $od = 1;
+               } else {
+                       $od=0;
+               }
+               $book->{'od'}=$od;
+               $book->{'dd'}=$dd;
+               
+               if ($togglecolor) {
+                       $togglecolor=0;
+               } else {
+                       $togglecolor=1;
+               }
+               $book->{'tcolor'}=$togglecolor;
+               if ($book->{'author'} eq ''){
+                       $book->{'author'}=' ';
+               }    
+               push @realtodayissues,$book;
+       }
+
+       # parses previous & build Template array
+    foreach my $book (sort {$a->{'date_due'} cmp $b->{'date_due'}} 
@previousissues){
+               my $dd = $book->{'duedate'};
+               my $overdue = $book->{'overdue'};
+#              $dd=format_date($dd);
+               my $pcolor = '';
+               my $od = '';
+#              $datedue=~s/-//g;
+               if ($overdue) {
+                       $od = 1;
+               } else {
+                       $od = 0;
+               }
+               
+               if ($togglecolor) {
+                       $togglecolor=0;
+               } else {
+                       $togglecolor=1;
+               }
+               $book->{'dd'}=$dd; 
+               $book->{'od'}=$od;
+               $book->{'tcolor'}=$togglecolor;
+               if ($book->{'author'} eq ''){
+                       $book->{'author'}=' ';
+               }    
+               push @realprevissues,$book
+       }
+}
+
+
+my @values;
+my %labels;
+my $CGIselectborrower;
+if ($borrowerslist) {
+       foreach (sort {$a->{'surname'}.$a->{'firstname'} cmp 
$b->{'surname'}.$b->{'firstname'}} @$borrowerslist){
+               push @values,$_->{'borrowernumber'};
+               $labels{$_->{'borrowernumber'}} ="$_->{'surname'}, 
$_->{'firstname'} ... ($_->{'cardnumber'} - $_->{'categorycode'}) ...  
$_->{'streetaddress'} ";
+       }
+       $CGIselectborrower=CGI::scrolling_list( -name     => 'borrnumber',
+                               -values   => address@hidden,
+                               -labels   => \%labels,
+                               -size     => 7,
+                               -multiple => 0 );
+}
+#title
+
+my ($patrontable, $flaginfotable) = patrontable($borrower);
+my $amountold=$borrower->{flags}->{'CHARGES'}->{'message'};
+my @temp=split(/\$/,$amountold);
+$amountold=$temp[1];
+$template->param( today=>format_date($todaysdate),
+               findborrower => $findborrower,
+               borrower => $borrower,
+               borrowernumber => $borrowernumber,
+               branch => $branch,
+               printer => $printer,
+               branchname => $branches->{$branch}->{'branchname'},
+               printername => $printers->{$printer}->{'printername'},
+               firstname => $borrower->{'firstname'},
+               surname => $borrower->{'surname'},
+               categorycode => 
getborrowercategory($borrower->{'categorycode'}),
+               streetaddress => $borrower->{'streetaddress'},
+               emailaddress => $borrower->{'emailaddress'},
+               borrowernotes => $borrower->{'borrowernotes'},
+               city => $borrower->{'city'},
+               phone => $borrower->{'phone'},
+               cardnumber => $borrower->{'cardnumber'},
+               amountold => $amountold,
+               barcode => $barcode,
+               renew=>$renew,
+               stickyduedate => $stickyduedate,
+               message => $message,
+               CGIselectborrower => $CGIselectborrower,
+               todayissues => address@hidden,
+               previssues => address@hidden,
+       );
+# set return date if stickyduedate
+if ($stickyduedate) {
+       my $t_year = "year".$year;
+       my $t_month = "month".$month;
+       my $t_day = "day".$day;
+       $template->param(
+               $t_year => 1,
+               $t_month => 1,
+               $t_day => 1,
+       );
+}
+
+
+if ($branchcookie) {
+    $cookie=[$cookie, $branchcookie, $printercookie];
+}
+
+output_html_with_http_headers $query, $cookie, $template->output;
+
+####################################################################
+# Extra subroutines,,,
+
+sub patrontable {
+    my ($borrower) = @_;
+    my $flags = $borrower->{'flags'};
+    my $flaginfotable='';
+    my $flaginfotext;
+    #my $flaginfotext='';
+    my $flag;
+    my $color='';
+    foreach $flag (sort keys %$flags) {
+#      my @itemswaiting='';
+       $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'
+                               );
+                       }
+               if ($flag eq 'LOST'){
+                       $template->param(
+                               lost => 'true'
+                       );
+                       }
+               if ($flag eq 'DBARRED'){
+                       $template->param(
+                               dbarred => 'true'
+                       );
+                       }
+               if ($flag eq 'CHARGES') {
+                       $template->param(
+                               charges => 'true',
+                               chargesmsg => $flags->{'CHARGES'}->{'message'}
+                                );
+               }
+       } else {
+                if ($flag eq 'CHARGES') {
+                       $template->param(
+                               charges => 'true',
+                               flagged => 1,
+                               chargesmsg => $flags->{'CHARGES'}->{'message'}
+                        );
+               }
+               if ($flag eq 'WAITING') {
+                       my $items=$flags->{$flag}->{'itemlist'};
+                       my @itemswaiting;
+                       foreach my $item (@$items) {
+                       my ($iteminformation) = 
C4::Circulation::Circ2::getiteminformation(\%env, $item->{'itemnumber'}, 0);
+                       $iteminformation->{'branchname'} = 
$branches->{$iteminformation->{'holdingbranch'}}->{'branchname'};
+                       push @itemswaiting, $iteminformation;
+                       }
+                       $template->param(
+                               flagged => 1,
+                               waiting => 'true',
+                               waitingmsg => $flags->{'WAITING'}->{'message'},
+                               itemswaiting => address@hidden,
+                                );
+               }
+               if ($flag eq 'ODUES') {
+                       $template->param(
+                               odues => 'true',
+                               flagged => 1,
+                               oduesmsg => $flags->{'ODUES'}->{'message'}
+                                );
+
+                       my $items=$flags->{$flag}->{'itemlist'};
+                       {
+                           my @itemswaiting;
+                       foreach my $item (@$items) {
+                               my ($iteminformation) = 
C4::Circulation::Circ2::getiteminformation(\%env, $item->{'itemnumber'}, 0);
+                               push @itemswaiting, $iteminformation;
+                       }
+                       }
+                       if ($query->param('module') ne 'returns'){
+                               $template->param( nonreturns => 'true' );
+                       }
+               }
+               if ($flag eq 'NOTES') {
+                       $template->param(
+                               notes => 'true',
+                               flagged => 1,
+                               notesmsg => $flags->{'NOTES'}->{'message'}
+                                );
+               }
+       }
+    }
+    return($patrontable, $flaginfotext);
+}
+
+sub cuecatbarcodedecode {
+    my ($barcode) = @_;
+    chomp($barcode);
+    my @fields = split(/\./,$barcode);
+    my @results = map(decode($_), @fields[1..$#fields]);
+    if ($#results == 2){
+       return $results[2];
+    } else {
+       return $barcode;
+    }
+}
+
+# Local Variables:
+# tab-width: 8
+# End:

Index: circ/resreturns.pl
===================================================================
RCS file: circ/resreturns.pl
diff -N circ/resreturns.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/resreturns.pl  10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,480 @@
+#!/usr/bin/perl
+# WARNING: This file contains mixed-sized tabs! (some 4-character, some 8)
+# WARNING: Currently, 4-character tabs seem to be dominant
+# WARNING: But there are still lots of 8-character tabs
+
+#written 11/3/2002 by Finlay
+#script to execute returns 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 CGI;
+use C4::Circulation::Circ3;
+use C4::Search;
+use C4::Output;
+use C4::Print;
+use C4::Reserves2;
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Log;
+use C4::Koha;
+use C4::Members;
+my $query = new CGI;
+
+#getting the template
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+    {
+        template_name   => "circ/resreturns.tmpl",
+        query           => $query,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { circulate => 1 },
+    }
+);
+
+#####################
+#Global vars
+my %env;
+my $headerbackgroundcolor = '#99cc33';
+my $linecolor1            = '#ffffcc';
+my $linecolor2            = 'white';
+
+my $branches = GetBranches();
+my $printers = getprinters( \%env );
+
+# my $branch  = getbranch( $query,  $branches );
+my $printer = getprinter( $query, $printers );
+
+#
+# Some code to handle the error if there is no branch or printer setting.....
+#
+my $branch=C4::Context->preference("defaultBranch");
+$env{'branchcode'} = $branch;
+$env{'printer'}    = $printer;
+$env{'queue'}      = $printer;
+
+# Set up the item stack ....
+my %returneditems;
+my %riduedate;
+my %riborrowernumber;
+my @inputloop;
+foreach ( $query->param ) {
+    (next) unless (/ri-(\d*)/);
+    my %input;
+    my $counter = $1;
+    (next) if ( $counter > 20 );
+    my $barcode        = $query->param("ri-$counter");
+    my $duedate        = $query->param("dd-$counter");
+    my $borrowernumber = $query->param("bn-$counter");
+    $counter++;
+
+    # decode cuecat
+    $barcode = cuecatbarcodedecode($barcode);
+
+    ######################
+    #Are these lines still useful ?
+    $returneditems{$counter}    = $barcode;
+    $riduedate{$counter}        = $duedate;
+    $riborrowernumber{$counter} = $borrowernumber;
+
+    #######################
+    $input{counter} = $counter;
+    $input{barcode} = $barcode;
+    $input{duedate} = $duedate;
+    $input{bornum}  = $borrowernumber;
+    push ( @inputloop, \%input );
+}
+
+############
+# Deal with the requests....
+if ( $query->param('resbarcode') ) {
+    my $item       = $query->param('itemnumber');
+    my $borrnum    = $query->param('borrowernumber');
+    my $resbarcode = $query->param('resbarcode');
+
+    # set to waiting....
+    my $iteminfo = C4::Circulation::Circ2::getiteminformation( \%env, $item );
+    my $tobranchcd = ReserveWaiting( $item, $borrnum );
+    my $branchname = $branches->{$tobranchcd}->{'branchname'};
+    my ($borr) = getpatroninformation( \%env, $borrnum, 0 );
+    my $borcnum = $borr->{'cardnumber'};
+    my $name    =
+      $borr->{'surname'} . " " . $borr->{'title'} . " " . $borr->{'firstname'};
+    my $slip = $query->param('resslip');
+    printslip( \%env, $slip ); #removed by paul
+
+    if ( $tobranchcd ne $branch ) {
+        $template->param(
+            itemtitle  => $iteminfo->{'title'},
+            iteminfo   => $iteminfo->{'author'},
+            branchname => $branchname,
+            name       => $name,
+            bornum     => $borrnum,
+            borcnum    => $borcnum,
+            diffbranch => 1
+        );
+    }
+}
+
+my $iteminformation;
+my $borrower;
+my $returned = 0;
+my $messages;
+
+my $barcode = $query->param('barcode');
+
+# actually return book and prepare item table.....
+if ($barcode) {
+
+    # decode cuecat
+    $barcode = cuecatbarcodedecode($barcode);
+    ( $returned, $messages, $iteminformation, $borrower ) =
+      returnbookr( $barcode, $branch );
+    if ($returned) {
+        $returneditems{0}    = $barcode;
+        $riborrowernumber{0} = $borrower->{'borrowernumber'};
+        $riduedate{0}        = $iteminformation->{'date_due'};
+        my %input;
+        $input{counter} = 0;
+        $input{first}   = 1;
+        $input{barcode} = $barcode;
+        $input{duedate} = $riduedate{0};
+        $input{bornum}  = $riborrowernumber{0};
+        push ( @inputloop, \%input );
+logaction($loggedinuser,"circulation","return",$barcode,$borrower->{'borrowernumber'})
 if (&logstatus);
+
+    }
+    elsif ( !$messages->{'BadBarcode'} ) {
+               if ( $messages->{'NotIssued'} ) {
+               my $dbh = C4::Context->dbh;
+               my $sth=$dbh->prepare("select date_due from issues where 
itemnumber=? and isnull(returndate)");
+               $sth->execute($iteminformation->{'itemnumber'});
+               my ($date_due) = $sth->fetchrow;
+               
+               $sth->finish;
+                       if ($date_due){ 
+                       print 
$query->redirect("/cgi-bin/koha/circ/returns.pl?barcode=$barcode");
+                       }
+               }
+        my %input;
+        $input{counter} = 0;
+        $input{first}   = 1;
+        $input{barcode} = $barcode;
+        $input{duedate} = 0;
+
+        $returneditems{0} = $barcode;
+        $riduedate{0}     = 0;
+        if ( $messages->{'wthdrawn'} ) {
+            $input{withdrawn} = 1;
+            $input{bornum}    = "Item Cancelled";
+            $riborrowernumber{0} = 'Item Cancelled';
+        }
+        else {
+            $input{bornum} = "&nbsp;";
+            $riborrowernumber{0} = '&nbsp;';
+        }
+        push ( @inputloop, \%input );
+    }
+    $template->param(
+        returned  => $returned,
+        itemtitle => $iteminformation->{'title'},
+
+        #                                                                      
itembc => $iteminformation->{'barcode'},
+        #                                                                      
itemdatedue => $iteminformation->{'date_due'},
+        itemauthor => $iteminformation->{'author'}
+    );
+}
+$template->param( inputloop => address@hidden );
+
+my $found    = 0;
+my $waiting  = 0;
+my $reserved = 0;
+
+if ( $messages->{'ResFound'} ) {
+    my $res        = $messages->{'ResFound'};
+    my $branchname = $branches->{ $res->{'branchcode'} }->{'branchname'};
+    my ($borr) = getpatroninformation( \%env, $res->{'borrowernumber'}, 0 );
+    my $name =
+      $borr->{'surname'} . " " . $borr->{'title'} . " " . $borr->{'firstname'};
+    my ($iteminfo) = getiteminformation( \%env, 0, $barcode );
+
+    if ( $res->{'ResFound'} eq "Waiting" ) {
+        $template->param(
+            found         => 1,
+            name          => $name,
+            borfirstname  => $borr->{'firstname'},
+            borsurname    => $borr->{'surname'},
+            bortitle      => $borr->{'title'},
+            borphone      => $borr->{'phone'},
+            borstraddress => $borr->{'streetaddress'},
+            borcity       => $borr->{'city'},
+            borzip        => $borr->{'zipcode'},
+            bornum        => $res->{'borrowernumber'},
+            borcnum       => $borr->{'cardnumber'},
+            branchname  => $branches->{ $res->{'branchcode'} }->{'branchname'},
+            waiting     => 1,
+            itemnumber  => $res->{'itemnumber'},
+            itemtitle   => $iteminfo->{'title'},
+            itemauthor  => $iteminfo->{'author'},
+            itembarcode => $iteminfo->{'barcode'},
+            itemtype    => $iteminfo->{'ctype'},
+            itembiblionumber => $iteminfo->{'biblionumber'}
+        );
+
+    }
+    if ( $res->{'ResFound'} eq "Reserved" ) {
+        my @da         = localtime( time() );
+        my $todaysdate =
+          sprintf( "%0.2d", ( $da[3] + 1 ) ) . "/"
+          . sprintf( "%0.2d", ( $da[4] + 1 ) ) . "/"
+          . ( $da[5] + 1900 );
+        $template->param(
+            found       => 1,
+            branchname  => $branches->{ $res->{'branchcode'} }->{'branchname'},
+            reserved    => 1,
+            today       => $todaysdate,
+            itemnumber  => $res->{'itemnumber'},
+            itemtitle   => $iteminfo->{'title'},
+            itemauthor  => $iteminfo->{'author'},
+            itembarcode => $iteminfo->{'barcode'},
+            itemtype    => $iteminfo->{'ctype'},
+            itembiblionumber => $iteminfo->{'biblionumber'},
+            borsurname       => $borr->{'surname'},
+            bortitle         => $borr->{'title'},
+            borfirstname     => $borr->{'firstname'},
+            bornum           => $res->{'borrowernumber'},
+            borcnum          => $borr->{'cardnumber'},
+            borphone         => $borr->{'phone'},
+            borstraddress    => $borr->{'streetaddress'},
+            borsub           => $borr->{'suburb'},
+            borcity          => $borr->{'city'},
+            borzip           => $borr->{'zipcode'},
+            boremail         => $borr->{'emailadress'},
+            barcode          => $barcode
+        );
+    }
+}
+
+# Error Messages
+my @errmsgloop;
+foreach my $code ( keys %$messages ) {
+
+   #     warn $code;
+    my %err;
+    my $exit_required_p = 0;
+    if ( $code eq 'BadBarcode' ) {
+        $err{badbarcode} = 1;
+        $err{msg}        = $messages->{'BadBarcode'};
+    }
+    elsif ( $code eq 'NotIssued' ) {
+        $err{notissued} = 1;
+        $err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
+    }
+    elsif ( $code eq 'WasLost' ) {
+        $err{waslost} = 1;
+    }
+    elsif ( $code eq 'ResFound' ) {
+        ;    # FIXME... anything to do here?
+    }
+    elsif ( $code eq 'WasReturned' ) {
+        ;    # FIXME... anything to do here?
+    }
+    elsif ( $code eq 'WasTransfered' ) {
+        ;    # FIXME... anything to do here?
+    }
+    elsif ( $code eq 'wthdrawn' ) {
+        $err{withdrawn} = 1;
+        $exit_required_p = 1;
+    }
+    elsif ( ( $code eq 'IsPermanent' ) && ( not $messages->{'ResFound'} ) ) {
+        if ( $messages->{'IsPermanent'} ne $branch ) {
+            $err{ispermanent} = 1;
+            $err{msg}         =
+              $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
+        }
+    }
+    else {
+        die "Unknown error code $code";    # XXX
+    }
+    if (%err) {
+        push ( @errmsgloop, \%err );
+    }
+    last if $exit_required_p;
+}
+$template->param( errmsgloop => address@hidden );
+
+# patrontable ....
+if ($borrower) {
+    my $flags = $borrower->{'flags'};
+    my $color = '';
+    my @flagloop;
+    my $flagset;
+    foreach my $flag ( sort keys %$flags ) {
+        my %flaginfo;
+        ( $color eq $linecolor1 ) 
+          ? ( $color = $linecolor2 )
+          : ( $color = $linecolor1 );
+        unless ($flagset) { $flagset = 1; }
+        $flaginfo{color}   = $color;
+        $flaginfo{redfont} = ( $flags->{$flag}->{'noissues'} );
+        $flaginfo{flag}    = $flag;
+        if ( $flag eq 'CHARGES' ) {
+            $flaginfo{msg}     = $flag;
+            $flaginfo{charges} = 1;
+           $flaginfo{bornum} = $borrower->{borrowernumber};
+        }
+        elsif ( $flag eq 'WAITING' ) {
+            $flaginfo{msg}     = $flag;
+            $flaginfo{waiting} = 1;
+            my @waitingitemloop;
+            my $items = $flags->{$flag}->{'itemlist'};
+            foreach my $item (@$items) {
+                my ($iteminformation) =
+                  getiteminformation( \%env, $item->{'itemnumber'}, 0 );
+                my %waitingitem;
+                $waitingitem{biblionum} = $iteminformation->{'biblionumber'};
+                $waitingitem{barcode}   = $iteminformation->{'barcode'};
+                $waitingitem{title}     = $iteminformation->{'title'};
+                $waitingitem{brname}    =
+                  $branches->{ $iteminformation->{'holdingbranch'} }->{
+                  'branchname'};
+                push ( @waitingitemloop, \%waitingitem );
+            }
+            $flaginfo{itemloop} = address@hidden;
+        }
+        elsif ( $flag eq 'ODUES' ) {
+            my $items = $flags->{$flag}->{'itemlist'};
+            my @itemloop;
+            foreach my $item ( sort { $a->{'date_due'} cmp $b->{'date_due'} }
+                @$items )
+            {
+                my ($iteminformation) =
+                  getiteminformation( \%env, $item->{'itemnumber'}, 0 );
+                my %overdueitem;
+                $overdueitem{duedate}   = $item->{'date_due'};
+                $overdueitem{biblionum} = $iteminformation->{'biblionumber'};
+                $overdueitem{barcode}   = $iteminformation->{'barcode'};
+                $overdueitem{title}     = $iteminformation->{'title'};
+                $overdueitem{brname}    =
+                  $branches->{ $iteminformation->{'holdingbranch'} }->{
+                  'branchname'};
+                push ( @itemloop, \%overdueitem );
+            }
+            $flaginfo{itemloop} = address@hidden;
+            $flaginfo{overdue}  = 1;
+        }
+        else {
+            $flaginfo{other} = 1;
+            $flaginfo{msg}   = $flags->{$flag}->{'message'};
+        }
+        push ( @flagloop, \%flaginfo );
+    }
+    $template->param(
+        flagset        => $flagset,
+        flagloop       => address@hidden,
+        ribornum       => $borrower->{'borrowernumber'},
+        riborcnum      => $borrower->{'cardnumber'},
+        riborsurname   => $borrower->{'surname'},
+        ribortitle     => $borrower->{'title'},
+        riborfirstname => $borrower->{'firstname'}
+    );
+}
+
+my $color = '';
+
+#set up so only the last 8 returned items display (make for faster loading 
pages)
+my $count = 0;
+my @riloop;
+foreach ( sort { $a <=> $b } keys %returneditems ) {
+    my %ri;
+    if ( $count < 8 ) {
+        ( $color eq $linecolor1 ) 
+          ? ( $color = $linecolor2 )
+          : ( $color = $linecolor1 );
+        $ri{color} = $color;
+        my $barcode = $returneditems{$_};
+        my $duedate = $riduedate{$_};
+        my $overduetext;
+        my $borrowerinfo;
+        if ($duedate) {
+            my @tempdate = split ( /-/, $duedate );
+           $ri{year}=$tempdate[0];
+           $ri{month}=$tempdate[1];
+           $ri{day}=$tempdate[2];
+            my $duedatenz  = "$tempdate[2]/$tempdate[1]/$tempdate[0]";
+            my @datearr    = localtime( time() );
+            my $todaysdate =
+              $datearr[5] . '-'
+              . sprintf( "%0.2d", ( $datearr[4] + 1 ) ) . '-'
+              . sprintf( "%0.2d", $datearr[3] );
+           $ri{duedate}=$duedate;
+            my ($borrower) =              getpatroninformation( \%env, 
$riborrowernumber{$_}, 0 );
+            $ri{bornum}       = $borrower->{'borrowernumber'};
+            $ri{borcnum}      = $borrower->{'cardnumber'};
+            $ri{borfirstname} = $borrower->{'firstname'};
+            $ri{borsurname}   = $borrower->{'surname'};
+            $ri{bortitle}     = $borrower->{'title'};
+        }
+        else {
+            $ri{bornum} = $riborrowernumber{$_};
+        }
+#        my %ri;
+        my ($iteminformation) =C4::Circulation::Circ2::getiteminformation( 
\%env, 0, $barcode );
+        $ri{color}            = $color;
+        $ri{itembiblionumber} = $iteminformation->{'biblionumber'};
+        $ri{itemtitle}        = $iteminformation->{'title'};
+        $ri{itemauthor}       = $iteminformation->{'author'};
+        $ri{itemtype}         = $iteminformation->{'ctype'};
+        $ri{barcode}          = $barcode;
+    }
+    else {
+        last;
+    }
+    $count++;
+    push ( @riloop, \%ri );
+}
+$template->param( riloop => address@hidden );
+
+$template->param(
+    genbrname  => $branches->{$branch}->{'branchname'},
+    genprname  => $printers->{$printer}->{'printername'},
+    branch     => $branch,
+    printer    => $printer,
+    errmsgloop => address@hidden
+);
+
+# actually print the page!
+output_html_with_http_headers $query, $cookie, $template->output;
+
+sub cuecatbarcodedecode {
+    my ($barcode) = @_;
+    chomp($barcode);
+    my @fields = split ( /\./, $barcode );
+    my @results = map( decode($_), @fields[ 1 .. $#fields ] );
+    if ( $#results == 2 ) {
+        return $results[2];
+    }
+    else {
+        return $barcode;
+    }
+}
+
+# Local Variables:
+# tab-width: 4
+# End:

Index: circ/returns.pl
===================================================================
RCS file: circ/returns.pl
diff -N circ/returns.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/returns.pl     10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,474 @@
+#!/usr/bin/perl
+# WARNING: This file contains mixed-sized tabs! (some 4-character, some 8)
+# WARNING: Currently, 4-character tabs seem to be dominant
+# WARNING: But there are still lots of 8-character tabs
+
+#written 11/3/2002 by Finlay
+#script to execute returns 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 CGI;
+use C4::Circulation::Circ2;
+use C4::Search;
+use C4::Output;
+use C4::Print;
+use C4::Reserves2;
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Koha;
+use C4::Members;
+use C4::Date;
+use C4::Log;
+my $query = new CGI;
+
+#getting the template
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+    {
+        template_name   => "circ/returns.tmpl",
+        query           => $query,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { circulate => 1 },
+    }
+);
+
+#####################
+#Global vars
+my %env;
+my $headerbackgroundcolor = '#99cc33';
+my $linecolor1            = '#ffffcc';
+my $linecolor2            = 'white';
+my $todaysdate =get_today();
+my $branches = GetBranches();
+my $printers = getprinters( \%env );
+
+# my $branch  = getbranch( $query,  $branches );
+my $printer = getprinter( $query, $printers );
+
+#
+# Some code to handle the error if there is no branch or printer setting.....
+#
+my $branch=C4::Context->preference("defaultBranch");
+$env{'branchcode'} = $branch;
+$env{'printer'}    = $printer;
+$env{'queue'}      = $printer;
+
+# Set up the item stack ....
+my %returneditems;
+my %riduedate;
+my %riborrowernumber;
+my @inputloop;
+foreach ( $query->param ) {
+    (next) unless (/ri-(\d*)/);
+    my %input;
+    my $counter = $1;
+    (next) if ( $counter > 20 );
+    my $barcode        = $query->param("ri-$counter");
+    my $duedate        = $query->param("dd-$counter");
+    my $borrowernumber = $query->param("bn-$counter");
+    $counter++;
+
+    # decode cuecat
+    $barcode = cuecatbarcodedecode($barcode);
+
+    ######################
+    #Are these lines still useful ?
+    $returneditems{$counter}    = $barcode;
+    $riduedate{$counter}        = $duedate;
+    $riborrowernumber{$counter} = $borrowernumber;
+
+    #######################
+    $input{counter} = $counter;
+    $input{barcode} = $barcode;
+    $input{duedate} = $duedate;
+    $input{bornum}  = $borrowernumber;
+    push ( @inputloop, \%input );
+}
+
+############
+my $item;
+# Deal with the requests....
+if ( $query->param('resbarcode') ) {
+    $item       = $query->param('itemnumber');
+    my $borrnum    = $query->param('borrowernumber');
+    my $resbarcode = $query->param('resbarcode');
+
+    # set to waiting....
+    my $iteminfo = getiteminformation( \%env, $item );
+    my $tobranchcd = ReserveWaiting( $item, $borrnum );
+    my $branchname = $branches->{$tobranchcd}->{'branchname'};
+    my ($borr) = getpatroninformation( \%env, $borrnum, 0 );
+    my $borcnum = $borr->{'cardnumber'};
+    my $name    =
+      $borr->{'surname'} . " " . $borr->{'title'} . " " . $borr->{'firstname'};
+    my $slip = $query->param('resslip');
+    printslip( \%env, $slip ); #removed by paul
+
+    if ( $tobranchcd ne $branch ) {
+        $template->param(
+            itemtitle  => $iteminfo->{'title'},
+            iteminfo   => $iteminfo->{'author'},
+            branchname => $branchname,
+            name       => $name,
+            bornum     => $borrnum,
+            borcnum    => $borcnum,
+            diffbranch => 1
+        );
+    }
+}
+
+my $iteminformation;
+my $borrower;
+my $returned = 0;
+my $messages;
+my $barcode = $query->param('barcode');
+
+# actually return book and prepare item table.....
+if ($barcode) {
+
+    # decode cuecat
+    $barcode = cuecatbarcodedecode($barcode);
+    ( $returned, $messages, $iteminformation, $borrower ) =      returnbook( 
$barcode, $branch );
+    if ($returned) {
+        $returneditems{0}    = $barcode;
+        $riborrowernumber{0} = $borrower->{'borrowernumber'};
+        $riduedate{0}        = $iteminformation->{'date_due'};
+        my %input;
+        $input{counter} = 0;
+        $input{first}   = 1;
+        $input{barcode} = $barcode;
+        $input{duedate} = $riduedate{0};
+        $input{bornum}  = $riborrowernumber{0};
+        push ( @inputloop, \%input );
+logaction($loggedinuser,"circulation","return",$barcode,$borrower->{'borrowernumber'})
 if (&logstatus);
+
+    }
+    elsif ( !$messages->{'BadBarcode'} ) {
+               if ( $messages->{'NotIssued'} ) {
+               my $dbh = C4::Context->dbh;
+               my $sth=$dbh->prepare("select duetime from reserveissue where 
itemnumber=? and isnull(rettime)");
+               $sth->execute($iteminformation->{'itemnumber'});
+               my ($date_due) = $sth->fetchrow;
+               
+               $sth->finish;
+                       if ($date_due){
+#                              $messages->{'ReserveIssued'} =$barcode;         
        
+                       print 
$query->redirect("/cgi-bin/koha/circ/resreturns.pl?barcode=$barcode");
+                       }
+               }
+        my %input;
+        $input{counter} = 0;
+        $input{first}   = 1;
+        $input{barcode} = $barcode;
+        $input{duedate} = 0;
+
+        $returneditems{0} = $barcode;
+        $riduedate{0}     = 0;
+        if ( $messages->{'wthdrawn'} ) {
+            $input{withdrawn} = 1;
+            $input{bornum}    = "Item Cancelled";
+            $riborrowernumber{0} = 'Item Cancelled';
+        }
+        else {
+            $input{bornum} = "&nbsp;";
+            $riborrowernumber{0} = '&nbsp;';
+        }
+        push ( @inputloop, \%input );
+    }
+    $template->param(
+        returned  => $returned,
+        itemtitle => $iteminformation->{'title'},
+
+        #                                                                      
itembc => $iteminformation->{'barcode'},
+        #                                                                      
itemdatedue => $iteminformation->{'datedue'},
+        itemauthor => $iteminformation->{'author'}
+    );
+}
+$template->param( inputloop => address@hidden );
+
+my $found    = 0;
+my $waiting  = 0;
+my $reserved = 0;
+
+if ( $messages->{'ResFound'} ) {
+    my $res        = $messages->{'ResFound'};
+    my $branchname = $branches->{ $res->{'branchcode'} }->{'branchname'};
+    my ($borr) = getpatroninformation( \%env, $res->{'borrowernumber'}, 0 );
+    my $name =
+      $borr->{'surname'} . " " . $borr->{'title'} . " " . $borr->{'firstname'};
+    my ($iteminfo) = getiteminformation( \%env, 0, $barcode );
+
+    if ( $res->{'ResFound'} eq "Waiting" ) {
+        $template->param(
+            found         => 1,
+            name          => $name,
+            borfirstname  => $borr->{'firstname'},
+            borsurname    => $borr->{'surname'},
+            bortitle      => $borr->{'title'},
+            borphone      => $borr->{'phone'},
+            borstraddress => $borr->{'streetaddress'},
+            borcity       => $borr->{'city'},
+            borzip        => $borr->{'zipcode'},
+            bornum        => $res->{'borrowernumber'},
+            borcnum       => $borr->{'cardnumber'},
+            branchname  => $branches->{ $res->{'branchcode'} }->{'branchname'},
+            waiting     => 1,
+            itemnumber  => $res->{'itemnumber'},
+            itemtitle   => $iteminfo->{'title'},
+            itemauthor  => $iteminfo->{'author'},
+            itembarcode => $iteminfo->{'barcode'},
+            itemtype    => $iteminfo->{'ctype'},
+            itembiblionumber => $iteminfo->{'biblionumber'}
+        );
+
+    }
+    if ( $res->{'ResFound'} eq "Reserved" ) {
+      
+        $template->param(
+            found       => 1,
+            branchname  => $branches->{ $res->{'branchcode'} }->{'branchname'},
+            reserved    => 1,
+            today       =>format_date( $todaysdate),
+            itemnumber  => $res->{'itemnumber'},
+            itemtitle   => $iteminfo->{'title'},
+            itemauthor  => $iteminfo->{'author'},
+            itembarcode => $iteminfo->{'barcode'},
+            itemtype    => $iteminfo->{'ctype'},
+            itembiblionumber => $iteminfo->{'biblionumber'},
+            borsurname       => $borr->{'surname'},
+            bortitle         => $borr->{'title'},
+            borfirstname     => $borr->{'firstname'},
+            bornum           => $res->{'borrowernumber'},
+            borcnum          => $borr->{'cardnumber'},
+            borphone         => $borr->{'phone'},
+            borstraddress    => $borr->{'streetaddress'},
+            borsub           => $borr->{'suburb'},
+            borcity          => $borr->{'city'},
+            borzip           => $borr->{'zipcode'},
+            boremail         => $borr->{'emailadress'},
+            barcode          => $barcode
+        );
+    }
+}
+
+# Error Messages
+my @errmsgloop;
+foreach my $code ( keys %$messages ) {
+
+    #    warn $code;
+    my %err;
+    my $exit_required_p = 0;
+    if ( $code eq 'BadBarcode' ) {
+        $err{badbarcode} = 1;
+        $err{msg}        = $messages->{'BadBarcode'};
+    }
+    elsif ( $code eq 'NotIssued' ) {
+        $err{notissued} = 1;
+        $err{msg} = $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
+    }
+    elsif ( $code eq 'WasLost' ) {
+        $err{waslost} = 1;
+    }
+    elsif ( $code eq 'ResFound' ) {
+        ;    # FIXME... anything to do here?
+    }
+    elsif ( $code eq 'WasReturned' ) {
+        ;    # FIXME... anything to do here?
+    }
+    elsif ( $code eq 'WasTransfered' ) {
+        ;    # FIXME... anything to do here?
+    }
+       elsif ( $code eq 'ReserveIssued' ) {
+        $err{reserveissued} = 1;
+    }
+    elsif ( $code eq 'wthdrawn' ) {
+        $err{withdrawn} = 1;
+        $exit_required_p = 1;
+    }
+    elsif ( ( $code eq 'IsPermanent' ) && ( not $messages->{'ResFound'} ) ) {
+        if ( $messages->{'IsPermanent'} ne $branch ) {
+            $err{ispermanent} = 1;
+            $err{msg}         =
+              $branches->{ $messages->{'IsPermanent'} }->{'branchname'};
+        }
+    }
+    else {
+        die "Unknown error code $code";    # XXX
+    }
+    if (%err) {
+        push ( @errmsgloop, \%err );
+    }
+    last if $exit_required_p;
+}
+$template->param( errmsgloop => address@hidden );
+
+# patrontable ....
+if ($borrower) {
+    my $flags = $borrower->{'flags'};
+    my $color = '';
+    my @flagloop;
+    my $flagset;
+    foreach my $flag ( sort keys %$flags ) {
+        my %flaginfo;
+        ( $color eq $linecolor1 ) 
+          ? ( $color = $linecolor2 )
+          : ( $color = $linecolor1 );
+        unless ($flagset) { $flagset = 1; }
+        $flaginfo{color}   = $color;
+        $flaginfo{redfont} = ( $flags->{$flag}->{'noissues'} );
+        $flaginfo{flag}    = $flag;
+        if ( $flag eq 'CHARGES' ) {
+            $flaginfo{msg}     = $flag;
+            $flaginfo{charges} = 1;
+           $flaginfo{bornum} = $borrower->{borrowernumber};
+        }
+        elsif ( $flag eq 'WAITING' ) {
+            $flaginfo{msg}     = $flag;
+            $flaginfo{waiting} = 1;
+            my @waitingitemloop;
+            my $items = $flags->{$flag}->{'itemlist'};
+            foreach my $item (@$items) {
+                my ($iteminformation) =
+                  getiteminformation( \%env, $item->{'itemnumber'}, 0 );
+                my %waitingitem;
+                $waitingitem{biblionum} = $iteminformation->{'biblionumber'};
+                $waitingitem{barcode}   = $iteminformation->{'barcode'};
+                $waitingitem{title}     = $iteminformation->{'title'};
+                $waitingitem{brname}    =
+                  $branches->{ $iteminformation->{'holdingbranch'} }->{
+                  'branchname'};
+                push ( @waitingitemloop, \%waitingitem );
+            }
+            $flaginfo{itemloop} = address@hidden;
+        }
+        elsif ( $flag eq 'ODUES' ) {
+            my $items = $flags->{$flag}->{'itemlist'};
+            my @itemloop;
+            foreach my $item ( sort { $a->{'date_due'} cmp $b->{'date_due'} }
+                @$items )
+            {
+                my ($iteminformation) =
+                  getiteminformation( \%env, $item->{'itemnumber'}, 0 );
+                my %overdueitem;
+                $overdueitem{duedate}   = $item->{'date_due'};
+                $overdueitem{biblionum} = $iteminformation->{'biblionumber'};
+                $overdueitem{barcode}   = $iteminformation->{'barcode'};
+                $overdueitem{title}     = $iteminformation->{'title'};
+                $overdueitem{brname}    =
+                  $branches->{ $iteminformation->{'holdingbranch'} }->{
+                  'branchname'};
+                push ( @itemloop, \%overdueitem );
+            }
+            $flaginfo{itemloop} = address@hidden;
+            $flaginfo{overdue}  = 1;
+        }
+        else {
+            $flaginfo{other} = 1;
+            $flaginfo{msg}   = $flags->{$flag}->{'message'};
+        }
+        push ( @flagloop, \%flaginfo );
+    }
+    $template->param(
+        flagset        => $flagset,
+        flagloop       => address@hidden,
+        ribornum       => $borrower->{'borrowernumber'},
+        riborcnum      => $borrower->{'cardnumber'},
+        riborsurname   => $borrower->{'surname'},
+        ribortitle     => $borrower->{'title'},
+        riborfirstname => $borrower->{'firstname'}
+    );
+}
+
+my $color = '';
+
+#set up so only the last 8 returned items display (make for faster loading 
pages)
+my $count = 0;
+my @riloop;
+foreach ( sort { $a <=> $b } keys %returneditems ) {
+    my %ri;
+    if ( $count < 8 ) {
+        ( $color eq $linecolor1 ) 
+          ? ( $color = $linecolor2 )
+          : ( $color = $linecolor1 );
+        $ri{color} = $color;
+        my $barcode = $returneditems{$_};
+        my $duedate = $riduedate{$_};
+        my $overduetext;
+        my $borrowerinfo;
+        if ($duedate) {
+           
+           
+           $ri{duedate}=format_date($duedate);
+            my ($borrower) =
+              getpatroninformation( \%env, $riborrowernumber{$_}, 0 );
+            $ri{bornum}       = $borrower->{'borrowernumber'};
+            $ri{borcnum}      = $borrower->{'cardnumber'};
+            $ri{borfirstname} = $borrower->{'firstname'};
+            $ri{borsurname}   = $borrower->{'surname'};
+            $ri{bortitle}     = $borrower->{'title'};
+        }
+        else {
+            $ri{bornum} = $riborrowernumber{$_};
+        }
+#        my %ri;
+        my ($iteminformation) = getiteminformation( \%env, 0, $barcode );
+        $ri{color}            = $color;
+        $ri{itembiblionumber} = $iteminformation->{'biblionumber'};
+        $ri{itemtitle}        = $iteminformation->{'title'};
+        $ri{itemauthor}       = $iteminformation->{'author'};
+        $ri{itemtype}         = $iteminformation->{'ctype'};
+        $ri{barcode}          = $barcode;
+    }
+    else {
+        last;
+    }
+    $count++;
+    push ( @riloop, \%ri );
+}
+$template->param( riloop => address@hidden );
+
+$template->param(
+    genbrname  => $branches->{$branch}->{'branchname'},
+    genprname  => $printers->{$printer}->{'printername'},
+    branch     => $branch,
+    printer    => $printer,
+    errmsgloop => address@hidden
+);
+
+# actually print the page!
+output_html_with_http_headers $query, $cookie, $template->output;
+
+sub cuecatbarcodedecode {
+    my ($barcode) = @_;
+$barcode=~s/ //g;
+    chomp($barcode);
+    my @fields = split ( /\./, $barcode );
+    my @results = map( decode($_), @fields[ 1 .. $#fields ] );
+    if ( $#results == 2 ) {
+        return $results[2];
+    }
+    else {
+        return $barcode;
+    }
+}
+
+# Local Variables:
+# tab-width: 4
+# End:

Index: circ/selectbranchprinter.pl
===================================================================
RCS file: circ/selectbranchprinter.pl
diff -N circ/selectbranchprinter.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/selectbranchprinter.pl 10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+# WARNING: This file uses 4-character tabs!
+
+
+# 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 CGI;
+use C4::Circulation::Circ2;
+use C4::Output;
+use C4::Auth;
+use C4::Print;
+use C4::Interface::CGI::Output;
+use C4::Koha;
+
+
+# this is a reorganisation of circulationold.pl
+# dividing it up into three scripts......
+# this will be the first one that chooses branch and printer settings....
+
+#general design stuff...
+my $headerbackgroundcolor='#99cc33';
+my $circbackgroundcolor='#ffffcc';
+my $circbackgroundcolor='white';
+my $linecolor1='#ffffcc';
+my $linecolor2='white';
+my $backgroundimage="/images/background-mem.gif";
+
+# try to get the branch and printer settings from the http....
+my %env;
+my $query=new CGI;
+my $branches=GetBranches('IS');
+my $printers=getprinters(\%env);
+my $branch=$query->param('branch');
+my $printer=$query->param('printer');
+
+($branch) || ($branch=$query->cookie('branch'));
+($printer) || ($printer=$query->cookie('printer'));
+
+($branches->{$branch}) || ($branch=(keys %$branches)[0]);
+($printers->{$printer}) || ($printer=(keys %$printers)[0]);
+
+
+# is you force a selection....
+my $oldbranch = $branch;
+my $oldprinter = $printer;
+
+#$branch='';
+#$printer='';
+
+
+$env{'branchcode'}=$branch;
+$env{'printer'}=$printer;
+$env{'queue'}=$printer;
+
+# set up select options....
+my $branchcount=0;
+my $printercount=0;
+my @branchloop;
+foreach my $br (keys %$branches) {
+    next unless $br =~ /\S/;
+    #(next) unless ($branches->{$_}->{'IS'}); # FIXME disabled to fix bug 202
+    $branchcount++;
+       my %branch;
+       $branch{selected}=($br eq $oldbranch);
+       $branch{name}=$branches->{$br}->{'branchname'};
+       $branch{value}=$br;
+    push(@branchloop,\%branch);
+}
+my @printerloop;
+foreach (keys %$printers) {
+    (next) unless ($_);
+    $printercount++;
+       my %printer;
+       $printer{selected}=($_ eq $oldprinter);
+       $printer{name}=$printers->{$_}->{'printername'};
+       $printer{value}=$_;
+    push(@printerloop,\%printer);
+}
+
+# if there is only one....
+my $printername;
+my $branchname;
+
+my $oneprinter=($printercount==1) ;
+my $onebranch=($branchcount==1) ;
+if ($printercount==1) {
+    my ($tmpprinter)=keys %$printers;
+       $printername=$printers->{$tmpprinter}->{printername};
+}
+if ($branchcount==1) {
+    my ($tmpbranch)=keys %$branches;
+       $branchname=$branches->{$tmpbranch}->{branchname};
+}
+
+
+#############################################################################################
+# Start writing page....
+# set header with cookie....
+
+my ($template, $borrowernumber, $cookie)
+    = get_template_and_user({template_name => "circ/selectbranchprinter.tmpl",
+                                                       query => $query,
+                            type => "intranet",
+                            authnotrequired => 0,
+                            flagsrequired => {circulate => 1},
+                         });
+$template->param(headerbackgroundcolor => $headerbackgroundcolor,
+                                                       backgroundimage => 
$backgroundimage,
+                                                       oneprinter => 
$oneprinter,
+                                                       onebranch => $onebranch,
+                                                       printername => 
$printername,
+                                                       branchname => 
$branchname,
+                                                       printerloop => 
address@hidden,
+                                                       branchloop => 
address@hidden,
+                                                       intranetcolorstylesheet 
=> C4::Context->preference("intranetcolorstylesheet"),
+               intranetstylesheet => 
C4::Context->preference("intranetstylesheet"),
+               IntranetNav => C4::Context->preference("IntranetNav"),
+                                                       );
+
+my $branchcookie=$query->cookie(-name => 'branch', -value => "$branch", 
-expires => '+1y');
+my $printercookie=$query->cookie(-name => 'printer', -value => "$printer", 
-expires => '+1y');
+
+my $cookies=[$cookie,$branchcookie, $printercookie]; 
+output_html_with_http_headers $query, $cookies, $template->output;
+
+
+# Local Variables:
+# tab-width: 4
+# End:

Index: circ/waitingreservestransfers.pl
===================================================================
RCS file: circ/waitingreservestransfers.pl
diff -N circ/waitingreservestransfers.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ circ/waitingreservestransfers.pl    10 Mar 2007 11:54:16 -0000      1.1.2.1
@@ -0,0 +1,124 @@
+#!/usr/bin/perl
+
+# $Id: waitingreservestransfers.pl,v 1.1.2.1 2007/03/10 11:54:16 tgarip1957 
Exp $
+
+# 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 C4::Context;
+use C4::Interface::CGI::Output;
+use CGI;
+use C4::Auth;
+use C4::Date;
+use C4::Circulation::Circ2;
+use C4::Koha;
+use C4::Biblio;
+
+my $input = new CGI;
+
+my $theme = $input->param('theme'); # only used if allowthemeoverride is set
+
+my ($template, $loggedinuser, $cookie)
+      = get_template_and_user({template_name => 
"circ/waitingreservestransfers.tmpl",
+                                        query => $input,
+                                        type => "intranet",
+                                        authnotrequired => 0,
+                                        flagsrequired => {borrowers => 1},
+                                        debug => 1,
+                                        });
+
+
+# set the userenv branch
+my $default = C4::Context->userenv->{'branch'};
+
+
+my $todaysdate =get_today();
+
+my $item=$input->param('itemnumber');
+my $fbr=$input->param('fbr');
+my $tbr=$input->param('tbr');
+# If we have a return of the form dotransfer, we launch the subroutine 
dotransfer
+if ($item){
+       C4::Circulation::Circ2::dotransfer($item,$fbr,$tbr);
+}
+
+# get the all the branches for reference
+my $branches = GetBranches();
+my @branchesloop;
+foreach my $br (keys %$branches) {
+       my @reservloop;
+       my %branchloop;
+       $branchloop{'branchname'} = $branches->{$br}->{'branchname'};
+       $branchloop{'branchcode'} = $branches->{$br}->{'branchcode'};
+       my @getreserves = 
GetReservesToBranch($branches->{$br}->{'branchcode'},$default);
+               if (@getreserves){
+               foreach my $num (@getreserves) {
+                       my %getreserv;
+                       my %env;
+                       my $gettitle = 
getiteminformation(\%env,$num->{'itemnumber'});
+                       my $itemtypeinfo = 
getitemtypeinfo($gettitle->{'itemtype'});
+                       if ($gettitle->{'holdingbranch'} eq $default){
+                               my $getborrower = getpatroninformation 
(\%env,$num->{'borrowernumber'});
+                               $getreserv{'reservedate'} = 
format_date($num->{'reservedate'});
+                               my 
$calcDate=DATE_Add($num->{'reservedate'},C4::Context->preference('TransfersMaxDaysWarning'));
+                               my $warning=DATE_Diff($todaysdate,$calcDate);
+                               if ($warning>0){
+                                       $getreserv{'messcompa'} = 1;
+                               }
+                               $getreserv{'title'} = $gettitle->{'title'};
+                               $getreserv{'biblionumber'} = 
$gettitle->{'biblionumber'};
+                               $getreserv{'itemnumber'} = 
$gettitle->{'itemnumber'};
+                               $getreserv{'barcode'} = $gettitle->{'barcode'};
+                               $getreserv{'itemtype'} = 
$itemtypeinfo->{'description'};
+                               $getreserv{'holdingbranch'} = 
$gettitle->{'holdingbranch'};
+                               $getreserv{'itemcallnumber'} = 
$gettitle->{'itemcallnumber'};
+                               $getreserv{'borrowernum'} = 
$getborrower->{'borrowernumber'};
+                               $getreserv{'borrowername'} = 
$getborrower->{'surname'};
+                               $getreserv{'borrowerfirstname'} =  
$getborrower->{'firstname'} ;
+                               if ($getborrower->{'emailaddress'}){
+                                       $getreserv{'borrowermail'} =  
$getborrower->{'emailaddress'} ;
+                               }
+                               $getreserv{'borrowerphone'} = 
$getborrower->{'phone'};
+                               push(@reservloop, \%getreserv);
+                       }
+               }
+#              If we have a return of reservloop we put it in the branchloop 
sequence
+               if (@reservloop){
+               $branchloop{'reserv'} = address@hidden ;
+               }
+#              else, we unset the value of the branchcode .
+               else{
+               $branchloop{'branchcode'} = 0;
+               }
+       }
+       else {
+#      if we don't have a retrun from reservestobranch we unset branchname and 
branchcode
+       $branchloop{'branchname'} = 0;
+       $branchloop{'branchcode'} = 0;
+       }
+       push(@branchesloop, \%branchloop);
+}
+
+       $template->param( branchesloop  => address@hidden,
+                       show_date       => format_date($todaysdate)     
+                        );
+       
+       print "Content-Type: text/html\n\n", $template->output;
+
+
+

Index: get-imdb.php
===================================================================
RCS file: get-imdb.php
diff -N get-imdb.php
--- get-imdb.php        10 Mar 2007 01:06:21 -0000      1.1.2.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,98 +0,0 @@
-<?php
-/*
-* Example using "file_get_contents"
-* note: allow_url_fopen = On in your php.ini should be On
-* safemode off
-*/
-
-$website=$_GET['website'];
-$oldbiblionumber=$_GET['oldbiblionumber'];
-$websitesummary=$website."/plotsummary";
-$imdb_website_summary = file_get_contents("${websitesummary}"); //movie Summary
-
-$imdb_website = file_get_contents("${website}"); //movie PI
-
-$filename=substr($website,27,9).".xml";
-//include the parser-class
-require("classes/class.imdb_parser.php");
-
-//init the class
-$IMDB_Parser = new IMDB_Parser;
-
-// output movie-picture (html)
-print "<p>".$IMDB_Parser->getMoviePictureHtml($imdb_website)."</p>";
-
-// output movie-languages (array)
- $xml='<?xml version="1.0" encoding="UTF-8"?>';
-$xml=$xml.'<record>';
-$xml.="<leader>     naa a22     7ar4500</leader>";
-foreach($IMDB_Parser->getMovieLanguage($imdb_website) as $value)
-{
-   $xml=$xml.'<datafield tag="40"><subfield 
code="a">'.$value.'</subfield></datafield>';
-}
-// output movie-title 
-$title=$IMDB_Parser->getMovieTitle($imdb_website);
-$date=substr($title,strlen($title)-5,4);
-$title= '<datafield tag="245"><subfield 
code="a">'.substr($title,0,strlen($title)-6).'</subfield>';
-$xml=$xml.$title;
-// output movie-directed by
- $xml=$xml.'<subfield 
code="c">'.$IMDB_Parser->getMovieDirectedBy($imdb_website).'</subfield><subfield
 code="h">DVD</subfield></datafield>';
-// output movie-country (array)
-
-foreach($IMDB_Parser->getMovieCountry($imdb_website) as $value)
-{
-   $xml=$xml.'<datafield tag="260"><subfield 
code="a">'.$value.'</subfield><subfield 
code="c">'.$date.'</subfield></datafield>';
-}
-
-
-// output movie-tagline
-$xml=$xml.'<datafield tag="500"> <subfield 
code="a">'.$IMDB_Parser->getMovieTagline($imdb_website).'</subfield></datafield>';
-
-// output movie-plot
-$xml=$xml.'<datafield tag="520"> <subfield 
code="a">'.$IMDB_Parser->getMoviePlot($imdb_website).'</subfield></datafield>';
-// output movie-summary
-foreach($IMDB_Parser->getMovieSummary($imdb_website_summary) as $value)
-{
-$xml=$xml.'<datafield tag="520"> <subfield 
code="a">'.$value.'</subfield></datafield>';
-}
-// output movie-genres (array)
-
-foreach($IMDB_Parser->getMovieGenres($imdb_website) as $value)
-{
-   $xml=$xml.'<datafield tag="650"> <subfield 
code="a">'.$value.'</subfield></datafield>';
-}
-
-// output movie-actors (array)
-foreach($IMDB_Parser->getMovieActors($imdb_website) as $value)
-{
- $xml=$xml.'<datafield tag="700"><subfield 
code="a">'.$value.'</subfield></datafield>';
-}
-
-
-
-
-// output movie-color
-//print "<br />Color: ".$IMDB_Parser->getMovieColor($imdb_website);
-
-$xml=$xml.'<datafield tag="856"><subfield 
code="u">'.$website.'</subfield></datafield>';
-
-// output movie-picture path
- $xml=$xml.'<datafield tag="956"> <subfield 
code="u">'.$IMDB_Parser->getMoviePicture($imdb_website).'</subfield></datafield>';
-$xml=$xml.'</record>';
-
-$dvd=fopen('c:/webservices/koha/intranet/htdocs/uploaded-files/tmp-pdf/'.$filename,'w');
-fwrite($dvd,$xml);
-fclose($dvd);
-
-
-print  "<a href=\"javascript:Import()\">Get: $title</a>
-<script language=\"JavaScript\" type=\"text/javascript\">
-       function Import() {
-               
opener.document.location=\"cataloguing/addbiblio.pl?z3950=1&DVDid=$filename&oldbiblionumber=$oldbiblionumber\";
-               self.close();
-               return false;
-       }
-</script>"
-;
-//header("Location: /cgi-bin/koha/mainpage.pl?xml=$xml");
-?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]