Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Fri, 2 Jun 2017 21:21:22 +0000 (14:21 -0700)
committerIvan Kohler <ivan@freeside.biz>
Fri, 2 Jun 2017 21:21:22 +0000 (14:21 -0700)
FS/FS/ClientAPI/MyAccount.pm
httemplate/elements/change_history_common.html
ng_selfservice/packages_change.php
ng_selfservice/process_packages_change.php
ng_selfservice/services.php

index 7df481e..8c082ec 100644 (file)
@@ -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 };
 
 }
 
index dfcfcb9..5fba236 100644 (file)
 %   } else {
 %     $bgcolor = $bgcolor1;
 %   }
+%
+%   ## Create Description and check to see it is not empty, no need to display a record with no description, so skip it.
+%   my $description = '';
+%   if ( $item->table eq 'legacy_cust_history' ) {
+%     $description = $item->description;
+%   } elsif ( $item->table eq 'h_cust_tag' ) {
+%     $description = &{ $h_table_descripsub{$item->table} }( $item, $tables{'cust_tag'} )
+%        if $single_cust && $h_table_descripsub{$item->table};
+%   } else {
+%     $description = join(', ',
+%             map  { my $value = ( $_ =~ /(^pay(info|cvv)|^ss|_password)$/ ) 
+%                                  ? 'N/A'
+%                                  : $item->get($_);
+%                    $value = time2str($cust_pkg_date_format, $value)
+%                     if $item->table eq 'h_cust_pkg'
+%                     && $cust_pkg_date_fields{$_}
+%                     && $value;
+%
+%                    $value = substr($value, 0, 77).'...' if length($value) > 80;
+%                    $value = encode_entities($value);
+%                    "<I>$_</I>:<B>$value</B>";
+%                  }
+%             grep { $history_other
+%                      ? ( $item->get($_) ne $history_other->get($_) )
+%                      : ( $item->get($_) =~ /\S/ )
+%                  }
+%             grep { ! /^(history|custnum$)/i }
+%                  $item->fields
+%     );
+%     if ( $single_cust && $h_table_descripsub{$item->table} ) {
+%        $description = &{ $h_table_descripsub{$item->table} }( $item );
+%     }
+%   } #else 
+%  if (!$description) { next; }
 
   <TR>
 
     </TD>
 
     <TD ALIGN="left" CLASS="grid" BGCOLOR="<% $bgcolor %>">
-%     my $description = '';
-%     if ( $item->table eq 'legacy_cust_history' ) {
-        <% $item->description |h %>
-%     } elsif ( $item->table eq 'h_cust_tag' ) {
-%        $description = &{ $h_table_descripsub{$item->table} }( $item, $tables{'cust_tag'} )
-%         if $single_cust && $h_table_descripsub{$item->table};
-         <% $description %>
-%     } else {
-        <% join(', ',
-             map  { my $value = ( $_ =~ /(^pay(info|cvv)|^ss|_password)$/ ) 
-                                  ? 'N/A'
-                                  : $item->get($_);
-                    $value = time2str($cust_pkg_date_format, $value)
-                     if $item->table eq 'h_cust_pkg'
-                     && $cust_pkg_date_fields{$_}
-                     && $value;
-
-                    $value = substr($value, 0, 77).'...' if length($value) > 80;
-                    $value = encode_entities($value);
-                    "<I>$_</I>:<B>$value</B>";
-                  }
-             grep { $history_other
-                      ? ( $item->get($_) ne $history_other->get($_) )
-                      : ( $item->get($_) =~ /\S/ )
-                  }
-             grep { ! /^(history|custnum$)/i }
-                  $item->fields
-           )
-        %>
-%       if ( $single_cust && $h_table_descripsub{$item->table} ) {
-          <% &{ $h_table_descripsub{$item->table} }( $item ) %>
-%       }
-%     }  
+      <% $description %>
     </TD>
 
   </TR>
index 8b4386c..876f6cd 100644 (file)
@@ -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 () {
 }
 </SCRIPT>
 
-<FONT SIZE=4>Purchase replacement package for "<? echo $pkg; ?>"</FONT><BR><BR>
+<FONT SIZE=4>Purchase replacement package for "<? echo $params['pkg']; ?>"</FONT><BR><BR>
 
 <? include('elements/error.php'); ?>
 
index 114cc6b..3ea655e 100644 (file)
@@ -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'] ) {
 ?>
 <? include('elements/error.php'); ?>
 
-<FONT SIZE=4>Package Changed Su for "<? echo $pkg; ?>"</FONT><BR><BR>
+<FONT SIZE=4>Package Successfully Changed To "<? echo $results['pkg']; ?>"</FONT><BR><BR>
 
 <? include('elements/menu_footer.php'); ?>
 <? include('elements/footer.php'); ?>
\ No newline at end of file
index 25fbdde..987e582 100644 (file)
@@ -33,7 +33,7 @@ extract($list_pkgs);
 
     $change_link = '';
     if ( in_array("Change packages", $menu_disable) == 0) {
-      $change_link = '<a href="packages_change.php?pkgnum=' . $pkg['pkgnum'] . '&pkg=' . $pkg['pkg_label'] . '">[change]</a>';
+      $change_link = '<a href="packages_change.php?pkgnum=' . $pkg['pkgnum'] . '&pkg=' . $pkg['pkg_label'] . '&pkgpart=' . $pkg['pkgpart'] . '&classnum=' . $pkg['classnum'] . '">[change]</a>';
     }
 ?>
   <TR>