This commit was manufactured by cvs2svn to create tag 'freeside_2_1_1'.
[freeside.git] / httemplate / misc / change_pkg.cgi
index 17dc8b8..16b7071 100755 (executable)
@@ -1,67 +1,68 @@
-<!-- mason kludge -->
-%
-%
-%my $pkgnum;
-%if ( $cgi->param('error') ) {
-%  #$custnum = $cgi->param('custnum');
-%  #%remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg');
-%  $pkgnum = ($cgi->param('remove_pkg'))[0];
-%} else {
-%  my($query) = $cgi->keywords;
-%  $query =~ /^(\d+)$/;
-%  #$custnum = $1;
-%  $pkgnum = $1;
-%  #%remove_pkg = ();
-%}
-%
-%my $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $pkgnum } )
-%  or die "unknown pkgnum $pkgnum";
-%my $custnum = $cust_pkg->custnum;
-%
-%my $conf = new FS::Conf;
-%
-%my $p1 = popurl(1);
-%
-%my $cust_main = $cust_pkg->cust_main
-%  or die "can't get cust_main record for custnum ". $cust_pkg->custnum.
-%         " ( pkgnum ". cust_pkg->pkgnum. ")";
-%my $agent = $cust_main->agent;
-%
-%print header("Change Package",  menubar(
-%  "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
-%  'Main Menu' => $p,
-%));
-%
-%print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
-%      "</FONT><BR><BR>"
-%  if $cgi->param('error');
-%
-%my $part_pkg = $cust_pkg->part_pkg;
-%
-%print small_custview( $cust_main, $conf->config('countrydefault') ).
-%      qq!<FORM ACTION="${p}edit/process/cust_pkg.cgi" METHOD=POST>!.
-%      qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!.
-%      qq!<INPUT TYPE="hidden" NAME="remove_pkg" VALUE="$pkgnum">!.
-%      '<BR>Current package: '. $part_pkg->pkg. ' - '. $part_pkg->comment.
-%      qq!<BR>New package: <SELECT NAME="new_pkgpart"><OPTION VALUE=0></OPTION>!;
-%
-%foreach my $part_pkg (
-%  grep { ! $_->disabled && $_->pkgpart != $cust_pkg->pkgpart }
-%    map { $_->part_pkg } $agent->agent_type->type_pkgs
-%) {
-%  my $pkgpart = $part_pkg->pkgpart;
-%  print qq!<OPTION VALUE="$pkgpart"!;
-%  print ' SELECTED' if $cgi->param('error')
-%                       && $cgi->param('new_pkgpart') == $pkgpart;
-%  print qq!>$pkgpart: !. $part_pkg->pkg. ' - '. $part_pkg->comment. '</OPTION>';
-%}
-%
-%print <<END;
-%</SELECT>
-%<BR><BR><INPUT TYPE="submit" VALUE="Change package">
-%    </FORM>
-%  </BODY>
-%</HTML>
-%END
-%
+<% include('/elements/header-popup.html', "Change Package") %>
 
+<% include('/elements/error.html') %>
+
+<FORM ACTION="<% $p %>edit/process/change-cust_pkg.html" METHOD=POST>
+<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
+
+<% ntable('#cccccc') %>
+
+  <TR>
+    <TH ALIGN="right">Current package</TH>
+    <TD COLSPAN=7>
+      <% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->comment |h %>
+    </TD>
+  </TR>
+
+  <% include('/elements/tr-select-cust-part_pkg.html',
+               'pre_label'  => 'New',
+               'curr_value' => scalar($cgi->param('pkgpart')),
+               'classnum'   => $part_pkg->classnum,
+               'cust_main'  => $cust_main,
+               #'extra_sql'    => ' AND pkgpart != '. $cust_pkg->pkgpart,
+            )
+  %>
+
+  <% include('/elements/tr-select-cust_location.html',
+               'cgi'       => $cgi,
+               'cust_main' => $cust_main,
+            )
+  %>
+
+</TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Change package">
+
+</FORM>
+</BODY>
+</HTML>
+
+<%init>
+
+my $conf = new FS::Conf;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('Change customer package');
+
+my $pkgnum = scalar($cgi->param('pkgnum'));
+$pkgnum =~ /^(\d+)$/ or die "illegal pkgnum $pkgnum";
+$pkgnum = $1;
+
+my $cust_pkg =
+  qsearchs({
+    'table'     => 'cust_pkg',
+    'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+    'hashref'   => { 'pkgnum' => $pkgnum },
+    'extra_sql' => ' AND '. $curuser->agentnums_sql,
+  }) or die "unknown pkgnum $pkgnum";
+
+my $cust_main = $cust_pkg->cust_main
+  or die "can't get cust_main record for custnum ". $cust_pkg->custnum.
+         " ( pkgnum ". cust_pkg->pkgnum. ")";
+
+my $part_pkg = $cust_pkg->part_pkg;
+
+</%init>