Bugzilla – Attachment 27713 Details for
Bug 11843
Manual subscription history doesn't seem to work as expected
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11843: Reset the old code for updating manual subscription history
Bug-11843-Reset-the-old-code-for-updating-manual-s.patch (text/plain), 4.02 KB, created by
Julian Maurice
on 2014-04-28 09:53:46 UTC
(
hide
)
Description:
Bug 11843: Reset the old code for updating manual subscription history
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2014-04-28 09:53:46 UTC
Size:
4.02 KB
patch
obsolete
>From ba177d36e5e104ce92707681b6a6f0d5de1f3f00 Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Mon, 28 Apr 2014 11:50:04 +0200 >Subject: [PATCH] Bug 11843: Reset the old code for updating manual > subscription history > >--- > C4/Serials.pm | 75 ++++++++++++++++++--------------------------------------- > 1 file changed, 23 insertions(+), 52 deletions(-) > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index 7aa758f..e72a7f1 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -1156,50 +1156,6 @@ sub ModSubscriptionHistory { > return $sth->rows; > } > >-# Update missinglist field, used by ModSerialStatus >-sub _update_missinglist { >- my $subscriptionid = shift; >- >- my $dbh = C4::Context->dbh; >- my @missingserials = GetSerials2($subscriptionid, "4,41,42,43,44,5"); >- my $missinglist; >- foreach my $missingserial (@missingserials) { >- if ( grep { $_ == $missingserial->{status} } qw( 4 41 42 43 44 ) ) { >- $missinglist .= $missingserial->{'serialseq'} . "; "; >- } elsif($missingserial->{'status'} == 5) { >- $missinglist .= "not issued " . $missingserial->{'serialseq'} . "; "; >- } >- } >- $missinglist =~ s/; $//; >- my $query = qq{ >- UPDATE subscriptionhistory >- SET missinglist = ? >- WHERE subscriptionid = ? >- }; >- my $sth = $dbh->prepare($query); >- $sth->execute($missinglist, $subscriptionid); >-} >- >-# Update recievedlist field, used by ModSerialStatus >-sub _update_receivedlist { >- my $subscriptionid = shift; >- >- my $dbh = C4::Context->dbh; >- my @receivedserials = GetSerials2($subscriptionid, "2"); >- my $receivedlist; >- foreach (@receivedserials) { >- $receivedlist .= $_->{'serialseq'} . "; "; >- } >- $receivedlist =~ s/; $//; >- my $query = qq{ >- UPDATE subscriptionhistory >- SET recievedlist = ? >- WHERE subscriptionid = ? >- }; >- my $sth = $dbh->prepare($query); >- $sth->execute($receivedlist, $subscriptionid); >-} >- > =head2 ModSerialStatus > > ModSerialStatus($serialid,$serialseq, $planneddate,$publisheddate,$status,$notes) >@@ -1240,17 +1196,32 @@ sub ModSerialStatus { > $sth->execute($subscriptionid); > my $val = $sth->fetchrow_hashref; > unless ( $val->{manualhistory} ) { >+ $query = "SELECT missinglist,recievedlist FROM subscriptionhistory WHERE subscriptionid=?"; >+ $sth = $dbh->prepare($query); >+ $sth->execute($subscriptionid); >+ my ( $missinglist, $recievedlist ) = $sth->fetchrow; >+ > if ( $status == 2 || ($oldstatus == 2 && $status != 2) ) { >- _update_receivedlist($subscriptionid); >+ $recievedlist .= "; $serialseq" >+ if ($recievedlist !~ /(^|;)\s*$serialseq(?=;|$)/); > } >- my @missing_statuses = qw( 4 41 42 43 44 ); >- if ( ( grep { $_ == $status } ( @missing_statuses, 5 ) ) >- || ( >- ( grep { $_ == $oldstatus } @missing_statuses ) >- && ! ( grep { $_ == $status } @missing_statuses ) ) >- || ($oldstatus == 5 && $status != 5)) { >- _update_missinglist($subscriptionid); >+ >+ # in case serial has been previously marked as missing >+ if (grep /$status/, (1,2,3,7)) { >+ $missinglist=~ s/(^|;)\s*$serialseq(?=;|$)//g; > } >+ >+ my @missing_statuses = qw( 4 41 42 43 44 ); >+ $missinglist .= "; $serialseq" >+ if ( ( grep { $_ == $status } @missing_statuses ) && ( $missinglist !~/(^|;)\s*$serialseq(?=;|$)/ ) ); >+ $missinglist .= "; not issued $serialseq" >+ if ( $status == 5 && $missinglist !~ /(^|;)\s*$serialseq(?=;|$)/ ); >+ >+ $query = "UPDATE subscriptionhistory SET recievedlist=?, missinglist=? WHERE subscriptionid=?"; >+ $sth = $dbh->prepare($query); >+ $recievedlist =~ s/^; //; >+ $missinglist =~ s/^; //; >+ $sth->execute( $recievedlist, $missinglist, $subscriptionid ); > } > } > >-- >1.7.10.4
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 11843
:
27713
|
27714
|
28006
|
28039
|
28040
|
28041
|
28127
|
28128