From cbc1e6944fb7154a1ff97ac1bdc5cca947477935 Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Thu, 1 Jun 2017 10:21:48 -0400 Subject: [PATCH] RT# 73993 - Updated process to display only packages customer has access to. --- FS/FS/ClientAPI/MyAccount.pm | 6 +++++- ng_selfservice/packages_change.php | 24 ++++++------------------ ng_selfservice/process_packages_change.php | 4 +--- ng_selfservice/services.php | 2 +- 4 files changed, 13 insertions(+), 23 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 7df481ec6..8c082ec0d 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -2581,10 +2581,14 @@ sub change_pkg { my $err_or_cust_pkg = $cust_pkg->change( 'pkgpart' => $p->{'pkgpart'}, 'quantity' => $p->{'quantity'} || 1, ); + + my $new_pkg = qsearchs('part_pkg', { 'pkgpart' => $p->{pkgpart} } ) + or return { 'error' => "unknown package $p->{pkgpart}" }; return { error=>$err_or_cust_pkg, pkgnum=>$cust_pkg->pkgnum } unless ref($err_or_cust_pkg); + if ( $conf->exists('signup_server-realtime') ) { my $bill_error = _do_bop_realtime( $cust_main, $status, 'no_invoice_void'=>1 ); @@ -2600,7 +2604,7 @@ sub change_pkg { $err_or_cust_pkg->reexport; } - return { error => '', pkgnum => $cust_pkg->pkgnum }; + return { error => '', pkg => $new_pkg->pkg, pkgnum => $err_or_cust_pkg->pkgnum }; } diff --git a/ng_selfservice/packages_change.php b/ng_selfservice/packages_change.php index 8b4386ce0..876f6cd19 100644 --- a/ng_selfservice/packages_change.php +++ b/ng_selfservice/packages_change.php @@ -6,32 +6,20 @@ $customer_info = $freeside->customer_info_short( array( 'session_id' => $_COOKIE['session_id'], ) ); -$list_pkgs = $freeside->list_pkgs( array( - 'session_id' => $_COOKIE['session_id'], -) ); - -if ( isset($list_pkgs['error']) && $list_pkgs['error'] ) { - $error = $list_pkgs['error']; - header('Location:index.php?error='. urlencode($error)); - die(); +foreach ( $cust_pkg AS $pkg ) { + $part_pkg .= $pkg[pkgpart]; + $class_num .= $pkg[classnum]; } -extract($list_pkgs); - -$get_params = array( 'pkgnum', 'pkg' ); +$get_params = array( 'pkgnum', 'pkg', 'classnum', 'pkgpart' ); foreach ( $get_params AS $param ) { $params[$param] = $_GET[$param]; } -$pkgnum = $_GET['pkgnum']; -$pkg = $_GET['pkg']; - $pkgselect = $freeside->mason_comp( array( 'session_id' => $_COOKIE['session_id'], 'comp' => '/elements/select-part_pkg.html', - 'args' => array( 'custnum' => $customer_info['custnum'], - 'curr_value' => 'current_value', - ), + 'args' => [ 'classnum', $params['classnum'], 'curr_value', $params['pkgpart'], ], ) ); @@ -53,7 +41,7 @@ function enable_change_pkg () { } -Purchase replacement package for ""

+Purchase replacement package for ""

diff --git a/ng_selfservice/process_packages_change.php b/ng_selfservice/process_packages_change.php index 114cc6b1a..3ea655e60 100644 --- a/ng_selfservice/process_packages_change.php +++ b/ng_selfservice/process_packages_change.php @@ -53,8 +53,6 @@ if ( ! $results['error'] ) { $results = $freeside->change_pkg($change_pkg); - echo $results; - } # if ( $results->{'error'} ) { @@ -83,7 +81,7 @@ if ( isset($results['error']) && $results['error'] ) { ?> -Package Changed Su for ""

+Package Successfully Changed To ""

\ No newline at end of file diff --git a/ng_selfservice/services.php b/ng_selfservice/services.php index 25fbdde4f..987e5826d 100644 --- a/ng_selfservice/services.php +++ b/ng_selfservice/services.php @@ -33,7 +33,7 @@ extract($list_pkgs); $change_link = ''; if ( in_array("Change packages", $menu_disable) == 0) { - $change_link = '[change]'; + $change_link = '[change]'; } ?> -- 2.11.0