-<% my $conf = new FS::Conf; %>
-<%= include('/elements/header.html', 'Freeside Main Menu' ) %>
+<%init>my $debug = $cgi->param('debug');</%init>
+% warn time.": header.html\n" if $debug;
+%
+<& /elements/header.html, mt('Billing Main') &>
- <BR>
+% warn time.": dashboard-install_welcome.html\n" if $debug;
+%
+<& /elements/dashboard-install_welcome.html &>
-[<A NAME="customer_service" style="background-color: #cccccc"> Sales / Customer service </A>]
-[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
-[ <A HREF="#reports">Reports</A> ]
- <TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0" WIDTH="100%" BGCOLOR="#eeeeee" STYLE="border: 1px solid black">
- <TR><TH BGCOLOR="#cccccc">Sales / Customer service</TH></TR>
- <TR><TD>
- <BR><FORM ACTION="search/svc_acct.cgi" METHOD="GET">Username <INPUT TYPE="text" NAME="username"><SELECT NAME="username_type"><OPTION VALUE="All">(all)</OPTION><OPTION>Fuzzy</OPTION><OPTION>Substring</OPTION><OPTION SELECTED>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"></FORM>
- <BR><FORM ACTION="search/svc_domain.cgi" METHOD="GET">Domain <INPUT TYPE="text" NAME="domain"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <BR><FORM ACTION="search/svc_broadband.cgi" METHOD="GET">IP Address <INPUT TYPE="text" NAME="ip_addr"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <BR>
- </TD></TR>
- </TABLE>
+% warn time.": dashboard-toplist.html\n" if $debug;
+%
+<& /elements/dashboard-toplist.html &>
- <BR><BR><BR>
+% my $curuser = $FS::CurrentUser::CurrentUser;
+% my $numcust = $curuser->option('dashboard_customers');
+% $numcust ||= 10 unless $numcust =~ /^\s*0+\s*$/;
+% if ( $numcust ) {
+%
+% warn time.": fetching recently changed customers\n" if $debug;
+%
+% my $sth = dbh->prepare(
+% #"SELECT DISTINCT custnum FROM h_cust_main JOIN cust_main USING ( custnum )
+% "SELECT custnum FROM h_cust_main JOIN cust_main USING ( custnum )
+% WHERE ( history_action = 'insert' OR history_action = 'replace_new' )
+% AND history_user = ?
+% AND ". $curuser->agentnums_sql( table=>'cust_main' ).
+% " ORDER BY history_date desc LIMIT 1000" # LIMIT 10
+% ) or die dbh->errstr;
+%
+% $sth->execute( getotaker() ) or die $sth->errstr;
+%
+% my %saw = ();
+% my @custnums = grep { !$saw{$_}++ } map $_->[0], @{ $sth->fetchall_arrayref };
+%
+% @custnums = splice(@custnums, 0, $numcust);
+%
+% if ( @custnums ) {
+% warn time.": displaying recently changed customers\n" if $debug;
+ <& /elements/table-grid.html &>
-[ <A HREF="#customer_service">Sales / Customer service</A> ]
-[<A NAME="bookkeeping" style="background-color: #cccccc"> Bookkeeping / Collections </A>]
-[ <A HREF="#reports">Reports</A> ]
- <TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0 WIDTH="100%" BGCOLOR="#eeeeee" STYLE="border: 1px solid black">
- <TR><TH BGCOLOR="#cccccc">Bookkeeping / Collections</TH></TR>
- <TR><TD>
- <BR><A HREF="misc/batch-cust_pay.html">Quick payment entry</A>
- <BR>
- <BR><FORM ACTION="search/cust_main.cgi" METHOD="GET">Credit card # <INPUT TYPE="hidden" NAME="card_on" VALUE="1"><INPUT TYPE="text" NAME="card"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <FORM ACTION="search/cust_bill.html" METHOD="GET">Invoice # <INPUT TYPE="text" NAME="invnum" SIZE="8"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <FORM ACTION="search/cust_pay.cgi" METHOD="GET">Check # <INPUT TYPE="text" NAME="payinfo" SIZE="8"><INPUT TYPE="hidden" NAME="payby" VALUE="BILL"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <BR>
- Invoice event reports
- <UL>
- <LI><a href="search/cust_bill_event.html">All invoice events for a date range</a>
- <LI><a href="search/cust_bill_event.html?failed=1">Invoice event errors for a date range (failed credit cards, processor or printer problems, etc.)</a>
- </UL>
- <BR><BR>
- </TD></TR>
- </TABLE>
+% my $bgcolor1 = '#eeeeee';
+% my $bgcolor2 = '#ffffff';
+% my $bgcolor = $bgcolor2;
+ <TR>
+ <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=1><% mt('Customers I recently added or modified') |h %></TH>
+ </TR>
+% foreach my $custnum ( @custnums ) {
+% my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
+% next unless $cust_main;
- <BR><BR><BR>
+ <TR>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="view/cust_main.cgi?<% $custnum %>"><% $cust_main->display_custnum %>: <% $cust_main->name |h %></A></TD>
+ </TR>
+% if ( $bgcolor eq $bgcolor1 ) {
+% $bgcolor = $bgcolor2;
+% } else {
+% $bgcolor = $bgcolor1;
+% }
+%
+% }
+ </TABLE>
-[ <A HREF="#customer_service">Sales / Customer service</A> ]
-[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
-[<A NAME="reports" style="background-color: #cccccc"> Reports </A>]
- <TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0 WIDTH="100%" BGCOLOR="#eeeeee" STYLE="border: 1px solid black">
- <TR><TH BGCOLOR="#cccccc">Reports</TH></TR>
- <TR><TD>
- <BR>
- <A HREF="search/sqlradius.html">RADIUS sessions</A><BR><BR>
- <FORM ACTION="search/sql.html" METHOD="GET">SQL query: <TT>SELECT </TT><INPUT TYPE="text" NAME="sql" SIZE=32><INPUT TYPE="submit" VALUE="Query"></FORM>
-
- <BR>
- </TD></TR>
- </TABLE>
-
- <BR><BR><BR>
-
-<%= include('/elements/footer.html') %>
+% }
+% }
+<& /elements/footer.html &>