diff options
Diffstat (limited to 'httemplate/view/cust_main/packages')
-rw-r--r-- | httemplate/view/cust_main/packages/location.html | 13 | ||||
-rw-r--r-- | httemplate/view/cust_main/packages/package.html | 27 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages/section.html | 95 |
3 files changed, 134 insertions, 1 deletions
diff --git a/httemplate/view/cust_main/packages/location.html b/httemplate/view/cust_main/packages/location.html index 41155cbae..40a7de59f 100644 --- a/httemplate/view/cust_main/packages/location.html +++ b/httemplate/view/cust_main/packages/location.html @@ -21,12 +21,16 @@ % { <FONT SIZE=-1> ( <%pkg_change_location_link($cust_pkg)%> ) +% if ( $cust_pkg->locationnum ) { + ( <%edit_location_link($cust_pkg->locationnum)%> ) +% } </FONT> % } </TD> <%init> +my $conf = new FS::Conf; my %opt = @_; my $bgcolor = $opt{'bgcolor'}; @@ -50,4 +54,13 @@ sub pkg_change_location_link { ); } +sub edit_location_link { + my $locationnum = shift; + include( '/elements/popup_link.html', + 'action' => $p. "edit/cust_location.cgi?locationnum=$locationnum", + 'label' => 'Edit location', + 'actionlabel' => 'Edit', + ); +} + </%init> diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 3b58f9ec0..8cae5fdba 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -168,8 +168,16 @@ % } </TR> +% if ( $curuser->access_right('Change customer package') and +% !$cust_pkg->get('cancel') and +% !$opt{'show_location'}) { + <TR> + <TD><FONT SIZE="-1"> + ( <% pkg_change_location_link($cust_pkg) %> ) + </FONT></TD> + </TR> +% } % } - </TABLE> </TD> @@ -184,6 +192,10 @@ my $part_pkg = $opt{'part_pkg'}; my $curuser = $FS::CurrentUser::CurrentUser; +my $countrydefault = $opt{'countrydefault'} || 'US'; +my $statedefault = $opt{'statedefault'} + || ($countrydefault eq 'US' ? 'CA' : ''); + #subroutines #false laziness w/status.html @@ -204,6 +216,19 @@ sub pkg_change_link { ); } +sub pkg_change_location_link { + my $cust_pkg = shift; + my $pkgpart = $cust_pkg->pkgpart; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. "misc/change_pkg.cgi?locationnum=-1;pkgpart=$pkgpart;". + "address1=;address2=;city=;county=;state=$statedefault;". + "zip=;country=$countrydefault", + 'label' => 'Change location', + 'actionlabel' => 'Change', + 'cust_pkg' => $cust_pkg, + ); +} + sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit dates', @_ ); } sub pkg_discount_link { diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html new file mode 100755 index 000000000..0795d4e59 --- /dev/null +++ b/httemplate/view/cust_main/packages/section.html @@ -0,0 +1,95 @@ +% if ( @$packages ) { +% my $bgcolor1 = '#eeeeee'; +% my $bgcolor2 = '#ffffff'; +% my $bgcolor = ''; + +<TR> +% #my $width = $show_location ? 'WIDTH="25%"' : 'WIDTH="33%"'; + <TH CLASS="grid" BGCOLOR="#cccccc">Package</TH> + <TH CLASS="grid" BGCOLOR="#cccccc">Status</TH> +% if ( $show_location ) { + <TH CLASS="grid" BGCOLOR="#cccccc">Location</TH> +% } + <TH CLASS="grid" BGCOLOR="#cccccc">Services</TH> +</TR> + +% #$FS::cust_pkg::DEBUG = 2; +% foreach my $cust_pkg (@$packages) { +% +% if ( $bgcolor eq $bgcolor1 ) { +% $bgcolor = $bgcolor2; +% } else { +% $bgcolor = $bgcolor1; +% } +% +% my %iopt = ( +% 'bgcolor' => $bgcolor, +% 'cust_pkg' => $cust_pkg, +% 'part_pkg' => $cust_pkg->part_pkg, +% %conf_opt, +% ); +% + + <!--pkgnum: <% $cust_pkg->pkgnum %>--> + <TR> + <% include('package.html', %iopt) %> + <% include('status.html', %iopt) %> +% if ( $show_location ) { + <% include('location.html', %iopt) %> +% } + <% include('services.html', %iopt) %> + </TR> + +% } #foreach $cust_pkg +%# </TABLE> +% } #if @$packages +% else { +<BR> +% } + +<%init> + +my %opt = @_; +my $conf = new FS::Conf; + +my $curuser = $FS::CurrentUser::CurrentUser; + +my $packages = $opt{'packages'}; +my $show_location = $opt{'show_location'}; + +# Sort order is hardcoded for now, can change this if needed. +@$packages = sort { + ( $a->getfield('cancel') <=> $b->getfield('cancel') ) or + ( $a->getfield('setup') <=> $b->getfield('setup') ) or + ( $a->getfield('pkgnum') <=> $b->getfield('pkgnum') ) +} @$packages; + +my $countrydefault = scalar($conf->config('countrydefault')) || 'US'; + +my %conf_opt = ( + #for services.html and status.html + 'cust_pkg-display_times' => $conf->exists('cust_pkg-display_times') + || $curuser->option('cust_pkg-display_times')), + #for status.html + 'cust_pkg-show_autosuspend' => $conf->exists('cust_pkg-show_autosuspend'), + #for status.html pkg-balances + 'pkg-balances' => $conf->exists('pkg-balances'), + 'money_char' => ( $conf->config('money_char') || '$' ), + + #for location.html + 'countrydefault' => $countrydefault, + 'statedefault' => ( scalar($conf->config('statedefault')) + || ($countrydefault eq 'US' ? 'CA' : '') ), + #for services.html + 'svc_external-skip_manual' => $conf->exists('svc_external-skip_manual'), + 'legacy_link' => $conf->exists('legacy_link'), + 'svc_broadband-manage_link' => scalar($conf->config('svc_broadband-manage_link')), + 'maestro-status_test' => $conf->exists('maestro-status_test'), + 'cust_pkg-large_pkg_size' => $conf->config('cust_pkg-large_pkg_size'), + + # for packages.html Change location link + 'show_location' => $show_location, +); + + +</%init> |