diff options
Diffstat (limited to 'FS/bin/freeside-disable-reasons')
-rwxr-xr-x | FS/bin/freeside-disable-reasons | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/FS/bin/freeside-disable-reasons b/FS/bin/freeside-disable-reasons new file mode 100755 index 0000000..0af4609 --- /dev/null +++ b/FS/bin/freeside-disable-reasons @@ -0,0 +1,64 @@ +#!/usr/bin/perl -w + +use strict; +use vars qw($opt_t $opt_e); +use Getopt::Std; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch qsearchs); +use FS::reason_type; +use FS::reason; + +getopts('t:e'); + +my $user = shift or die &usage; +adminsuidsetup $user; + +die &usage + unless ($opt_t); + +$FS::Record::nowarn_identical = 1; + +my @reason = (); +if ( $opt_t ) { + $opt_t =~ /^(\d+)$/ or die "invalid reason_type"; + @reason = qsearch('reason', { reason_type => $1 } ); + die "no reasons found\n" unless @reason; +} else { + die "no reason_type specified\n"; +} + +foreach my $reason ( @reason ) { + if ( $opt_e ) { + $reason->disabled(''); + }else{ + $reason->disabled('Y'); + } + my $error = $reason->replace + if $reason->modified; + die $error if $error; +} + + +sub usage { + die "Usage:\n\n freeside-disable-reasons -t reason_type [ -e ] user\n"; +} + +=head1 NAME + +freeside-disable-reasons - Command line tool to set the disabled column for reasons + +=head1 SYNOPSIS + + freeside-disable-reasons -t reason_type [ -e ] user + +=head1 DESCRIPTION + + Disables the reasons of the specified reason type. + Enables instead if -e is specified. + +=head1 SEE ALSO + +L<FS::reason>, L<FS::reason_type> + +=cut + |