selfservice: don't display recharge account links if negative balance, RT12728
[freeside.git] / fs_selfservice / FS-SelfService / cgi / myaccount_menu.html
index ba3b3f2..c7d2bb2 100644 (file)
 <%= $url = "$selfurl?session=$session_id;action="; ''; %>
-<TD VALIGN="top" HEIGHT=384 BGCOLOR="#dddddd">
-
-<A HREF="<%= $url %>myaccount">Overview</A><BR><BR>
-<!--A HREF="<%= $url %>change_bill"-->Change&nbsp;payment&nbsp;info</A>&nbsp;*<BR><BR>
-<!--A HREF="<%= $url %>change_ship"-->Change&nbsp;service&nbsp;address</A>&nbsp;*<BR><BR>
-<A HREF="<%= $url %>provision">Setup&nbsp;my&nbsp;services</A><BR><BR>
-<!--A HREF="<%= $url %>order"-->Purchase&nbsp;additional&nbsp;package</A>&nbsp;*<BR><BR>
-<!--<A HREF="<%= $url %>pw_list">Change&nbsp;password(s)</A>&nbsp;*<BR><BR>-->
-<A HREF="passwd.html">Change&nbsp;password(s)</A><BR><BR>
-<A HREF="<%= $url %>logout">Logout</A><BR><BR>
-*&nbsp;coming&nbsp;soon
+<TABLE BORDER=0><TR>
+<TD VALIGN="top" BGCOLOR="<%= $menu_bgcolor || $box_bgcolor || '#c0c0c0' %>">
+
+<TABLE CELLSPACING=0 BORDER=0 HEIGHT="100%">
+
+<%= 
+
+if ( $menu_top_image ) {
+  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?menu_top_image"></TD></TR>';
+}
+
+my @menu = (
+  { title=>' ' },
+  { title=>'Overview', url=>'myaccount', size=>'+1', },
+  { title=>' ' },
+  { title=>'Purchase', size=>'+1', },
+);
+
+unless ( $access_pkgnum ) {
+  push @menu,
+    { title=>'Purchase additional package',
+      url=>'customer_order_pkg', 'indent'=>2 };
+}
+
+if ( $balance > 0 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eventually per-pkg or something really fancy
+
+  #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] && $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] && $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, { title  => 'Recharge my account with a prepaid card',
+                url    => 'recharge_prepay',
+                indent => 2,
+              }
+    if grep(/^PREP/, @cust_paybys);
+
+}
+
+push @menu,
+  { title=>' ' },
+  { title=>'View my usage', url=>'view_usage', size=>'+1', },
+  { title=>'Create a ticket', url=>'tktcreate', size=>'+1', },
+;
+
+unless ( $access_pkgnum ) {
+  push @menu,
+    { title=>'Setup my services', url=>'provision', size=>'+1', },
+  ;
+}
+
+push @menu,
+  { title=>' ' };
+
+push @menu,
+  { title=>'Change my information', size=>'+1', };
+
+unless ( $access_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 ) {
+
+  next if $menu_skipblanks && $item->{'title'} =~ /^\s*$/;
+  next if $menu_skipheadings && ! $item->{'url'};
+
+  $OUT .= '<TR><TD'; 
+  if ( $menu_body_image ) {
+    if ( exists $item->{'url'} && $action eq $item->{'url'} ) {
+      $OUT .= #' BGCOLOR="'. ( $body_bgcolor || '#eeeeee' ). '" '.
+              ' STYLE="background: url(image.cgi?menu_body_image) 0 bottom; '.
+              '        color:#3366CC"; '. #XXX config
+              ' " ';
+    } else {
+      $OUT .= ' STYLE="background: url(image.cgi?menu_body_image) 0 bottom" ';
+    }
+  } else {
+    if ( exists $item->{'url'} && $action eq $item->{'url'} ) {
+      $OUT .= ' BGCOLOR="'. ( $body_bgcolor || '#eeeeee' ). '" '.
+              ' STYLE="border-top: 1px solid black;'.
+                     ' border-left: 1px solid black;'.
+                     ' border-bottom: 1px solid black"';
+    } else {
+      $OUT .= ' STYLE="border-right: 1px solid black"';
+    }
+  }
+  $OUT.='>';
+
+  if ( $menu_skipheadings ) {
+    $OUT .= '&nbsp;&nbsp;';
+  } else {
+    $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="'. ( $menu_fontsize || $item->{'size'} ). '">'
+    if $menu_fontsize || exists($item->{'size'});
+
+  $item->{'title'} =~ s/ /&nbsp;/g;
+  $OUT .= $item->{'title'};
+
+  $OUT .= '</FONT>'
+    if exists $item->{'size'};
+
+  $OUT .= '</A>'
+    if exists $item->{'url'} && $action ne $item->{'url'};
+
+  $OUT .= '</TD></TR>';
+
+}
+
+if ( $menu_bottom_image ) {
+  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?menu_bottom_image"></TD></TR>';
+} else {
+  $OUT .= '<TR><TD STYLE="border-right: 1px solid black" HEIGHT="100%"><BR><BR><BR><BR></TD></TR>';
+}
+
+%>
+
+</TABLE>
+
 </TD>