This commit was generated by cvs2svn to compensate for changes in r2523,
[freeside.git] / FS / bin / freeside-reexport
1 #!/usr/bin/perl -Tw
2
3 use strict;
4 use FS::UID qw(adminsuidsetup);
5 use FS::Record qw(qsearch qsearchs);
6 use FS::part_export;
7 use FS::svc_acct;
8 use FS::cust_svc;
9
10 my $user = shift or die &usage;
11 adminsuidsetup $user;
12
13 my $export_x = shift or die &usage;
14 my @part_export;
15 if ( $export_x =~ /^(\d+)$/ ) {
16   @part_export = qsearchs('part_export', { exportnum=>$1 } )
17     or die "exportnum $export_x not found\n";
18 } else {
19   @part_export = qsearch('part_export', { exporttype=>$export_x } )
20     or die "no exports of type $export_x found\n";
21 }
22
23 my $svc_something = shift or die &usage;
24 my $svc_x;
25 if ( $svc_something =~ /^(\d+)$/ ) {
26   my $cust_svc = qsearchs('cust_svc', { svcnum=>$1 } )
27     or die "svcnum $svc_something not found\n";
28   $svc_x = $cust_svc->svc_x;
29 } else {
30   $svc_x = qsearchs('svc_acct', { username=>$svc_something } )
31     or die "username $svc_something not found\n";
32 }
33
34 foreach my $part_export ( @part_export ) {
35   my $error = $part_export->export_insert($svc_x);
36   die $error if $error;
37 }
38
39
40 sub usage {
41   die "Usage:\n\n  freeside-reexport user exportnum|exporttype svcnum|username\n";
42 }
43
44 =head1 NAME
45
46 freeside-reexport - Command line tool to re-trigger export jobs for existing services
47
48 =head1 SYNOPSIS
49
50   freeside-reexport user exportnum|exporttype svcnum|username
51
52 =head1 DESCRIPTION
53
54   Re-queues the export job for the specified exportnum or exporttype(s) and
55   specified service (selected by svcnum or username).
56
57 =head1 SEE ALSO
58
59 L<freeside-sqlradius-reset>, L<FS::part_export>
60
61 =cut
62