X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fchange_pkg.cgi;h=923be71b141e7589c20b6335bdc4d46a2a46237d;hb=98ea745e4b55a38ad8b5ba3749c56327d641d65d;hp=7c88876d4956c089443e722b875b2f92f698297d;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi index 7c88876d4..923be71b1 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -1,39 +1,65 @@ -<% include('/elements/header-popup.html', "Change Package") %> +<& /elements/header-popup.html, mt($title) &> -<% include('/elements/error.html') %> + +<& /elements/error.html &> -
- - + + <% ntable('#cccccc') %> - Current package:  - - <% $part_pkg->pkgpart %>: <% $part_pkg->pkg %> - <% $part_pkg->comment %> + <% mt('Current package') |h %> + + <% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %> - <% $part_pkg->comment |h %> - + + <& /elements/tr-select-cust-part_pkg.html, + 'pre_label' => emt('New'), + 'curr_value' => scalar($cgi->param('pkgpart')), + 'classnum' => $part_pkg->classnum, + 'cust_main' => $cust_main, + &> + + <& /elements/tr-input-pkg-quantity.html, + 'curr_value' => $cust_pkg->quantity + &> + + <& /elements/tr-select-cust_location.html, + 'cgi' => $cgi, + 'cust_main' => $cust_main, + &> + + + + - - + + -
New package: <% include('/elements/select-cust-part_pkg.html', - 'cust_main' => $cust_main, - 'element_name' => 'new_pkgpart', - 'extra_sql' => ' AND pkgpart != '. $cust_pkg->pkgpart, - 'curr_value' => ( $cgi->param('error') - ? scalar($cgi->param('new_pkgpart')) - : '' - ), - ) - %> + Apply this change: param('delay') ? 'CHECKED' : '' %>> now param('delay') ? 'CHECKED' : '' %>> in the future + <& /elements/input-date-field.html, { + 'name' => 'start_date', + 'value' => ($cgi->param('start_date') || $cust_main->next_bill_date), + } &>
+<& /elements/standardize_locations.html, + 'form' => "OrderPkgForm", + 'callback' => 'document.OrderPkgForm.submit();', +&> +
- +" + onClick = "this.disabled=true; standardize_new_location();" + <% scalar($cgi->param('pkgpart')) ? '' : 'DISABLED' %> +>
@@ -41,29 +67,40 @@ <%init> +my $conf = new FS::Conf; + +my $curuser = $FS::CurrentUser::CurrentUser; + die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Change customer package'); + unless $curuser->access_right('Change customer package'); -my $pkgnum; -if ( $cgi->param('error') ) { - $pkgnum = ($cgi->param('remove_pkg'))[0]; -} else { - $pkgnum = $cgi->param('pkgnum'); -} +my $pkgnum = scalar($cgi->param('pkgnum')); $pkgnum =~ /^(\d+)$/ or die "illegal pkgnum $pkgnum"; $pkgnum = $1; -my $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $pkgnum } ) - or die "unknown pkgnum $pkgnum"; -my $custnum = $cust_pkg->custnum; - -my $conf = new FS::Conf; +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 $agent = $cust_main->agent; 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 quantity )) { + $cgi->param($_, $change_to->get($_)); + } + $title = "Edit Scheduled Package Change"; +}