when using pkg-balances, limit self-service access when a customer with multiple...
[freeside.git] / fs_selfservice / FS-SelfService / cgi / myaccount_menu.html
index 095d59c..617ae3e 100644 (file)
@@ -1,59 +1,93 @@
 <%= $url = "$selfurl?session=$session_id;action="; ''; %>
 <TABLE BORDER=0><TR>
-<TD VALIGN="top" HEIGHT=384 BGCOLOR="#dddddd">
+<TD VALIGN="top" HEIGHT="100%" BGCOLOR="<%= $box_bgcolor || '#c0c0c0' %>">
 
-<TABLE CELLSPACING=0 BORDER=0>
+<TABLE CELLSPACING=0 BORDER=0 HEIGHT="100%">
 
 <%= 
 
 my @menu = (
-{ title=>' ' },
-{ title=>'Overview', url=>'myaccount', size=>'+1', },
-{ title=>' ' },
-
-{ title=>'Purchase', size=>'+1', },
-  { title=>'Purchase additional package',
-    url=>'customer_order_pkg', 'indent'=>2 },
+  { title=>' ' },
+  { title=>'Overview', url=>'myaccount', size=>'+1', },
+  { title=>' ' },
+  { title=>'Purchase', size=>'+1', },
 );
 
+unless ( $pkgnum ) {
+  push @menu,
+    { title=>'Purchase additional package',
+      url=>'customer_order_pkg', 'indent'=>2 };
+}
+
 if ( 1 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eventually per-pkg or something really fancy
 
-  push @menu, (
-    { title=>'Recharge my account with a credit card',
-      url=>'make_payment', indent=>2 },
-    { title=>'Recharge my account with a check',
-      url=>'make_ach_payment', indent=>2 },
-    { title=>'Recharge my account with a prepaid card',
-      url=>'recharge_prepay', indent=>2 },
-  );
+  #XXXFIXME still a bit sloppy for multi-gateway of differing namespace
+  my $i = 0;
+  while($i < scalar(@cust_paybys)) { last if $cust_paybys[$i] =~ /^CARD/; $i++ }
+  if ( $cust_paybys[$i] =~ /^CARD/ ) {
+    push @menu, { title  => 'Recharge my account with a credit card',
+                  url    => $hide_payment_fields[$i]
+                              ? 'make_thirdparty_payment&payby_method=CC'
+                              : 'make_payment',
+                  indent => 2,
+                 }
+  }
 
-}
+  $i = 0;
+  while($i < scalar(@cust_paybys)) { last if $cust_paybys[$i] =~ /^CHEK/; $i++ }
+  if ( $cust_paybys[$i] =~ /^CHEK/ ) {
+    push @menu, { title  => 'Recharge my account with a check',
+                  url    => $hide_payment_fields[$i]
+                              ? 'make_thirdparty_payment&payby_method=ECHECK'
+                              : 'make_ach_payment',
+                  indent => 2,
+                }
+  }
 
-push @menu, (
+  push @menu, { title  => 'Recharge my account with a prepaid card',
+                url    => 'recharge_prepay',
+                indent => 2,
+              }
+    if grep(/^PREP/, @cust_paybys);
 
-{ title=>' ' },
+}
 
-{ title=>'View my usage', url=>'view_usage', size=>'+1', },
-{ title=>'Setup my services', url=>'provision', size=>'+1', },
+push @menu,
+  { title=>' ' },
+  { title=>'View my usage', url=>'view_usage', size=>'+1', },
+;
 
-{ title=>' ' },
+unless ( $pkgnum ) {
+  push @menu,
+    { title=>'Setup my services', url=>'provision', size=>'+1', },
+  ;
+}
 
-{ title=>'Change my information', size=>'+1', },
-#  { title=>'Change payment information*', url=>'change_bill',     indent=>2 },
-#  { title=>'Change service address*',     url=>'change_ship',     indent=>2 },
-  { title=>'Change password(s)',          url=>'change_password', indent=>2 },
+push @menu,
+  { title=>' ' };
 
-{ title=>' ' },
+push @menu,
+  { title=>'Change my information', size=>'+1', };
 
-{ title=>'Logout',   url=>'logout', size=>'+1', },
+unless ( $pkgnum ) {
+  push @menu,
+    { title=>'Change billing address',      url=>'change_bill',     indent=>2 },
+    { title=>'Change service address',      url=>'change_ship',     indent=>2 },
+    { title=>'Change payment information',  url=>'change_pay',      indent=>2 },
+  ;
+}
 
-);
+push @menu,
+  { title=>'Change password(s)',          url=>'change_password', indent=>2 },
+  { title=>' ' },
+  { title=>'Logout',   url=>'logout', size=>'+1', },
+;
 
 foreach my $item ( @menu ) {
 
   $OUT .= '<TR><TD'; 
   if ( exists $item->{'url'} && $action eq $item->{'url'} ) {
-    $OUT .= ' BGCOLOR="#eeeeee" '.
+    $OUT .= ' BGCOLOR="'. ( $body_bgcolor || '#eeeeee' ). '" '.
             ' STYLE="border-top: 1px solid black;'.
                    ' border-left: 1px solid black;'.
                    ' border-bottom: 1px solid black"';
@@ -62,15 +96,15 @@ foreach my $item ( @menu ) {
   }
   $OUT.='>';
 
-  $OUT .= '<FONT SIZE="'. $item->{'size'}. '">'
-    if exists $item->{'size'};
-
   $OUT .= '&nbsp;' x $item->{'indent'}
     if exists $item->{'indent'};
 
   $OUT .= '<A HREF="'. $url. $item->{'url'}. '">'
     if exists $item->{'url'} && $action ne $item->{'url'};
 
+  $OUT .= '<FONT SIZE="'. $item->{'size'}. '">'
+    if exists $item->{'size'};
+
   $item->{'title'} =~ s/ /&nbsp;/g;
   $OUT .= $item->{'title'};