return json with issues for ferweb
[koha_fer] / ferweb / issues.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4
5 use CGI;
6 use JSON;
7 use lib '..';
8 use C4::Context;
9
10 use Data::Dump qw(dump);
11
12 my $query = new CGI;
13 my $dbh = C4::Context->dbh;
14
15 my $sql = qq{
16 select
17         userid,
18         cardnumber,
19         firstname,
20         surname,
21         email,
22         items.itemnumber,
23         biblio.title,
24         author,
25         barcode,
26 --      issuedate,
27         date_due as     issuedate,
28         date_due
29 from issues
30 join borrowers on borrowers.borrowernumber = issues.borrowernumber
31 join items on issues.itemnumber = items.itemnumber 
32 join biblioitems on items.biblioitemnumber = biblioitems.biblioitemnumber
33 join biblio on biblioitems.biblionumber = biblio.biblionumber
34 };
35
36 my @where;
37 my @data;
38 if ( my $nick = $query->param('nick') ) {
39         push @where, 'userid = ?';
40         push @data, $nick;
41 }
42
43 if ( my $jmbag = $query->param('jmbag') ) {
44         push @where, 'cardnumber = ?';
45         push @data, 'S' . sprintf("%010d",$jmbag);
46 }
47
48 die 'need nick=? and/or jmbag=?' unless @data;
49
50 $sql .= ' where ' . join(' or ', @where);
51 warn "# SQL: $sql ",dump(@data);
52 my $sth = $dbh->prepare($sql);
53 $sth->execute(@data);
54
55 my @rows;
56 while ( my $row = $sth->fetchrow_hashref ) {
57         push @rows, $row;
58 }
59
60 print "Content-type: application/json\r\n\r\n", to_json(\@rows, { utf8 => 1 });
61