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
32 * modsubscriptionhistory :to modify the subscription history
33 * serialchangestatus :to modify the status of this subscription
73 use C4::Interface::CGI::Output;
79 my $op = $query->param('op');
80 my $dbh = C4::Context->dbh;
81 my $subscriptionid = $query->param('subscriptionid');
82 my $auser = $query->param('user');
83 my $histstartdate = format_date_in_iso($query->param('histstartdate'));
84 my $enddate = format_date_in_iso($query->param('enddate'));
85 my $recievedlist = $query->param('recievedlist');
86 my $missinglist = $query->param('missinglist');
87 my $opacnote = $query->param('opacnote');
88 my $librariannote = $query->param('librariannote');
89 my @serialids = $query->param('serialid');
90 my @serialseqs = $query->param('serialseq');
91 my @planneddates = $query->param('planneddate');
92 my @notes = $query->param('notes');
93 my @status = $query->param('status');
94 # my @publisheddates = $query->param('publisheddates');
97 my ($template, $loggedinuser, $cookie)
98 = get_template_and_user({template_name => "serials/serials-recieve.tmpl",
101 authnotrequired => 0,
102 flagsrequired => {catalogue => 1},
106 my $hassubscriptionexpired = HasSubscriptionExpired($subscriptionid);
107 my $subscription=GetSubscription($subscriptionid);
110 if ($op eq 'modsubscriptionhistory') {
111 ModSubscriptionHistory($subscriptionid,$histstartdate,$enddate,$recievedlist,$missinglist,$opacnote,$librariannote);
113 # change status except, if subscription has expired, for the "waited" issue.
114 if ($op eq 'serialchangestatus') {
115 my $sth = $dbh->prepare("select status from serial where serialid=?");
116 for (my $i=0;$i<=$#serialids;$i++) {
117 $sth->execute($serialids[$i]);
118 my ($oldstatus) = $sth->fetchrow;
119 if ($serialids[$i]) {
120 ModSerialStatus($serialids[$i],$serialseqs[$i],format_date_in_iso($planneddates[$i]),$status[$i],$notes[$i]) unless ($hassubscriptionexpired && $oldstatus == 1);
122 # add a special issue
123 if ($serialseqs[$i]) {
124 my $subscription=getsubscription($subscriptionid);
125 newissue($serialseqs[$i],$subscriptionid,$subscription->{biblionumber},$status[$i], format_date_in_iso($planneddates[$i]));
130 my $subs = &GetSubscription($subscriptionid);
131 my ($totalissues,@serialslist) = GetSerials($subscriptionid,10);
133 my $sth= C4::Serials::GetSubscriptionHistoryFromSubscriptionId();
135 $sth->execute($subscriptionid);
136 my $solhistory = $sth->fetchrow_hashref;
138 my $subs = &GetSubscription($subscriptionid);
139 my ($totalissues,@serialslist) = GetSerials($subscriptionid);
141 if (C4::Context->preference("serialsadditems")){
142 my $bibid=MARCfind_MARCbibid_from_oldbiblionumber($dbh,$subscription->{biblionumber});
143 my $fwk=MARCfind_frameworkcode($dbh,$bibid);
145 my $branches = GetBranches;
147 foreach my $thisbranch (keys %$branches) {
148 my %row =(value => $thisbranch,
149 branchname => $branches->{$thisbranch}->{'branchname'},
151 push @branchloop, \%row;
154 my $itemstatushash = getitemstatus($fwk);
156 foreach my $thisitemstatus (keys %$itemstatushash) {
157 my %row =(itemval => $thisitemstatus,
158 itemlib => $itemstatushash->{$thisitemstatus},
160 push @itemstatusloop, \%row;
163 my $itemlocationhash = getitemlocation($fwk);
164 my @itemlocationloop;
165 foreach my $thisitemlocation (keys %$itemlocationhash) {
166 my %row =(value => $thisitemlocation,
167 itemlocationname => $itemlocationhash->{$thisitemlocation},
169 push @itemlocationloop, \%row;
171 foreach my $data (@serialslist){
172 if (scalar(@itemstatusloop)){$data->{"itemstatusloop"}=\@itemstatusloop;}
173 else { $data->{"itemstatusloop"}=[];}
174 if (scalar(@itemlocationloop)){$data->{"itemlocationloop"}=\@itemlocationloop;}
175 else {$data->{"itemlocationloop"}=[];}
176 $data->{"branchloop"}=\@branchloop ;
178 $template->param(serialadditems =>C4::Context->preference("serialsadditems"),
179 branchloop => \@branchloop,
181 $template->param(itemstatus=>1,itemstatusloop=>\@itemstatusloop) if (scalar(@itemstatusloop));
182 $template->param(itemlocation=>1,itemlocationloop=>\@itemlocationloop) if (scalar(@itemlocationloop));
184 $template->param(branchloop=>[],itemstatusloop=>[],itemlocationloop=>[]) ;
187 my $sth= C4::Serials::GetSubscriptionHistoryFromSubscriptionId();
188 $sth->execute($subscriptionid);
189 my $solhistory = $sth->fetchrow_hashref;
193 serialslist => \@serialslist,
194 biblionumber => $subscription->{biblionumber},
195 histstartdate => format_date($solhistory->{'histstartdate'}),
196 enddate => format_date($solhistory->{'enddate'}),
197 recievedlist => $solhistory->{'recievedlist'},
198 missinglist => $solhistory->{'missinglist'},
199 opacnote => $solhistory->{'opacnote'},
200 librariannote => $solhistory->{'librariannote'},
201 subscriptionid => $subscriptionid,
202 bibliotitle => $subs->{bibliotitle},
203 biblionumber => $subs->{biblionumber},
204 hassubscriptionexpired =>$hassubscriptionexpired,
205 intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
206 intranetstylesheet => C4::Context->preference("intranetstylesheet"),
207 IntranetNav => C4::Context->preference("IntranetNav"),
209 output_html_with_http_headers $query, $cookie, $template->output;