FROM subscription
LEFT JOIN serial ON serial.subscriptionid=subscription.subscriptionid
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
- WHERE id > 0 AND ((planneddate < now() AND serial.status=1) OR serial.STATUS = 3 OR serial.STATUS = 4) ORDER BY name|;
+ WHERE id > 0
+ AND (
+ (planneddate < now() AND serial.status=1)
+ OR serial.STATUS = 3 OR serial.STATUS = 4
+ )
+ AND subscription.closed = 0
+ ORDER BY name|;
return $dbh->selectall_arrayref($query, { Slice => {} });
}
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
WHERE ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3)
AND subscription.aqbooksellerid=?
+ AND subscription.closed = 0
ORDER BY title
|;
$sth = $dbh->prepare($query);
LEFT JOIN biblio ON biblio.biblionumber = subscription.biblionumber
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
WHERE ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3)
+ AND subscription.closed = 0
ORDER BY title
|;
$sth = $dbh->prepare($query);
push @where_args, $args->{biblionumber};
}
if( $args->{title} ){
- push @where_strs, "biblio.title LIKE ?";
- push @where_args, "%$args->{title}%";
+ my @words = split / /, $args->{title};
+ my (@strs, @args);
+ foreach my $word (@words) {
+ push @strs, "biblio.title LIKE ?";
+ push @args, "%$word%";
+ }
+ if (@strs) {
+ push @where_strs, '(' . join (' AND ', @strs) . ')';
+ push @where_args, @args;
+ }
}
if( $args->{issn} ){
push @where_strs, "biblioitems.issn LIKE ?";
push @where_strs, "subscription.branchcode = ?";
push @where_args, "$args->{branch}";
}
-
+ if( defined $args->{closed} ){
+ push @where_strs, "subscription.closed = ?";
+ push @where_args, "$args->{closed}";
+ }
if(@where_strs){
$query .= " WHERE " . join(" AND ", @where_strs);
}
return @{$occurences};
}
+=head2 CloseSubscription
+Close a subscription given a subscriptionid
+=cut
+sub CloseSubscription {
+ my ( $subscriptionid ) = @_;
+ return unless $subscriptionid;
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->prepare( qq{
+ UPDATE subscription
+ SET closed = 1
+ WHERE subscriptionid = ?
+ } );
+ $sth->execute( $subscriptionid );
+
+ # Set status = missing when status = stopped
+ $sth = $dbh->prepare( qq{
+ UPDATE serial
+ SET status = 8
+ WHERE subscriptionid = ?
+ AND status = 1
+ } );
+ $sth->execute( $subscriptionid );
+}
+
+=head2 ReopenSubscription
+Reopen a subscription given a subscriptionid
+=cut
+sub ReopenSubscription {
+ my ( $subscriptionid ) = @_;
+ return unless $subscriptionid;
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->prepare( qq{
+ UPDATE subscription
+ SET closed = 0
+ WHERE subscriptionid = ?
+ } );
+ $sth->execute( $subscriptionid );
+
+ # Set status = expected when status = stopped
+ $sth = $dbh->prepare( qq{
+ UPDATE serial
+ SET status = 1
+ WHERE subscriptionid = ?
+ AND status = 8
+ } );
+ $sth->execute( $subscriptionid );
+}
+
1;
__END__
$cell{branchcode} = $subscription->{branchcode};
$cell{branchname} = GetBranchName($subscription->{branchcode});
$cell{hasalert} = $subscription->{hasalert};
+ $cell{callnumber} = $subscription->{callnumber};
+ $cell{closed} = $subscription->{closed};
#get the three latest serials.
$serials_to_display = $subscription->{staffdisplaycount};
$serials_to_display = C4::Context->preference('StaffSerialIssueDisplayCount') unless $serials_to_display;
`opacdisplaycount` VARCHAR(10) NULL,
`graceperiod` int(11) NOT NULL default '0',
`enddate` date default NULL,
+ `closed ` INT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`subscriptionid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SetVersion ($DBversion);
}
-
$DBversion = "3.09.00.062";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do("UPDATE systempreferences SET value=0 WHERE variable='NoZebra'");
SetVersion($DBversion);
}
+$DBversion = "3.11.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(qq{
+ ALTER TABLE subscription ADD COLUMN closed INT(1) NOT NULL DEFAULT 0 AFTER enddate;
+ });
+
+ print "Upgrade to $DBversion done (Bug 8782: Add field subscription.closed)\n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
=head2 TableExists($table)
[% IF ( subscriptionid ) %]
<ul>
<li><a href="serials-collection.pl?subscriptionid=[% subscriptionid %]">Serial collection</a></li>
+ [% UNLESS closed %]
[% IF ( routing && CAN_user_serials_routing ) %]
[% IF ( hasRouting ) %]
<li><a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscriptionid %]">Edit routing list</a></li>
<li><a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscriptionid %]&op=new">Create routing list</a></li>
[% END %]
[% END %]
+ [% END %]
</ul>
[% END %]
<div id="toolbar"><script type="text/javascript">
//<![CDATA[
+ function confirm_close() {
+ var is_confirmed = confirm(_("Are you sure you want to close this subscription?"));
+ if (is_confirmed) {
+ window.location="subscription-detail.pl?subscriptionid=[% subscriptionid %]&op=close";
+ }
+ }
+ function confirm_reopen() {
+ var is_confirmed = confirm(_("Are you sure you want to reopen this subscription?"));
+ if (is_confirmed) {
+ window.location="subscription-detail.pl?subscriptionid=[% subscriptionid %]&op=reopen";
+ }
+ }
// prepare DOM for YUI Toolbar
$(document).ready(function() {
[% END %]
new YAHOO.widget.Button("renew");
new YAHOO.widget.Button("receive");
+ new YAHOO.widget.Button("close");
+ new YAHOO.widget.Button("reopen");
[% END %]
}
</script>
<ul class="toolbar">
[% IF ( CAN_user_serials_create_subscription ) %]
- [% IF ( biblionumber_for_new_subscription ) %]
- <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl?biblionumber_for_new_subscription=[% biblionumber_for_new_subscription %]">New subscription</a></li>
- [% ELSE %]
- <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl">New subscription</a></li>
- [% END %]
+ [% IF ( biblionumber_for_new_subscription ) %]
+ <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl?biblionumber_for_new_subscription=[% biblionumber_for_new_subscription %]">New subscription</a></li>
+ [% ELSE %]
+ <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl">New subscription</a></li>
+ [% END %]
[% END %]
[% IF ( CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription ) %]
- [% IF ( subscriptionid ) %]
+ [% IF ( subscriptionid ) %]
- [% IF ( CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription ) %]
- [% UNLESS ( cannotedit ) %]
- <li id="editmenuc"><a id="edit" href="/cgi-bin/koha/serials/subscription-add.pl?op=modify&subscriptionid=[% subscriptionid %]">Edit</a></li>
- [% END %]
- [% END %]
+ [% IF ( CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription ) %]
+ [% UNLESS ( cannotedit ) %]
+ <li id="editmenuc"><a id="edit" href="/cgi-bin/koha/serials/subscription-add.pl?op=modify&subscriptionid=[% subscriptionid %]">Edit</a></li>
+ [% END %]
+ [% END %]
- [% IF ( CAN_user_serials_create_subscription ) %]
- <li><a id="duplicate" href="/cgi-bin/koha/serials/subscription-add.pl?op=dup&subscriptionid=[% subscriptionid %]">Duplicate </a></li>
- [% END %]
+ [% IF ( CAN_user_serials_create_subscription ) %]
+ <li><a id="duplicate" href="/cgi-bin/koha/serials/subscription-add.pl?op=dup&subscriptionid=[% subscriptionid %]">Duplicate </a></li>
+ [% END %]
- [% UNLESS ( cannotedit ) %]
- [% IF ( CAN_user_serials_renew_subscription ) %]
- <li id="renewc"><a id="renew" href="#" onclick="popup([% subscriptionid %])">Renew </a></li>
- [% END %]
- [% IF ( CAN_user_serials_receive_serials ) %]
- <li><a id="receive" href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscriptionid %]&serstatus=1,3">Receive</a></li>
- [% END %]
- [% IF ( CAN_user_serials_delete_subscription ) %]
- <li><a id="delete" href="javascript:confirm_deletion()">Delete</a></li>
- [% END %]
- [% END %]
- [% END %]
+ [% UNLESS ( cannotedit ) %]
+ [% UNLESS closed %]
+ [% IF ( CAN_user_serials_renew_subscription ) %]
+ <li id="renewc"><a id="renew" href="#" onclick="popup([% subscriptionid %])">Renew </a></li>
+ [% END %]
+ [% END %]
+ [% IF ( CAN_user_serials_receive_serials ) %]
+ [% UNLESS closed %]
+ <li><a id="receive" href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscriptionid %]&serstatus=1,3">Receive</a></li>
+ [% END %]
+ [% END %]
+ [% IF CAN_user_serials_edit_subscription %]
+ [% IF closed %]
+ <li><a id="reopen" href="javascript:confirm_reopen();">Reopen</a></li>
+ [% ELSE %]
+ <li><a id="close" href="javascript:confirm_close();">Close</a></li>
+ [% END %]
+ [% END %]
+ [% IF ( CAN_user_serials_delete_subscription ) %]
+ <li><a id="delete" href="javascript:confirm_deletion()">Delete</a></li>
+ [% END %]
+ [% END %]
+ [% END %]
[% END %]
</ul>
</div>
[% FOREACH subscription IN subscriptions %]
[% IF ( subscription.branchname ) %]<h3>At library: [% subscription.branchname %]</h3>[% ELSE %]
[% IF ( subscription.branchcode ) %]<h3>At library: [% subscription.branchcode %]</h3>[% END %][% END %]
+ [% IF ( subscription.closed ) %]<p>This subscription is closed.</p>[% END %]
+ [% IF ( subscription.callnumber ) %]<p>Callnumber: [% subscription.callnumber %] </p>[% END %]
[% IF ( subscription.subscriptionnotes ) %]<p>[% subscription.subscriptionnotes FILTER html_line_break %] </p>[% END %]
[% IF ( subscription.missinglist ) %]<p>Missing issues: [% subscription.missinglist %] </p>[% END %]
[% IF ( subscription.librariannote ) %]<p>([% subscription.librariannote %])</p>[% END %]
<tr>
<td>[% latestserial.serialseq %]</td>
<td>[% latestserial.planneddate %]</td>
- <td>[% IF ( latestserial.status1 ) %]Expected
- [% ELSE %]
- [% IF ( latestserial.status2 ) %]Arrived
- [% ELSE %]
- [% IF ( latestserial.status3 ) %]Late
- [% ELSE %]
- [% IF ( latestserial.status4 ) %]Missing
- [% ELSE %]
- [% IF ( latestserial.status5 ) %]Not issued
- [% END %]
- [% END %]
- [% END %]
- [% END %]
- [% END %]</td>
+ <td>
+ [% IF ( latestserial.status1 ) %]Expected[% END %]
+ [% IF ( latestserial.status2 ) %]Arrived[% END %]
+ [% IF ( latestserial.status3 ) %]Late[% END %]
+ [% IF ( latestserial.status4 ) %]Missing[% END %]
+ [% IF ( latestserial.status5 ) %]Not issued[% END %]
+ [% IF ( latestserial.status6 ) %]Delete[% END %]
+ [% IF ( latestserial.status7 ) %]Claimed[% END %]
+ [% IF ( latestserial.status8 ) %]Stopped[% END %]
+ </td>
<td>[% latestserial.notes %]</td>
</tr>
[% END %]
<th>Call number</th>
<th>Subscription begin</th>
<th>Subscription end</th>
+ <th>Expired? / Closed?</th>
</tr>
</thead>
<tbody>
<td>[% data.callnumber %]</td>
<td>[% data.startdate %]</td>
<td>[% data.enddate %]</td>
+ <td>
+ [% IF data.closed %]
+ Closed
+ [% ELSIF data.expired %]
+ Expired
+ [% END %]
+ </td>
</tr>
[% END %]
</tr>
<option>Late</option>
<option>Missing</option>
<option>Claimed</option>
+ <option>Stopped</option>
</select>
</li>
[% IF ( missingissue.status3 ) %]Late[% END %]
[% IF ( missingissue.status4 ) %]Missing[% END %]
[% IF ( missingissue.status7 ) %]Claimed[% END %]
+ [% IF ( missingissue.status8 ) %]Stopped[% END %]
</td>
<td class="planneddate">
[% missingissue.planneddate %]
[% serial.serialseq %]
</td>
<td>
- [% IF ( serial.status1 ) %]Arrived[% END %]
- [% IF ( serial.status2 ) %]Expected[% END %]
- [% IF ( serial.status3 ) %]Late[% END %]
- [% IF ( serial.status4 ) %]Missing[% END %]
- [% IF ( serial.status5 ) %]Not available[% END %]
- [% IF ( serial.status7 ) %]Claimed[% END %]
+ [% IF ( serial.status1 ) %]Expected[% END %]
+ [% IF ( serial.status2 ) %]Arrived[% END %]
+ [% IF ( serial.status3 ) %]Late[% END %]
+ [% IF ( serial.status4 ) %]Missing[% END %]
+ [% IF ( serial.status5 ) %]Not issued[% END %]
+ [% IF ( serial.status6 ) %]Delete[% END %]
+ [% IF ( serial.status7 ) %]Claimed[% END %]
+ [% IF ( serial.status8 ) %]Stopped[% END %]
</td>
</tr>
[% END %]
[% END %]</td>
<td> [% subscription.branchcode %]</td>
<td> [% subscription.callnumber %]</td>
- <td> [% subscription.notes %] [% IF ( subscription.subscriptionexpired ) %]<br /><span class="problem"> Subscription expired</span>
- [% END %]
+ <td> [% subscription.notes %]
+ [% UNLESS subscription.closed %]
+ [% IF ( subscription.subscriptionexpired ) %]
+ <br /><span class="problem"> Subscription expired</span>
+ [% END %]
+ [% ELSE %]
+ <br /> Subscription closed
+ [% END %]
</td>
[% IF ( routing && CAN_user_serials_routing ) %]
<td>
- <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit routing list</a>
+ [% UNLESS subscription.closed %]
+ <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit routing list</a>
+ [% END %]
</td>
[% END %]
- [% IF ( subscription.abouttoexpire ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
- [% ELSE %]
- [% IF ( subscription.subscriptionexpired ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
+ [% UNLESS subscription.closed %]
+ [% IF ( subscription.abouttoexpire ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
+ [% ELSE %]
+ [% IF ( subscription.subscriptionexpired ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
+ [% ELSE %]
+ <td> </td>
+ [% END %]
+ [% END %]
[% ELSE %]
- <td> </td>
- [% END %]
+ <td> </td>
[% END %]
-
</tr>
[% END %]
[% IF ( subscr ) %]
[% IF ( CAN_user_serials_receive_serials ) %]
<p>
<input type="submit" value="Edit serials" />
- <input type="button" value="Generate Next" onclick="javascript:generateNext([% subscriptionidlist %])" />
- [% IF ( subscriptions.size == 1 and !serialsadditems ) %] <input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
+ [% UNLESS subscription.closed %]
+ <input type="button" value="Generate Next" onclick="javascript:generateNext([% subscriptionidlist %])" />
+ [% IF ( subscriptions.size == 1 and !serialsadditems ) %] <input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
+ [% END %]
</p>
[% END %]
<span class="checkall">
[% serial.serialseq %]
</td>
<td>
- [% IF ( serial.status1 ) %]Expected[% END %][% IF ( serial.status2 ) %]Arrived[% END %][% IF ( serial.status3 ) %]Late[% END %][% IF ( serial.status4 ) %]Missing[% END %][% IF ( serial.status5 ) %]Not Available[% END %][% IF ( serial.status7 ) %]Claimed[% END %]
+ [% IF ( latestserial.status1 ) %]Expected[% END %]
+ [% IF ( latestserial.status2 ) %]Arrived[% END %]
+ [% IF ( latestserial.status3 ) %]Late[% END %]
+ [% IF ( latestserial.status4 ) %]Missing[% END %]
+ [% IF ( latestserial.status5 ) %]Not issued[% END %]
+ [% IF ( latestserial.status6 ) %]Delete[% END %]
+ [% IF ( latestserial.status7 ) %]Claimed[% END %]
+ [% IF ( latestserial.status8 ) %]Stopped[% END %]
</td>
<td>
[% serial.notes %]
</td>
<td>
[% IF ( serialslis.editdisable ) %]
- <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="1">
+ <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="[% serialslis.serstatus %]">
<select name="status" size="1" disabled="disabled">
[% ELSE %]
[% IF ( serialslis.serialsadditems ) %]
<select name="status" size="1" id="status[% serialslis.serialid %]" onchange="if (this.value==2 || this.value==7){changeDate(this, '[% serialslis.arriveddate %]')} else {changeDate(this, '[% serialslis.planneddate %]')}" >
[% END %]
[% END %]
- [% IF ( serialslis.status1 ) %]
- <option value="1" selected="selected">Expected</option>
- [% END %]
- [% IF ( serialslis.status2 ) %]
- <option value="2" selected="selected">Arrived</option>
- [% ELSE %]
- <option value="2">Arrived</option>
- [% END %]
- [% IF ( serialslis.status3 ) %]
- <option value="3" selected="selected">Late</option>
- [% ELSE %]
- <option value="3">Late</option>
- [% END %]
- [% IF ( serialslis.status4 ) %]
- <option value="4" selected="selected">Missing</option>
- [% ELSE %]
- <option value="4">Missing</option>
- [% END %]
- [% IF ( serialslis.status7 ) %]
- <option value="7" selected="selected">Claimed</option>
- [% ELSE %]
- <option value="7">Claimed</option>
- [% END %]
- [% IF ( serialslis.status5 ) %]
- <option value="5" selected="selected">Not available</option>
- [% ELSE %]
- <option value="5">Not available</option>
- [% END %]
- [% IF ( serialslis.status6 ) %]
- <option value="6" selected="selected">Delete</option>
- [% ELSE %]
- <option value="6">Delete</option>
- [% END %]
+ [% IF ( serialslis.status1 ) %]
+ <option value="1" selected="selected">Expected</option>
+ [% END %]
+ [% IF ( serialslis.status2 ) %]
+ <option value="2" selected="selected">Arrived</option>
+ [% ELSE %]
+ <option value="2">Arrived</option>
+ [% END %]
+ [% IF ( serialslis.status3 ) %]
+ <option value="3" selected="selected">Late</option>
+ [% ELSE %]
+ <option value="3">Late</option>
+ [% END %]
+ [% IF ( serialslis.status4 ) %]
+ <option value="4" selected="selected">Missing</option>
+ [% ELSE %]
+ <option value="4">Missing</option>
+ [% END %]
+ [% IF ( serialslis.status7 ) %]
+ <option value="7" selected="selected">Claimed</option>
+ [% ELSE %]
+ <option value="7">Claimed</option>
+ [% END %]
+ [% IF ( serialslis.status5 ) %]
+ <option value="5" selected="selected">Not available</option>
+ [% ELSE %]
+ <option value="5">Not available</option>
+ [% END %]
+ [% IF ( serialslis.status6 ) %]
+ <option value="6" selected="selected">Delete</option>
+ [% ELSE %]
+ <option value="6">Delete</option>
+ [% END %]
+ [% IF serialslis.status8 %]
+ <option value="8" selected="selected">Stopped</option>
+ [% END %]
</select>
</td>
<select name="status" size="1" id="addstatus[% newserialloo.serialid %]" onchange="if (this.value==2){unHideItems('items'+'[% newserialloo.subscriptionid %][% newserialloo.serialid %]','label[% newserialloo.subscriptionid %][% newserialloo.serialid %]','[% newserialloo.serialid %]'); changeDate2('[% newserialloo.arriveddate %]')} else if (this.value==7){changeDate('[% newserialloo.arriveddate %]')} else { HideItems('items'+'[% newserialloo.subscriptionid %]'+[% newserialloo.serialid %],'label[% serialslis.subscriptionid %][% serialslis.serialid %]'); changeDate2('[% serialslis.planneddate %]')}" >
<option value="">----</option>
- [% IF ( newserialloo.status1 ) %]
+ [% IF ( newserialloo.status1 ) %]
<option value="1" selected="selected">Expected</option>
- [% END %]
- [% IF ( newserialloo.status2 ) %]
+ [% END %]
+ [% IF ( newserialloo.status2 ) %]
<option value="2" selected="selected">Arrived</option>
- [% ELSE %]
+ [% ELSE %]
<option value="2">Arrived</option>
- [% END %]
- [% IF ( newserialloo.status3 ) %]
+ [% END %]
+ [% IF ( newserialloo.status3 ) %]
<option value="3" selected="selected">Late</option>
- [% ELSE %]
+ [% ELSE %]
<option value="3">Late</option>
- [% END %]
- [% IF ( newserialloo.status4 ) %]
+ [% END %]
+ [% IF ( newserialloo.status4 ) %]
<option value="4" selected="selected">Missing</option>
- [% ELSE %]
+ [% ELSE %]
<option value="4">Missing</option>
- [% END %]
- [% IF ( newserialloo.status7 ) %]
+ [% END %]
+ [% IF ( newserialloo.status7 ) %]
<option value="7" selected="selected">Claimed</option>
- [% ELSE %]
+ [% ELSE %]
<option value="7">Claimed</option>
- [% END %]
- [% IF ( newserialloo.status5 ) %]
+ [% END %]
+ [% IF ( newserialloo.status5 ) %]
<option value="5" selected="selected">Not available</option>
- [% ELSE %]
+ [% ELSE %]
<option value="5">Not available</option>
- [% END %]
- [% IF ( newserialloo.status6 ) %]
+ [% END %]
+ [% IF ( newserialloo.status6 ) %]
<option value="6" selected="selected">Delete</option>
- [% ELSE %]
+ [% ELSE %]
<option value="6">Delete</option>
- [% END %]
+ [% END %]
+ [% IF newserialloo.status8 %]
+ <option value="8" selected="selected">Stopped</option>
+ [% END %]
</select>
</td>
<li><a href="serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]" title="serial collection for [% subscription.bibliotitle %]">Serial collection #[% subscription.subscriptionid %]</a></li>
<li><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" title="detail of the subscription">Subscription #[% subscription.subscriptionid %]</a></li>
[% IF ( subscription.abouttoexpire ) %]
+ [% UNLESS subscription.closed %]
<li><a href="#" onclick="javascript:popup([% subscription.subscriptionid %])">Renew #[% subscription.subscriptionid %]</a></li>
+ [% END %]
[% END %]
[% END %]
<li><a href="/cgi-bin/koha/catalogue/[% default_bib_view %].pl?biblionumber=[% biblionumber %]" title="go to [% bibliotitle %]">Show biblio</a></li></ul>
[% ELSE %]
<option value="6">Delete</option>
[% END %]
+ [% IF serialslis.status8 %]
+ <option value="8" selected="selected">Stopped</option>
+ [% END %]
</select>
[% IF ( serialslis.serialadditems ) %]
<br /><br />
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
- var srlt = $("#srlt").dataTable($.extend(true, {}, dataTablesDefaults, {
+ var osrlt = $("#osrlt").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ -1, -2, -3 ], "bSortable": false, "bSearchable": false },
],
"sPaginationType": "four_button"
} ) );
- srlt.fnAddFilters("filter", 750);
+ var csrlt = $("#csrlt").dataTable($.extend(true, {}, dataTablesDefaults, {
+ "aoColumnDefs": [
+ { "aTargets": [ -1, -2 ], "bSortable": false, "bSearchable": false },
+ ],
+ "sPaginationType": "four_button"
+ } ) );
+
+ osrlt.fnAddFilters("filter", 750);
+ csrlt.fnAddFilters("filter", 750);
+
+ $('#serialstabs').tabs();
+
});
//]]>
</script>
<div class="yui-b">
[% INCLUDE 'serials-toolbar.inc' %]
- <h2>Serials subscriptions</h2>
+ <h2>Serials subscriptions ([% total %] found)</h2>
[% UNLESS ( done_searched ) %]
- <div id="advsearch">
+ <div id="advsearch" style="padding-bottom:3em;">
<form action="/cgi-bin/koha/serials/serials-search.pl" method="get">
<fieldset class="rows">
<legend>Search subscriptions</legend>
</div>
[% END %]
[% IF ( done_searched ) %]
- [% IF ( subscriptions ) %]
- <table id="srlt">
- <thead>
- <tr>
- <th>ISSN</th>
- <th>Title</th>
- <th> Notes </th>
- <th>Library</th>
- <th>Call number</th>
- <th>Expiration date</th>
- [% IF ( routing && CAN_user_serials_routing ) %]
- <th>Routing list</th>
- [% END %]
- <th> </th>
- <th> </th>
- </tr>
- </thead>
- <tfoot>
- <tr>
- <td><input type="text" class="filter" data-column_num="0" placeholder="Search ISSN" /></td>
- <td><input type="text" class="filter" data-column_num="1" placeholder="Search title" /></td>
- <td><input type="text" class="filter" data-column_num="2" placeholder="Search notes" /></td>
- <td><input type="text" class="filter" data-column_num="3" placeholder="Search library" /></td>
- <td><input type="text" class="filter" data-column_num="4" placeholder="Search callnumber" /></td>
- <td><input type="text" class="filter" data-column_num="5" placeholder="Search expiration date" /></td>
- [% IF ( routing && CAN_user_serials_routing ) %]<td></td>[% END %]
- <td></td>
- <td></td>
- </tr>
- </tfoot>
- <tbody>
- [% FOREACH subscription IN subscriptions %]
- <tr>
- <td>
- [% IF ( subscription.issn ) %][% subscription.issn %]
- [% END %]
- </td>
- <td><a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" class="button" title="subscription detail">[% subscription.title |html %]</a>
- </td>
- <td>[% IF ( subscription.notes ) %][% subscription.notes %][% END %]
- [% IF ( subscription.internalnotes ) %]([% subscription.internalnotes %])[% END %]
- </td>
- <td>
- [% IF ( subscription.branchname ) %][% subscription.branchname %][% END %]
- </td>
- <td>
- [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %]
- </td>
- <td>
- [% IF ( subscription.enddate ) %][% subscription.enddate | $KohaDates %][% END %]
- </td>
- [% IF ( routing && CAN_user_serials_routing ) %]
- <td>
- [% IF ( subscription.cannotedit ) %]
-
- [% ELSE %]
- [% IF ( subscription.routingedit ) %]
- <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit</a>
- ([% subscription.routingedit %])
- [% ELSE %]
- <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]&op=new">New</a>
- [% END %]
+ [% IF ( total ) %]
+ <div id="serialstabs" class="toptabs" style="clear:both;">
+ <ul class="ui-tabs-nav">
+ <li><a href="#opened">Opened ([% openedsubscriptions.size || 0 %])</a></li>
+ <li><a href="#closed">Closed ([% closedsubscriptions.size || 0 %])</a></li>
+ </ul>
+ <div id="opened">
+ [% IF openedsubscriptions %]
+ <table id="osrlt">
+ <thead>
+ <tr>
+ <th>ISSN</th>
+ <th>Title</th>
+ <th> Notes </th>
+ <th>Library</th>
+ <th>Call number</th>
+ <th>Expiration date</th>
+ [% IF ( routing && CAN_user_serials_routing ) %]
+ <th>Routing list</th>
+ [% END %]
+ <th> </th>
+ <th> </th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <td><input type="text" class="filter" data-column_num="0" placeholder="Search ISSN" /></td>
+ <td><input type="text" class="filter" data-column_num="1" placeholder="Search title" /></td>
+ <td><input type="text" class="filter" data-column_num="2" placeholder="Search notes" /></td>
+ <td><input type="text" class="filter" data-column_num="3" placeholder="Search library" /></td>
+ <td><input type="text" class="filter" data-column_num="4" placeholder="Search callnumber" /></td>
+ <td><input type="text" class="filter" data-column_num="5" placeholder="Search expiration date" /></td>
+ [% IF ( routing && CAN_user_serials_routing ) %]<td></td>[% END %]
+ <td></td>
+ <td></td>
+ </tr>
+ </tfoot>
+ <tbody>
+ [% FOREACH subscription IN openedsubscriptions %]
+ <tr>
+ <td>
+ [% IF ( subscription.issn ) %][% subscription.issn %]
+ [% END %]
+ </td>
+ <td><a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" class="button" title="subscription detail">[% subscription.title |html %]</a>
+ </td>
+ <td>[% IF ( subscription.notes ) %][% subscription.notes %][% END %]
+ [% IF ( subscription.internalnotes ) %]([% subscription.internalnotes %])[% END %]
+ </td>
+ <td>
+ [% IF ( subscription.branchname ) %][% subscription.branchname %][% END %]
+ </td>
+ <td>
+ [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %]
+ </td>
+ <td>
+ [% IF ( subscription.enddate ) %][% subscription.enddate | $KohaDates %][% END %]
+ </td>
+ [% IF ( routing && CAN_user_serials_routing ) %]
+ <td>
+ [% IF ( subscription.cannotedit ) %]
+
+ [% ELSE %]
+ [% IF ( subscription.routingedit ) %]
+ <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit</a>
+ ([% subscription.routingedit %])
+ [% ELSE %]
+ <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]&op=new">New</a>
+ [% END %]
+ [% END %]
+ </td>
+ [% END %]
+ <td><a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a>
+ </td>
+ <td>
+ [% IF ( subscription.cannotedit ) %]
+
+ [% ELSE %]
+ [% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&serstatus=1,3,7">Serial receive</a>[% END %]
+ [% END %]
+ </td>
+ </tr>
+ [% END %]
+ </tbody>
+ </table>
+ [% ELSE %]
+ There is no opened subscription for your search.
+ [% END %]
+ </div>
+ <div id="closed">
+ [% IF closedsubscriptions %]
+ <table id="csrlt">
+ <thead>
+ <tr>
+ <th>ISSN</th>
+ <th>Title</th>
+ <th> Notes </th>
+ <th>Library</th>
+ <th>Call number</th>
+ <th> </th>
+ <th> </th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <td><input type="text" class="filter" data-column_num="0" placeholder="Search ISSN" /></td>
+ <td><input type="text" class="filter" data-column_num="1" placeholder="Search title" /></td>
+ <td><input type="text" class="filter" data-column_num="2" placeholder="Search notes" /></td>
+ <td><input type="text" class="filter" data-column_num="3" placeholder="Search library" /></td>
+ <td><input type="text" class="filter" data-column_num="4" placeholder="Search callnumber" /></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </tfoot>
+ <tbody>
+ [% FOREACH subscription IN closedsubscriptions %]
+ <tr>
+ <td>
+ [% IF ( subscription.issn ) %]
+ [% subscription.issn %]
+ [% END %]
+ </td>
+ <td>
+ <a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" class="button" title="subscription detail">[% subscription.title |html %]</a>
+ </td>
+ <td>
+ [% IF ( subscription.notes ) %][% subscription.notes %][% END %]
+ [% IF ( subscription.internalnotes ) %]([% subscription.internalnotes %])[% END %]
+ </td>
+ <td>
+ [% IF ( subscription.branchname ) %][% subscription.branchname %][% END %]
+ </td>
+ <td>
+ [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %]
+ </td>
+ <td>
+ [% UNLESS subscription.cannotedit %]
+ <a href="/cgi-bin/koha/serials/serials-search.pl?subscriptionid=[% subscription.subscriptionid %]&op=reopen&routing=[% subscription.routing %]&searched=1&title_filter=[% title_filter %]&ISSN_filter=[% ISSN_filter %]&EAN_filter=[% EAN_filter %]&published_filter=[% publisher_filter %]&bookseller_filter=[% bookseller_filter %]&branch_filter=[% branch_filter %]" onclick="return confirm(_('Are you sure you want to reopen this subscription?'));">Reopen</a>
+ [% ELSE %]
+ Cannot edit
+ [% END %]
+ </td>
+ <td>
+ <a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a>
+ </td>
+ </tr>
[% END %]
- </td>
- [% END %]
- <td><a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a>
- </td>
- <td>
- [% IF ( subscription.cannotedit ) %]
-
- [% ELSE %]
- [% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&serstatus=1,3,7">Serial receive</a>[% END %]
- [% END %]
- </td>
- </tr>
+ </tbody>
+ </table>
+ [% ELSE %]
+ There is no closed subscription for your search.
[% END %]
- </tbody>
- </table>
- [% ELSE %]
- There is no subscription for your search.
+ </div>
+ </div>
[% END %]
[% END %]
</div>
<div class="yui-b">
[% INCLUDE 'serials-toolbar.inc' %]
- <h1>Subscription for [% bibliotitle %] </h1>
- [% IF ( abouttoexpire ) %]<div class="dialog message">Subscription will expire [% enddate %]. <a href="#" id="renewsub">Renew this subscription</a>.</div>[% END %]
+ <h1>Subscription for [% bibliotitle%] [% IF closed %](closed)[% END %]</h1>
+ [% IF ( abouttoexpire ) %]
+ [% UNLESS closed %]
+ <div class="dialog message">Subscription will expire [% enddate %]. <a href="#" id="renewsub">Renew this subscription</a>.</div>
+ [% END %]
+ [% END %]
[% IF ( NEEDSCONFIRMATION ) %]
<div id="circ_needsconfirmation" class="dialog alert">
<h3>Please Confirm Subscription deletion</h3>
[% serialslis.publisheddate %]
</td>
<td>
- [% IF ( serialslis.status1 ) %]
- Expected
- [% END %]
- [% IF ( serialslis.status2 ) %]
- Arrived
- [% END %]
- [% IF ( serialslis.status3 ) %]
- Late
- [% END %]
- [% IF ( serialslis.status4 ) %]
- Missing
- [% END %]
- [% IF ( serialslis.status5 ) %]
- Not available
- [% END %]
- [% IF ( serialslis.status7 ) %]
- Claimed
- [% IF ( serialslis.claimdate ) %]
- [% serialslis.claimdate %]
- [% END %]
- [% END %]
+ [% IF ( serialslis.status1 ) %]Expected[% END %]
+ [% IF ( serialslis.status2 ) %]Arrived[% END %]
+ [% IF ( serialslis.status3 ) %]Late[% END %]
+ [% IF ( serialslis.status4 ) %]Missing[% END %]
+ [% IF ( serialslis.status5 ) %]Not issued[% END %]
+ [% IF ( serialslis.status6 ) %]Delete[% END %]
+ [% IF ( serialslis.status7 ) %]
+ Claimed
+ [% IF ( serialslis.claimdate ) %]
+ [% serialslis.claimdate %]
+ [% END %]
+ [% END %]
+ [% IF ( serialslis.status8 ) %]Stopped[% END %]
</td>
</tr>
[% END %]
[% FOREACH subscription IN subscriptions %]
[% IF ( subscription.branchname ) %]<h3>At library: [% subscription.branchname %]</h3>[% ELSE %]
[% IF ( subscription.branchcode ) %]<h3>At library: [% subscription.branchcode %]</h3>[% END %][% END %]
+ [% IF ( subscription.closed ) %]<p>This subscription is closed.</p>[% END %]
+ <span style="display:none;"> [% IF ( subscription.callnumber ) %]<p>Callnumber: [% subscription.callnumber %]</p>[% END %]</span>
[% IF ( subscription.subscriptionnotes ) %]<p>[% subscription.subscriptionnotes FILTER html_line_break %] </p>[% END %]
<p>Subscription from: [% subscription.histstartdate | $KohaDates %] to:[% IF ( subscription.histenddate ) %] [% subscription.histenddate | $KohaDates %] [% ELSE %] now (current)[% END %]</p>
[% IF ( subscription.missinglist ) %]<p>Missing issues: [% subscription.missinglist %] </p>[% END %]
</td>
<td> [% serial.serialseq %]
</td>
- <td> [% IF ( serial.status1 ) %]Waiting[% END %]
- [% IF ( serial.status2 ) %]Arrived[% END %]
- [% IF ( serial.status3 ) %]Late[% END %]
- [% IF ( serial.status4 ) %]Missing[% END %]
- [% IF ( serial.status5 ) %]Not available[% END %]
- [% IF ( serial.status7 ) %]Claimed[% END %]
+ <td>
+ [% IF ( serial.status1 ) %]Expected[% END %]
+ [% IF ( serial.status2 ) %]Arrived[% END %]
+ [% IF ( serial.status3 ) %]Late[% END %]
+ [% IF ( serial.status4 ) %]Missing[% END %]
+ [% IF ( serial.status5 ) %]Not available[% END %]
+ [% IF ( serial.status6 ) %]Delete[% END %]
+ [% IF ( serial.status7 ) %]Claimed[% END %]
+ [% IF ( serial.status8 ) %]Stopped[% END %]
</td>
<td class="subscriptionidfilterclass"> [% serial.subscriptionid %]
</td>
WHERE serial.status = 1
AND periodicity <> 32
AND DATE_ADD(planneddate, INTERVAL CAST(graceperiod AS SIGNED) DAY) < NOW()
+ AND subscription.closed = 0
");
$sth->execute();
$cell{branchcode} = $subscription->{branchcode};
$cell{branchname} = GetBranchName($subscription->{branchcode});
$cell{hasalert} = $subscription->{hasalert};
+ $cell{callnumber} = $subscription->{callnumber};
+ $cell{closed} = $subscription->{closed};
#get the three latest serials.
$serials_to_display = $subscription->{opacdisplaycount};
$serials_to_display = C4::Context->preference('OPACSerialIssueDisplayCount') unless $serials_to_display;
while(my $row = $sth->fetchrow_hashref){
$row->{'enddate'} = format_date(GetExpirationDate($row->{'subscriptionid'}));
$row->{'startdate'} = format_date($row->{'startdate'});
- push @datas, $row if ($expired || (not $expired && not HasSubscriptionExpired($row->{subscriptionid})) );
+ $row->{expired} = HasSubscriptionExpired($row->{subscriptionid});
+ push @datas, $row if (
+ $expired
+ or (
+ not $expired
+ and (
+ not $row->{expired}
+ and not $row->{closed}
+ )
+ )
+ );
}
-
+
if($output eq 'screen'){
$template->param(datas => \@datas,
do_it => 1);
$subscription->{expirationdate} = $expirationdate;
next if $expirationdate !~ /\d{4}-\d{2}-\d{2}/; # next if not in ISO format.
+ next if $subscription->{closed};
if ( Date_to_Days(split "-",$expirationdate) < Date_to_Days(split "-",$date) &&
Date_to_Days(split "-",$expirationdate) > Date_to_Days(&Today) ) {
$subscription->{expirationdate}=format_date($subscription->{expirationdate});
my ($location, $callnumber);
if (@subscriptionid){
my @subscriptioninformation=();
+ my $closed = 0;
foreach my $subscriptionid (@subscriptionid){
my $subs= GetSubscription($subscriptionid);
+ $closed = 1 if $subs->{closed};
$subs->{opacnote} =~ s/\n/\<br\/\>/g;
$subs->{missinglist} =~ s/\n/\<br\/\>/g;
$subs->{recievedlist} =~ s/\n/\<br\/\>/g;
my $tmpsubscription= GetFullSubscription($subscriptionid);
@subscriptioninformation=(@$tmpsubscription,@subscriptioninformation);
}
+ $template->param(closed => $closed);
$subscriptions=PrepareSerialsData(\@subscriptioninformation);
$subscriptioncount = CountSubscriptionFromBiblionumber($subscriptiondescs->[0]{'biblionumber'});
} else {
)
|| $serinfo->{'cannotedit'}
);
+ $serinfo->{editdisable} ||= ($serinfo->{status8} and $serinfo->{closed});
push @serialdatalist, $serinfo;
$processedserialid{$serialid} = 1;
}
my $branch = $query->param('branch_filter') || '';
my $routing = $query->param('routing') || C4::Context->preference("RoutingSerials");
my $searched = $query->param('searched') || 0;
+my @subscriptionids = $query ->param('subscriptionid');
+my $op = $query->param('op');
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
}
);
+if ( $op and $op eq "close" ) {
+ for my $subscriptionid ( @subscriptionids ) {
+ C4::Serials::CloseSubscription( $subscriptionid );
+ }
+} elsif ( $op and $op eq "reopen" ) {
+ for my $subscriptionid ( @subscriptionids ) {
+ C4::Serials::ReopenSubscription( $subscriptionid );
+ }
+}
+
my @subscriptions;
if ($searched){
@subscriptions = SearchSubscriptions(
}
}
+my (@openedsubscriptions, @closedsubscriptions);
+for my $sub ( @subscriptions ) {
+ unless ( $sub->{closed} ) {
+ push @openedsubscriptions, $sub;
+ } else {
+ push @closedsubscriptions, $sub;
+ }
+}
+
my $branches = GetBranches();
my @branches_loop;
foreach (sort keys %$branches){
}
$template->param(
- subscriptions => \@subscriptions,
+ openedsubscriptions => \@openedsubscriptions,
+ closedsubscriptions => \@closedsubscriptions,
+ total => @openedsubscriptions + @closedsubscriptions,
title_filter => $title,
ISSN_filter => $ISSN,
EAN_filter => $EAN,
my $dbh = C4::Context->dbh;
my ($template, $loggedinuser, $cookie, $hemisphere);
my $subscriptionid = $query->param('subscriptionid');
+
+if ( $op and $op eq "close" ) {
+ C4::Serials::CloseSubscription( $subscriptionid );
+} elsif ( $op and $op eq "reopen" ) {
+ C4::Serials::ReopenSubscription( $subscriptionid );
+}
+
my $subs = GetSubscription($subscriptionid);
$subs->{enddate} = GetExpirationDate($subscriptionid);