X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=moremember.pl;h=50ddd2476306781c65ddf8a6d4ec25fdac50249d;hb=26543b430e1df3866f50e79fbfb724ec69a26791;hp=ba2b691a0ec8a8ad8b27444d1dae4d7b45fc564e;hpb=1e67687742e36bbb90746ecdd78a0c6a63aad890;p=koha.git diff --git a/moremember.pl b/moremember.pl index ba2b691a0e..50ddd24763 100755 --- a/moremember.pl +++ b/moremember.pl @@ -1,10 +1,12 @@ #!/usr/bin/perl +# $Id$ + # script to do a borrower enquiry/bring up borrower details etc # Displays all the details about a borrower # written 20/12/99 by chris@katipo.co.nz # last modified 21/1/2000 by chris@katipo.co.nz -# modified 31/1/2001 by chris@katipo.co.nz +# modified 31/1/2001 by chris@katipo.co.nz # to not allow items on request to be renewed # # needs html removed and to use the C4::Output more, but its tricky @@ -29,52 +31,49 @@ # Suite 330, Boston, MA 02111-1307 USA use strict; +use C4::Auth; +use C4::Context; use C4::Output; +use C4::Interface::CGI::Output; +use C4::Interface::CGI::Template; use CGI; use C4::Search; use Date::Manip; +use C4::Date; use C4::Reserves2; use C4::Circulation::Renewals2; use C4::Circulation::Circ2; use C4::Koha; +use HTML::Template; + +my $dbh = C4::Context->dbh; my $input = new CGI; -my $bornum=$input->param('bornum'); +my ($template, $loggedinuser, $cookie) + = get_template_and_user({template_name => "members/moremember.tmpl", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {borrowers => 1}, + debug => 1, + }); -print $input->header; +my $bornum=$input->param('bornum'); #start the page and read in includes -print startpage(); -print startmenu('member'); -my $data=borrdata('',$bornum); +my $data=borrdata('',$bornum); -$data->{'dateenrolled'} = slashifyDate($data->{'dateenrolled'}); -$data->{'expiry'} = slashifyDate($data->{'expiry'}); -$data->{'dateofbirth'} = slashifyDate($data->{'dateofbirth'}); +$data->{'dateenrolled'} = format_date($data->{'dateenrolled'}); +$data->{'expiry'} = format_date($data->{'expiry'}); +$data->{'dateofbirth'} = format_date($data->{'dateofbirth'}); +$data->{'IS_ADULT'} = ($data->{'categorycode'} ne 'I'); $data->{'ethnicity'} = fixEthnicity($data->{'ethnicity'}); -print <$data->{'firstname'} $data->{'surname'}

-

-

- - - - - - -
MEMBERSHIP RECORD
-

- -{'borrowernumber'}> - -


-$data->{'title'} $data->{'othernames'} $data->{'surname'} ($data->{'firstname'}, $data->{'initials'})

