summaryrefslogtreecommitdiff
path: root/fs_selfservice/FS-SelfService/cgi/ws_list.html
blob: 93425e10722f1d0e749be02e92caf81dbe3e1145 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<%=

sub ws_pkglink {
    my($cat,$count,$link) = (shift,shift,shift);
    return "0 $cat <BR>" unless $count->{$cat};
    return qq! <A HREF="${link};filter=$cat">$count->{$cat}</A> $cat <BR> !;
}

sub ws_pkgstatus {
    my $pkg = shift;
    $status = "unbilled";
    $status = "active" if ( $pkg->{setup} && !$pkg->{cancel}
	    && !$pkg->{susp} );
    $status = "suspended" if ( $pkg->{susp} && !$pkg->{cancel} );
    $status = "cancelled" if $pkg->{cancel};
    $status;
}

sub pdate {
    my($field,$date_format) = (shift,shift);
    return "<TD>".Date::Format::time2str($date_format,$field)."</TD>" 
	if $field > 0;
    '<TD></TD>';
}

if ( $pkgpart ) {
    $OUT .= qq! <TABLE BORDER="1"><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>";
    foreach my $pkg ( @cust_pkg ) {
	my $part_pkg = $pkg->{part_pkg}[0];
	$status = ws_pkgstatus($pkg);
	if($pkg->{pkgpart} == $pkgpart && ($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);
	    $OUT .= pdate($pkg->{bill},$date_format);
	    $OUT .= pdate($pkg->{adjourn},$date_format);
	    $OUT .= pdate($pkg->{susp},$date_format);
	    $OUT .= pdate($pkg->{expire},$date_format);
	    $OUT .= pdate($pkg->{contract_end},$date_format);
	    $OUT .= pdate($pkg->{cancel},$date_format);
	    $OUT .= "</TR>";
	}
    }
    $OUT .= "</TABLE>";
}
else {
    my %pkgparts;
    foreach my $pkg ( @cust_pkg ) {
	my $status = ws_pkgstatus($pkg);
	$pkgparts{$pkg->{pkgpart}}{$status}++;
	my $part_pkg = $pkg->{part_pkg}[0];
	$pkgparts{$pkg->{pkgpart}}{pkg} = $part_pkg->{pkg};
    }

    $OUT .= qq! <TABLE BORDER="1"><TR><TH>Package</TH><TH>Status</TH></TR> !;
    my($pkgpart,$counts);
    while(($pkgpart,$count) = each %pkgparts){
       my $link = "${url}provision;pkgpart=$pkgpart";
       $OUT .= qq! <TR><TD><A HREF="$link">$count->{pkg}</A></TD><TD> !;
       $OUT .= ws_pkglink("unbilled",$count,$link);
       $OUT .= ws_pkglink("active",$count,$link);
       $OUT .= ws_pkglink("suspended",$count,$link);
       $OUT .= ws_pkglink("cancelled",$count,$link);
       $OUT .= "</TD></TR>";
    }
    $OUT .= "</TABLE>";

    if ( @login_svcpart ) {
	$OUT .= "<BR><BR><BR><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
}

%>