summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-07-10 06:31:09 +0000
committerivan <ivan>2010-07-10 06:31:09 +0000
commit0998ca2d30dcd94bc1ea5db8e689ff30e7658baa (patch)
treed107a46204fea00b49de0b3b425fbf60b256f7ba
parent4b34c0c3dfc664793e5345c629e26c100e94aa22 (diff)
more resilliant cdrbatch upgrade
-rw-r--r--FS/FS/cdr.pm11
1 files changed, 8 insertions, 3 deletions
diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index bd0ed57e9..e8be08056 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -899,9 +899,14 @@ sub _upgrade_data {
my %cdrbatchnum = ();
while (my $row = $sth->fetchrow_arrayref) {
- my $cdr_batch = new FS::cdr_batch { 'cdrbatch' => $row->[0] };
- my $error = $cdr_batch->insert;
- die $error if $error;
+
+ my $cdr_batch = qsearchs( 'cdr_batch', { 'cdrbatch' => $row->[0] } );
+ unless ( $cdr_batch ) {
+ $cdr_batch = new FS::cdr_batch { 'cdrbatch' => $row->[0] };
+ my $error = $cdr_batch->insert;
+ die $error if $error;
+ }
+
$cdrbatchnum{$row->[0]} = $cdr_batch->cdrbatchnum;
}