X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages.html;h=84160502838293f3bfc8198ee4193f25a433c218;hp=0a386f2654d0d76309174c0ada3c93b702cfa1f5;hb=633c48448d9468690b7ad77eb6ff7c660a286658;hpb=6cb5c702b17b98be46adea4539e15d5f312e5be1
diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html
index 0a386f265..841605028 100755
--- a/httemplate/view/cust_main/packages.html
+++ b/httemplate/view/cust_main/packages.html
@@ -1,11 +1,9 @@
-%
% my( $cust_main ) = @_;
% my $conf = new FS::Conf;
%
% my $curuser = $FS::CurrentUser::CurrentUser;
%
% my $packages = get_packages($cust_main, $conf);
-%
Packages
@@ -58,44 +56,42 @@ Current packages
% my $bgcolor1 = '#eeeeee';
% my $bgcolor2 = '#ffffff';
% my $bgcolor = '';
-%
-
Package |
Status |
Services |
+
+%foreach my $cust_pkg (@$packages) {
%
-%foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) {
+% my $part_pkg = $cust_pkg->part_pkg;
%
% if ( $bgcolor eq $bgcolor1 ) {
% $bgcolor = $bgcolor2;
% } else {
% $bgcolor = $bgcolor1;
% }
-%
-%
-
+
- <%$pkg->{pkgnum}%>:
- <%$pkg->{pkg}%> - <%$pkg->{comment}%>
+ <% $cust_pkg->pkgnum %>:
+ <% $part_pkg->pkg %> - <% $part_pkg->comment %>
-% unless ( $pkg->{cancel} ) {
+% unless ( $cust_pkg->get('cancel') ) {
% if ( $curuser->access_right('Change customer package') ) {
- ( <%pkg_change_link($pkg)%> )
+ ( <%pkg_change_link($cust_pkg)%> )
% }
% if ( $curuser->access_right('Edit customer package dates') ) {
- ( <%pkg_dates_link($pkg)%> )
+ ( <%pkg_dates_link($cust_pkg)%> )
% }
% if ( $curuser->access_right('Customize customer package') ) {
- ( <%pkg_customize_link($pkg,$cust_main->custnum)%> )
+ ( <%pkg_customize_link($cust_pkg,$cust_main->custnum)%> )
% }
% }
@@ -118,7 +114,7 @@ Current packages
%
% #false laziness w/edit/REAL_cust_pkg.cgi
% my( $billed_or_prepaid, $last_bill_or_renewed, $next_bill_or_prepaid_until );
-% unless ( $pkg->{'part_pkg'}->is_prepaid ) {
+% unless ( $part_pkg->is_prepaid ) {
% $billed_or_prepaid = 'billed';
% $last_bill_or_renewed = 'Last bill';
% $next_bill_or_prepaid_until = 'Next bill';
@@ -129,19 +125,19 @@ Current packages
% }
%
%
-% if ( $pkg->{cancel} ) {
+% if ( $cust_pkg->get('cancel') ) {
Cancelled |
- <% pkg_datestr($pkg,'cancel',$conf) %>
+ <% pkg_datestr($cust_pkg, 'cancel', $conf) %>
- <% $pkg->{reason} %>
+ <% $cust_pkg->last_reason ? $cust_pkg->last_reason->reason : '' %>
|
-% unless ( $pkg->{setup} ) {
+% unless ( $cust_pkg->get('setup') ) {
@@ -152,37 +148,37 @@ Current packages
Setup |
- <% pkg_datestr($pkg, 'setup',$conf) %>
+ <% pkg_datestr($cust_pkg, 'setup', $conf) %>
-% if ( $pkg->{'last_bill'} ) {
+% if ( $cust_pkg->get('last_bill') ) {
<% $last_bill_or_renewed %> |
- <% pkg_datestr($pkg, 'last_bill',$conf) %>
+ <% pkg_datestr($cust_pkg, 'last_bill',$conf) %>
% }
-% if ( $pkg->{'susp'} ) {
+% if ( $cust_pkg->get('susp') ) {
Suspended |
- <% pkg_datestr($pkg, 'susp',$conf) %>
+ <% pkg_datestr($cust_pkg, 'susp', $conf) %>
% }
% }
% } else {
-% if ( $pkg->{susp} ) {
+% if ( $cust_pkg->get('susp') ) {
Suspended |
- <% pkg_datestr($pkg,'susp',$conf) %>
+ <% pkg_datestr($cust_pkg, 'susp', $conf) %>
- <% $pkg->{reason} %>
+ <% $cust_pkg->last_reason ? $cust_pkg->last_reason->reason : '' %>
|
-% unless ( $pkg->{setup} ) {
+% unless ( $cust_pkg->get('setup') ) {
@@ -193,24 +189,24 @@ Current packages
Setup |
- <% pkg_datestr($pkg, 'setup',$conf) %>
+ <% pkg_datestr($cust_pkg, 'setup', $conf) %>
% }
-% if ( $pkg->{'last_bill'} ) {
+% if ( $cust_pkg->get('last_bill') ) {
<% $last_bill_or_renewed %> |
- <% pkg_datestr($pkg, 'last_bill',$conf) %>
+ <% pkg_datestr($cust_pkg, 'last_bill', $conf) %>
% }
-% if ( $pkg->{'expire'} ) {
+% if ( $cust_pkg->get('expire') ) {
Expires |
- <% pkg_datestr($pkg, 'expire',$conf) %>
+ <% pkg_datestr($cust_pkg, 'expire', $conf) %>
% }
@@ -220,11 +216,11 @@ Current packages
% if ( $curuser->access_right('Unsuspend customer package') ) {
- ( <% pkg_unsuspend_link($pkg) %> )
+ ( <% pkg_unsuspend_link($cust_pkg) %> )
% }
% if ( $curuser->access_right('Cancel customer package') ) {
- ( <% pkg_cancel_link($pkg) %> )
+ ( <% pkg_cancel_link($cust_pkg) %> )
% }
@@ -232,9 +228,9 @@ Current packages
|
% } else {
-% unless ( $pkg->{setup} ) {
+% unless ( $cust_pkg->get('setup') ) {
-% unless ( $pkg->{'freq'} ) {
+% unless ( $part_pkg->freq ) {
@@ -246,7 +242,7 @@ Current packages
% if ( $curuser->access_right('Cancel customer package immediately') ) {
- ( <% pkg_cancel_link($pkg) %> )
+ ( <% pkg_cancel_link($cust_pkg) %> )
% }
@@ -256,12 +252,12 @@ Current packages
- >Not yet billed (<% $billed_or_prepaid %> <% myfreq($pkg->{part_pkg}) %>) |
+ >Not yet billed (<% $billed_or_prepaid %> <% myfreq($part_pkg) %>) |
% }
% } else {
-% unless ( $pkg->{freq} ) {
+% unless ( $part_pkg->freq ) {
@@ -270,58 +266,58 @@ Current packages
Billed |
- <% pkg_datestr($pkg,'setup',$conf) %>
+ <% pkg_datestr($cust_pkg, 'setup', $conf) %>
% } else {
- >Active, <% $billed_or_prepaid %> <% myfreq($pkg->{part_pkg}) %> |
+ >Active, <% $billed_or_prepaid %> <% myfreq($part_pkg) %> |
Setup |
- <% pkg_datestr($pkg, 'setup',$conf) %>
+ <% pkg_datestr($cust_pkg, 'setup', $conf) %>
% }
% }
-% if ( $pkg->{'last_bill'} ) {
+% if ( $cust_pkg->get('last_bill') ) {
<% $last_bill_or_renewed %> |
- <% pkg_datestr($pkg, 'last_bill',$conf) %>
+ <% pkg_datestr($cust_pkg, 'last_bill', $conf) %>
% }
-% if ( $pkg->{'next_bill'} ) {
+% if ( $cust_pkg->get('bill') ) { #next bill
<% $next_bill_or_prepaid_until %> |
- <% pkg_datestr($pkg, 'next_bill',$conf) %>
+ <% pkg_datestr($cust_pkg, 'bill', $conf) %>
% }
-% if ( $pkg->{'expire'} ) {
+% if ( $cust_pkg->get('expire') ) {
Expires |
- <% pkg_datestr($pkg, 'expire',$conf) %>
+ <% pkg_datestr($cust_pkg, 'expire', $conf) %>
% }
-% if ( $pkg->{freq} ) {
+% if ( $part_pkg->freq ) {
>
% if ( $curuser->access_right('Suspend customer package') ) {
- ( <% pkg_suspend_link($pkg) %> )
+ ( <% pkg_suspend_link($cust_pkg) %> )
% }
% if ( $curuser->access_right('Cancel customer package immediately') ) {
- ( <% pkg_cancel_link($pkg) %> )
+ ( <% pkg_cancel_link($cust_pkg) %> )
% }
% if ( $curuser->access_right('Cancel customer package later') ) {
- ( <% pkg_expire_link($pkg) %> )
+ ( <% pkg_expire_link($cust_pkg) %> )
% }
@@ -338,46 +334,49 @@ Current packages
|
-% foreach my $svcpart (sort {$a->{svcpart} <=> $b->{svcpart}} @{$pkg->{svcparts}}) {
+% #foreach my $svcpart (sort {$a->{svcpart} <=> $b->{svcpart}} @{$pkg->{svcparts}}) {
+% foreach my $part_svc ( $cust_pkg->part_svc ) {
-% foreach my $service (@{$svcpart->{services}}) {
+% #foreach my $service (@{$svcpart->{services}}) {
+% foreach my $cust_svc ( @{ $part_svc->cust_pkg_svc } ) {
- <%svc_link($svcpart,$service)%> |
- <%svc_label_link($svcpart,$service)%> |
+ <% FS::UI::Web::svc_link($m, $part_svc, $cust_svc) %> |
+ <% FS::UI::Web::svc_label_link($m, $part_svc, $cust_svc) %> |
-
-
-
-% if ( $curuser->access_right('Recharge customer service')
-% && ($svcpart->{'svcdb'} eq 'svc_acct')
-% && ($service->{seconds} ne ''
-% || $service->{upbytes} ne ''
-% || $service->{downbytes} ne ''
-% || $service->{totalbytes} ne '' )
+
+
+
+% if ( $curuser->access_right('Recharge customer service')
+% && $cust_svc->svcdb eq 'svc_acct'
+% && ( $cust_svc->svc_x->seconds ne ''
+% || $cust_svc->svc_x->upbytes ne ''
+% || $cust_svc->svc_x->downbytes ne ''
+% || $cust_svc->svc_x->totalbytes ne ''
+% )
% ) {
- ( <%svc_recharge_link($service)%> )
-% }
+ ( <%svc_recharge_link($cust_svc)%> )
+% }
|
-% if ( $curuser->access_right('Unprovision customer service') ) {
- ( <%svc_unprovision_link($service)%> )
-% }
+% if ( $curuser->access_right('Unprovision customer service') ) {
+ ( <%svc_unprovision_link($cust_svc)%> )
+% }
|
% }
-% if ( ! $pkg->{'cancel'}
+% if ( ! $cust_pkg->get('cancel')
% && $curuser->access_right('Provision customer service')
-% && $svcpart->{count} < $svcpart->{quantity}
+% && $part_svc->num_avail
% ) {
- <% svc_provision_link($pkg, $svcpart, $conf, $curuser) %>
+ <% svc_provision_link($cust_pkg, $part_svc, $conf, $curuser) %>
|
@@ -414,104 +413,33 @@ Current packages
% } else {
% $method = 'all_pkgs';
% }
-%
-% foreach my $cust_pkg ( $cust_main->$method() ) {
-%
-% my $part_pkg = $cust_pkg->part_pkg;
-%
-% my %pkg = ();
-%
-% #to get back to the original object... should use it in the first place!!
-% $pkg{cust_pkg} = $cust_pkg;
-% $pkg{part_pkg} = $part_pkg;
-%
-% $pkg{pkgnum} = $cust_pkg->pkgnum;
-% $pkg{pkg} = $part_pkg->pkg;
-% $pkg{pkgpart} = $part_pkg->pkgpart;
-% $pkg{comment} = $part_pkg->getfield('comment');
-% $pkg{freq} = $part_pkg->freq;
-% $pkg{setup} = $cust_pkg->getfield('setup');
-% $pkg{last_bill} = $cust_pkg->getfield('last_bill');
-% $pkg{next_bill} = $cust_pkg->getfield('bill');
-% $pkg{susp} = $cust_pkg->getfield('susp');
-% $pkg{expire} = $cust_pkg->getfield('expire');
-% $pkg{cancel} = $cust_pkg->getfield('cancel');
-% $pkg{reason} = $cust_pkg->last_reason->reason if $cust_pkg->last_reason;
-%
-%
-% my %svcparts = map {
-% $_->svcpart => {
-% $_->part_svc->hash,
-% 'quantity' => $_->quantity,
-% 'count' => $cust_pkg->num_cust_svc($_->svcpart),
-% #'services' => [],
-% };
-% } $part_pkg->pkg_svc;
-%
-% foreach my $cust_svc ( $cust_pkg->cust_svc ) {
-% #warn "svcnum ". $cust_svc->svcnum. " / svcpart ". $cust_svc->svcpart. "\n";
-% my $svc = {
-% 'svcnum' => $cust_svc->svcnum,
-% 'label' => ($cust_svc->label)[1],
-% $cust_svc->svc_x->hash,
-% };
-%
-% #false laziness with above, to catch extraneous services. whole
-% #damn thing should be OO...
-% my $svcpart = ( $svcparts{$cust_svc->svcpart} ||= {
-% $cust_svc->part_svc->hash,
-% 'quantity' => 0,
-% 'count' => $cust_pkg->num_cust_svc($cust_svc->svcpart),
-% #'services' => [],
-% } );
-%
-% push @{$svcpart->{services}}, $svc;
-%
-% }
-%
-% $pkg{svcparts} = [ values %svcparts ];
-%
-% push @packages, \%pkg;
-%
-% }
-%
-% return \@packages;
%
+% [ $cust_main->$method() ];
%}
-%
-%sub svc_link {
-%
-% my ($svcpart, $svc) = (shift,shift) or return '';
-% return qq!$svcpart->{svc}!;
-%
-%}
-%
-%sub svc_label_link {
-%
-% my ($svcpart, $svc) = (shift,shift) or return '';
-% return qq!$svc->{label}!;
-%
-%}
-%
+%
%sub svc_provision_link {
-% my ($pkg, $svcpart, $conf, $curuser) = @_;
-% ( my $svc_nbsp = $svcpart->{svc} ) =~ s/\s+/ /g;
-% my $num_left = $svcpart->{quantity} - $svcpart->{count};
-% my $pkgnum_svcpart = "pkgnum$pkg->{pkgnum}-svcpart$svcpart->{svcpart}";
-%
+% my ($cust_pkg, $part_svc, $conf, $curuser) = @_;
+% ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/ /g;
+% my $num_avail = $part_svc->num_avail;
+% my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.
+% "svcpart=". $part_svc->svcpart;
% my $url;
-% if ( $svcpart->{svcdb} eq 'svc_external'
+% if ( $part_svc->svcdb eq 'svc_external' #could be generalized
% && $conf->exists('svc_external-skip_manual')
% ) {
-% $url = "${p}edit/process/$svcpart->{svcdb}.cgi?".
-% "pkgnum=$pkg->{pkgnum}&".
-% "svcpart=$svcpart->{svcpart}";
+% $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";
% } else {
-% $url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
+% $url = FS::UI::Web::svc_url(
+% 'm' => $m,
+% 'action' => 'edit',
+% 'part_svc' => $part_svc,
+% 'query' => $pkgnum_svcpart,
+% );
+% #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
% }
%
% my $link = qq!!.
-% "Provision $svc_nbsp ($num_left)";
+% "Provision $svc_nbsp ($num_avail)";
% if ( $conf->exists('legacy_link')
% && $curuser->access_right('View/link unlinked services')
% )
@@ -519,39 +447,20 @@ Current packages
% $link .= ' '.
% qq!!.
-% "Link to legacy $svc_nbsp ($num_left)";
+% "Link to legacy $svc_nbsp ($num_avail)";
% }
% $link;
%}
%
%sub svc_unprovision_link {
-% my $svc = shift or return '';
-% qq!Unprovision!;
-%}
-%
-%sub svc_recharge_link {
-% my $svc = shift or return '';
-%
-% qq!Recharge!;
-%}
-%
-%# This should be generalized to use config options to determine order.
-%sub pkgsort_pkgnum_cancel {
-% if ($a->{cancel} and $b->{cancel}) {
-% return ($a->{pkgnum} <=> $b->{pkgnum});
-% } elsif ($a->{cancel} or $b->{cancel}) {
-% return (-1) if ($b->{cancel});
-% return (1) if ($a->{cancel});
-% return (0);
-% } else {
-% return($a->{pkgnum} <=> $b->{pkgnum});
-% }
+% my $cust_svc = shift or return '';
+% qq!Unprovision!;
%}
%
%sub pkg_datestr {
-% my($pkg, $field, $conf) = @_ or return '';
-% return ' ' unless $pkg->{$field};
+% my($cust_pkg, $field, $conf) = @_ or return '';
+% return ' ' unless $cust_pkg->get($field);
% my $format = ' | %b | '.
% ' %o, | '.
% ' %Y | ';
@@ -561,48 +470,68 @@ Current packages
% '%M | '.
% ' %P | '
% if $conf->exists('cust_pkg-display_times');
-% ( my $strip = time2str($format, $pkg->{$field}) ) =~ s/ (\d)/$1/g;
+% my $strip = time2str($format, $cust_pkg->get($field) );
+% $strip =~ s/ (\d)/$1/g;
% $strip;
%}
%
-%sub pkg_change_link {
-% my $pkg = shift or return '';
-% return qq!!.
-% qq!Change package!;
+%sub pkg_change_link { pkg_link('misc/change_pkg', 'Change package', @_ ); }
+%sub pkg_suspend_link { pkg_link('misc/susp_pkg', 'Suspend', @_ ); }
+%sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg', 'Unsuspend', @_ ); }
+%sub pkg_expire_link { pkg_link('misc/expire_pkg', 'Cancel later', @_ ); }
+%sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit dates', @_ ); }
+%
+%sub pkg_cancel_link { pkg_popup_link( 'misc/cancel_pkg.html?method=cancel',
+% 'Cancel now',
+% 'Cancel',
+% @_
+% );
+% }
+%sub pkg_expire_link { pkg_popup_link( 'misc/cancel_pkg.html?method=expire',
+% 'Cancel later',
+% 'Expire', #"Cancel package $num later"
+% @_
+% );
+% }
+%
+%sub svc_recharge_link { svc_popup_link( 'misc/recharge_svc.html',
+% 'Recharge',
+% 'Recharge',
+% @_
+% );
+% }
+%
+%sub pkg_link {
+% my($action, $label, $cust_pkg) = @_;
+% return '' unless $cust_pkg;
+% qq!$label!;
%}
%
-%sub pkg_suspend_link {
-% my $pkg = shift or return '';
-% qq!Suspend!;
+%sub pkg_popup_link {
+% my($action, $label, $actionlabel, $cust_pkg) = @_;
+% $action .= '&pkgnum='. $cust_pkg->pkgnum;
+% $actionlabel .= ' package '. $cust_pkg->pkgnum;
+% popup_link($action, $label, $actionlabel);
%}
%
-%sub pkg_unsuspend_link {
-% my $pkg = shift or return '';
-% return qq!Unsuspend!;
+%sub svc_popup_link {
+% my($action, $label, $actionlabel, $cust_svc) = @_;
+% $action .= '?svcnum='. $cust_svc->svcnum;
+% $actionlabel .= ' service '. $cust_svc->svcnum;
+% popup_link($action, $label, $actionlabel);
%}
%
-%sub pkg_cancel_link {
-% my $pkg = shift or return '';
-%
-% qq!Cancel now!;
-%}
-%
-%sub pkg_expire_link {
-% my $pkg = shift or return '';
-% qq!Cancel later!;
-%}
-%
-%sub pkg_dates_link {
-% my $pkg = shift or return '';
-% qq!Edit dates!;
+%sub popup_link {
+% my($action, $label, $actionlabel) = @_;
+% qq!$label!;
%}
%
%sub pkg_customize_link {
-% my $pkg = shift or return '';
-% my $custnum = shift;
-% qq!Customize!;
+% my $cust_pkg = shift or return '';
+% my $custnum = $cust_pkg->custnum;
+% qq!part_pkg->pkgpart. ';'.
+% "pkgnum=". $cust_pkg->pkgnum.
+% qq!">Customize!;
%}
-%
-%
-
|