simplest possible mojo web scan barcode app
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 30 Oct 2018 07:29:08 +0000 (08:29 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 30 Oct 2018 07:29:08 +0000 (08:29 +0100)
barcode-seen.pl [new file with mode: 0755]

diff --git a/barcode-seen.pl b/barcode-seen.pl
new file mode 100755 (executable)
index 0000000..405c5df
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/env perl
+use Mojolicious::Lite;
+
+use lib '/srv/koha_ffzg';
+BEGIN {
+       $ENV{KOHA_CONF} = '/etc/koha/sites/ffzg/koha-conf.xml';
+}
+use C4::Context;
+
+use Data::Dump qw(dump);
+
+my $sql = qq{
+select
+       title,
+       author
+from items
+join biblio on biblio.biblionumber = items.biblionumber where barcode = ?
+};
+
+my $dbh = C4::Context->dbh;
+my $sth = $dbh->prepare($sql);
+
+my $sth_update = $dbh->prepare(qq{
+update items set datelastseen = now() where barcode = ?
+});
+
+get '/' => sub {
+       my $c = shift;
+
+       my $barcode = $c->param('barcode');
+       warn "# $barcode";
+       $sth->execute( $barcode );
+       while ( my $row = $sth->fetchrow_hashref ) {
+               warn "# row ",dump($row);
+               $c->stash( $_ => $row->{$_} ) foreach keys %$row;
+       }
+       $sth_update->execute( $barcode );
+       $c->render(template => 'index');
+};
+
+app->start;
+__DATA__
+
+@@ index.html.ep
+% layout 'default';
+
+%= form_for '/' => begin
+       %#= text_field 'barcode'
+       <input name=barcode size=10 autofocus>
+       %= submit_button 'Scan'
+% end
+
+<%= stash('author') %>
+<b><%= stash('title') %></b>
+
+@@ layouts/default.html.ep
+<!DOCTYPE html>
+<html>
+  <head>
+  <style>
+       body {
+               font-size: 800%;
+       }
+  </style>
+  <title>Inventura</title>
+</head>
+  <body><%= content %></body>
+</html>