Bug 10851: add additional "missing" statuses for serials issues
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 20 Aug 2013 09:14:09 +0000 (11:14 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 4 Feb 2014 17:43:49 +0000 (17:43 +0000)
4 new statuses to represent variations on "missing" is added by this
patch: "never received", "sold out", "damaged", and "lost.

These status have the same behavior than the simple Missing status.

Test plan:
- Find a serial to claim.
- Modify the status of this serial with one of these new statuses.
- Try to find it with the "serials to claim" search.
- Verify that the status is displayed on the serial module pages and on
  the OPAC.

Signed-off-by: Nicolas Bravais <nicolas.bravais@gmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Serials.pm
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serial-issues-full.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-recieve.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt
koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt
koha-tmpl/opac-tmpl/prog/en/modules/opac-full-serial-issues.tt

index 81fa86c..e745458 100644 (file)
@@ -102,7 +102,7 @@ sub GetSuppliersWithLateIssues {
     WHERE id > 0
         AND (
             (planneddate < now() AND serial.status=1)
-            OR serial.STATUS = 3 OR serial.STATUS = 4
+            OR serial.STATUS IN (3, 4, 41, 42, 43, 44)
         )
         AND subscription.closed = 0
     ORDER BY name|;
@@ -425,7 +425,9 @@ sub PrepareSerialsData {
             }
         }
         $subs->{ "status" . $subs->{'status'} } = 1;
-        $subs->{"checked"}                      = $subs->{'status'} =~ /1|3|4|7/;
+        if ( grep { $_ == $subs->{status} } ( 1, 3, 4, 41, 42, 43, 44, 7 ) ) {
+            $subs->{"checked"} = 1;
+        }
 
         if ( $subs->{'year'} && $subs->{'year'} ne "" ) {
             $year = $subs->{'year'};
@@ -879,7 +881,7 @@ sub GetLatestSerials {
     my $strsth = "SELECT   serialid,serialseq, status, planneddate, publisheddate, notes
                         FROM     serial
                         WHERE    subscriptionid = ?
-                        AND      (status =2 or status=4)
+                        AND      status IN (2, 4, 41, 42, 43, 44)
                         ORDER BY publisheddate DESC LIMIT 0,$limit
                 ";
     my $sth = $dbh->prepare($strsth);
@@ -1248,8 +1250,10 @@ sub ModSerialStatus {
             if ( $status == 2 || ($oldstatus == 2 && $status != 2) ) {
                   _update_receivedlist($subscriptionid);
             }
-            if($status == 4 || $status == 5
-              || ($oldstatus == 4 && $status != 4)
+            if(  grep { $_ == $status } ( 4, 41, 42, 43, 44, 5 )
+              || (
+                  grep { $_ == $oldstatus } ( 4, 41, 42, 43, 44 )
+                  && ! grep { $_ == $status } ( 4, 41, 42, 43, 44 ) )
               || ($oldstatus == 5 && $status != 5)) {
                 _update_missinglist($subscriptionid);
             }
@@ -2030,7 +2034,7 @@ sub GetLateOrMissingIssues {
                 LEFT JOIN biblio        ON subscription.biblionumber=biblio.biblionumber
                 LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
                 WHERE subscription.subscriptionid = serial.subscriptionid 
-                AND (serial.STATUS = 4 OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3 OR serial.STATUS = 7))
+                AND (serial.STATUS IN (4, 41, 42, 43, 44) OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3 OR serial.STATUS = 7))
                 AND subscription.aqbooksellerid=$supplierid
                 $byserial
                 ORDER BY $order"
@@ -2047,7 +2051,7 @@ sub GetLateOrMissingIssues {
                 LEFT JOIN biblio ON subscription.biblionumber=biblio.biblionumber
                 LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
                 WHERE subscription.subscriptionid = serial.subscriptionid 
-                        AND (serial.STATUS = 4 OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3 OR serial.STATUS = 7))
+                        AND (serial.STATUS IN (4, 41, 42, 43, 44) OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3 OR serial.STATUS = 7))
                 $byserial
                 ORDER BY $order"
         );
index dd8487e..539c4f1 100644 (file)
@@ -809,6 +809,10 @@ function verify_images() {
                       [% IF ( latestserial.status2 ) %]Arrived[% END %]
                       [% IF ( latestserial.status3 ) %]Late[% END %]
                       [% IF ( latestserial.status4 ) %]Missing[% END %]
+                      [% IF ( serialslis.status41 ) %]Missing (never received)[% END %]
+                      [% IF ( serialslis.status42 ) %]Missing (sold out)[% END %]
+                      [% IF ( serialslis.status43 ) %]Missing (damaged)[% END %]
+                      [% IF ( serialslis.status44 ) %]Missing (lost)[% END %]
                       [% IF ( latestserial.status5 ) %]Not issued[% END %]
                       [% IF ( latestserial.status6 ) %]Delete[% END %]
                       [% IF ( latestserial.status7 ) %]Claimed[% END %]
index 4959982..288620b 100644 (file)
             <option value="expected">Expected</option>
             <option value="late">Late</option>
             <option value="missing">Missing</option>
+            <option value="missing_never_received">Missing (never received)</option>
+            <option value="missing_sold_out">Missing (sold out)</option>
+            <option value="missing_damaged">Missing (damaged)</option>
+            <option value="missing_lost">Missing (lost)</option>
             <option value="claimed">Claimed</option>
            </select>
        </li>
                             [% IF ( missingissue.status1 ) %]<span class="status-expected">Expected</span>[% END %]
                             [% IF ( missingissue.status3 ) %]<span class="status-late">Late</span>[% END %]
                             [% IF ( missingissue.status4 ) %]<span class="status-missing">Missing</span>[% END %]
+                            [% IF ( missingissue.status41 ) %]<span class="status-missing_never_received">Missing (never received)</span>[% END %]
+                            [% IF ( missingissue.status42 ) %]<span class="status-missing_sold_out">Missing (sold out)</span>[% END %]
+                            [% IF ( missingissue.status43 ) %]<span class="status-missing_damaged">Missing (damaged)</span>[% END %]
+                            [% IF ( missingissue.status44 ) %]<span class="status-missing_lost">Missing (lost)</span>[% END %]
                             [% IF ( missingissue.status7 ) %]<span class="status-claimed">Claimed</span>[% END %]
                         </td>
                         <td class="planneddate">
index dbdfda9..fb020a0 100644 (file)
@@ -72,6 +72,10 @@ function active(numlayer)
                     [% IF ( serial.status2 ) %]Arrived[% END %]
                     [% IF ( serial.status3 ) %]Late[% END %]
                     [% IF ( serial.status4 ) %]Missing[% END %]
+                    [% IF ( serial.status41 ) %]Missing (never received)[% END %]
+                    [% IF ( serial.status42 ) %]Missing (sold out)[% END %]
+                    [% IF ( serial.status43 ) %]Missing (damaged)[% END %]
+                    [% IF ( serial.status44 ) %]Missing (lost)[% END %]
                     [% IF ( serial.status5 ) %]Not issued[% END %]
                     [% IF ( serial.status6 ) %]Delete[% END %]
                     [% IF ( serial.status7 ) %]Claimed[% END %]
index 060ecaf..ed1dc39 100644 (file)
@@ -257,6 +257,10 @@ $(document).ready(function() {
                     [% IF ( serial.status2 ) %]Arrived[% END %]
                     [% IF ( serial.status3 ) %]Late[% END %]
                     [% IF ( serial.status4 ) %]Missing[% END %]
+                    [% IF ( serial.status41 ) %]Missing (never received)[% END %]
+                    [% IF ( serial.status42 ) %]Missing (sold out)[% END %]
+                    [% IF ( serial.status43 ) %]Missing (damaged)[% END %]
+                    [% IF ( serial.status44 ) %]Missing (lost)[% END %]
                     [% IF ( serial.status5 ) %]Not issued[% END %]
                     [% IF ( serial.status6 ) %]Delete[% END %]
                     [% IF ( serial.status7 ) %]Claimed[% END %]
index 1599bfd..bddffca 100644 (file)
@@ -196,6 +196,26 @@ $(document).ready(function() {
             [% ELSE %]
               <option value="4">Missing</option>
             [% END %]
+            [% IF ( serialslis.status41 ) %]
+              <option value="41" selected="selected">Missing (never received)</option>
+            [% ELSE %]
+              <option value="41">Missing (never received)</option>
+            [% END %]
+            [% IF ( serialslis.status42 ) %]
+              <option value="42" selected="selected">Missing (sold out)</option>
+            [% ELSE %]
+              <option value="42">Missing (sold out)</option>
+            [% END %]
+            [% IF ( serialslis.status43 ) %]
+              <option value="43" selected="selected">Missing (damaged)</option>
+            [% ELSE %]
+              <option value="43">Missing (damaged)</option>
+            [% END %]
+            [% IF ( serialslis.status44 ) %]
+              <option value="44" selected="selected">Missing (lost)</option>
+            [% ELSE %]
+              <option value="44">Missing (lost)</option>
+            [% END %]
             [% IF ( serialslis.status7 ) %]
               <option value="7" selected="selected">Claimed</option>
             [% ELSE %]
@@ -309,6 +329,26 @@ $(document).ready(function() {
                   [% ELSE %]
                     <option value="4">Missing</option>
                   [% END %]
+                  [% IF ( newserialloo.status41 ) %]
+                    <option value="41" selected="selected">Missing (never received)</option>
+                  [% ELSE %]
+                    <option value="41">Missing (never received)</option>
+                  [% END %]
+                  [% IF ( newserialloo.status42 ) %]
+                    <option value="42" selected="selected">Missing (sold out)</option>
+                  [% ELSE %]
+                    <option value="42">Missing (sold out)</option>
+                  [% END %]
+                  [% IF ( newserialloo.status43 ) %]
+                    <option value="43" selected="selected">Missing (damaged)</option>
+                  [% ELSE %]
+                    <option value="43">Missing (damaged)</option>
+                  [% END %]
+                  [% IF ( newserialloo.status44 ) %]
+                    <option value="44" selected="selected">Missing (lost)</option>
+                  [% ELSE %]
+                    <option value="44">Missing (lost)</option>
+                  [% END %]
                   [% IF ( newserialloo.status7 ) %]
                     <option value="7" selected="selected">Claimed</option>
                   [% ELSE %]
index 04db346..f93c8c7 100644 (file)
@@ -127,6 +127,26 @@ function barcode_check(){
                                        [% ELSE %]
                                                <option value="4">Missing</option>
                                        [% END %]
+                    [% IF ( serialslis.status41 ) %]
+                      <option value="41" selected="selected">Missing (never received)</option>
+                    [% ELSE %]
+                      <option value="41">Missing (never received)</option>
+                    [% END %]
+                    [% IF ( serialslis.status42 ) %]
+                      <option value="42" selected="selected">Missing (sold out)</option>
+                    [% ELSE %]
+                      <option value="42">Missing (sold out)</option>
+                    [% END %]
+                    [% IF ( serialslis.status43 ) %]
+                      <option value="43" selected="selected">Missing (damaged)</option>
+                    [% ELSE %]
+                      <option value="43">Missing (damaged)</option>
+                    [% END %]
+                    [% IF ( serialslis.status44 ) %]
+                      <option value="44" selected="selected">Missing (lost)</option>
+                    [% ELSE %]
+                      <option value="44">Missing (lost)</option>
+                    [% END %]
                                        [% IF ( serialslis.status5 ) %]
                         <option value="5" selected="selected">Not available</option>
                                        [% ELSE %]
index 59b12a7..f02194e 100644 (file)
@@ -269,6 +269,10 @@ $(document).ready(function() {
                     [% IF ( serialslis.status2 ) %]Arrived[% END %]
                     [% IF ( serialslis.status3 ) %]Late[% END %]
                     [% IF ( serialslis.status4 ) %]Missing[% END %]
+                    [% IF ( serialslis.status41 ) %]Missing (never received)[% END %]
+                    [% IF ( serialslis.status42 ) %]Missing (sold out)[% END %]
+                    [% IF ( serialslis.status43 ) %]Missing (damaged)[% END %]
+                    [% IF ( serialslis.status44 ) %]Missing (lost)[% END %]
                     [% IF ( serialslis.status5 ) %]Not issued[% END %]
                     [% IF ( serialslis.status6 ) %]Delete[% END %]
                     [% IF ( serialslis.status7 ) %]
index 05c4010..a4003cb 100644 (file)
@@ -1213,20 +1213,19 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
                 </td>
                 <td>    [% latestserial.planneddate %]
                 </td>
-                <td>    [% IF ( latestserial.status1 ) %]Awaited
-                    [% 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>
+                    [% IF ( latestserial.status1 ) %]Expected[% END %]
+                    [% IF ( latestserial.status2 ) %]Arrived[% END %]
+                    [% IF ( latestserial.status3 ) %]Late[% END %]
+                    [% IF ( latestserial.status4 ) %]Missing[% END %]
+                    [% IF ( latestserial.status41 ) %]Missing (never received)[% END %]
+                    [% IF ( latestserial.status42 ) %]Missing (sold out)[% END %]
+                    [% IF ( latestserial.status43 ) %]Missing (damaged)[% END %]
+                    [% IF ( latestserial.status44 ) %]Missing (lost)[% 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>
index e0fb803..ab48058 100644 (file)
@@ -224,6 +224,10 @@ function showlayer(numlayer){
               [% IF ( serial.status2 ) %]Arrived[% END %]
               [% IF ( serial.status3 ) %]Late[% END %]
               [% IF ( serial.status4 ) %]Missing[% END %]
+              [% IF ( serial.status41 ) %]Missing (never received)[% END %]
+              [% IF ( serial.status42 ) %]Missing (sold out)[% END %]
+              [% IF ( serial.status43 ) %]Missing (damaged)[% END %]
+              [% IF ( serial.status44 ) %]Missing (lost)[% END %]
               [% IF ( serial.status5 ) %]Not available[% END %]
               [% IF ( serial.status6 ) %]Delete[% END %]
               [% IF ( serial.status7 ) %]Claimed[% END %]