koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/reports inventory.pl [rel_2_2]


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha/reports inventory.pl [rel_2_2]
Date: Tue, 31 Jan 2006 11:06:42 +0000

CVSROOT:        /cvsroot/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     Henri-Damien LAURENT <address@hidden>   06/01/31 11:06:42

Modified files:
        reports        : inventory.pl 

Log message:
        Adding barcode file support for inventory/Stocktaking

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/reports/inventory.pl.diff?only_with_tag=rel_2_2&tr1=1.1&tr2=1.1.4.1&r1=text&r2=text

Patches:
Index: koha/reports/inventory.pl
diff -u /dev/null koha/reports/inventory.pl:1.1.4.1
--- /dev/null   Tue Jan 31 11:06:42 2006
+++ koha/reports/inventory.pl   Tue Jan 31 11:06:42 2006
@@ -0,0 +1,128 @@
+#!/usr/bin/perl
+
+# Copyright 2000-2002 Katipo Communications
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# 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
+
+use strict;
+use CGI;
+use C4::Auth;
+use C4::Context;
+use C4::Output;
+use C4::Interface::CGI::Output;
+use C4::Circulation::Circ2;
+use C4::Date;
+use HTML::Template;
+
+# Fixed variables
+my $linecolor1='#ffffcc';
+my $linecolor2='white';
+my $backgroundimage="/images/background-mem.gif";
+my $script_name="/cgi-bin/koha/admin/branches.pl";
+my $pagepagesize=20;
+
+
+#######################################################################################
+# Main loop....
+my $input = new CGI;
+my $minlocation=$input->param('minlocation');
+my $maxlocation=$input->param('maxlocation');
+$maxlocation=$minlocation.'Z' unless $maxlocation;
+my $datelastseen = $input->param('datelastseen');
+my $offset = $input->param('offset');
+my $markseen = $input->param('markseen');
+$offset=0 unless $offset;
+my $pagesize = $input->param('pagesize');
+$pagesize=20 unless $pagesize;
+my $uploadbarcodes = $input->param('uploadbarcodes');
+# warn "uploadbarcodes : ".$uploadbarcodes;
+
+my ($template, $borrowernumber, $cookie)
+    = get_template_and_user({template_name => "reports/inventory.tmpl",
+                            query => $input,
+                            type => "intranet",
+                            authnotrequired => 0,
+                            flagsrequired => {editcatalogue => 1},
+                            debug => 1,
+                            });
+$template->param(minlocation => $minlocation,
+                               maxlocation => $maxlocation,
+                               offset => $offset,
+                               pagesize => $pagesize,
+                               datelastseen => $datelastseen,
+                               );
+if ($uploadbarcodes && length($uploadbarcodes)>0){
+       my $dbh=C4::Context->dbh;
+       my $date=format_date($input->param('setdate'));
+       $date = format_date("today") unless $date;
+#      warn "$date";
+       my $strsth="update items set (datelastseen = $date) where items.barcode 
=?";
+       my $qupdate = $dbh->prepare($strsth);
+       my $strsth="select * from issues, items where 
items.itemnumber=issues.itemnumber and items.barcode =? and issues.returndate 
is null";
+       my $qonloan = $dbh->prepare($strsth);
+       my $strsth="select * from items where items.barcode =? and 
issues.wthdrawn=1";
+       my $qwthdrawn = $dbh->prepare($strsth);
+       my @errorloop;
+       my $count=0;
+       while (my $barcode=<$uploadbarcodes>){
+               chomp $barcode;
+#              warn "$barcode";
+               if ($qwthdrawn->execute($barcode) &&$qwthdrawn->rows){
+                       push @errorloop, 
{'barcode'=>$barcode,'ERR_WTHDRAWN'=>1};
+               }else{
+                       $qupdate->execute($barcode);
+                       $count += $qupdate->rows;
+#                      warn "$count";
+                       if ($count){
+                               $qonloan->execute($barcode);
+                               if ($qonloan->rows){
+                                       my $data = $qonloan->fetchrow_hashref;
+                                       my ($doreturn, $messages, 
$iteminformation, $borrower) =returnbook($barcode, $data->{homebranch});
+                                       if ($doreturn){push @errorloop, 
{'barcode'=>$barcode,'ERR_ONLOAN_RET'=>1}}
+                                       else {push @errorloop, 
{'barcode'=>$barcode,'ERR_ONLOAN_NOT_RET'=>1}}
+                               }
+                       } else {
+                               push @errorloop, 
{'barcode'=>$barcode,'ERR_BARCODE'=>1};
+                       }
+               }
+       }
+       $qupdate->finish;
+       $qonloan->finish;
+       $qwthdrawn->finish;
+       $template->param(date=>$date,Number=>$count);
+#      $template->param(errorfile=>$errorfile) if ($errorfile);
+       $template->param(errorloop=>address@hidden) if (@errorloop);
+}else{
+       if ($markseen) {
+               foreach my $field ($input->param) {
+                       if ($field =~ /SEEN-(.*)/) {
+                               &itemseen($1);
+                       }
+               }
+       }
+       if ($minlocation) {
+               my $res = 
C4::Circulation::Circ2::listitemsforinventory($minlocation,$maxlocation,$datelastseen,$offset,$pagesize);
+               $template->param(loop =>$res,
+                                               nextoffset => 
($offset+$pagesize),
+                                               prevoffset => 
($offset?$offset-$pagesize:0),
+                                               );
+       }
+}
+output_html_with_http_headers $input, $cookie, $template->output;
+
+# Local Variables:
+# tab-width: 8
+# End:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]