From a3135df486be71b756a948118afbc390f437a4ce Mon Sep 17 00:00:00 2001 From: toins Date: Thu, 26 Jul 2007 15:18:46 +0000 Subject: [PATCH] really minor change : POD fixing, indentation & some compilation warn removing. --- C4/Circulation.pm | 8 +- C4/Letters.pm | 583 ++++++++++++++++++++++++++-------------------- C4/Members.pm | 4 +- C4/Output.pm | 4 +- C4/Reserves.pm | 7 +- 5 files changed, 346 insertions(+), 260 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 1a1641cc80..4a6f80fdeb 100755 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -838,7 +838,7 @@ Issue a book. Does no check, they are done in CanBookBeIssued. If we reach this =item C<$date> contains the max date of return. calculated if empty. AddIssue does the following things : -- step 0�: check that there is a borrowernumber & a barcode provided +- step 01: check that there is a borrowernumber & a barcode provided - check for RENEWAL (book issued & being issued to the same patron) - renewal YES = Calculate Charge & renew - renewal NO = @@ -870,9 +870,9 @@ if ($borrower and $barcode and $barcodecheck ne '0'){ # get biblioinformation for this item my $biblio = GetBiblioFromItemNumber($item->{itemnumber}); -# -# check if we just renew the issue. -# + # + # check if we just renew the issue. + # if ( $actualissue->{borrowernumber} eq $borrower->{'borrowernumber'} ) { # we renew, do we need to add some charge ? my ( $charge, $itemtype ) = GetIssuingCharges( diff --git a/C4/Letters.pm b/C4/Letters.pm index 924f79dfb6..4e9e673ebb 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -1,6 +1,5 @@ package C4::Letters; - # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. @@ -27,7 +26,7 @@ use C4::Members; use C4::Log; require Exporter; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +our ( $VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS ); # set the version for version checking $VERSION = do { my @v = '$Revision$' =~ /\d+/g; @@ -52,8 +51,8 @@ C4::Letters - Give functions for Letters management =cut @ISA = qw(Exporter); -@EXPORT = qw(&GetLetters &getletter &addalert &getalert &delalert &findrelatedto &SendAlerts); - +@EXPORT = + qw(&GetLetters &getletter &addalert &getalert &delalert &findrelatedto &SendAlerts); =head2 GetLetters @@ -68,129 +67,139 @@ my $letters = GetLetters($cat); my @letterloop; foreach my $thisletter (keys %$letters) { my $selected = 1 if $thisletter eq $letter; - my %row =(value => $thisletter, - selected => $selected, - lettername => $letters->{$thisletter}, - ); + my %row =( + value => $thisletter, + selected => $selected, + lettername => $letters->{$thisletter}, + ); push @letterloop, \%row; } -=head3 in TEMPLATE - +=head3 in TEMPLATE + + =cut sub GetLetters { -# returns a reference to a hash of references to ALL letters... + + # returns a reference to a hash of references to ALL letters... my $cat = shift; my %letters; my $dbh = C4::Context->dbh; $dbh->quote($cat); my $sth; - if ($cat ne ""){ + if ( $cat ne "" ) { my $query = "SELECT * FROM letter WHERE module = ? ORDER BY name"; $sth = $dbh->prepare($query); $sth->execute($cat); - } else { + } + else { my $query = " SELECT * FROM letter ORDER BY name"; $sth = $dbh->prepare($query); $sth->execute; } - while (my $letter=$sth->fetchrow_hashref){ - $letters{$letter->{'code'}}=$letter->{'name'}; + while ( my $letter = $sth->fetchrow_hashref ) { + $letters{ $letter->{'code'} } = $letter->{'name'}; } return \%letters; } - sub getletter { - my ($module,$code) = @_; - my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("select * from letter where module=? and code=?"); - $sth->execute($module,$code); - my $line = $sth->fetchrow_hashref; - return $line; + my ( $module, $code ) = @_; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare("select * from letter where module=? and code=?"); + $sth->execute( $module, $code ); + my $line = $sth->fetchrow_hashref; + return $line; } =head2 addalert - parameters : - - $borrowernumber : the number of the borrower subscribing to the alert - - $type : the type of alert. - - externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. - - create an alert and return the alertid (primary key) + parameters : + - $borrowernumber : the number of the borrower subscribing to the alert + - $type : the type of alert. + - externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. + + create an alert and return the alertid (primary key) =cut sub addalert { - my ($borrowernumber,$type,$externalid) = @_; - my $dbh=C4::Context->dbh; - my $sth = $dbh->prepare("insert into alert (borrowernumber, type, externalid) values (?,?,?)"); - $sth->execute($borrowernumber,$type,$externalid); - # get the alert number newly created and return it - my $alertid = $dbh->{'mysql_insertid'}; - return $alertid; + my ( $borrowernumber, $type, $externalid ) = @_; + my $dbh = C4::Context->dbh; + my $sth = + $dbh->prepare( + "insert into alert (borrowernumber, type, externalid) values (?,?,?)"); + $sth->execute( $borrowernumber, $type, $externalid ); + + # get the alert number newly created and return it + my $alertid = $dbh->{'mysql_insertid'}; + return $alertid; } =head2 delalert - parameters : - - alertid : the alert id - deletes the alert + + parameters : + - alertid : the alert id + deletes the alert + =cut sub delalert { - my ($alertid)=@_; -# warn "ALERTID : $alertid"; - my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("delete from alert where alertid=?"); - $sth->execute($alertid); + my ($alertid) = @_; + + #warn "ALERTID : $alertid"; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare("delete from alert where alertid=?"); + $sth->execute($alertid); } =head2 getalert - parameters : - - $borrowernumber : the number of the borrower subscribing to the alert - - $type : the type of alert. - - externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. - all parameters NON mandatory. If a parameter is omitted, the query is done without the corresponding parameter. For example, without $externalid, returns all alerts for a borrower on a topic. + parameters : + - $borrowernumber : the number of the borrower subscribing to the alert + - $type : the type of alert. + - externalid : the primary key of the object to put alert on. For issues, the alert is made on subscriptionid. + all parameters NON mandatory. If a parameter is omitted, the query is done without the corresponding parameter. For example, without $externalid, returns all alerts for a borrower on a topic. =cut sub getalert { - my ($borrowernumber,$type,$externalid) = @_; - my $dbh=C4::Context->dbh; - my $query = "select * from alert where"; - my @bind; - if ($borrowernumber) { - $query .= " borrowernumber=? and"; - push @bind,$borrowernumber; - } - if ($type) { - $query .= " type=? and"; - push @bind,$type; - } - if ($externalid) { - $query .= " externalid=? and"; - push @bind,$externalid; - } - $query =~ s/ and$//; - my $sth = $dbh->prepare($query); - $sth->execute(@bind); - my @result; - while (my $line = $sth->fetchrow_hashref) { - push @result,$line; - } - return \@result if $#result >=0; # return only if there is one result. - return; + my ( $borrowernumber, $type, $externalid ) = @_; + my $dbh = C4::Context->dbh; + my $query = "select * from alert where"; + my @bind; + if ($borrowernumber) { + $query .= " borrowernumber=? and"; + push @bind, $borrowernumber; + } + if ($type) { + $query .= " type=? and"; + push @bind, $type; + } + if ($externalid) { + $query .= " externalid=? and"; + push @bind, $externalid; + } + $query =~ s/ and$//; + my $sth = $dbh->prepare($query); + $sth->execute(@bind); + my @result; + while ( my $line = $sth->fetchrow_hashref ) { + push @result, $line; + } + return \@result if $#result >= 0; # return only if there is one result. + return; } =head2 findrelatedto + parameters : - $type : the type of alert - $externalid : the id of the "object" to query @@ -201,206 +210,282 @@ sub getalert { =cut sub findrelatedto { - my ($type,$externalid) = @_; - my $dbh=C4::Context->dbh; - my $sth; - if ($type eq 'issue') { - $sth=$dbh->prepare("select title as result from subscription left join biblio on subscription.biblionumber=biblio.biblionumber where subscriptionid=?"); - } - if ($type eq 'borrower') { - $sth=$dbh->prepare("select concat(firstname,' ',surname) from borrowers where borrowernumber=?"); - } - $sth->execute($externalid); - my ($result) = $sth->fetchrow; - return $result; + my ( $type, $externalid ) = @_; + my $dbh = C4::Context->dbh; + my $sth; + if ( $type eq 'issue' ) { + $sth = + $dbh->prepare( +"select title as result from subscription left join biblio on subscription.biblionumber=biblio.biblionumber where subscriptionid=?" + ); + } + if ( $type eq 'borrower' ) { + $sth = + $dbh->prepare( +"select concat(firstname,' ',surname) from borrowers where borrowernumber=?" + ); + } + $sth->execute($externalid); + my ($result) = $sth->fetchrow; + return $result; } =head2 SendAlerts - parameters : - - $type : the type of alert - - $externalid : the id of the "object" to query - - $letter : the letter to send. + parameters : + - $type : the type of alert + - $externalid : the id of the "object" to query + - $letter : the letter to send. - send an alert to all borrowers having put an alert on a given subject. + send an alert to all borrowers having put an alert on a given subject. =cut sub SendAlerts { - my ($type,$externalid,$letter)=@_; - my $dbh=C4::Context->dbh; - if ($type eq 'issue') { -# warn "sending issues..."; - my $letter = getletter('serial',$letter); - # prepare the letter... - # search the biblionumber - my $sth=$dbh->prepare("select biblionumber from subscription where subscriptionid=?"); - $sth->execute($externalid); - my ($biblionumber)=$sth->fetchrow; - # parsing branch info - my $userenv = C4::Context->userenv; - parseletter($letter,'branches',$userenv->{branch}); - # parsing librarian name - $letter->{content} =~ s/<>/$userenv->{firstname}/g; - $letter->{content} =~ s/<>/$userenv->{surname}/g; - $letter->{content} =~ s/<>/$userenv->{emailaddress}/g; - # parsing biblio information - parseletter($letter,'biblio',$biblionumber); - parseletter($letter,'biblioitems',$biblionumber); - # find the list of borrowers to alert - my $alerts = getalert('','issue',$externalid); - foreach (@$alerts) { - # and parse borrower ... - my $innerletter = $letter; - my $borinfo = GetMember($_->{'borrowernumber'},'borrowernumber'); - parseletter($innerletter,'borrowers',$_->{'borrowernumber'}); - # ... then send mail - if ($borinfo->{emailaddress}) { - my %mail = ( To => $borinfo->{emailaddress}, - From => $userenv->{emailaddress}, - Subject => "".$innerletter->{title}, - Message => "".$innerletter->{content}, - ); - sendmail(%mail); + my ( $type, $externalid, $letter ) = @_; + my $dbh = C4::Context->dbh; + if ( $type eq 'issue' ) { + + # warn "sending issues..."; + my $letter = getletter( 'serial', $letter ); + + # prepare the letter... + # search the biblionumber + my $sth = + $dbh->prepare( + "select biblionumber from subscription where subscriptionid=?"); + $sth->execute($externalid); + my ($biblionumber) = $sth->fetchrow; + + # parsing branch info + my $userenv = C4::Context->userenv; + parseletter( $letter, 'branches', $userenv->{branch} ); + + # parsing librarian name + $letter->{content} =~ s/<>/$userenv->{firstname}/g; + $letter->{content} =~ s/<>/$userenv->{surname}/g; + $letter->{content} =~ + s/<>/$userenv->{emailaddress}/g; + + # parsing biblio information + parseletter( $letter, 'biblio', $biblionumber ); + parseletter( $letter, 'biblioitems', $biblionumber ); + + # find the list of borrowers to alert + my $alerts = getalert( '', 'issue', $externalid ); + foreach (@$alerts) { + + # and parse borrower ... + my $innerletter = $letter; + my $borinfo = GetMember( $_->{'borrowernumber'}, 'borrowernumber' ); + parseletter( $innerletter, 'borrowers', $_->{'borrowernumber'} ); + + # ... then send mail + if ( $borinfo->{emailaddress} ) { + my %mail = ( + To => $borinfo->{emailaddress}, + From => $userenv->{emailaddress}, + Subject => "" . $innerletter->{title}, + Message => "" . $innerletter->{content}, + ); + sendmail(%mail); + # warn "sending to $mail{To} From $mail{From} subj $mail{Subject} Mess $mail{Message}"; - } - } - } - elsif ($type eq 'claimacquisition') { -# warn "sending issues..."; - my $letter = getletter('claimacquisition',$letter); - # prepare the letter... - # search the biblionumber - my $strsth="select aqorders.*,aqbasket.*,biblio.*,biblioitems.* from aqorders LEFT JOIN aqbasket on aqbasket.basketno=aqorders.basketno LEFT JOIN biblio on aqorders.biblionumber=biblio.biblionumber LEFT JOIN biblioitems on aqorders.biblioitemnumber=biblioitems.biblioitemnumber where aqorders.ordernumber IN (".join(",",@$externalid).")"; - my $sthorders=$dbh->prepare($strsth); - $sthorders->execute; - my $dataorders=$sthorders->fetchall_arrayref({}); - parseletter($letter,'aqbooksellers',$dataorders->[0]->{booksellerid}); - my $sthbookseller = $dbh->prepare("select * from aqbooksellers where id=?"); - $sthbookseller->execute($dataorders->[0]->{booksellerid}); - my $databookseller=$sthbookseller->fetchrow_hashref; - # parsing branch info - my $userenv = C4::Context->userenv; - parseletter($letter,'branches',$userenv->{branch}); - # parsing librarian name - $letter->{content} =~ s/<>/$userenv->{firstname}/g; - $letter->{content} =~ s/<>/$userenv->{surname}/g; - $letter->{content} =~ s/<>/$userenv->{emailaddress}/g; - foreach my $data (@$dataorders){ - my $line=$1 if ($letter->{content}=~m/(<<.*>>)/); - foreach my $field (keys %$data){ - $line =~ s/(<<[^\.]+.$field>>)/$data->{$field}/; - } - $letter->{content}=~ s/(<<.*>>)/$line\n\1/; + } + } + } + elsif ( $type eq 'claimacquisition' ) { + + # warn "sending issues..."; + my $letter = getletter( 'claimacquisition', $letter ); + + # prepare the letter... + # search the biblionumber + my $strsth = +"select aqorders.*,aqbasket.*,biblio.*,biblioitems.* from aqorders LEFT JOIN aqbasket on aqbasket.basketno=aqorders.basketno LEFT JOIN biblio on aqorders.biblionumber=biblio.biblionumber LEFT JOIN biblioitems on aqorders.biblioitemnumber=biblioitems.biblioitemnumber where aqorders.ordernumber IN (" + . join( ",", @$externalid ) . ")"; + my $sthorders = $dbh->prepare($strsth); + $sthorders->execute; + my $dataorders = $sthorders->fetchall_arrayref( {} ); + parseletter( $letter, 'aqbooksellers', + $dataorders->[0]->{booksellerid} ); + my $sthbookseller = + $dbh->prepare("select * from aqbooksellers where id=?"); + $sthbookseller->execute( $dataorders->[0]->{booksellerid} ); + my $databookseller = $sthbookseller->fetchrow_hashref; + + # parsing branch info + my $userenv = C4::Context->userenv; + parseletter( $letter, 'branches', $userenv->{branch} ); + + # parsing librarian name + $letter->{content} =~ s/<>/$userenv->{firstname}/g; + $letter->{content} =~ s/<>/$userenv->{surname}/g; + $letter->{content} =~ + s/<>/$userenv->{emailaddress}/g; + foreach my $data (@$dataorders) { + my $line = $1 if ( $letter->{content} =~ m/(<<.*>>)/ ); + foreach my $field ( keys %$data ) { + $line =~ s/(<<[^\.]+.$field>>)/$data->{$field}/; + } + $letter->{content} =~ s/(<<.*>>)/$line\n$1/; } $letter->{content} =~ s/<<[^>]*>>//g; - my $innerletter = $letter; + my $innerletter = $letter; + # ... then send mail - if ($databookseller->{bookselleremail}||$databookseller->{contemail}) { - my %mail = ( To => $databookseller->{bookselleremail}.($databookseller->{contemail}?",".$databookseller->{contemail}:""), - From => $userenv->{emailaddress}, - Subject => "".$innerletter->{title}, - Message => "".$innerletter->{content}, - 'Content-Type' => 'text/plain; charset="utf8"', - ); + if ( $databookseller->{bookselleremail} + || $databookseller->{contemail} ) + { + my %mail = ( + To => $databookseller->{bookselleremail} + . ( + $databookseller->{contemail} + ? "," . $databookseller->{contemail} + : "" + ), + From => $userenv->{emailaddress}, + Subject => "" . $innerletter->{title}, + Message => "" . $innerletter->{content}, + 'Content-Type' => 'text/plain; charset="utf8"', + ); sendmail(%mail); - warn "sending to $mail{To} From $mail{From} subj $mail{Subject} Mess $mail{Message}"; + warn +"sending to $mail{To} From $mail{From} subj $mail{Subject} Mess $mail{Message}"; } - if (C4::Context->preference("LetterLog")){ - logaction($userenv->{number},"ACQUISITION","Send Acquisition claim letter","","order list : ".join(",",@$externalid)."\n$innerletter->{title}\n$innerletter->{content}") + if ( C4::Context->preference("LetterLog") ) { + logaction( + $userenv->{number}, + "ACQUISITION", + "Send Acquisition claim letter", + "", + "order list : " + . join( ",", @$externalid ) + . "\n$innerletter->{title}\n$innerletter->{content}" + ); } } - elsif ($type eq 'claimissues') { -# warn "sending issues..."; - my $letter = getletter('claimissues',$letter); - # prepare the letter... - # search the biblionumber - my $strsth="select serial.*,subscription.*, biblio.title from serial LEFT JOIN subscription on serial.subscriptionid=subscription.subscriptionid LEFT JOIN biblio on serial.biblionumber=biblio.biblionumber where serial.serialid IN (".join(",",@$externalid).")"; - my $sthorders=$dbh->prepare($strsth); - $sthorders->execute; - my $dataorders=$sthorders->fetchall_arrayref({}); - parseletter($letter,'aqbooksellers',$dataorders->[0]->{aqbooksellerid}); - my $sthbookseller = $dbh->prepare("select * from aqbooksellers where id=?"); - $sthbookseller->execute($dataorders->[0]->{aqbooksellerid}); - my $databookseller=$sthbookseller->fetchrow_hashref; - # parsing branch info - my $userenv = C4::Context->userenv; - parseletter($letter,'branches',$userenv->{branch}); - # parsing librarian name - $letter->{content} =~ s/<>/$userenv->{firstname}/g; - $letter->{content} =~ s/<>/$userenv->{surname}/g; - $letter->{content} =~ s/<>/$userenv->{emailaddress}/g; - foreach my $data (@$dataorders){ - my $line=$1 if ($letter->{content}=~m/(<<.*>>)/); - foreach my $field (keys %$data){ - $line =~ s/(<<[^\.]+.$field>>)/$data->{$field}/; - } - $letter->{content}=~ s/(<<.*>>)/$line\n\1/; + elsif ( $type eq 'claimissues' ) { + + # warn "sending issues..."; + my $letter = getletter( 'claimissues', $letter ); + + # prepare the letter... + # search the biblionumber + my $strsth = +"select serial.*,subscription.*, biblio.title from serial LEFT JOIN subscription on serial.subscriptionid=subscription.subscriptionid LEFT JOIN biblio on serial.biblionumber=biblio.biblionumber where serial.serialid IN (" + . join( ",", @$externalid ) . ")"; + my $sthorders = $dbh->prepare($strsth); + $sthorders->execute; + my $dataorders = $sthorders->fetchall_arrayref( {} ); + parseletter( $letter, 'aqbooksellers', + $dataorders->[0]->{aqbooksellerid} ); + my $sthbookseller = + $dbh->prepare("select * from aqbooksellers where id=?"); + $sthbookseller->execute( $dataorders->[0]->{aqbooksellerid} ); + my $databookseller = $sthbookseller->fetchrow_hashref; + + # parsing branch info + my $userenv = C4::Context->userenv; + parseletter( $letter, 'branches', $userenv->{branch} ); + + # parsing librarian name + $letter->{content} =~ s/<>/$userenv->{firstname}/g; + $letter->{content} =~ s/<>/$userenv->{surname}/g; + $letter->{content} =~ + s/<>/$userenv->{emailaddress}/g; + foreach my $data (@$dataorders) { + my $line = $1 if ( $letter->{content} =~ m/(<<.*>>)/ ); + foreach my $field ( keys %$data ) { + $line =~ s/(<<[^\.]+.$field>>)/$data->{$field}/; + } + $letter->{content} =~ s/(<<.*>>)/$line\n$1/; } $letter->{content} =~ s/<<[^>]*>>//g; - my $innerletter = $letter; + my $innerletter = $letter; + # ... then send mail - if ($databookseller->{bookselleremail}||$databookseller->{contemail}) { - my %mail = ( To => $databookseller->{bookselleremail}.($databookseller->{contemail}?",".$databookseller->{contemail}:""), - From => $userenv->{emailaddress}, - Subject => "".$innerletter->{title}, - Message => "".$innerletter->{content}, - ); + if ( $databookseller->{bookselleremail} + || $databookseller->{contemail} ) + { + my %mail = ( + To => $databookseller->{bookselleremail} + . ( + $databookseller->{contemail} + ? "," . $databookseller->{contemail} + : "" + ), + From => $userenv->{emailaddress}, + Subject => "" . $innerletter->{title}, + Message => "" . $innerletter->{content}, + ); sendmail(%mail); - &logaction( - C4::Context->userenv->{'number'}, - "ACQUISITION", - "CLAIM ISSUE", - undef, - "To=".$databookseller->{contemail}. - " Title=".$innerletter->{title}. - " Content=".$innerletter->{content} - ) if C4::Context->preference("LetterLog"); + &logaction( + C4::Context->userenv->{'number'}, + "ACQUISITION", + "CLAIM ISSUE", + undef, + "To=" + . $databookseller->{contemail} + . " Title=" + . $innerletter->{title} + . " Content=" + . $innerletter->{content} + ) if C4::Context->preference("LetterLog"); } - warn "sending to From $userenv->{emailaddress} subj $innerletter->{title} Mess $innerletter->{content}"; - } + warn +"sending to From $userenv->{emailaddress} subj $innerletter->{title} Mess $innerletter->{content}"; + } } =head2 parseletter - parameters : - - $letter : a hash to letter fields (title & content useful) - - $table : the Koha table to parse. - - $pk : the primary key to query on the $table table - parse all fields from a table, and replace values in title & content with the appropriate value - (not exported sub, used only internally) + parameters : + - $letter : a hash to letter fields (title & content useful) + - $table : the Koha table to parse. + - $pk : the primary key to query on the $table table + parse all fields from a table, and replace values in title & content with the appropriate value + (not exported sub, used only internally) =cut sub parseletter { - my ($letter,$table,$pk) = @_; -# warn "Parseletter : ($letter,$table,$pk)"; - my $dbh=C4::Context->dbh; - my $sth; - if ($table eq 'biblio') { - $sth = $dbh->prepare("select * from biblio where biblionumber=?"); - } elsif ($table eq 'biblioitems') { - $sth = $dbh->prepare("select * from biblioitems where biblionumber=?"); - } elsif ($table eq 'borrowers') { - $sth = $dbh->prepare("select * from borrowers where borrowernumber=?"); - } elsif ($table eq 'branches') { - $sth = $dbh->prepare("select * from branches where branchcode=?"); - } elsif ($table eq 'aqbooksellers') { - $sth = $dbh->prepare("select * from aqbooksellers where id=?"); - } - $sth->execute($pk); - # store the result in an hash - my $values = $sth->fetchrow_hashref; - # and get all fields from the table - $sth = $dbh->prepare("show columns from $table"); - $sth->execute; - while ((my $field) = $sth->fetchrow_array) { - my $replacefield="<<$table.$field>>"; - my $replacedby = $values->{$field}; -# warn "REPLACE $replacefield by $replacedby"; - $letter->{title} =~ s/$replacefield/$replacedby/g; - $letter->{content} =~ s/$replacefield/$replacedby/g; - } + my ( $letter, $table, $pk ) = @_; + + # warn "Parseletter : ($letter,$table,$pk)"; + my $dbh = C4::Context->dbh; + my $sth; + if ( $table eq 'biblio' ) { + $sth = $dbh->prepare("select * from biblio where biblionumber=?"); + } + elsif ( $table eq 'biblioitems' ) { + $sth = $dbh->prepare("select * from biblioitems where biblionumber=?"); + } + elsif ( $table eq 'borrowers' ) { + $sth = $dbh->prepare("select * from borrowers where borrowernumber=?"); + } + elsif ( $table eq 'branches' ) { + $sth = $dbh->prepare("select * from branches where branchcode=?"); + } + elsif ( $table eq 'aqbooksellers' ) { + $sth = $dbh->prepare("select * from aqbooksellers where id=?"); + } + $sth->execute($pk); + + # store the result in an hash + my $values = $sth->fetchrow_hashref; + + # and get all fields from the table + $sth = $dbh->prepare("show columns from $table"); + $sth->execute; + while ( ( my $field ) = $sth->fetchrow_array ) { + my $replacefield = "<<$table.$field>>"; + my $replacedby = $values->{$field}; + + # warn "REPLACE $replacefield by $replacedby"; + $letter->{title} =~ s/$replacefield/$replacedby/g; + $letter->{content} =~ s/$replacefield/$replacedby/g; + } } -END { } # module clean-up code here (global destructor) +END { } # module clean-up code here (global destructor) diff --git a/C4/Members.pm b/C4/Members.pm index 30f09a6bbc..508618d45b 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -118,6 +118,7 @@ push @EXPORT, qw( &fixup_cardnumber &checkcardnumber ); + =item SearchMember ($count, $borrowers) = &SearchMember($searchstring, $type,$category_type); @@ -440,8 +441,7 @@ sub patronflags { } $flags{'ODUES'} = \%flaginfo; } - my @itemswaiting = - GetReservesFromBorrowernumber( $patroninformation->{'borrowernumber'},'W' ); + my @itemswaiting = GetReservesFromBorrowernumber( $patroninformation->{'borrowernumber'},'W' ); my $nowaiting = scalar @itemswaiting; if ( $nowaiting > 0 ) { my %flaginfo; diff --git a/C4/Output.pm b/C4/Output.pm index 9dd0d1f5a0..82bf49603c 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -54,8 +54,8 @@ push @EXPORT, qw( #Output push @EXPORT, qw( - &output_html_with_http_headers - ); + &output_html_with_http_headers +); #FIXME: this is a quick fix to stop rc1 installing broken diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 2393c42087..f9f974704e 100755 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -272,9 +272,10 @@ sub GetReservesFromItemnumber { =item GetReservesFromBorrowernumber - $borrowerreserv = GetReservesFromBorrowernumber($borrowernumber,$tatus); - - TODO :: Descritpion + $borrowerreserv = GetReservesFromBorrowernumber($borrowernumber,$tatus); + + TODO :: Descritpion + =cut sub GetReservesFromBorrowernumber { -- 2.39.5