Merging in katipo changes for serials
authorbob_lyon <bob_lyon>
Thu, 20 Jul 2006 03:22:15 +0000 (03:22 +0000)
committerbob_lyon <bob_lyon>
Thu, 20 Jul 2006 03:22:15 +0000 (03:22 +0000)
serials/claims.pl [new file with mode: 0755]
serials/lateissues-excel.pl [new file with mode: 0755]
serials/lateissues.pl
serials/member-search.pl [new file with mode: 0755]
serials/reorder_members.pl [new file with mode: 0755]

diff --git a/serials/claims.pl b/serials/claims.pl
new file mode 100755 (executable)
index 0000000..b6e1954
--- /dev/null
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+
+use strict;
+use CGI;
+use C4::Auth;
+use C4::Serials;
+use C4::Acquisition;
+use C4::Output;
+use C4::Interface::CGI::Output;
+use C4::Context;
+use HTML::Template;
+use Data::Dumper;
+
+my $query = new CGI;
+
+my $serialid = $query->param('serialid');
+my $op = $query->param('op');
+my $claimletter = $query->param('claimletter');
+my $supplierid = $query->param('supplierid');
+my %supplierlist = GetSuppliersWithLateIssues;
+my @select_supplier;
+
+foreach my $supplierid (keys %supplierlist){
+        my ($count, @dummy) = GetMissingIssues($supplierid);
+        my $counting = $count;
+        $supplierlist{$supplierid} = $supplierlist{$supplierid}." ($counting)";
+       push @select_supplier, $supplierid
+}
+
+my @select_letter = (1,2,3,4);
+my %letters = (1=>'Claim Form 1',2=>'Claim Form 2',3=>'Claim Form 3',4=>'Claim Form 4');
+my ($count2, @missingissues) = GetMissingIssues($supplierid,$serialid);
+
+my $CGIsupplier=CGI::scrolling_list( -name     => 'supplierid',
+                       -values   => \@select_supplier,
+                       -default  => $supplierid,
+                       -labels   => \%supplierlist,
+                       -size     => 1,
+                       -multiple => 0 );
+
+my $CGIletter=CGI::scrolling_list( -name     => 'claimletter',
+                       -values   => \@select_letter,
+                       -default  => $claimletter,
+                       -labels   => \%letters,
+                       -size     => 1,
+                       -multiple => 0 );
+my ($singlesupplier,@supplierinfo);
+if($supplierid){
+   ($singlesupplier,@supplierinfo)=bookseller($supplierid);
+} else { # set up supplierid for the claim links out of main table if all suppliers is chosen
+   for(my $i=0; $i<@missingissues;$i++){
+       $missingissues[$i]->{'supplierid'} = getsupplierbyserialid($missingissues[$i]->{'serialid'});
+   }
+}
+
+
+my $preview=0;
+if($op eq 'preview'){
+    $preview = 1;
+}
+
+my ($template, $loggedinuser, $cookie)
+= get_template_and_user({template_name => "serials/claims.tmpl",
+                               query => $query,
+                               type => "intranet",
+                               authnotrequired => 0,
+                               flagsrequired => {catalogue => 1},
+                               debug => 1,
+                               });
+
+$template->param(
+       CGIsupplier => $CGIsupplier,
+       CGIletter => $CGIletter,
+        preview => $preview,
+        missingissues => \@missingissues,
+        supplierid => $supplierid,
+        claimletter => $claimletter,
+        singlesupplier => $singlesupplier,
+        supplierloop => \@supplierinfo,
+       intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
+               intranetstylesheet => C4::Context->preference("intranetstylesheet"),
+               IntranetNav => C4::Context->preference("IntranetNav"),
+       );
+output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/serials/lateissues-excel.pl b/serials/lateissues-excel.pl
new file mode 100755 (executable)
index 0000000..19e31fb
--- /dev/null
@@ -0,0 +1,121 @@
+#!/usr/bin/perl
+
+use strict;
+use CGI;
+use C4::Auth;
+use C4::Serials;
+use C4::Acquisition;
+use C4::Output;
+use C4::Interface::CGI::Output;
+use C4::Context;
+use HTML::Template;
+# use Date::Manip;
+use Text::CSV_XS;
+
+
+# &Date_Init("DateFormat=non-US"); # set non-USA date, eg:19/08/2005
+
+
+my $csv = Text::CSV_XS->new(
+        {
+            'quote_char'  => '"',
+            'escape_char' => '"',
+            'sep_char'    => ',',
+            'binary'      => 1
+        }
+    );
+
+
+my $query = new CGI;
+my $supplierid = $query->param('supplierid');
+my @serialid = $query->param('serialid');
+my $op = $query->param('op');
+my $serialidcount = @serialid;
+
+my %supplierlist = GetSuppliersWithLateIssues;
+my @select_supplier;
+
+my @loop1;
+my ($count, @lateissues);
+if($op ne 'claims'){
+    ($count, @lateissues) = GetLateIssues($supplierid);
+    for (my $i=0;$i<@lateissues;$i++){
+        my @rows1 = ($lateissues[$i]->{'name'},          # lets build up a row
+                    $lateissues[$i]->{'title'}, 
+                     $lateissues[$i]->{'serialseq'},
+                     $lateissues[$i]->{'planneddate'},
+                     );
+        push (@loop1, \@rows1);
+    }
+}
+my $totalcount2 = 0;
+my @loop2;
+my ($count2, @missingissues);
+for (my $k=0;$k<@serialid;$k++){
+    ($count2, @missingissues) = GetMissingIssues($supplierid, $serialid[$k]);
+
+    for (my $j=0;$j<@missingissues;$j++){
+       my @rows2 = ($missingissues[$j]->{'name'},          # lets build up a row
+                    $missingissues[$j]->{'title'}, 
+                     $missingissues[$j]->{'serialseq'},
+                     $missingissues[$j]->{'planneddate'},
+                     );
+        push (@loop2, \@rows2);
+    }
+    $totalcount2 = $totalcount2 + $count2;
+    # update claim date to let one know they have looked at this missing item
+    updateClaim($serialid[$k]);
+}
+
+my $heading ='';
+my $filename ='';
+if($supplierid){
+    if($missingissues[0]->{'name'}){ # if exists display supplier name in heading for neatness
+       # not necessarily needed as the name will appear in supplier column also
+        $heading = "FOR $missingissues[0]->{'name'}";
+       $filename = "_$missingissues[0]->{'name'}"; 
+    }
+}
+
+print $query->header(
+        -type       => 'application/vnd.ms-excel',
+        -attachment => "claims".$filename.".csv",
+    );
+
+if($op ne 'claims'){
+    print "LATE ISSUES ".$heading."\n\n";
+    print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
+
+    for my $row ( @loop1 ) {
+    
+        $csv->combine(@$row);
+        my $string = $csv->string;
+        print $string, "\n";
+    }
+
+    print ",,,,,,,\n\n";
+}
+if($serialidcount == 1){
+    print "MISSING ISSUE ".$heading."\n\n";
+} else {
+    print "MISSING ISSUES ".$heading."\n\n";
+}
+print "SUPPLIER,TITLE,ISSUE NUMBER,LATE SINCE\n";
+
+for my $row ( @loop2 ) {
+    
+        $csv->combine(@$row);
+        my $string = $csv->string;
+        print $string, "\n";
+    }
+
+print ",,,,,,,\n";
+print ",,,,,,,\n";
+if($op ne 'claims'){
+    print ",,Total Number Late, $count\n";
+}
+if($serialidcount == 1){
+
+} else {
+    print ",,Total Number Missing, $totalcount2\n";
+}
index 2762d4a..db2ecf3 100755 (executable)
@@ -58,6 +58,10 @@ my %supplierlist = GetSuppliersWithLateIssues;
 my @select_supplier;
 push @select_supplier,"";
 foreach my $supplierid (keys %supplierlist){
+    my ($count, @dummy) = GetLateIssues($supplierid);
+    my ($count2, @dummy2) = GetMissingIssues($supplierid);
+    my $counting = $count+$count2;
+    $supplierlist{$supplierid} = $supplierlist{$supplierid}." ($counting)";
     push @select_supplier, $supplierid
 }
 my $CGIsupplier=CGI::scrolling_list(
@@ -69,7 +73,11 @@ my $CGIsupplier=CGI::scrolling_list(
             -multiple => 0 );
 
 my @lateissues;
-@lateissues = GetLateIssues($supplierid) if $supplierid;
+my $count;
+($count,@lateissues) = GetLateIssues($supplierid) if $supplierid;
+my @missingissues;
+my $count2;
+($count2, @missingissues) = GetMissingIssues($supplierid) if $supplierid;
 my @supplierinfo;
 my $nothing;
 ($nothing,@supplierinfo)=GetBookSeller($supplierid) if $supplierid;
@@ -86,6 +94,8 @@ my ($template, $loggedinuser, $cookie)
 $template->param(
     CGIsupplier => $CGIsupplier,
     lateissues => \@lateissues,
+    missingissues => \@missingissues,
+    supplierid => $supplierid,    
     phone => $supplierinfo[0]->{phone},
     booksellerfax => $supplierinfo[0]->{booksellerfax},
     bookselleremail => $supplierinfo[0]->{bookselleremail},
diff --git a/serials/member-search.pl b/serials/member-search.pl
new file mode 100755 (executable)
index 0000000..54e87a9
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+
+# Member Search.pl script used to search for members to add to a routing list
+use strict;
+use CGI;
+use C4::Koha;
+use C4::Auth;
+use C4::Date;
+use C4::Output;
+use C4::Acquisition;
+use C4::Interface::CGI::Output;
+use C4::Context;
+use HTML::Template;
+use C4::Search;
+use C4::Serials;
+
+my $query = new CGI;
+my $subscriptionid = $query->param('subscriptionid');
+my $op = $query->param('op');
+my $searchstring = $query->param('member');
+my $dbh = C4::Context->dbh;
+
+my $env;    
+    
+    my ($template, $loggedinuser, $cookie)
+= get_template_and_user({template_name => "serials/member-search.tmpl",
+                               query => $query,
+                               type => "intranet",
+                               authnotrequired => 0,
+                               flagsrequired => {catalogue => 1},
+                               debug => 1,
+                               });
+
+
+if($searchstring){
+    my ($count, $members) = &BornameSearch($env, $searchstring, "surname", "advanced");
+    
+    $template->param(
+       subscriptionid => $subscriptionid,
+           memberloop => $members,
+               member => $searchstring,
+    );
+} else {
+    $template->param(
+       subscriptionid => $subscriptionid,
+    );
+}
+        output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/serials/reorder_members.pl b/serials/reorder_members.pl
new file mode 100755 (executable)
index 0000000..ee498d5
--- /dev/null
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+# Routing.pl script used to create a routing list for a serial subscription
+# In this instance it is in fact a setting up of a list of reserves for the item
+# where the hierarchical order can be changed on the fly and a routing list can be
+# printed out
+use strict;
+use CGI;
+use C4::Koha;
+use C4::Auth;
+use C4::Date;
+use C4::Output;
+use C4::Acquisition;
+use C4::Interface::CGI::Output;
+use C4::Context;
+use HTML::Template;
+use C4::Search;
+use C4::Serials;
+use Data::Dumper;
+
+my $query = new CGI;
+my $subscriptionid = $query->param('subscriptionid');
+my $routingid = $query->param('routingid');
+my $rank = $query->param('rank');
+
+reorder_members($subscriptionid,$routingid,$rank);
+
+print $query->redirect("/cgi-bin/koha/serials/routing.pl?subscriptionid=$subscriptionid");
+