# 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
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
use warnings;
use C4::Output;
use C4::Members;
use C4::Branch;
+use List::MoreUtils qw/any uniq/;
+use Koha::DateUtils;
+
use C4::Dates qw/format_date/;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input = CGI->new;
my $borrowernumber = undef;
my $cardnumber = undef;
+my ($template, $loggedinuser, $cookie)= get_template_and_user({template_name => "members/readingrec.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => {borrowers => 1},
+ debug => 1,
+ });
+
if ($input->param('cardnumber')) {
$cardnumber = $input->param('cardnumber');
$data = GetMember(cardnumber => $cardnumber);
$data = GetMember(borrowernumber => $borrowernumber);
}
-my $order=$input->param('order') || '';
-my $order2=$order;
-if ($order2 eq ''){
- $order2="date_due desc";
-}
-my $limit=$input->param('limit');
-
-if ($limit){
- if ($limit eq 'full'){
- $limit=0;
- }
-}
-else {
- $limit=50;
-}
-my ($count,$issues)=GetAllIssues($borrowernumber,$order2,$limit);
-
-my ($template, $loggedinuser, $cookie)
-= get_template_and_user({template_name => "members/readingrec.tmpl",
- query => $input,
- type => "intranet",
- authnotrequired => 0,
- flagsrequired => {borrowers => 1},
- debug => 1,
- });
+my $order = 'date_due desc';
+my $limit = 0;
+my ( $issues ) = GetAllIssues($borrowernumber,$order,$limit);
my @loop_reading;
+my @barcodes;
+my $today = C4::Dates->new();
+$today = $today->output("iso");
-for (my $i=0;$i<$count;$i++){
+foreach my $issue (@{$issues}){
my %line;
- $line{biblionumber}=$issues->[$i]->{'biblionumber'};
- $line{title}=$issues->[$i]->{'title'};
- $line{author}=$issues->[$i]->{'author'};
- $line{classification} = $issues->[$i]->{'classification'} || $issues->[$i]->{'itemcallnumber'};
- $line{date_due}=format_date($issues->[$i]->{'date_due'});
- $line{returndate}=format_date($issues->[$i]->{'returndate'});
- $line{renewals}=$issues->[$i]->{'renewals'};
- $line{barcode}=$issues->[$i]->{'barcode'};
- $line{volumeddesc}=$issues->[$i]->{'volumeddesc'};
+ $line{issuestimestamp} = format_date($issue->{'issuestimestamp'});
+ $line{biblionumber} = $issue->{'biblionumber'};
+ $line{title} = $issue->{'title'};
+ $line{author} = $issue->{'author'};
+ $line{classification} = $issue->{'classification'} || $issue->{'itemcallnumber'};
+ $line{date_due} = format_sqldatetime($issue->{date_due});
+ $line{returndate} = format_sqldatetime($issue->{returndate});
+ $line{issuedate} = format_sqldatetime($issue->{issuedate});
+ $line{issuingbranch} = GetBranchName($issue->{'branchcode'});
+ $line{renewals} = $issue->{'renewals'};
+ $line{barcode} = $issue->{'barcode'};
+ $line{volumeddesc} = $issue->{'volumeddesc'};
push(@loop_reading,\%line);
+ if (($input->param('op') eq 'export_barcodes') and ($today eq $issue->{'returndate'})) {
+ push( @barcodes, $issue->{'barcode'} );
+ }
+}
+
+if ($input->param('op') eq 'export_barcodes') {
+ my $borrowercardnumber = GetMember( borrowernumber => $borrowernumber )->{'cardnumber'} ;
+ my $delimiter = "\n";
+ binmode( STDOUT, ":encoding(UTF-8)");
+ print $input->header(
+ -type => 'application/octet-stream',
+ -charset => 'utf-8',
+ -attachment => "$today-$borrowercardnumber-checkinexport.txt"
+ );
+ my $content = join($delimiter, uniq(@barcodes));
+ print $content;
+ exit;
}
if ( $data->{'category_type'} eq 'C') {
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+if (C4::Context->preference('ExtendedPatronAttributes')) {
+ my $attributes = GetBorrowerAttributes($borrowernumber);
+ $template->param(
+ ExtendedPatronAttributes => 1,
+ extendedattributes => $attributes
+ );
+}
+
$template->param(
readingrecordview => 1,
biblionumber => $data->{'biblionumber'},
title => $data->{'title'},
initials => $data->{'initials'},
surname => $data->{'surname'},
+ othernames => $data->{'othernames'},
borrowernumber => $borrowernumber,
limit => $limit,
firstname => $data->{'firstname'},
address => $data->{'address'},
address2 => $data->{'address2'},
city => $data->{'city'},
+ state => $data->{'state'},
zipcode => $data->{'zipcode'},
country => $data->{'country'},
phone => $data->{'phone'},
branchcode => $data->{'branchcode'},
is_child => ($data->{'category_type'} eq 'C'),
branchname => GetBranchName($data->{'branchcode'}),
- showfulllink => ($count > 50),
- loop_reading => \@loop_reading);
+ showfulllink => (scalar @loop_reading > 50),
+ loop_reading => \@loop_reading,
+ activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+);
output_html_with_http_headers $input, $cookie, $template->output;