Koha/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt
Jonathan Druart c39380ed4e Bug 8782: Close a subscription
If a subscription is no longer enough published (or we are not waiting
for a new periodical) we are allowed to close it.
If a subscription is closed, we are not able to receive or generate a
new serial.

On the serial module, we can now
- close a subscriptionn
- reopen a closed subscription

On serial search 2 tabs is displayed (opened and closed subscriptions).

This patch adds:
- a new field subscription.closed in DB
- a new status for serials (8 = stopped)

Test plan:
- search subscriptions
- close a subscription and check that you cannot receive or generate a
  new serial
- launch another search and check that the closed serial is into the "closed"
  tab.
- You are allowed to reopen a subscription on the subscription detail
  page and on the subscription result page. A javascript alert ask you
  if are certain to do this operation.
- Check the serial status "stopped" everywhere the status is
  displayed (catalogue/detail.pl, serials/claims.pl,
  serials/serial-issues-full.pl, serials/serials-collection.pl,
  serials/serials-edit.pl, serials/serials-recieve.pl,
  serials/subscription-detail.pl and opac-full-serial-issues.pl)
- The report statistics does not include the closed subscriptions if you
  don't check the "Include expired subscriptions" checkbox.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Bug 8782: Followup: add some minor modifications

- Show 'closed' information in biblio detail page
- Add a column in serials report table
- Search subscriptions on title words instead of string
- Prevent serials editing when subscription is closed
- Don't change status of "disabled" serials

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Bug 8782 - Close a subscription - Followup - Fix updatedatabase.pl

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-11-30 08:14:24 -05:00

