3 # Copyright 2000-2002 Katipo Communications
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 2 of the License, or (at your option) any later
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along with
17 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
18 # Suite 330, Boston, MA 02111-1307 USA
29 use C4::Interface::CGI::Output;
35 my $op = $query->param('op');
36 my $dbh = C4::Context->dbh;
37 my $subscriptionid = $query->param('subscriptionid');
38 my $auser = $query->param('user');
39 my $histstartdate = format_date_in_iso($query->param('histstartdate'));
40 my $enddate = format_date_in_iso($query->param('enddate'));
41 my $recievedlist = $query->param('recievedlist');
42 my $missinglist = $query->param('missinglist');
43 my $opacnote = $query->param('opacnote');
44 my $librariannote = $query->param('librariannote');
45 my @serialids = $query->param('serialid');
46 my @serialseqs = $query->param('serialseq');
47 my @planneddates = $query->param('planneddate');
48 my @publisheddates = $query->param('publisheddate');
49 my @status = $query->param('status');
51 my ($template, $loggedinuser, $cookie)
52 = get_template_and_user({template_name => "serials/statecollection.tmpl",
56 flagsrequired => {catalogue => 1},
60 my $hassubscriptionexpired = HasSubscriptionExpired($subscriptionid);
61 my $subscription=GetSubscription($subscriptionid);
64 if ($op eq 'modsubscriptionhistory') {
65 ModSubscriptionHistory($subscriptionid,$histstartdate,$enddate,$recievedlist,$missinglist,$opacnote,$librariannote);
67 # change status except, if subscription has expired, for the "waited" issue.
68 if ($op eq 'modserialstatus') {
69 my $sth = GetSerialStatusFromSerialId();
70 for (my $i=0;$i<=$#serialids;$i++) {
71 $sth->execute($serialids[$i]);
73 my ($oldstatus) = $sth->fetchrow;
75 ModSerialStatus($serialids[$i],$serialseqs[$i],format_date_in_iso($publisheddates[$i]),($planneddates[$i]?format_date_in_iso($planneddates[$i]):format_date_in_iso(localtime(time()))),$status[$i],$notes[$i]) unless ($hassubscriptionexpired && $oldstatus == 1);
76 if (($status[$i]==2) && C4::Context->preference("serialsadditems")){
78 $info{branch}=$homebranches[$i];
79 # $info{barcode}=$barcodes[$i];
80 $info{itemcallnumber}=$itemcallnumbers[$i];
81 $info{location}=$locations[$i];
82 $info{status}=$itemstatus[$i];
83 $info{notes}=$serialseqs[$i];
84 my ($status, @errors)= ItemizeSerials($serialids[$i],\%info);
88 if ($serialseqs[$i]) {
89 my $subscription=GetSubscription($subscriptionid);
90 NewIssue($serialseqs[$i],$subscriptionid,$subscription->{biblionumber},$status[$i], format_date_in_iso($planneddates[$i]));
92 if (($status[$i]==2) && C4::Context->preference("serialsadditems") && !HasSubscriptionExpired($subscriptionid)){
94 $info{branch}=$homebranches[$i];
95 # $info{barcode}=$barcodes[$i];
96 $info{itemcallnumber}=$itemcallnumbers[$i];
97 $info{location}=$locations[$i];
98 $info{status}=$itemstatus[$i];
99 $info{notes}=$serialseqs[$i];
100 my ($status, @errors)= ItemizeSerials($serialids[$i],\%info);
105 my $subs = &GetSubscription($subscriptionid);
106 my ($totalissues,@serialslist) = GetSerials($subscriptionid,10);
108 my $sth= GetSubscriptionHistoryFromSubscriptionId();
110 $sth->execute($subscriptionid);
111 my $solhistory = $sth->fetchrow_hashref;
113 my $subs = &GetSubscription($subscriptionid);
114 my ($totalissues,@serialslist) = GetSerials($subscriptionid);
116 if (C4::Context->preference("serialsadditems")){
117 my $bibid=MARCfind_MARCbibid_from_oldbiblionumber($dbh,$subscription->{biblionumber});
118 my $fwk=MARCfind_frameworkcode($dbh,$bibid);
120 my $branches = getbranches;
122 foreach my $thisbranch (keys %$branches) {
123 my %row =(value => $thisbranch,
124 branchname => $branches->{$thisbranch}->{'branchname'},
126 push @branchloop, \%row;
129 my $itemstatushash = getitemstatus($fwk);
131 foreach my $thisitemstatus (keys %$itemstatushash) {
132 my %row =(itemval => $thisitemstatus,
133 itemlib => $itemstatushash->{$thisitemstatus},
135 push @itemstatusloop, \%row;
138 my $itemlocationhash = getitemlocation($fwk);
139 my @itemlocationloop;
140 foreach my $thisitemlocation (keys %$itemlocationhash) {
141 my %row =(value => $thisitemlocation,
142 itemlocationname => $itemlocationhash->{$thisitemlocation},
144 push @itemlocationloop, \%row;
146 foreach my $data (@serialslist){
147 if (scalar(@itemstatusloop)){$data->{"itemstatusloop"}=\@itemstatusloop;}
148 else { $data->{"itemstatusloop"}=[];}
149 if (scalar(@itemlocationloop)){$data->{"itemlocationloop"}=\@itemlocationloop;}
150 else {$data->{"itemlocationloop"}=[];}
151 $data->{"branchloop"}=\@branchloop ;
153 $template->param(serialadditems =>C4::Context->preference("serialsadditems"),
154 branchloop => \@branchloop,
156 $template->param(itemstatus=>1,itemstatusloop=>\@itemstatusloop) if (scalar(@itemstatusloop));
157 $template->param(itemlocation=>1,itemlocationloop=>\@itemlocationloop) if (scalar(@itemlocationloop));
159 $template->param(branchloop=>[],itemstatusloop=>[],itemlocationloop=>[]) ;
162 my $sth= GetSubscriptionHistoryFromSubscriptionId();
163 $sth->execute($subscriptionid);
164 my $solhistory = $sth->fetchrow_hashref;
168 serialslist => \@serialslist,
169 biblionumber => $subscription->{biblionumber},
170 histstartdate => format_date($solhistory->{'histstartdate'}),
171 enddate => format_date($solhistory->{'enddate'}),
172 recievedlist => $solhistory->{'recievedlist'},
173 missinglist => $solhistory->{'missinglist'},
174 opacnote => $solhistory->{'opacnote'},
175 librariannote => $solhistory->{'librariannote'},
176 subscriptionid => $subscriptionid,
177 bibliotitle => $subs->{bibliotitle},
178 biblionumber => $subs->{biblionumber},
179 hassubscriptionexpired =>$hassubscriptionexpired,
180 intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
181 intranetstylesheet => C4::Context->preference("intranetstylesheet"),
182 IntranetNav => C4::Context->preference("IntranetNav"),
184 output_html_with_http_headers $query, $cookie, $template->output;