Bug 10080 - Change system pref IndependantBranches to IndependentBranches
[koha_fer] / C4 / Serials.pm
index 0c4b60e..76d3fc7 100644 (file)
@@ -55,6 +55,7 @@ BEGIN {
       &CountIssues
       HasItems
       &GetSubscriptionsFromBorrower
+      &subscriptionCurrentlyOnOrder
 
     );
 }
@@ -215,7 +216,7 @@ sub GetSerialInformation {
     my $dbh        = C4::Context->dbh;
     my $query      = qq|
         SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |;
-    if (   C4::Context->preference('IndependantBranches')
+    if (   C4::Context->preference('IndependentBranches')
         && C4::Context->userenv
         && C4::Context->userenv->{'flags'} != 1
         && C4::Context->userenv->{'branch'} ) {
@@ -307,7 +308,7 @@ $subs = GetSubscription($subscriptionid)
 this function returns the subscription which has $subscriptionid as id.
 return :
 a hashref. This hash containts
-subscription, subscriptionhistory, aqbudget.bookfundid, biblio.title
+subscription, subscriptionhistory, aqbooksellers.name, biblio.title
 
 =cut
 
@@ -320,7 +321,7 @@ sub GetSubscription {
                 aqbooksellers.name AS aqbooksellername,
                 biblio.title AS bibliotitle,
                 subscription.biblionumber as bibnum);
-    if (   C4::Context->preference('IndependantBranches')
+    if (   C4::Context->preference('IndependentBranches')
         && C4::Context->userenv
         && C4::Context->userenv->{'flags'} != 1
         && C4::Context->userenv->{'branch'} ) {
@@ -335,7 +336,7 @@ sub GetSubscription {
        WHERE subscription.subscriptionid = ?
     );
 
-    #     if (C4::Context->preference('IndependantBranches') &&
+    #     if (C4::Context->preference('IndependentBranches') &&
     #         C4::Context->userenv &&
     #         C4::Context->userenv->{'flags'} != 1){
     # #       $debug and warn "flags: ".C4::Context->userenv->{'flags'};
@@ -369,7 +370,7 @@ sub GetFullSubscription {
             biblio.title as bibliotitle,
             subscription.branchcode AS branchcode,
             subscription.subscriptionid AS subscriptionid |;
-    if (   C4::Context->preference('IndependantBranches')
+    if (   C4::Context->preference('IndependentBranches')
         && C4::Context->userenv
         && C4::Context->userenv->{'flags'} != 1
         && C4::Context->userenv->{'branch'} ) {
@@ -489,7 +490,7 @@ sub GetSubscriptionsFromBiblionumber {
         $subs->{ "numberpattern" . $subs->{numberpattern} } = 1;
         $subs->{ "status" . $subs->{'status'} }             = 1;
         $subs->{'cannotedit'} =
-          (      C4::Context->preference('IndependantBranches')
+          (      C4::Context->preference('IndependentBranches')
               && C4::Context->userenv
               && C4::Context->userenv->{flags} % 2 != 1
               && C4::Context->userenv->{branch}
@@ -529,7 +530,7 @@ sub GetFullSubscriptionsFromBiblionumber {
             biblio.title as bibliotitle,
             subscription.branchcode AS branchcode,
             subscription.subscriptionid AS subscriptionid|;
-    if (   C4::Context->preference('IndependantBranches')
+    if (   C4::Context->preference('IndependentBranches')
         && C4::Context->userenv
         && C4::Context->userenv->{'flags'} != 1
         && C4::Context->userenv->{'branch'} ) {
@@ -629,7 +630,7 @@ sub GetSubscriptions {
 
     while ( my $line = $sth->fetchrow_hashref ) {
         $line->{'cannotedit'} =
-          (      C4::Context->preference('IndependantBranches')
+          (      C4::Context->preference('IndependentBranches')
               && C4::Context->userenv
               && C4::Context->userenv->{flags} % 2 != 1
               && C4::Context->userenv->{branch}
@@ -1133,18 +1134,18 @@ sub ModSerialStatus {
             $sth->execute($subscriptionid);
             my ( $missinglist, $recievedlist ) = $sth->fetchrow;
             if ( $status == 2 ) {
-
                 $recievedlist .= "; $serialseq"
-                  unless ( index( "$recievedlist", "$serialseq" ) >= 0 );
+                    if $recievedlist!~/(^|;)\s*$serialseq(?=;|$)/;
+            }
+            # in case serial has been previously marked as missing
+            if (grep /$status/, (1,2,3,7)) {
+                $missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g;
             }
-
-            #         warn "missinglist : $missinglist serialseq :$serialseq, ".index("$missinglist","$serialseq");
             $missinglist .= "; $serialseq"
-              if ( $status == 4
-                and not index( "$missinglist", "$serialseq" ) >= 0 );
+                if $status==4 && $missinglist!~/(^|;)\s*$serialseq(?=;|$)/;
             $missinglist .= "; not issued $serialseq"
-              if ( $status == 5
-                and index( "$missinglist", "$serialseq" ) >= 0 );
+                if $status==5 && $missinglist!~/(^|;)\s*$serialseq(?=;|$)/;
+
             $query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE  subscriptionid=?";
             $sth   = $dbh->prepare($query);
             $recievedlist =~ s/^; //;
@@ -1441,7 +1442,7 @@ sub ReNewSubscription {
     # renew subscription
     $query = qq|
         UPDATE subscription
-        SET    startdate=?,numberlength=?,weeklength=?,monthlength=?
+        SET    startdate=?,numberlength=?,weeklength=?,monthlength=?,reneweddate=NOW()
         WHERE  subscriptionid=?
     |;
     $sth = $dbh->prepare($query);
@@ -2532,6 +2533,28 @@ sub ReopenSubscription {
     $sth->execute( $subscriptionid );
 }
 
+=head2 subscriptionCurrentlyOnOrder
+
+    $bool = subscriptionCurrentlyOnOrder( $subscriptionid );
+
+Return 1 if subscription is currently on order else 0.
+
+=cut
+
+sub subscriptionCurrentlyOnOrder {
+    my ( $subscriptionid ) = @_;
+    my $dbh = C4::Context->dbh;
+    my $query = qq|
+        SELECT COUNT(*) FROM aqorders
+        WHERE subscriptionid = ?
+            AND datereceived IS NULL
+            AND datecancellationprinted IS NULL
+    |;
+    my $sth = $dbh->prepare( $query );
+    $sth->execute($subscriptionid);
+    return $sth->fetchrow_array;
+}
+
 1;
 __END__