Bugzilla – Attachment 16347 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]
Bug 8956 - Split serials enumeration data into separate fields - Part 2 - Store x, y and z in DB when generating new serials
Bug-8956---Split-serials-enumeration-data-into-sep.patch (text/plain), 6.52 KB, created by
Kyle M Hall (khall)
on 2013-03-19 09:54:07 UTC
(
hide
)
Description:
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:
Kyle M Hall (khall)
Created:
2013-03-19 09:54:07 UTC
Size:
6.52 KB
patch
obsolete
>From 13bafa28b10e91dc1b4dc2a71bc427d09e41e3d0 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] Bug 8956 - Split serials enumeration data into separate fields - Part 2 - Store x, y and z in DB when generating new serials > >--- > 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 0b31a2b..8b5c697 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -926,7 +926,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; >@@ -935,8 +934,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} ); >@@ -977,29 +974,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 >@@ -1168,7 +1172,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); >@@ -1379,14 +1383,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"); > >@@ -1478,17 +1482,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 ad57e07..d02721b 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