From 19f051397b95490022d043001819963726055eb0 Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 29 Sep 2010 05:40:12 +0000 Subject: [PATCH] svc_pbx in signup server, RT#9380 --- FS/FS/ClientAPI/Signup.pm | 22 ++++++++++++++++++---- fs_selfservice/drupal/signup.inc | 40 +++++++++++++++++++++++++++------------- 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm index d6f5f1418..ec45e79a2 100644 --- a/FS/FS/ClientAPI/Signup.pm +++ b/FS/FS/ClientAPI/Signup.pm @@ -451,6 +451,9 @@ sub new_customer { unless $packet->{'popnum'} || !scalar(qsearch('svc_acct_pop',{} )); } + elsif ( $svc_x eq 'svc_pbx' ) { + #possibly some validation will be needed + } my $agentnum; if ( exists $packet->{'session_id'} ) { @@ -585,18 +588,23 @@ sub new_customer { } $svc->child_objects( \@acct_snarf ); - push @svc, $svc; } elsif ( $svc_x eq 'svc_phone' ) { - my $svc = new FS::svc_phone ( { + push @svc, new FS::svc_phone ( { 'svcpart' => $svcpart, map { $_ => $packet->{$_} } qw( countrycode phonenum sip_password pin ), } ); - push @svc, $svc; + } elsif ( $svc_x eq 'svc_pbx' ) { + push @svc, new FS::svc_pbx ( { + 'svcpart' => $svcpart, + map { $_ => $packet->{$_} } + qw( id title ), + } ); + } else { die "unknown signup service $svc_x"; } @@ -722,14 +730,20 @@ sub new_customer { my %return = ( 'error' => '', 'signup_service' => $svc_x, + 'svcnum' => $svc[0]->svcnum, + 'custnum' => $cust_main->custnum, ); if ( $svc_x eq 'svc_acct' ) { $return{$_} = $svc[0]->$_() for qw( username _password ); } elsif ( $svc_x eq 'svc_phone' ) { $return{$_} = $svc[0]->$_() for qw( countrycode phonenum sip_password pin ); + } elsif ( $svc_x eq 'svc_pbx' ) { + #$return{$_} = $svc[0]->$_() for qw( ) #nothing yet } else { - die "unknown signup service $svc_x"; + return { 'error' => "configuration error: unknown signup service $svc_x" }; + #die "unknown signup service $svc_x"; + # return an error that's visible to someone somewhere } return \%return; diff --git a/fs_selfservice/drupal/signup.inc b/fs_selfservice/drupal/signup.inc index 9e9443a1b..b3e54f034 100644 --- a/fs_selfservice/drupal/signup.inc +++ b/fs_selfservice/drupal/signup.inc @@ -66,6 +66,7 @@ function freeside_signup_form($form_state) { 'payby_longname', 'part_pkg', 'default_pkgpart', + 'signup_service', ); $signup_info = signup_info($keys); dkpr($signup_info); @@ -249,19 +250,28 @@ function freeside_signup_form($form_state) { '#value' => $pkgs[0]['pkgpart'], ) ), - 'username'=> array( - '#type' => 'textfield', - '#title' => t('Username'), - '#size' => 20, - '#required'=>1, - ), - 'password'=> array( - '#type' => 'password_confirm', - '#size' => 20, - '#required'=>1, - '#process'=> array('freeside_expand_password_confirm'), - ), ); + + switch($signup_info['signup_service']) { + case 'svc_acct': + $form['package'] += array( + 'username'=> array( + '#type' => 'textfield', + '#title' => t('Username'), + '#size' => 20, + '#required'=>1, + ), + 'password'=> array( + '#type' => 'password_confirm', + '#size' => 20, + '#required'=>1, + '#process'=> array('freeside_expand_password_confirm'), + ) + ); + break; + case 'svc_pbx': + break; // nothing yet implemented + } $form['package']['pkgpart']['#default_value'] = $signup_info['default_pkgpart']; $form['submit'] = array( @@ -333,7 +343,11 @@ function freeside_signup_form_submit($form, &$form_state) { } else { drupal_set_message(t("Signup successful!"),'status'); - $form_state['redirect'] = variable_get('freeside_redirect_after_signup','/'); + $form_state['redirect'] = array( + variable_get('freeside_redirect_after_signup','/'), + //query string would go here + //'custnum='.$response['custnum'].'&svcnum='.$response['svcnum'], + ); } } -- 2.11.0