Bugzilla – Attachment 18569 Details for
Bug 8956
Split serials enumeration data into separate fields
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[Signed off] Bug 8956 - Split serials enumeration data into separate fields - Part 2 - Store x, y and z in DB when generating new serials
Signed-off-Bug-8956---Split-serials-enumeration-da.patch (text/plain), 6.59 KB, created by
Melia Meggs
on 2013-05-31 22:21:25 UTC
(
hide
)
Description:
[Signed off] Bug 8956 - Split serials enumeration data into separate fields - Part 2 - Store x, y and z in DB when generating new serials
Filename:
MIME Type:
Creator:
Melia Meggs
Created:
2013-05-31 22:21:25 UTC
Size:
6.59 KB
patch
obsolete
>From bbb77430403cac1c97668ab99d91c6181f77e7fb Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 24 Oct 2012 12:46:51 -0400 >Subject: [PATCH] [Signed off] Bug 8956 - Split serials enumeration data into separate fields - Part 2 - Store x, y and z in DB when generating new serials > >Signed-off-by: Paul Landers <paul.landers@ttuhsc.edu> >--- > C4/Serials.pm | 55 ++++++++++++++++++++++------------------ > serials/serials-collection.pl | 2 +- > 2 files changed, 31 insertions(+), 26 deletions(-) > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index 76d3fc7..b76d3c1 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -927,7 +927,6 @@ sub GetNextSeq { > $newlastvalue1 = $val->{lastvalue1}; > $newlastvalue2 = $val->{lastvalue2}; > $newlastvalue3 = $val->{lastvalue3}; >- $newlastvalue1 = $val->{lastvalue1}; > > # check if we have to increase the new value. > $newinnerloop1 = $val->{innerloop1} + 1; >@@ -936,8 +935,6 @@ sub GetNextSeq { > $newlastvalue1 = $val->{setto1} if ( $newlastvalue1 > $val->{whenmorethan1} ); # reset counter if needed. > $calculated =~ s/\{X\}/$newlastvalue1/g; > >- $newlastvalue2 = $val->{lastvalue2}; >- > # check if we have to increase the new value. > $newinnerloop2 = $val->{innerloop2} + 1; > $newinnerloop2 = 0 if ( $newinnerloop2 >= $val->{every2} ); >@@ -978,29 +975,36 @@ the sequence in integer format > =cut > > sub GetSeq { >- my ($val) = @_; >- my $pattern = $val->{numberpattern}; > my @seasons = ( 'nothing', 'Winter', 'Spring', 'Summer', 'Autumn' ); > my @southern_seasons = ( '', 'Summer', 'Autumn', 'Winter', 'Spring' ); >+ >+ my ($val) = @_; >+ my $pattern = $val->{numberpattern}; > my $calculated = $val->{numberingmethod}; > my $x = $val->{'lastvalue1'}; >- $calculated =~ s/\{X\}/$x/g; >- my $newlastvalue2 = $val->{'lastvalue2'}; >+ my $y = $val->{'lastvalue2'}; >+ my $z = $val->{'lastvalue3'}; > >- if ( $pattern == 6 ) { >+ if ( $pattern == 6 ) { ## Seasons > if ( $val->{hemisphere} == 2 ) { >- my $newlastvalue2seq = $southern_seasons[$newlastvalue2]; >- $calculated =~ s/\{Y\}/$newlastvalue2seq/g; >+ $y = $southern_seasons[$y]; > } else { >- my $newlastvalue2seq = $seasons[$newlastvalue2]; >- $calculated =~ s/\{Y\}/$newlastvalue2seq/g; >+ $y = $seasons[$y]; > } >- } else { >- $calculated =~ s/\{Y\}/$newlastvalue2/g; > } >- my $z = $val->{'lastvalue3'}; >+ >+ $calculated =~ s/\{X\}/$x/g; >+ $calculated =~ s/\{Y\}/$y/g; > $calculated =~ s/\{Z\}/$z/g; >- return $calculated; >+ >+ my $x_label = $val->{'serialseq_x_label'}; >+ my $y_label = $val->{'serialseq_y_label'}; >+ my $z_label = $val->{'serialseq_z_label'}; >+ $calculated =~ s/\{XL\}/$x_label/g; >+ $calculated =~ s/\{YL\}/$y_label/g; >+ $calculated =~ s/\{ZL\}/$z_label/g; >+ >+ return ( $calculated, $x, $y, $z ); > } > > =head2 GetExpirationDate >@@ -1169,7 +1173,7 @@ sub ModSerialStatus { > > # next date (calculated from actual date & frequency parameters) > my $nextpublisheddate = GetNextDate( $publisheddate, $val ); >- NewIssue( $newserialseq, $subscriptionid, $val->{'biblionumber'}, 1, $nextpublisheddate, $nextpublisheddate ); >+ NewIssue( $newserialseq, $subscriptionid, $val->{'biblionumber'}, 1, $nextpublisheddate, $nextpublisheddate, undef, $newlastvalue1, $newlastvalue2, $newlastvalue3 ); > $query = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=? > WHERE subscriptionid = ?"; > $sth = $dbh->prepare($query); >@@ -1380,14 +1384,14 @@ sub NewSubscription { > my $val = $sth->fetchrow_hashref; > > # calculate issue number >- my $serialseq = GetSeq($val); >+ my ( $serialseq, $x, $y, $z ) = GetSeq($val); > $query = qq| > INSERT INTO serial >- (serialseq,subscriptionid,biblionumber,status, planneddate, publisheddate) >- VALUES (?,?,?,?,?,?) >+ (serialseq,serialseq_x,serialseq_y,serialseq_z,subscriptionid,biblionumber,status, planneddate, publisheddate) >+ VALUES (?,?,?,?,?,?,?,?,?) > |; > $sth = $dbh->prepare($query); >- $sth->execute( "$serialseq", $subscriptionid, $biblionumber, 1, $firstacquidate, $firstacquidate ); >+ $sth->execute( $serialseq, $x, $y, $z, $subscriptionid, $biblionumber, 1, $firstacquidate, $firstacquidate ); > > logaction( "SERIAL", "ADD", $subscriptionid, "" ) if C4::Context->preference("SubscriptionLog"); > >@@ -1479,17 +1483,18 @@ returns the serial id > =cut > > sub NewIssue { >- my ( $serialseq, $subscriptionid, $biblionumber, $status, $planneddate, $publisheddate, $notes ) = @_; >+ my ( $serialseq, $subscriptionid, $biblionumber, $status, $planneddate, $publisheddate, $notes, $x, $y, $z ) = @_; >+ warn "NewIssue( $serialseq, $subscriptionid, $biblionumber, $status, $planneddate, $publisheddate, $notes, $x, $y, $z )"; > ### FIXME biblionumber CAN be provided by subscriptionid. So Do we STILL NEED IT ? > > my $dbh = C4::Context->dbh; > my $query = qq| > INSERT INTO serial >- (serialseq,subscriptionid,biblionumber,status,publisheddate,planneddate,notes) >- VALUES (?,?,?,?,?,?,?) >+ (serialseq,subscriptionid,biblionumber,status,publisheddate,planneddate,notes,serialseq_x,serialseq_y,serialseq_z) >+ VALUES (?,?,?,?,?,?,?,?,?,?) > |; > my $sth = $dbh->prepare($query); >- $sth->execute( $serialseq, $subscriptionid, $biblionumber, $status, $publisheddate, $planneddate, $notes ); >+ $sth->execute( $serialseq, $subscriptionid, $biblionumber, $status, $publisheddate, $planneddate, $notes, $x, $y, $z ); > my $serialid = $dbh->{'mysql_insertid'}; > $query = qq| > SELECT missinglist,recievedlist >diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl >index 7428494..500ebfa 100755 >--- a/serials/serials-collection.pl >+++ b/serials/serials-collection.pl >@@ -79,7 +79,7 @@ if($op eq 'gennext' && @subscriptionid){ > my $nextpublisheddate = GetNextDate( $expected->{planneddate}->output('iso'), $subscription ); > ## Creating the new issue > NewIssue( $newserialseq, $subscriptionid, $subscription->{'biblionumber'}, >- 1, $nextpublisheddate, $nextpublisheddate ); >+ 1, $nextpublisheddate, $nextpublisheddate, undef, $newlastvalue1, $newlastvalue2, $newlastvalue3 ); > > ## Updating the subscription seq status > my $squery = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=? >-- >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 8956
:
13041
|
13042
|
13043
|
13044
|
13045
|
13046
|
13047
|
15914
|
15915
|
15916
|
15917
|
15918
|
15919
|
15920
|
16346
|
16347
|
16348
|
16349
|
16350
|
16351
|
16352
|
16353
|
18554
|
18555
|
18556
|
18557
|
18558
|
18559
|
18560
|
18561
|
18568
|
18569
|
18570
|
18571
|
18572
|
18573
|
18574
|
18575
|
18576
|
18577
|
18578
|
18579
|
18580
|
18581
|
18582
|
18583
|
18679