[freeside-commits] freeside/httemplate/edit/process change-cust_pkg.html, NONE, 1.1 cust_pkg.cgi, 1.10, 1.11

Ivan,,, ivan at wavetail.420.am
Sat Jan 10 15:57:01 PST 2009


Update of /home/cvs/cvsroot/freeside/httemplate/edit/process
In directory wavetail.420.am:/tmp/cvs-serv3185/httemplate/edit/process

Modified Files:
	cust_pkg.cgi 
Added Files:
	change-cust_pkg.html 
Log Message:
implement package changes w/location change, RT#4499

--- NEW FILE: change-cust_pkg.html ---
% if ($error) {
%   $cgi->param('error', $error);
%   $cgi->redirect(popurl(3). 'misc/change_pkg.cgi?'. $cgi->query_string );
% } else {

    <% header("Package changed") %>
      <SCRIPT TYPE="text/javascript">
        window.top.location.reload();
      </SCRIPT>
    </BODY>
    </HTML>

% }
<%init>

my $curuser = $FS::CurrentUser::CurrentUser;

die "access denied"
  unless $curuser->access_right('Change customer package');

my $cust_pkg = qsearchs({
  #'select'    => 'cust_pkg.*',
  'table'     => 'cust_pkg',
  'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
  'hashref'   => { 'pkgnum' => scalar($cgi->param('pkgnum')), },
  'extra_sql' => ' AND '. $curuser->agentnums_sql,
});
die 'unknown pkgnum' unless $cust_pkg;

my %change = map { $_ => scalar($cgi->param($_)) }
                 qw( locationnum pkgpart );

if ( $cgi->param('locationnum') == -1 ) {
  my $cust_location = new FS::cust_location {
    'custnum' => $cust_pkg->custnum,
    map { $_ => scalar($cgi->param($_)) }
        qw( address1 address2 city county state zip country )
  };
  $change{'cust_location'} = $cust_location;
}

my $pkg_or_error = $cust_pkg->change( \%change );

my $error = ref($pkg_or_error) ? '' : $pkg_or_error;

</%init>

Index: cust_pkg.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/process/cust_pkg.cgi,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- cust_pkg.cgi	14 Mar 2008 08:13:32 -0000	1.10
+++ cust_pkg.cgi	10 Jan 2009 23:56:58 -0000	1.11
@@ -1,22 +1,15 @@
 % if ($error) {
 %   $cgi->param('error', $error);
-%   $cgi->redirect(popurl(3). $error_redirect. '?'. $cgi->query_string );
-% } elsif ( $action eq 'change' ) {
-
-    <% header("Package changed") %>
-      <SCRIPT TYPE="text/javascript">
-        window.top.location.reload();
-      </SCRIPT>
-    </BODY>
-    </HTML>
-
-% } elsif ( $action eq 'bulk' ) {
-<% $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum") %>
+%   $cgi->redirect(popurl(3). 'edit/cust_pkg.cgi?'. $cgi->query_string );
 % } else {
-%   die "guru exception #5: action is neither change nor bulk!";
-% }
+<% $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum") %>
 <%init>
 
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('Bulk change customer packages');
+
 my $error = '';
 
 #untaint custnum
@@ -28,46 +21,19 @@
   $1;
 } $cgi->param('remove_pkg');
 
-my $curuser = $FS::CurrentUser::CurrentUser;
-
 my( $action, $error_redirect ) = ( '', '' );
 my @pkgparts = ();
-if ( $cgi->param('action') eq 'change' ) { #came from misc/change_pkg.cgi
-
-  $action = 'change';
-  $error_redirect = "misc/change_pkg.cgi";
-
-  die "access denied"
-    unless $curuser->access_right('Change customer package');
-
-  if ( $cgi->param('new_pkgpart') =~ /^(\d+)$/ ) {
-    @pkgparts = ($1);
-  } else {
-    $error = 'Select a new package';
-  }
-
-} elsif ( $cgi->param('action') eq 'bulk' ) { #came from edit/cust_pkg.cgi
-
-  $action = 'bulk';
-  $error_redirect = "edit/cust_pkg.cgi";
-
-  die "access denied"
-    unless $curuser->access_right('Bulk change customer packages');
 
-  foreach my $pkgpart ( map /^pkg(\d+)$/ ? $1 : (), $cgi->param ) {
-    if ( $cgi->param("pkg$pkgpart") =~ /^(\d+)$/ ) {
-      my $num_pkgs = $1;
-      while ( $num_pkgs-- ) {
-        push @pkgparts,$pkgpart;
-      }
-    } else {
-      $error = "Illegal quantity";
-      last;
+foreach my $pkgpart ( map /^pkg(\d+)$/ ? $1 : (), $cgi->param ) {
+  if ( $cgi->param("pkg$pkgpart") =~ /^(\d+)$/ ) {
+    my $num_pkgs = $1;
+    while ( $num_pkgs-- ) {
+      push @pkgparts,$pkgpart;
     }
+  } else {
+    $error = "Illegal quantity";
+    last;
   }
-
-} else {
-  die "guru exception #5: action is neither change nor bulk!";
 }
 
 $error ||= FS::cust_pkg::order($custnum,\@pkgparts,\@remove_pkgnums);



More information about the freeside-commits mailing list