From b953866b9f57ce381a34f272926f91f7f706de24 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 21 Feb 2009 17:56:07 +0000 Subject: [PATCH] adding follow-tax-rename tool (well, quick hack), RT#4878 --- FS/FS/cust_bill_pkg.pm | 26 ++++++++++++------------- bin/follow-tax-rename | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 bin/follow-tax-rename diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm index d0c51cfec..6c0589a5c 100644 --- a/FS/FS/cust_bill_pkg.pm +++ b/FS/FS/cust_bill_pkg.pm @@ -30,10 +30,6 @@ FS::cust_bill_pkg - Object methods for cust_bill_pkg records $error = $record->insert; - $error = $new_record->replace($old_record); - - $error = $record->delete; - $error = $record->check; =head1 DESCRIPTION @@ -182,16 +178,18 @@ sub delete { return "Can't delete cust_bill_pkg records!"; } -=item replace OLD_RECORD - -Currently unimplemented. This would be even more of an accounting nightmare -than deleteing the items. Just don't do it. - -=cut - -sub replace { - return "Can't modify cust_bill_pkg records!"; -} +#alas, bin/follow-tax-rename +# +#=item replace OLD_RECORD +# +#Currently unimplemented. This would be even more of an accounting nightmare +#than deleteing the items. Just don't do it. +# +#=cut +# +#sub replace { +# return "Can't modify cust_bill_pkg records!"; +#} =item check diff --git a/bin/follow-tax-rename b/bin/follow-tax-rename new file mode 100644 index 000000000..b7536e815 --- /dev/null +++ b/bin/follow-tax-rename @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +use FS::UID qw( adminsuidsetup ); +use FS::Record qw( qsearch qsearchs ); +use FS::cust_bill_pkg; + +$FS::Record::nowarn_classload = 1; +$FS::Record::nowarn_classload = 1; + +adminsuidsetup shift; + +my $begin = 1231876106; + +my @old = qsearch('h_cust_main_county', { + 'history_action' => 'replace_old', + 'history_date' => { op=>'>=', value=>$begin, }, +} ); + +foreach my $old (@old) { + + my $new = qsearchs('h_cust_main_county', { + 'history_action' => 'replace_new', + 'history_date' => $old->history_date, + }); + + unless ( $new ) { + warn "huh? no corresponding new record found?"; + next; + } + + my $old_taxname = $old->taxname; + my $new_taxname = $new->taxname; + + my @cust_bill_pkg = qsearch('cust_bill_pkg', { + 'pkgnum' => 0, + 'itemdesc' => $old->taxname, + }); + + next unless @cust_bill_pkg; + + warn 'fixing '. scalar(@cust_bill_pkg). + " dangling line items for rename $old_taxname -> $new_taxname\n"; + + foreach my $cust_bill_pkg ( @cust_bill_pkg ) { + + $cust_bill_pkg->itemdesc( $new->taxname ); + my $error = $cust_bill_pkg->replace; + die $error if $error; + + } + +} -- 2.11.0