default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / fs_selfservice / FS-SelfService / cgi / ws_list.html
index 7b62db4..dcc62ec 100644 (file)
@@ -19,19 +19,21 @@ sub ws_pkgstatus {
 sub pdate {
     my($field,$date_format) = (shift,shift);
     return "<TD>".Date::Format::time2str($date_format,$field)."</TD>" 
-       if $field > 0;
+       if $field && $field > 0;
     '<TD></TD>';
 }
 
+
 if ( $pkgpart ) {
-    $OUT .= qq! <TABLE BORDER="1"><TR><TH>Package</TH><TH>Status</TH> !;
+    $OUT .= qq! <TABLE style="empty-cells: show;" class="svctable"><TR><TH>Package</TH><TH>Status</TH> !;
     $OUT .= "<TH>Setup</TH><TH>Last Bill</TH><TH>Next Bill</TH><TH>Adjourn</TH>";
     $OUT .= "<TH>Suspend</TH><TH>Expire</TH><TH>Contract End</TH>";
-    $OUT .= "<TH>Cancel</TH></TR>";
+    $OUT .= "<TH>Cancel</TH><TH>Services</TH></TR>";
     foreach my $pkg ( @cust_pkg ) {
        my $part_pkg = $pkg->{part_pkg}[0];
        $status = ws_pkgstatus($pkg);
-       if($pkg->{pkgpart} == $pkgpart && ($filter eq $status || !$filter) ) {
+       if($pkg->{pkgpart} == $pkgpart && 
+               ( ($filter && $filter eq $status) || !$filter) ) {
            $OUT .= "<TR><TD>$part_pkg->{pkg}</TD><TD>$status</TD>"; 
            $OUT .= pdate($pkg->{setup},$date_format);
            $OUT .= pdate($pkg->{last_bill},$date_format);
@@ -41,7 +43,30 @@ if ( $pkgpart ) {
            $OUT .= pdate($pkg->{expire},$date_format);
            $OUT .= pdate($pkg->{contract_end},$date_format);
            $OUT .= pdate($pkg->{cancel},$date_format);
-           $OUT .= "</TR>";
+
+           $OUT .= "<TD style='font-size: 85%'>";
+           my @cust_svc = @{$pkg->{cust_svc}};
+           foreach my $cust_svc ( @cust_svc ) {
+               my @label = @{$cust_svc->{'label'}};
+               $OUT .= qq!$label[0]: $label[1] <BR><BR>!;
+           }
+           my @part_svc = @{$pkg->{part_svc}};
+           foreach my $part_svc ( @part_svc ) {
+               my $link = qq!<A HREF="${url}provision_svc;!
+                   . qq!pkgnum=$pkg->{'pkgnum'};svcpart=$part_svc->{'svcpart'}!
+                   . qq!;numavail=$part_svc->{'num_avail'}">Setup !
+                   . qq!$part_svc->{'svc'}</A> ($part_svc->{'num_avail'}!
+                   . qq! available)<BR><BR>!;
+               $OUT .= $link if $part_svc->{'can_get_dids'};
+
+               if($part_svc->{'svcdb'} eq 'svc_phone' && $lnp) {
+                   $OUT .= qq!<A HREF="${url}provision_svc;lnp=1;!
+                   . qq!pkgnum=$pkg->{'pkgnum'};svcpart=$part_svc->{'svcpart'}!
+                   . qq!">Port-In $part_svc->{'svc'}</A>!;
+               }
+           }
+
+           $OUT .= "</TD></TR>";
        }
     }
     $OUT .= "</TABLE>";
@@ -55,7 +80,9 @@ else {
        $pkgparts{$pkg->{pkgpart}}{pkg} = $part_pkg->{pkg};
     }
 
-    $OUT .= qq! <TABLE BORDER="1"><TR><TH>Package</TH><TH>Status</TH></TR> !;
+    $OUT .= "<TABLE><TR><TD>";
+
+    $OUT .= qq! <TABLE class="svctable"><TR><TH>Package</TH><TH>Status</TH></TR> !;
     my($pkgpart,$counts);
     while(($pkgpart,$count) = each %pkgparts){
        my $link = "${url}provision;pkgpart=$pkgpart";
@@ -67,6 +94,58 @@ else {
        $OUT .= "</TD></TR>";
     }
     $OUT .= "</TABLE>";
-}
 
+    $OUT .= qq!</TD><TD VALIGN="TOP" STYLE="padding-left: 11px;">!;
+
+    if ( @login_svcpart ) {
+       $OUT .= "<B>Self-service accounts</B><BR>";
+       foreach my $pkg ( @cust_pkg ) {
+           @cust_svc = @{$pkg->{cust_svc}};
+           @part_svc = @{$pkg->{part_svc}};
+
+           foreach my $cust_svc ( @cust_svc ) {
+               $svcpart = $cust_svc->{'svcpart'};
+               next unless grep($_ eq $svcpart, @login_svcpart);
+               @label = @{$cust_svc->{'label'}};
+               $OUT .= $label[1] . " &nbsp; ";
+               unless ( $cust_svc->{'svcnum'} == $svcnum ) {
+                   $OUT .= qq!<A HREF="javascript:areyousure('${url}delete_svc;svcnum=$cust_svc->{svcnum}', 'This will permanently delete the $label[1] $label[0].  Are you sure?')">!.
+                 'Delete</A>';
+               }
+               $OUT .= "<BR>";
+           }
+
+           foreach my $part_svc ( @part_svc ) {
+               $svcpart = $part_svc->{'svcpart'};
+               next unless grep($_ eq $svcpart, @login_svcpart);
+               $link = "${url}provision_svc;pkgnum=$pkg->{'pkgnum'};".
+                   "svcpart=$part_svc->{'svcpart'}";
+               $OUT .= qq!<A HREF="$link">!. 'Setup '. $part_svc->{'svc'}. 
+                   '</A> ('. $part_svc->{'num_avail'}. ' available)' 
+                   if $part_svc->{'svcdb'} eq 'svc_acct';
+           }
+
+       } # foreach cust_pkg
+    } # login_svcpart
+
+    my $hasPhone = 0;
+    foreach my $pkg ( @cust_pkg ) {
+       @cust_svc = @{$pkg->{cust_svc}};
+       foreach my $cust_svc ( @cust_svc ) {
+           @label = @{$cust_svc->{'label'}};
+           $hasPhone = 1 if $label[2] eq 'svc_phone';
+       }
+    }
+    if ( $hasPhone ) {
+       $link = "${url}didreport;type=";
+       $OUT .= "<BR><BR><BR>Download currently allocated DIDs:<BR>";
+       $OUT .= qq! &nbsp; <A HREF="${link}csv">CSV</A> | 
+           <A HREF="${link}xls">Excel</A>!;
+       $OUT .= "<BR><BR>Download recently allocated DIDs:<BR>";
+       $OUT .= qq! &nbsp; <A HREF="${link}csv;recentonly=1">CSV</A> | 
+           <A HREF="${link}xls;recentonly=1">Excel</A>!;
+    }
+    
+    $OUT .= "</TD></TR></TABLE>";
+}
 %>