Bugzilla – Attachment 12930 Details for
Bug 8782
Add a feature to close a subscription
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 8782: Close a subscription
Bug-8782-Close-a-subscription.patch (text/plain), 54.24 KB, created by
Kyle M Hall (khall)
on 2012-10-19 11:58:54 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 8782: Close a subscription
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2012-10-19 11:58:54 UTC
Size:
54.24 KB
patch
obsolete
>From 86c1102c325209b9d98a77b46cc856578cc7d8a4 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Tue, 18 Sep 2012 14:03:06 +0200 >Subject: [PATCH] Bug 8782: Close a subscription >Content-Type: text/plain; charset="utf-8" > >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> >--- > C4/Serials.pm | 63 +++++- > installer/data/mysql/kohastructure.sql | 1 + > installer/data/mysql/updatedatabase.pl | 11 + > .../prog/en/includes/serials-menu.inc | 2 + > .../prog/en/includes/serials-toolbar.inc | 77 ++++-- > .../prog/en/modules/catalogue/detail.tt | 24 +- > .../prog/en/modules/serials/claims.tt | 2 + > .../prog/en/modules/serials/serial-issues-full.tt | 14 +- > .../prog/en/modules/serials/serials-collection.tt | 44 +++- > .../prog/en/modules/serials/serials-edit.tt | 114 +++++---- > .../prog/en/modules/serials/serials-recieve.tt | 3 + > .../prog/en/modules/serials/serials-search.tt | 249 +++++++++++++------- > .../prog/en/modules/serials/subscription-detail.tt | 42 ++-- > .../prog/en/modules/opac-full-serial-issues.tt | 15 +- > misc/cronjobs/serialsUpdate.pl | 1 + > reports/serials_stats.pl | 13 +- > serials/checkexpiration.pl | 1 + > serials/serials-collection.pl | 3 + > serials/serials-search.pl | 25 ++- > serials/subscription-detail.pl | 7 + > 20 files changed, 484 insertions(+), 227 deletions(-) > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index cedbcff..76aae10 100644 >--- a/C4/Serials.pm >+++ b/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); >@@ -685,7 +693,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 +2476,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__ > >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 29ee782..3c89c42 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1918,6 +1918,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; > >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index e67bf3e..e7bf63a 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6011,6 +6011,17 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion ($DBversion); > } > >+$DBversion = "3.09.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ if ( not column_exists( 'closed', 'subscription' ) ) { >+ $dbh->do(qq{ >+ ALTER TABLE subscription ADD COLUMN closed INT(1) NOT NULL DEFAULT 0 AFTER enddate; >+ }); >+ } >+ print "Upgrade to $DBversion done (Add field subscription.closed)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc >index 0feafda..8083192 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc >+++ b/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 %]&op=new">Create routing list</a></li> > [% END %] > [% END %] >+ [% END %] > </ul> > [% END %] > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >index 00f76bc..0e7497d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >+++ b/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&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> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index ef2b5b9..f6a2ea9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -486,20 +486,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 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt >index 5d9f7a9..c1f3aa1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt >+++ b/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 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt >index ae998cc..dbdfda9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt >+++ b/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 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt >index 3d2e690..a6f5e53 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt >@@ -151,22 +151,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> </td> >+ [% END %] >+ [% END %] > [% ELSE %] >- <td> </td> >- [% END %] >+ <td> </td> > [% END %] >- > </tr> > [% END %] > [% IF ( subscr ) %] >@@ -194,8 +205,10 @@ $(document).ready(function() { > [% 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 %] > >@@ -234,7 +247,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 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >index a6fd962..75f32ea 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt >@@ -239,39 +239,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> >@@ -344,39 +347,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> >@@ -442,7 +448,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> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt >index 868d34e..04db346 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt >+++ b/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 /> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >index 98ef4d5..ad1bf44 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >+++ b/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> </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> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt >index 44a2d8f..949b946 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt >+++ b/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 %] >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt >index 6b47afa..42ff735 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt >+++ b/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> >diff --git a/misc/cronjobs/serialsUpdate.pl b/misc/cronjobs/serialsUpdate.pl >index 1de5a48..a5a376f 100755 >--- a/misc/cronjobs/serialsUpdate.pl >+++ b/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(); > >diff --git a/reports/serials_stats.pl b/reports/serials_stats.pl >index 9aff54b..2b019c7 100755 >--- a/reports/serials_stats.pl >+++ b/reports/serials_stats.pl >@@ -96,9 +96,18 @@ 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})) ); >+ push @datas, $row if ( >+ $expired >+ or ( >+ not $expired >+ and ( >+ not HasSubscriptionExpired($row->{subscriptionid}) >+ and not $row->{closed} >+ ) >+ ) >+ ); > } >- >+ > if($output eq 'screen'){ > $template->param(datas => \@datas, > do_it => 1); >diff --git a/serials/checkexpiration.pl b/serials/checkexpiration.pl >index bf4b6e9..e831854 100755 >--- a/serials/checkexpiration.pl >+++ b/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}); >diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl >index 4393546..7428494 100755 >--- a/serials/serials-collection.pl >+++ b/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 { >diff --git a/serials/serials-search.pl b/serials/serials-search.pl >index ac5d0d3..aaf64e6 100755 >--- a/serials/serials-search.pl >+++ b/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, >diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl >index f3a50ac..009360b 100755 >--- a/serials/subscription-detail.pl >+++ b/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); >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8782
:
12305
|
12879
|
12909
|
12910
|
12930
|
12931
|
12932
|
12933
|
13741