Bugzilla – Attachment 10416 Details for
Bug 8253
fix fine doubling, when upgrading from 3.6 to 3.8 (or later)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8253 - Fine doubling - Remove Previous Duplicates
Bug-8253---Fine-doubling---Remove-Previous-Duplica.patch (text/plain), 2.76 KB, created by
Kyle M Hall
on 2012-06-21 16:15:56 UTC
(
hide
)
Description:
Bug 8253 - Fine doubling - Remove Previous Duplicates
Filename:
MIME Type:
Creator:
Kyle M Hall
Created:
2012-06-21 16:15:56 UTC
Size:
2.76 KB
patch
obsolete
>From 6b0115a7ce33b6a3e826873e5bedc2aab985be25 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Thu, 21 Jun 2012 12:15:11 -0400 >Subject: [PATCH] Bug 8253 - Fine doubling - Remove Previous Duplicates > >--- > installer/data/mysql/updatedatabase.pl | 53 ++++++++++++++++++++++++++++++++ > 1 files changed, 53 insertions(+), 0 deletions(-) > >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 9b02cb9..de36fba 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -5369,6 +5369,59 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion ="3.09.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ my $query = " >+SELECT a.* FROM accountlines a >+INNER JOIN accountlines b ON ( >+ a.borrowernumber = b.borrowernumber >+ AND a.itemnumber = b.itemnumber >+ AND a.accounttype = b.accounttype >+) >+WHERE ( >+ a.accounttype = 'FU' >+ OR a.accounttype = 'F' >+) >+AND a.accountno <> b.accountno >+GROUP BY a.borrowernumber, a.itemnumber, a.accountno, a.description >+ORDER BY a.description ASC >+"; >+ my $sth = $dbh->prepare( $query ); >+ $sth->execute(); >+ my $results = $sth->fetchall_arrayref({}); >+ >+ my @fines; >+ while ( $fines[0] = shift( @$results ) ) { >+ my $desc_to_match = $fines[0]->{'description'}; >+ >+ while ( $results->[0]->{'description'} =~ m|^$desc_to_match| ) { >+ push( @fines, shift( @$results ) ); >+ } >+ >+ ## The last should always be the keeper >+ my $keeper = pop( @fines ); >+ my $has_changed = 0; >+ >+ foreach my $f ( @fines ) { >+ if ( $f->{'amountoutstanding'} < $keeper->{'amountoutstanding'} ) { >+ $keeper->{'amountoutstanding'} = $f->{'amountoutstanding'}; >+ $has_changed = 1; >+ } >+ >+ my $sql = "DELETE FROM accountlines WHERE borrowernumber = ? AND accountno = ? AND itemnumber = ? AND date = ? AND description = ?"; >+ $dbh->do($sql,undef,$f->{'borrowernumber'},$f->{'accountno'},$f->{'itemnumber'}, $f->{'date'}, $f->{'description'}); >+ } >+ >+ if ( $has_changed ) { >+ my $sql = "UPDATE accountlines SET amountoutstanding = ? WHERE borrowernumber = ? AND accountno = ? AND itemnumber = ? AND date = ? AND description = ?"; >+ $dbh->do($sql,undef,$keeper->{'amountoutstanding'},$keeper->{'borrowernumber'},$keeper->{'accountno'},$keeper->{'itemnumber'}, $keeper->{'date'}, $keeper->{'description'}); >+ } >+ @fines = (); >+ } >+ >+ print "Upgrade to $DBversion done (Remove duplicate fines))\n"; >+ SetVersion($DBversion); >+} > > =head1 FUNCTIONS > >-- >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 8253
:
10369
|
10405
|
10416
|
10429
|
10436
|
11087
|
11127
|
11660
|
12653
|
12665
|
12666
|
12667
|
12685
|
12686