added util to set invoice destinations
authorivan <ivan>
Thu, 13 Dec 2001 09:17:52 +0000 (09:17 +0000)
committerivan <ivan>
Thu, 13 Dec 2001 09:17:52 +0000 (09:17 +0000)
FS/bin/freeside-setinvoice [new file with mode: 0644]

diff --git a/FS/bin/freeside-setinvoice b/FS/bin/freeside-setinvoice
new file mode 100644 (file)
index 0000000..aeaa0bb
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use strict;
+use FS::UID qw(adminsuidsetup);
+use FS::Conf;
+use FS::Record qw(qsearch);
+use FS::cust_main;
+use FS::svc_acct;
+
+&untaint_argv;  #what it sounds like  (eww)
+my $user = shift or die &usage;
+
+adminsuidsetup $user;
+
+foreach my $cust_main (
+   grep { ! scalar($_->invoicing_list) }
+     qsearch( 'cust_main', {} )
+) {
+  my @dest;
+  my @cust_pkg = $cust_main->ncancelled_pkgs;
+  foreach my $cust_pkg ( @cust_pkg ) {
+    foreach my $cust_svc ( $cust_pkg->cust_svc ) {
+      my $svc_acct = qsearchs( 'svc_acct', {} );
+      push @dest, $svc_acct->svcnum if $svc_acct;
+    }
+  }
+  push @dest, 'POST' unless @dest;
+  $cust_main->invoicing_list(@dest);
+}
+
+sub untaint_argv {
+  foreach $_ ( $[ .. $#ARGV ) { #untaint @ARGV
+    $ARGV[$_] =~ /^(.*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
+    $ARGV[$_]=$1;
+  }
+}
+
+sub usage {
+  die "Usage:\n\n  freeside-setinvoice user\n";
+}
+
+