diff options
| author | Mark Wells <mark@freeside.biz> | 2013-07-15 18:25:13 -0700 |
|---|---|---|
| committer | Mark Wells <mark@freeside.biz> | 2013-07-15 18:25:13 -0700 |
| commit | ebcfdd04f1fe69028836d231238845801aa69505 (patch) | |
| tree | 8c2bbc29c554709d3e0576d3626630f58ca89d82 /httemplate/misc | |
| parent | 8e84773c2e9107185f0a0cf629cf357d7b8979f5 (diff) | |
future package change, #20687
Diffstat (limited to 'httemplate/misc')
| -rwxr-xr-x | httemplate/misc/change_pkg.cgi | 29 | ||||
| -rwxr-xr-x | httemplate/misc/change_pkg_now.cgi | 22 | ||||
| -rwxr-xr-x | httemplate/misc/do_not_change_pkg.cgi | 20 |
3 files changed, 69 insertions, 2 deletions
diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi index 03e336cba..7425fbfaf 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -1,7 +1,6 @@ -<& /elements/header-popup.html, mt("Change Package") &> +<& /elements/header-popup.html, mt($title) &> <SCRIPT TYPE="text/javascript" SRC="../elements/order_pkg.js"></SCRIPT> - <& /elements/error.html &> <FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/change-cust_pkg.html" METHOD=POST> @@ -30,6 +29,21 @@ </TABLE> +<TABLE> + <TR> + <TD> Apply this change: </TD> + <TD> <INPUT TYPE="radio" NAME="delay" VALUE="0" \ + <% !$cgi->param('delay') ? 'CHECKED' : '' %>> now </TD> + <TD> <INPUT TYPE="radio" NAME="delay" VALUE="1" \ + <% $cgi->param('delay') ? 'CHECKED' : '' %>> in the future + <& /elements/input-date-field.html, { + 'name' => 'start_date', + 'value' => ($cgi->param('start_date') || $cust_main->next_bill_date), + } &> + </TD> + </TR> +</TABLE> + <& /elements/standardize_locations.html, 'form' => "OrderPkgForm", 'callback' => 'document.OrderPkgForm.submit();', @@ -74,4 +88,15 @@ my $cust_main = $cust_pkg->cust_main my $part_pkg = $cust_pkg->part_pkg; +my $title = "Change Package"; + +# if there's already a package change ordered, preload it +if ( $cust_pkg->change_to_pkgnum ) { + my $change_to = FS::cust_pkg->by_key($cust_pkg->change_to_pkgnum); + $cgi->param('delay', 1); + foreach(qw( start_date pkgpart locationnum )) { + $cgi->param($_, $change_to->get($_)); + } + $title = "Edit Scheduled Package Change"; +} </%init> diff --git a/httemplate/misc/change_pkg_now.cgi b/httemplate/misc/change_pkg_now.cgi new file mode 100755 index 000000000..73ee74020 --- /dev/null +++ b/httemplate/misc/change_pkg_now.cgi @@ -0,0 +1,22 @@ +%if ( $error ) { +% errorpage($error); +%} else { +<% $cgi->redirect(popurl(2). "view/cust_main.cgi?".$cust_pkg->getfield('custnum')) %> +%} +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Change customer package'); + +#untaint pkgnum +my ($query) = $cgi->keywords; +$query =~ /^(\d+)$/ || die "Illegal pkgnum"; +my $pkgnum = $1; + +my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); +my $change_to = FS::cust_pkg->by_key($cust_pkg->change_to_pkgnum); + +my $err_or_pkg = $cust_pkg->change({ 'cust_pkg' => $change_to }); +my $error = $err_or_pkg unless ref($err_or_pkg); + +</%init> diff --git a/httemplate/misc/do_not_change_pkg.cgi b/httemplate/misc/do_not_change_pkg.cgi new file mode 100755 index 000000000..c164c5c15 --- /dev/null +++ b/httemplate/misc/do_not_change_pkg.cgi @@ -0,0 +1,20 @@ +%if ( $error ) { +% errorpage($error); +%} else { +<% $cgi->redirect(popurl(2). "view/cust_main.cgi?".$cust_pkg->getfield('custnum')) %> +%} +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Change customer package'); + +#untaint pkgnum +my ($query) = $cgi->keywords; +$query =~ /^(\d+)$/ || die "Illegal pkgnum"; +my $pkgnum = $1; + +my $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + +my $error = $cust_pkg->abort_change; + +</%init> |
