summaryrefslogtreecommitdiff
path: root/httemplate/view/cust_main/packages
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/view/cust_main/packages')
-rw-r--r--httemplate/view/cust_main/packages/location.html13
-rw-r--r--httemplate/view/cust_main/packages/package.html27
-rwxr-xr-xhttemplate/view/cust_main/packages/section.html95
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>
(&nbsp;<%pkg_change_location_link($cust_pkg)%>&nbsp;)
+% if ( $cust_pkg->locationnum ) {
+&nbsp;(&nbsp;<%edit_location_link($cust_pkg->locationnum)%>&nbsp;)
+% }
</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&nbsp;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">
+ (&nbsp;<% pkg_change_location_link($cust_pkg) %>&nbsp;)
+ </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&nbsp;location',
+ 'actionlabel' => 'Change',
+ 'cust_pkg' => $cust_pkg,
+ );
+}
+
sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit&nbsp;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>