Browse Source

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>
3.12.x
Jonathan Druart 12 years ago
committed by Jared Camins-Esakov
parent
commit
c39380ed4e
  1. 75
      C4/Serials.pm
  2. 2
      catalogue/detail.pl
  3. 1
      installer/data/mysql/kohastructure.sql
  4. 11
      installer/data/mysql/updatedatabase.pl
  5. 2
      koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc
  6. 77
      koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc
  7. 26
      koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
  8. 8
      koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt
  9. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt
  10. 14
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt
  11. 44
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt
  12. 116
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt
  13. 3
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt
  14. 249
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt
  15. 42
      koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt
  16. 2
      koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt
  17. 15
      koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt
  18. 1
      misc/cronjobs/serialsUpdate.pl
  19. 2
      opac/opac-detail.pl
  20. 14
      reports/serials_stats.pl
  21. 1
      serials/checkexpiration.pl
  22. 3
      serials/serials-collection.pl
  23. 1
      serials/serials-edit.pl
  24. 25
      serials/serials-search.pl
  25. 7
      serials/subscription-detail.pl

75
C4/Serials.pm

@ -93,7 +93,13 @@ sub GetSuppliersWithLateIssues {
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 => {} });
}
@ -122,6 +128,7 @@ sub GetLateIssues {
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);
@ -134,6 +141,7 @@ sub GetLateIssues {
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);
@ -662,8 +670,16 @@ sub SearchSubscriptions {
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 ?";
@ -685,7 +701,10 @@ sub SearchSubscriptions {
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);
}
@ -2465,6 +2484,54 @@ sub is_barcode_in_use {
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__

2
catalogue/detail.pl

@ -155,6 +155,8 @@ foreach my $subscription (@subscriptions) {
$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;

1
installer/data/mysql/kohastructure.sql

@ -1920,6 +1920,7 @@ CREATE TABLE `subscription` (
`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;

11
installer/data/mysql/updatedatabase.pl

@ -6012,7 +6012,6 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
$DBversion = "3.09.00.062";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do("UPDATE systempreferences SET value=0 WHERE variable='NoZebra'");
@ -6104,6 +6103,16 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
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)

2
koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc

@ -1,6 +1,7 @@
[% 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>
@ -8,6 +9,7 @@
<li><a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscriptionid %]&amp;op=new">Create routing list</a></li>
[% END %]
[% END %]
[% END %]
</ul>
[% END %]

77
koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc

@ -1,6 +1,18 @@
<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() {
@ -50,6 +62,8 @@ onclick: {fn:function(){popup([% subscriptionid %])}}
[% END %]
new YAHOO.widget.Button("renew");
new YAHOO.widget.Button("receive");
new YAHOO.widget.Button("close");
new YAHOO.widget.Button("reopen");
[% END %]
}
@ -57,38 +71,49 @@ onclick: {fn:function(){popup([% subscriptionid %])}}
</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&amp;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&amp;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&amp;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&amp;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 %]&amp;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 %]&amp;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>

26
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt

@ -476,6 +476,8 @@ function verify_images() {
[% 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 %]
@ -492,20 +494,16 @@ function verify_images() {
<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 %]

8
koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt

@ -38,6 +38,7 @@
<th>Call number</th>
<th>Subscription begin</th>
<th>Subscription end</th>
<th>Expired? / Closed?</th>
</tr>
</thead>
<tbody>
@ -50,6 +51,13 @@
<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>

2
koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt

@ -208,6 +208,7 @@
<option>Late</option>
<option>Missing</option>
<option>Claimed</option>
<option>Stopped</option>
</select>
</li>
@ -284,6 +285,7 @@
[% 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 %]

14
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt

@ -68,12 +68,14 @@ function active(numlayer)
[% 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 %]

44
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt

@ -176,22 +176,33 @@ $(document).ready(function() {
[% 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> &nbsp;</td>
[% END %]
[% END %]
[% ELSE %]
<td> &nbsp;</td>
[% END %]
<td> &nbsp;</td>
[% END %]
</tr>
[% END %]
[% IF ( subscr ) %]
@ -219,8 +230,10 @@ $(document).ready(function() {
[% IF ( CAN_user_serials_receive_serials ) %]
<p>
<input type="submit" value="Edit serials" />&nbsp;
<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 %]
[% 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">
@ -284,7 +297,14 @@ $(document).ready(function() {
[% 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 %]

116
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt

@ -168,7 +168,7 @@ $(document).ready(function() {
</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 ) %]
@ -177,39 +177,42 @@ $(document).ready(function() {
<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>
@ -284,39 +287,42 @@ $(document).ready(function() {
<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>
@ -387,7 +393,9 @@ $(document).ready(function() {
<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>

3
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt

@ -137,6 +137,9 @@ function barcode_check(){
[% ELSE %]
<option value="6">Delete</option>
[% END %]
[% IF serialslis.status8 %]
<option value="8" selected="selected">Stopped</option>
[% END %]
</select>
[% IF ( serialslis.serialadditems ) %]
<br /><br />

249
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt

@ -9,14 +9,25 @@
<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>
@ -33,9 +44,9 @@
<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>
@ -85,86 +96,160 @@
</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>&nbsp;</th>
<th>&nbsp;</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 ) %]
&nbsp;
[% 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 %]&amp;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>&nbsp;</th>
<th>&nbsp;</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 ) %]
&nbsp;
[% 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 %]&amp;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 ) %]
&nbsp;
[% ELSE %]
[% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&amp;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>&nbsp;</th>
<th>&nbsp;</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 %]&amp;op=reopen&routing=[% subscription.routing %]&amp;searched=1&amp;title_filter=[% title_filter %]&amp;ISSN_filter=[% ISSN_filter %]&amp;EAN_filter=[% EAN_filter %]&amp;published_filter=[% publisher_filter %]&amp;bookseller_filter=[% bookseller_filter %]&amp;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 ) %]
&nbsp;
[% ELSE %]
[% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&amp;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>

42
koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt

@ -55,8 +55,12 @@ $(document).ready(function() {
<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>
@ -374,27 +378,19 @@ $(document).ready(function() {
[% 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 %]

2
koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt

@ -988,6 +988,8 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
[% 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 %]

15
koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt

@ -200,12 +200,15 @@ function showlayer(numlayer){
</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>

1
misc/cronjobs/serialsUpdate.pl

@ -60,6 +60,7 @@ my $sth = $dbh->prepare("
WHERE serial.status = 1
AND periodicity <> 32
AND DATE_ADD(planneddate, INTERVAL CAST(graceperiod AS SIGNED) DAY) < NOW()
AND subscription.closed = 0
");
$sth->execute();

2
opac/opac-detail.pl

@ -471,6 +471,8 @@ foreach my $subscription (@subscriptions) {
$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;

14
reports/serials_stats.pl

@ -96,9 +96,19 @@ if($do_it){
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);

1
serials/checkexpiration.pl

@ -79,6 +79,7 @@ if ($date) {
$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});

3
serials/serials-collection.pl

@ -101,8 +101,10 @@ my $subscriptioncount;
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;
@ -127,6 +129,7 @@ if (@subscriptionid){
my $tmpsubscription= GetFullSubscription($subscriptionid);
@subscriptioninformation=(@$tmpsubscription,@subscriptioninformation);
}
$template->param(closed => $closed);
$subscriptions=PrepareSerialsData(\@subscriptioninformation);
$subscriptioncount = CountSubscriptionFromBiblionumber($subscriptiondescs->[0]{'biblionumber'});
} else {

1
serials/serials-edit.pl

@ -151,6 +151,7 @@ foreach my $serialid (@serialids) {
)
|| $serinfo->{'cannotedit'}
);
$serinfo->{editdisable} ||= ($serinfo->{status8} and $serinfo->{closed});
push @serialdatalist, $serinfo;
$processedserialid{$serialid} = 1;
}

25
serials/serials-search.pl

@ -46,6 +46,8 @@ my $biblionumber = $query->param('biblionumber') || '';
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(
{
@ -58,6 +60,16 @@ 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(
@ -81,6 +93,15 @@ if ($routing) {
}
}
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){
@ -94,7 +115,9 @@ foreach (sort keys %$branches){
}
$template->param(
subscriptions => \@subscriptions,
openedsubscriptions => \@openedsubscriptions,
closedsubscriptions => \@closedsubscriptions,
total => @openedsubscriptions + @closedsubscriptions,
title_filter => $title,
ISSN_filter => $ISSN,
EAN_filter => $EAN,

7
serials/subscription-detail.pl

@ -34,6 +34,13 @@ my $issueconfirmed = $query->param('issueconfirmed');
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);

Loading…
Cancel
Save