diff options
author | Christopher Burger <burgerc@freeside.biz> | 2017-07-02 11:58:57 -0400 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2017-07-21 10:47:16 -0400 |
commit | 4c33f032d1ef813120134000fb7e58cab9417faf (patch) | |
tree | c21afd03a123ff3f57d6d52fa6ba0ad9a978f2e0 | |
parent | 92e726844528495d729ceb24c1131dde648ebb6c (diff) |
RT# 73993 - cleaned up code as requested, and created new call to get package info
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 24 | ||||
-rw-r--r-- | FS/FS/ClientAPI_XMLRPC.pm | 1 | ||||
-rw-r--r-- | ng_selfservice/packages_change.php | 36 | ||||
-rw-r--r-- | ng_selfservice/process_packages_change.php | 2 |
4 files changed, 38 insertions, 25 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 8c082ec0d..505111e1a 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1760,6 +1760,30 @@ sub cancel { } +sub pkg_info { + my $p = shift; + + my($context, $session, $custnum) = _custoragent_session_custnum($p); + return { 'error' => $session } if $context eq 'error'; + + my $pkg = qsearchs({ + 'table' => 'cust_pkg', + 'addl_from' => 'LEFT JOIN part_pkg USING ( pkgpart )', + 'hashref' => { + 'custnum' => $custnum, + 'pkgnum' => $p->{'pkgnum'}, + }, + }) + or return {'error' => 'unknown pkg num $pkgnum'}; + + return { + pkg_label => $pkg->pkg, + pkgpart => $pkg->pkgpart, + classnum => $pkg->classnum, + }; + +} + sub list_pkgs { my $p = shift; diff --git a/FS/FS/ClientAPI_XMLRPC.pm b/FS/FS/ClientAPI_XMLRPC.pm index 8e21aef1b..511cef4c9 100644 --- a/FS/FS/ClientAPI_XMLRPC.pm +++ b/FS/FS/ClientAPI_XMLRPC.pm @@ -150,6 +150,7 @@ sub ss2clientapi { 'finish_thirdparty' => 'MyAccount/finish_thirdparty', 'realtime_collect' => 'MyAccount/realtime_collect', 'list_pkgs' => 'MyAccount/list_pkgs', #add to ss (added?) + 'pkg_info' => 'MyAccount/pkg_info', 'list_svcs' => 'MyAccount/list_svcs', #add to ss (added?) 'list_svc_usage' => 'MyAccount/list_svc_usage', 'svc_status_html' => 'MyAccount/svc_status_html', diff --git a/ng_selfservice/packages_change.php b/ng_selfservice/packages_change.php index 20685e884..6791a1ad2 100644 --- a/ng_selfservice/packages_change.php +++ b/ng_selfservice/packages_change.php @@ -2,39 +2,28 @@ <? $current_menu = 'services.php'; include('elements/menu.php'); ?> <? -$get_params = array( 'pkgnum' ); -foreach ( $get_params AS $param ) { - $params[$param] = $_GET[$param]; -} - $customer_info = $freeside->customer_info_short( array( 'session_id' => $_COOKIE['session_id'], ) ); -$list_pkgs = $freeside->list_pkgs( array( - 'session_id' => $_COOKIE['session_id'], -) ); +if ( preg_match( '/^(\d+)$/', $_GET['pkgnum'] ) ) { + $cust_pkg = $freeside->pkg_info( array( + 'session_id' => $_COOKIE['session_id'], + 'pkgnum' => $_GET['pkgnum'], + ) ); +} +else { $cust_pkg['error'] = 'Bad Package Number'; } -if ( isset($list_pkgs['error']) && $list_pkgs['error'] ) { - $error = $list_pkgs['error']; +if ( isset($cust_pkg['error']) && $cust_pkg['error'] ) { + $error = $cust_pkg['error']; header('Location:index.php?error='. urlencode($error)); die(); } -extract($list_pkgs); - -foreach ( $cust_pkg AS $pkg ) { - if ( $pkg['pkgnum'] == $params['pkgnum'] ) { - $pkg_label = $pkg['pkg_label']; - $pkg_part = $pkg['pkgpart']; - $class_num = $pkg['classnum']; - } -} - $pkgselect = $freeside->mason_comp( array( 'session_id' => $_COOKIE['session_id'], 'comp' => '/elements/select-part_pkg.html', - 'args' => [ 'classnum', $class_num, 'curr_value', $pkg_part, ], + 'args' => [ 'classnum', $cust_pkg['classnum'], 'curr_value', $cust_pkg['pkgpart'], ], ) ); @@ -56,7 +45,7 @@ function enable_change_pkg () { } </SCRIPT> -<FONT SIZE=4>Purchase replacement package for "<? echo htmlspecialchars($pkg_label); ?>"</FONT><BR><BR> +<FONT SIZE=4>Purchase replacement package for "<? echo htmlspecialchars($cust_pkg['pkg_label']); ?>"</FONT><BR><BR> <? include('elements/error.php'); ?> @@ -73,8 +62,7 @@ function enable_change_pkg () { </TABLE> <BR> <INPUT TYPE="hidden" NAME="custnum" VALUE="<? echo $customer_info['custnum'] ?>"> -<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<? echo $params['pkgnum'] ?>"> -<INPUT TYPE="hidden" NAME="pkg" VALUE="<? echo $params['pkg'] ?>"> +<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<? echo htmlspecialchars($_GET['pkgnum']) ?>"> <INPUT TYPE="hidden" NAME="action" VALUE="process_change_pkg"> <INPUT NAME="submit" TYPE="submit" VALUE="Change Package"> </FORM> diff --git a/ng_selfservice/process_packages_change.php b/ng_selfservice/process_packages_change.php index 3ea655e60..a7ba2c4bf 100644 --- a/ng_selfservice/process_packages_change.php +++ b/ng_selfservice/process_packages_change.php @@ -81,7 +81,7 @@ if ( isset($results['error']) && $results['error'] ) { ?> <? include('elements/error.php'); ?> -<FONT SIZE=4>Package Successfully Changed To "<? echo $results['pkg']; ?>"</FONT><BR><BR> +<FONT SIZE=4>Package Successfully Changed To "<? echo htmlspecialchars($results['pkg']); ?>"</FONT><BR><BR> <? include('elements/menu_footer.php'); ?> <? include('elements/footer.php'); ?>
\ No newline at end of file |