--- /dev/null
+#!/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;
--- /dev/null
+#!/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";
+}
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(
-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;
$template->param(
CGIsupplier => $CGIsupplier,
lateissues => \@lateissues,
+ missingissues => \@missingissues,
+ supplierid => $supplierid,
phone => $supplierinfo[0]->{phone},
booksellerfax => $supplierinfo[0]->{booksellerfax},
bookselleremail => $supplierinfo[0]->{bookselleremail},
--- /dev/null
+#!/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;
--- /dev/null
+#!/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");
+