From 29acbc574cb1e29032c634e1f6ac63e92d14df3b Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 13 Dec 2001 09:17:52 +0000 Subject: added util to set invoice destinations --- FS/bin/freeside-setinvoice | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 FS/bin/freeside-setinvoice (limited to 'FS/bin/freeside-setinvoice') diff --git a/FS/bin/freeside-setinvoice b/FS/bin/freeside-setinvoice new file mode 100644 index 000000000..aeaa0bb1b --- /dev/null +++ b/FS/bin/freeside-setinvoice @@ -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"; +} + + -- cgit v1.2.1 From 156535a911a8ad4315dcdee397cf8aff2071b520 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 13 Dec 2001 17:52:37 +0000 Subject: fix setinvoice script --- FS/bin/freeside-setinvoice | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'FS/bin/freeside-setinvoice') diff --git a/FS/bin/freeside-setinvoice b/FS/bin/freeside-setinvoice index aeaa0bb1b..3eb75f8b7 100644 --- a/FS/bin/freeside-setinvoice +++ b/FS/bin/freeside-setinvoice @@ -3,7 +3,7 @@ use strict; use FS::UID qw(adminsuidsetup); use FS::Conf; -use FS::Record qw(qsearch); +use FS::Record qw(qsearch qsearchs); use FS::cust_main; use FS::svc_acct; @@ -20,7 +20,7 @@ foreach my $cust_main ( 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', {} ); + my $svc_acct = qsearchs( 'svc_acct', { 'svcnum' => $cust_svc->svcnum } ); push @dest, $svc_acct->svcnum if $svc_acct; } } -- cgit v1.2.1 From f78c8ea9034ef02671aa68512dc5458a0c693cc0 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 13 Dec 2001 18:37:25 +0000 Subject: okay, it should really work now --- FS/bin/freeside-setinvoice | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FS/bin/freeside-setinvoice') diff --git a/FS/bin/freeside-setinvoice b/FS/bin/freeside-setinvoice index 3eb75f8b7..708e2fa30 100644 --- a/FS/bin/freeside-setinvoice +++ b/FS/bin/freeside-setinvoice @@ -25,7 +25,7 @@ foreach my $cust_main ( } } push @dest, 'POST' unless @dest; - $cust_main->invoicing_list(@dest); + $cust_main->invoicing_list(\@dest); } sub untaint_argv { -- cgit v1.2.1