339 lines
12 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Serials &rsaquo; Serial collection information for [% bibliotitle %]</title>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'doc-head-close.inc' %]
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
<script type="text/javascript">
//<![CDATA[
function generateReceive(subscriptionid) {
if(nbissues=prompt(_("How many issues do you want to receive ?"))){
document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid+'&nbissues='+nbissues;
}
}
function print_slip(subscriptionid,issue){
var myurl = 'routing-preview.pl?ok=1&subscriptionid='+subscriptionid+'&issue='+issue;
window.open(myurl,'PrintSlip','width=500,height=500,toolbar=no,scrollbars=yes');
}
function addsubscriptionid()
{
var tab=new Array();
var serialids = document.edition.serialid;
for (i=0; i<serialids.length; i++){
if (serialids[i].checked == true){
var found=false;
for (var val in tab){
if (tab[val] == document.getElementsByName("subs")[i].getAttribute('val')){found = true;}
}
if (found == false){
tab=tab.concat((document.getElementsByName("subs")[i].getAttribute('val')));
}
}
}
var string="";
for (var val in tab){
string = string + tab[val] + ",";
}
string=string.substring(0,string.length -1);
document.edition.subscriptionid.value=string;
}
function popup(subscriptionid) {
newin=window.open('subscription-renew.pl?mode=popup&subscriptionid='+subscriptionid,'popup','width=500,height=400,toolbar=false,scrollbars=yes');
}
function generateNext(subscriptionid) {
if(confirm(_("Do you really want to generate next serial?"))){
document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid;
}
}
function CheckAll( node ) {
$("#"+node).checkCheckboxes();
return false;
}
function CheckNone( node ) {
$("#"+node).unCheckCheckboxes();
return false;
}
$(document).ready(function() {
$('#subscription_years').tabs();
[% IF dateformatmetric %]
dt_add_type_uk_date();
[% END %]
$(".subscription-year-table").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
],
"aaSorting": [[0, 'desc']],
"bAutoWidth": false,
"bPaginate": false,
"bInfo": false,
"bFilter": false,
} ));
});
//]]>
</script>
</head>
<body id="ser_serials-collection" class="yui-skin-sam ser">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'serials-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; Serial collection information for <i>[% bibliotitle %]</i></div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% UNLESS ( popup ) %]
[% INCLUDE 'serials-toolbar.inc' %]
<h1>Serial collection information for <i>[% bibliotitle %]</i>
[% IF location %] ([% location %] ) [% END %]
[% IF ( callnumber ) %]callnumber: [% callnumber %][% END %]</h1>
[% END %]
[% IF ( subscriptions ) %]
<table>
[% IF ( subscriptions.size == 1 ) %]
<caption> Subscription summary</caption>
[% ELSE %]
<caption> Subscription summaries</caption>
[% END %]
<tr>
<th>Subscription num.</th>
<th>Frequency</th>
<th>Numbering pattern</th>
<th>Library</th>
<th>Call number</th>
<th>Notes</th>
[% IF ( routing && CAN_user_serials_routing ) %]<th>Routing</th>[% END %]
<th>Renew</th>
</tr>
[% FOREACH subscription IN subscriptions %]
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
<td><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]"># [% subscription.subscriptionid %]</a> </td>
<td> [% IF ( subscription.periodicity1 ) %]
1/day
[% END %]
[% IF ( subscription.periodicity2 ) %]
1/week
[% END %]
[% IF ( subscription.periodicity3 ) %]
1/2 weeks
[% END %]
[% IF ( subscription.periodicity4 ) %]
1/3 weeks
[% END %]
[% IF ( subscription.periodicity5 ) %]
1/Month
[% END %]
[% IF ( subscription.periodicity6 ) %]
1/2 Months (6/year)
[% END %]
[% IF ( subscription.periodicity7 ) %]
1/quarter
[% END %]
[% IF ( subscription.periodicity8 ) %]
1/quarter
[% END %]
[% IF ( subscription.periodicity9 ) %]
2/year
[% END %]
[% IF ( subscription.periodicity10 ) %]
1/year
[% END %]
[% IF ( subscription.periodicity11 ) %]
1/2 years
[% END %]</td>
<td>
[% IF ( subscription.numberpattern1 ) %]
Number
[% END %]
[% IF ( subscription.numberpattern2 ) %]
Volume, number, issue
[% END %]
[% IF ( subscription.numberpattern3 ) %]
Volume, number
[% END %]
[% IF ( subscription.numberpattern4 ) %]
Volume, issue
[% END %]
[% IF ( subscription.numberpattern5 ) %]
Number, issue
[% END %]
[% IF ( subscription.numberpattern6 ) %]
Seasonal only
[% END %]
[% IF ( subscription.numberpattern7 ) %]
None of the above
[% END %]</td>
<td> [% subscription.branchcode %]</td>
<td> [% subscription.callnumber %]</td>
<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>
[% UNLESS subscription.closed %]
<a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit routing list</a>
[% END %]
</td>
[% END %]
[% 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> &nbsp;</td>
[% END %]
[% END %]
[% ELSE %]
<td> &nbsp;</td>
[% END %]
</tr>
[% END %]
[% IF ( subscr ) %]
[% IF ( subscriptioncount > 1 ) %]
<tr ><td colspan="8"> <a href="serials-collection.pl?biblionumber=[% biblionumber %]">See any subscription attached to this biblio</a></td>
</tr>
[% END %]
[% END %]
</table>
[% END %]
[% IF ( years ) %]<form name="edition" action="serials-edit.pl" method="post">
<div id="subscription_years" class="toptabs numbered">
<ul>
[% FOREACH year IN years %]
[% IF ( year.year ) %]
<li><a href="#subscription-year-[% year.year %]">[% year.year %]</a></li>
[% END %]
[% END %]
</ul>
[% FOREACH year IN years %]
<div id="subscription-year-[% year.year %]">
[% IF ( CAN_user_serials_receive_serials ) %]
<p>
<input type="submit" value="Edit serials" />&nbsp;
[% UNLESS subscription.closed %]
<input type="button" value="Generate Next" onclick="javascript:generateNext([% subscriptionidlist %])" />
[% IF ( subscriptions.size == 1 and !serialsadditems ) %]&nbsp;<input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
[% END %]
</p>
[% END %]
<span class="checkall">
<a class="CheckAll" href="#" onclick="CheckAll('subscription-year-[% year.year %]'); return false;">Select all</a>
</span> |
<span class="clearall">
<a class="CheckNone" href="#" onclick="CheckNone('subscription-year-[% year.year %]'); return false;">Clear all</a>
</span>
<table class="subscription-year-table">
<thead>
<tr>
[% IF ( CAN_user_serials_receive_serials ) %]<th>Edit</th>[% END %]
[% IF ( subscriptions.size > 1 ) %]
<th># Subs</th>
[% END %]
<th>Date published
</th>
<th>Date received
</th>
<th>Number
</th>
<th>Status
</th>
<th>Notes
</th>
<th>Library
</th>
[% IF ( routing ) %]<th>Routing</th>[% END %]
</tr>
</thead>
<tbody>
[% FOREACH serial IN year.serials %]
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
[% IF ( CAN_user_serials_receive_serials ) %]
<td>
[% IF ( serial.cannotedit ) %]
disabled
[% ELSE %]
[% IF ( serial.subscriptionexpired ) %]
<input type="checkbox" name="serialid" value="[% serial.serialid %]" disabled="disabled" />
[% ELSE %]
[% IF ( serial.checked ) %]
<input type="checkbox" class="checkboxed" name="serialid" checked="checked" value="[% serial.serialid %]" />
[% ELSE %]
<input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" />
[% END %]
[% END %]
[% END %]
</td>
[% END %]
[% IF ( subscriptions.size > 1 ) %]
<td><a href="serials-collection.pl?subscriptionid=[% serial.subscriptionid %]">[% serial.subscriptionid %]</a></td>
[% END %]
<td>
[% serial.publisheddate %]
</td>
<td>
[% serial.planneddate %]
</td>
<td>
[% serial.serialseq %]
</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>
[% serial.notes %]
</td>
<td>
[% serial.branchcode %]
</td>
[% IF ( routing ) %]
<td>
<a href="" onclick="print_slip([% serial.subscriptionid |html %], '[% serial.serialseq |html %] ([% serial.planneddate %])'); return false" >Print list</a>
</td>
[% END %]
</tr>
[% END %]
</tbody>
</table>
</div>
[% END %]
<input type="hidden" name="subscriptionid" value="[% subscriptionidlist %]" />
</div>
</form>
[% END %]
</div>
</div>
<div class="yui-b">
[% INCLUDE 'serials-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]