[freeside-commits] freeside/FS/FS cust_pkg_reason.pm, 1.1.2.4, 1.1.2.5
Ivan,,,
ivan at wavetail.420.am
Sun Mar 15 12:42:42 PDT 2009
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv31999
Modified Files:
Tag: FREESIDE_1_7_BRANCH
cust_pkg_reason.pm
Log Message:
should give better performance if we search for what we want instead of using a string match
Index: cust_pkg_reason.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_pkg_reason.pm,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- cust_pkg_reason.pm 12 Mar 2009 01:14:57 -0000 1.1.2.4
+++ cust_pkg_reason.pm 15 Mar 2009 19:42:40 -0000 1.1.2.5
@@ -134,11 +134,17 @@
#
# Used by FS::Upgrade to migrate to a new database.
+use FS::h_cust_pkg;
+use FS::h_cust_pkg_reason;
+use FS::Schema qw(dbdef);
+
sub _upgrade_data { # class method
my ($class, %opts) = @_;
- my $test_cust_pkg_reason = new FS::cust_pkg_reason;
- return '' unless $test_cust_pkg_reason->dbdef_table->column('action');
+ return '' unless dbdef->table('cust_pkg_reason')->column('action');
+
+ my $action_replace =
+ " AND ( history_action = 'replace_old' OR history_action = 'replace_new' )";
my $count = 0;
my @unmigrated = qsearch('cust_pkg_reason', { 'action' => '' } );
@@ -153,27 +159,24 @@
next unless scalar(@history_cust_pkg_reason) == 1;
- my %action_value = ( op => 'LIKE',
- value => 'replace_%',
- );
my $hashref = { pkgnum => $_->pkgnum,
history_date => $history_cust_pkg_reason[0]->history_date,
- history_action => { %action_value },
};
- my @history = qsearch({ table => 'h_cust_pkg',
- hashref => $hashref,
- order_by => 'ORDER BY history_action',
+ my @history = qsearch({ table => 'h_cust_pkg',
+ hashref => $hashref,
+ extra_sql => $action_replace,
+ order_by => 'ORDER BY history_action',
});
my $fuzz = 0;
while (scalar(@history) < 2 && $fuzz < 3) {
$hashref->{history_date}++;
- $hashref->{history_action} = { %action_value }; # qsearch distorts this!
$fuzz++;
- push @history, qsearch({ table => 'h_cust_pkg',
- hashref => $hashref,
- order_by => 'ORDER BY history_action',
+ push @history, qsearch({ table => 'h_cust_pkg',
+ hashref => $hashref,
+ extra_sql => $action_replace,
+ order_by => 'ORDER BY history_action',
});
}
@@ -231,26 +234,23 @@
@FS::h_cust_pkg::ISA = qw( FS::h_Common FS::cust_pkg );
sub FS::h_cust_pkg::table { 'h_cust_pkg' };
- my %action_value = ( op => 'LIKE',
- value => 'replace_%',
- );
my $hashref = { pkgnum => $_->pkgnum,
history_date => $_->date,
- history_action => { %action_value },
};
- my @history = qsearch({ table => 'h_cust_pkg',
- hashref => $hashref,
- order_by => 'ORDER BY history_action',
+ my @history = qsearch({ table => 'h_cust_pkg',
+ hashref => $hashref,
+ extra_sql => $action_replace,
+ order_by => 'ORDER BY history_action',
});
my $fuzz = 0;
while (scalar(@history) < 2 && $fuzz < 3) {
$hashref->{history_date}++;
- $hashref->{history_action} = { %action_value }; # qsearch distorts this!
$fuzz++;
push @history, qsearch({ table => 'h_cust_pkg',
hashref => $hashref,
+ extra_sql => $action_replace,
order_by => 'ORDER BY history_action',
});
}
More information about the freeside-commits
mailing list