+ $conf->set('address_standardize_method', 'usps')
+ if $conf->exists('usps_webtools-userid')
+ && length($conf->config('usps_webtools-userid')) > 0
+ && ! $conf->exists('address_standardize_method');
+
+ # this option has been renamed/expanded
+ if ( $conf->exists('cust_main-enable_spouse_birthdate') ) {
+ $conf->touch('cust_main-enable_spouse');
+ $conf->delete('cust_main-enable_spouse_birthdate');
+ }
+
+ # renamed/repurposed
+ if ( $conf->exists('cust_pkg-show_fcc_voice_grade_equivalent') ) {
+ $conf->touch('part_pkg-show_fcc_options');
+ $conf->delete('cust_pkg-show_fcc_voice_grade_equivalent');
+ warn "
+You have FCC Form 477 package options enabled.
+
+Starting with the October 2014 filing date, the FCC has redesigned
+Form 477 and introduced new service categories. See bin/convert-477-options
+to update your package configuration for the new report.
+
+If you need to continue using the old Form 477 report, turn on the
+'old_fcc_report' configuration option.
+";
+ }
+
+ # boolean invoice_sections_by_location option is now
+ # invoice_sections_method = 'location'
+ my @invoice_sections_confs =
+ qsearch('conf', { 'name' => { op=>'LIKE', value=>'%sections_by_location' } });
+ foreach my $c (@invoice_sections_confs) {
+ $c->name =~ /^(\w+)sections_by_location$/;
+ $conf->delete($c->name);
+ my $newname = $1.'sections_method';
+ $conf->set($newname, 'location');
+ }
+
+ # boolean enable_taxproducts is now tax_data_vendor = 'cch'
+ if ( $conf->exists('enable_taxproducts') ) {
+
+ $conf->delete('enable_taxproducts');
+ $conf->set('tax_data_vendor', 'cch');
+
+ }
+
+ # boolean tax-cust_exempt-groups-require_individual_nums is now -num_req all
+ if ( $conf->exists('tax-cust_exempt-groups-require_individual_nums') ) {
+ $conf->set('tax-cust_exempt-groups-num_req', 'all');
+ $conf->delete('tax-cust_exempt-groups-require_individual_nums');
+ }
+
+ # boolean+text previous_balance-exclude_from_total is now two separate options
+ my $total_new_charges = $conf->config('previous_balance-exclude_from_total');
+ if (length($total_new_charges) > 0) {
+ $conf->set('previous_balance-text-total_new_charges', $total_new_charges);
+ $conf->set('previous_balance-exclude_from_total', '');
+ }
+
+ # switch from specifying an email address to boolean check
+ if ( $conf->exists('batch-errors_to') ) {
+ $conf->touch('batch-errors_not_fatal');
+ $conf->delete('batch-errors_to');