bulk customer package edit from multiple source package definitions, RT#79885
[freeside.git] / httemplate / edit / bulk-cust_pkg.html
index ab41921..8a082f4 100644 (file)
@@ -4,7 +4,7 @@
 
 <% include('/elements/progress-init.html',
               'OneTrueForm',
-              [qw( old_pkgpart new_pkgpart keep_dates)],
+              [qw( old_pkgpart new_pkgpart )],
               'process/bulk-cust_pkg.cgi',
               $p.'browse/part_pkg.cgi',
            )
 
 <SCRIPT TYPE="text/javascript">
 function areyousure() {
-  if(confirm('Change these packages?')) {
+  var warning = 'Change these packages?';
+  if(confirm(warning)) {
     process();
   }
 }
 </SCRIPT>
 <FORM NAME="OneTrueForm">
-% #false laziness with bulk-cust_svc.html
-%  $cgi->param('pkgpart') =~ /^(\d+)$/
-%    or die "illegal pkgpart: ". $cgi->param('pkgpart');
-%
-%  my $old_pkgpart = $1;
-%  my $src_part_pkg = qsearchs('part_pkg', { 'pkgpart' => $old_pkgpart } )
-%    or die "unknown pkgpart: $old_pkgpart";
-%
 
+% foreach my $src_part_pkg (@src_part_pkg) {
+  <INPUT NAME="old_pkgpart" TYPE="hidden" VALUE="<% $src_part_pkg->pkgpart %>">
+  Change <B><% $src_part_pkg->pkg_comment |h %></B><BR>
+% }
 
-<INPUT NAME="old_pkgpart" TYPE="hidden" VALUE="<% $old_pkgpart %>">
-Change <B><% $src_part_pkg->pkg_comment %></B><BR>
-
+<BR>
 to new package definition
 <SELECT NAME="new_pkgpart">
 % foreach my $dest_part_pkg ( qsearch('part_pkg', { 'disabled' => '' } ) ) {
-% # XXX probably no way to prevent packages from violating agent restrictions
-% # maybe something like what bulk-cust_svc does with changing services 
-% # under specific pkgparts?
 
-  <OPTION VALUE="<% $dest_part_pkg->pkgpart %>"><% $dest_part_pkg->pkgpart %>: <% $dest_part_pkg->pkg %>
+  <OPTION VALUE="<% $dest_part_pkg->pkgpart %>"><% $dest_part_pkg->pkgpart %>: <% $dest_part_pkg->pkg |h %>
 % } 
 
 </SELECT>
 <BR>
 <BR>
-<INPUT TYPE="checkbox" NAME="keep_dates" CHECKED> Preserve all billing dates
-<BR>
-<BR>
+%#<INPUT TYPE="checkbox" NAME="keep_dates" CHECKED> Preserve all billing dates <I>(strongly recommended)</I>
+%#<BR>
+%#<BR>
 
 <INPUT TYPE="button" VALUE="Bulk change packages" onclick="areyousure()">
 
@@ -59,4 +51,18 @@ to new package definition
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
+my @src_part_pkg = ();
+foreach my $pkgpart ( $cgi->multi_param('pkgpart') ) {
+
+  $pkgpart =~ /^(\d+)$/
+    or die "illegal pkgpart: $pkgpart";
+
+  my $old_pkgpart = $1;
+  my $src_part_pkg = qsearchs('part_pkg', { 'pkgpart' => $old_pkgpart } )
+    or die "unknown pkgpart: $old_pkgpart";
+
+  push @src_part_pkg, $src_part_pkg;
+
+}
+
 </%init>