+$data->{&expand_sex_into_predicate($data->{'sex'})} = 1; -Card Number: $data->{'cardnumber'}
-printend -; if ($data->{'categorycode'} eq 'C'){ my $data2=borrdata('',$data->{'guarantor'}); $data->{'streetaddress'}=$data2->{'streetaddress'}; @@ -84,108 +83,58 @@ if ($data->{'categorycode'} eq 'C'){ $data->{'phone'}=$data2->{'phone'}; $data->{'phoneday'}=$data2->{'phoneday'}; } -my $ethnicityline=''; + + if ($data->{'ethnicity'} || $data->{'ethnotes'}) { - $ethnicityline="Ethnicity: $data->{'ethnicity'}, $data->{'ethnotes'}
"; + $template->param(printethnicityline => 1); } -print <{'streetaddress'}, $data->{'city'}
-Home Address: $data->{'physstreet'}, $data->{'streetcity'}
-Phone (Home): $data->{'phone'}
-Phone (Daytime): $data->{'phoneday'}
-Fax: $data->{'faxnumber'}
-E-mail: $data->{'emailaddress'}
-Textmessaging:$data->{'textmessaging'}

-Membership Number: $data->{'borrowernumber'}
-Membership: $data->{'categorycode'}
-Area: $data->{'area'}
-Fee:$30/year, Paid
-Joined: $data->{'dateenrolled'}, Expires: $data->{'expiry'}
-Joining Branch: $data->{'homebranch'}

-$ethnicityline -DoB: $data->{'dateofbirth'}
-Sex: $data->{'sex'}

- -Alternative Contact:$data->{'contactname'}
-Phone: $data->{'altphone'}
-Relationship: $data->{'altrelationship'}
-Notes: $data->{'altnotes'}

-printend -; if ($data->{'categorycode'} ne 'C'){ - print " Guarantees:"; + $template->param(isguarantee => 1); # FIXME # It looks like the $i is only being returned to handle walking through # the array, which is probably better done as a foreach loop. # my ($count,$guarantees)=findguarantees($data->{'borrowernumber'}); + my @guaranteedata; for (my $i=0;$i<$count;$i++){ - print "[$i]->{'borrowernumber'}\">$guarantees->[$i]->{'cardnumber'}
"; + push (@guaranteedata, {borrowernumber => $guarantees->[$i]->{'borrowernumber'}, + cardnumber => $guarantees->[$i]->{'cardnumber'}}); } + $template->param(guaranteeloop => \@guaranteedata); + } else { - print "Guarantor:"; my ($guarantor)=findguarantor($data->{'borrowernumber'}); - if ($guarantor->{'borrowernumber'} == 0){ - print "no guarantor
"; - } else { - print "{'borrowernumber'}\">$guarantor->{'cardnumber'}
"; + unless ($guarantor->{'borrowernumber'} == 0){ + $template->param(guarantorborrowernumber => $guarantor->{'borrowernumber'}, guarantorcardnumber => $guarantor->{'cardnumber'}); } } -print < - -General Notes: -$data->{'borrowernotes'} -

-

- - - - -

- -
- - - - - -printend -; my %bor; $bor{'borrowernumber'}=$bornum; # FIXME -# it looks like $numaccts is a temp variable and that the -# for (my $i;$i<$numaccts;$i+++) +# it looks like $numaccts is a temp variable and that the +# for (my $i;$i<$numaccts;$i++) # can be turned into a foreach loop instead # my ($numaccts,$accts,$total)=getboracctrecord('',\%bor); #if ($numaccts > 10){ # $numaccts=10; #} +my @accountdata; for (my$i=0;$i<$numaccts;$i++){ -#if ($accts->[$i]{'accounttype'} ne 'Pay'){ my $amount= $accts->[$i]{'amount'} + 0.00; - my $amount2= $accts->[$i]{'amountoutstanding'} + 0.00; + my $amount2= $accts->[$i]{'amountoutstanding'} + 0.00; + my %row = %$accts->[$i]; if ($amount2 != 0){ - print ""; my $item="   "; - - $accts->[$i]{'date'} = slashifyDate($accts->[$i]{'date'}); + $row{'date'} = format_date($accts->[$i]{'date'}); if ($accts->[$i]{'accounttype'} ne 'Res'){ - #get item data - #$item= + #get item data + #$item= } - print ""; -# print ""; - print " - - "; } + push (@accountdata, \%row); } -print < - - - - - -
FINES & CHARGES
$accts->[$i]{'date'}$accts->[$i]{'accounttype'}"; # FIXME # why set this variable if it's not going to be used? @@ -193,162 +142,66 @@ for (my$i=0;$i<$numaccts;$i++){ my $env; if ($accts->[$i]{'accounttype'} ne 'Res'){ my $iteminfo=C4::Circulation::Circ2::getiteminformation($env,$accts->[$i]->{'itemnumber'},''); - print "[$i]->{'itemnumber'}&bib=$iteminfo->{'biblionumber'}&bi=$iteminfo->{'biblioitemnumber'}>$accts->[$i]->{'description'} $accts->[$i]{'title'}"; + # FIXME, seems to me $iteminfo gets not defined + %row = (%row , %$iteminfo) if $iteminfo; } - print "$amount$amount2
- - - -
- -

-

- - - - - - - - - - - - - - -printend -; my ($count,$issue)=borrissues($bornum); my $today=ParseDate('today'); +my @issuedata; for (my $i=0;$i<$count;$i++){ - print " - - "; #find the charge for an item - my ($charge,$itemtype)=calc_charges(undef,$issue->[$i]{'itemnumber'},$bornum); - print ""; - print ""; + # FIXME - This is expecting + # &C4::Circulation::Renewals2::calc_charges, but it's getting + # &C4::Circulation::Circ2::calc_charges, which only returns one + # element, so itemtype isn't being set. + # But &C4::Circulation::Renewals2::calc_charges doesn't appear to + # return the correct item type either (or a properly-formatted + # charge, for that matter). + my ($charge,$itemtype)=calc_charges(undef,$dbh,$issue->[$i]{'itemnumber'},$bornum); + $row{'itemtype'}=$itemtype; + $row{'charge'}=$charge; -# if ($datedue < $today){ -# print ""; -# } else { -# print ""; -# } #check item is not reserved - my ($rescount,$reserves)=Findgroupreserve($issue->[$i]{'biblioitemnumber'},$issue->[$i]{'biblionumber'}); - if ($rescount >0){ + my ($restype,$reserves)=CheckReserves($issue->[$i]{'itemnumber'}); + if ($restype){ print ""; # } elsif ($issue->[$i]->{'renewals'} > 0) { # print ""; } else { - print " - - "; + $row{'norenew'}=0; } + push (@issuedata, \%row); } -print < - - - - - -
ITEMS CURRENTLY ON ISSUE
TitleDueItemtypeChargeRenew
"; - my $datedue=ParseDate($issue->[$i]{'date_due'}); - - $issue->[$i]{'date_due'} = slashifyDate($issue->[$i]{'date_due'}); - - if ($datedue < $today){ - print ""; + my $datedue=ParseDate($issue->[$i]{'date_due'}); + $issue->[$i]{'date_due'} = format_date($issue->[$i]{'date_due'}); + my %row = %{$issue->[$i]}; + if ($datedue < $today){ + $row{'red'}=1; #print ""; } - print "$issue->[$i]{'title'} - [$i]->{'itemnumber'}&bib=$issue->[$i]->{'biblionumber'}&bi=$issue->[$i]->{'biblioitemnumber'}> - $issue->[$i]{'barcode'}$issue->[$i]{'date_due'}$itemtype$chargeOverdue   [$i]{'biblionumber'}>On Request - no renewals
Previously Renewed - no renewals
"; - - print "[$i]{'itemnumber'}\" value=y>Y - [$i]{'itemnumber'}\" value=n>N
- -
- - -

- - - - - - - - - - - - - - - - - - - - -printend -; my ($rescount,$reserves)=FindReserves('',$bornum); #From C4::Reserves2 -# FIXME -# does it make sense to turn this into a foreach my $i (0..$rescount) -# kind of loop? -# -for (my $i=0;$i<$rescount;$i++){ - $reserves->[$i]{'reservedate'} = slashifyDate($reserves->[$i]{'reservedate'}); - - print " - - - [$i]{'biblionumber'}> - - - - "; +my @reservedata; +foreach my $reserveline (@$reserves) { + $reserveline->{'reservedate2'} = format_date($reserveline->{'reservedate'}); + my $restitle; + my %row = %$reserveline; + if ($reserveline->{'constrainttype'} eq 'o'){ + $restitle=getreservetitle($reserveline->{'biblionumber'},$reserveline->{'borrowernumber'},$reserveline->{'reservedate'},$reserveline->{'timestamp'}); + %row = (%row , %$restitle); + } + push (@reservedata, \%row); } -print < - - -
ITEMS REQUESTED
TitleRequestedChargeRemove
[$i]{'biblionumber'}\">$reserves->[$i]{'btitle'}$reserves->[$i]{'reservedate'} -
-
- -

- -

-printend -; - - -print endmenu('member'); -print endpage(); +$template->param($data); +$template->param( + bornum => $bornum, + accountloop => \@accountdata, + issueloop => \@issuedata, + reserveloop => \@reservedata); +output_html_with_http_headers $input, $cookie, $template->output;