more info in output
[share-koha-fer] / intranet / cgi-bin / fer / inventura.pl
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use C4::Context;
6 use C4::Circulation;
7 use Data::Dump qw(dump);
8 use CGI qw ( -utf8 );
9 use utf8;
10
11 binmode STDOUT, ':encoding(UTF-8)';
12
13 my $q = new CGI;
14
15 my $barcode = $q->param('barcode');
16 warn "# barcode: $barcode\n";
17 $q->delete('barcode'); # empty form field
18
19 my $row;
20
21 $ENV{REQUEST_URI} =~ s{/intranet/}{/cgi-bin/koha/}; # fix plack rewrite
22
23 print $q->header( -charset => 'utf-8' ), qq{
24 <!DOCTYPE html>
25 <html>
26   <head>
27   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
28   <style>
29         body {
30                 font-size: 200%;
31         }
32   </style>
33   <title>Inventura</title>
34 </head>
35   <body>
36 };
37
38 # Authentication
39 my ($status, $cookie, $sessionId) = C4::Auth::check_api_auth($q, { tools => 'inventory' });
40 if ($status ne "ok") {
41         print "This requres tools - inventory permission";
42         goto end_body;
43 }
44
45
46 print
47       $q->start_form( -autocomplete => 'off' )
48     , $q->textfield( -name => 'barcode', -autofocus => 'autofocus' )
49     , $q->submit( -value => 'Search' )
50 #    , $q->checkbox( -name => 'izdatnice', -label => 'izdatnice' )
51 #    , $q->checkbox( -name => 'proizvodi', -label => 'prozivodi', -checked => 1 )
52     , $q->end_form
53     , qq|
54 <!--
55 <script type="text/javascript">
56 document.getElementsByName('barcode')[0].focus();
57 </script>
58 -->
59         |
60 ;
61
62 if ( $barcode ) {
63
64         my $dbh = C4::Context->dbh;
65
66         my $sql = qq{
67         select
68                 itemnumber,
69                 items.biblionumber as biblionumber,
70                 title,
71                 author,
72                 biblioitems.publishercode,
73                 biblioitems.editionstatement,
74                 biblio.copyrightdate,
75                 items.stocknumber,
76                 items.itemcallnumber,
77                 items.barcode,
78                 items.homebranch,
79                 items.location
80         from items
81         join biblio on items.biblionumber = biblio.biblionumber
82         join biblioitems on items.biblionumber = biblioitems.biblionumber
83         where barcode = ?
84         };
85
86         #warn "# sql $sql\n";
87
88         my $sth = $dbh->prepare( $sql );
89         $sth->execute( $barcode );
90         if ( $sth->rows ) {
91
92                         $row = $sth->fetchrow_hashref;
93
94                         print qq|
95 barcode: <tt>$barcode</tt><br>
96 naslov: <b>$row->{title}</b><br>
97 autor: $row->{author}<br>
98 izdavač: $row->{publishercode}<br>
99 izdanje: $row->{editionstatement}<br>
100 godina izdanja: $row->{copyrightdate}<br>
101 inventarni broj: $row->{stocknumber}<br>
102 signatura: $row->{itemcallnumber}<br>
103 stalna lokacija: $row->{homebranch}<br>
104 lokacija na polici: $row->{location}<br>
105                         |;
106
107                         my $sth_update = $dbh->prepare(qq{
108                         update items set datelastseen = now() where barcode = ?
109                         });
110                         $sth_update->execute( $barcode );
111
112                         my $sth_inventura = $dbh->prepare(qq{
113                         insert ignore into fer_inventura (date_scanned,barcode,source_id) values (date(now()), ?, ?)
114                         });
115                         $sth_inventura->execute( $barcode, C4::Context->userenv->{'id'} );
116
117                         my $sth_issues = $dbh->prepare(qq{
118                         select firstname,surname,userid,email from issues join borrowers on issues.borrowernumber = borrowers.borrowernumber where itemnumber = ?
119                         });
120
121                         $sth_issues->execute( $row->{'itemnumber'} );
122                         while ( my $row = $sth_issues->fetchrow_hashref ) {
123                                 warn "# issues row ",dump($row);
124                                 print "issued to ", $row->{firstname}, ' ', $row->{surname}, " returning...";
125                                 AddReturn( $barcode, C4::Context->userenv->{'branch'} );
126                         }
127         } else {
128                         print "no barcode $barcode\n";
129                         warn "ERROR: can't find $barcode\n";
130         }
131
132 }
133
134 end_body:
135
136 print qq{
137 </body>
138 </html>
139 };