X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_signup%2Ffs_signup_server;h=c6ee665fa053da379beea0df0c7155931ccaf8e7;hb=a9ec5a5c02a137cadd9f2a522fba904d945ddbe3;hp=f6702386ec3bc3a5e224a95cdb95062da6a8d22f;hpb=b812b5a4a664e0bd271392ae4a609b18e85ca6b6;p=freeside.git diff --git a/fs_signup/fs_signup_server b/fs_signup/fs_signup_server index f6702386e..c6ee665fa 100755 --- a/fs_signup/fs_signup_server +++ b/fs_signup/fs_signup_server @@ -5,7 +5,8 @@ use strict; use IO::Handle; -use FS::SSH qw(sshopen2); +use Tie::RefHash; +use Net::SSH qw(sshopen2); use FS::UID qw(adminsuidsetup); use FS::Record qw( qsearch qsearchs ); use FS::cust_main_county; @@ -15,7 +16,7 @@ use vars qw( $opt $Debug ); $Debug = 0; -my @payby = qw(CARD); +my @payby = qw(CARD PREPAY); my $user = shift or die &usage; &adminsuidsetup( $user ); @@ -28,7 +29,8 @@ my $pkgpart = $agent->pkgpart_hashref; my $refnum = shift or die &usage; -$SIG{CHLD} = sub { wait() }; +#causing trouble for some folks +#$SIG{CHLD} = sub { wait() }; my($fs_signupd)="/usr/local/sbin/fs_signupd"; @@ -124,8 +126,6 @@ while (1) { my @invoicing_list = split( /\s*\,\s*/, $invoicing_list ); - $error ||= $cust_main->check_invoicing_list( \@invoicing_list ); - my $part_pkg = qsearchs( 'part_pkg', { 'pkgpart' => $pkgpart } ) or $error ||= "WARNING: unknown pkgpart $pkgpart"; my $svcpart = $part_pkg->svcpart unless $error; @@ -159,22 +159,14 @@ while (1) { $error ||= $svc_acct->check; - $error ||= $cust_main->insert; - if ( $cust_pkg && ! $error ) { #in this case, $cust_pkg should always - #be definied, but.... - $cust_pkg->custnum( $cust_main->custnum ); - $error ||= $cust_pkg->insert; - warn "WARNING: $error on pre-checked cust_pkg record!" if $error; - $svc_acct->pkgnum( $cust_pkg->pkgnum ); - $error ||= $svc_acct->insert; - warn "WARNING: $error on pre-checked svc_acct record!" if $error; - } + use Tie::RefHash; + tie my %hash, 'Tie::RefHash'; + %hash = ( $cust_pkg => [ $svc_acct ] ); + $error ||= $cust_main->insert( \%hash, \@invoicing_list ); warn "[fs_signup_server] Sending results...\n" if $Debug; print $writer $error, "\n"; - $cust_main->invoicing_list( \@invoicing_list ) unless $error; - } close $writer; close $reader;