+<!-- mason kludge -->
+<% my $conf = new FS::Conf; %>
<HTML>
<HEAD>
<TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<table width="100%">
- <tr><td>
+ <tr>
+ <td rowspan=2>
<IMG BORDER=0 ALT="freeside" SRC="images/small-logo.png">
- </td><td valign="top">
- <font color="#7f007b" size=7></font>
- </td><td align=right valign=bottom>
- version %%%VERSION%%%
- <BR><A HREF="http://www.sisd.com/freeside">Freeside home page</A>
- <BR><A HREF="docs/">Documentation</A>
- </td></tr>
+ </td>
+ <td align=left rowspan=2> <!-- valign="top" -->
+ <font size=6><%= $conf->config('company_name') %> Billing</font>
+ </td>
+ <td align=right valign=top>Logged in as <b><%= getotaker %></b>
+ </td>
+ </tr>
+ <tr>
+ <td align=right valign=bottom>
+
+ <table>
+ <tr>
+ <td align=right>
+ <FONT SIZE="-2">
+ <A HREF="http://www.sisd.com/freeside">Freeside</A> v<%= $FS::VERSION %><BR>
+ <A HREF="docs/">Documentation</A><BR>
+ </FONT>
+ </td>
+ <% if ( $conf->config('ticket_system') eq 'RT_Internal' ) { %>
+ <% eval "use RT;"; %>
+ <td bgcolor=#000000></td>
+ <td align=left>
+ <FONT SIZE="-2">
+ <A HREF="http://www.bestpractical.com/rt">RT<A> v<%= $RT::VERSION %><BR>
+ <A HREF="http://wiki.bestpractical.com/">Documentation</A><BR>
+ </FONT>
+ </td>
+ <% } %>
+
+ </tr>
+ </table>
+
+ </td>
+ </tr>
</table>
-<BR>
-[<A NAME="customer_service" style="background-color: #cccccc"> Sales / Customer service </A>]
-[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
-[ <A HREF="#reports">Reports</A> ]
-[ <A HREF="#sysadmin">Sysadmin</A> ]
+ <BR>
+
+
+[<A NAME="customer_service" style="background-color: #cccccc"> Sales / Customer service </A>]
+<% if ( $conf->config('ticket_system') ) { %>
+ [ <A HREF="#ticketing">Support / Ticketing</A> ]
+<% } %>
+[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
+[ <A HREF="#reports">Reports</A> ]
+[ <A HREF="#sysadmin">Sysadmin</A> ]
<TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0" WIDTH="100%" BGCOLOR="#eeeeee">
<TR><TH BGCOLOR="#cccccc">Sales / Customer service</TH></TR>
<TR><TD>
<BR><FONT SIZE="+1"><A HREF="edit/cust_main.cgi">New Customer</A></FONT>
<BR>
- <BR><FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="custnum_on" VALUE="1">Customer # <INPUT TYPE="text" NAME="custnum_text"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=custnum">all customers by customer number</A></FORM>
- <FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="last_on" VALUE="1">Last name <INPUT TYPE="text" NAME="last_text"><SELECT NAME="last_type"><OPTION SELECTED VALUE="All">(all)</OPTION><OPTION>Fuzzy<OPTION>Substring</OPTION><OPTION>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=last">all customers by last name</A></FORM>
- <FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="company_on" VALUE="1">Company <INPUT TYPE="text" NAME="company_text"><SELECT NAME="company_type"><OPTION SELECTED VALUE="All">(all)</OPTION><OPTION>Fuzzy<OPTION>Substring</OPTION><OPTION>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=company">all customers by company</A></FORM>
-<!-- <FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="address2_on" VALUE="1">Unit <INPUT TYPE="text" NAME="address2_text"><INPUT TYPE="submit" VALUE="Search"></FORM>-->
- <FORM ACTION="search/cust_main.cgi" METHOD="POST"><INPUT TYPE="hidden" NAME="phone_on" VALUE="1">Phone # <INPUT TYPE="text" NAME="phone_text"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <BR><FORM ACTION="search/svc_acct.cgi" METHOD="POST">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"> or <A HREF="search/svc_acct.cgi?username">all accounts by username</A> or <A HREF="search/svc_acct.cgi?uid">uid</A></FORM>
- <BR><FORM ACTION="search/svc_domain.cgi" METHOD="POST">Domain <INPUT TYPE="text" NAME="domain"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/svc_domain.cgi?domain">all domains</A></FORM>
+ <BR><FORM ACTION="search/cust_main.cgi" METHOD="GET"><INPUT TYPE="hidden" NAME="custnum_on" VALUE="1">Customer # <INPUT TYPE="text" NAME="custnum_text"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=custnum">all customers by customer number</A></FORM>
+ <FORM ACTION="search/cust_main.cgi" METHOD="GET"><INPUT TYPE="hidden" NAME="last_on" VALUE="1">Last name <INPUT TYPE="text" NAME="last_text"><SELECT NAME="last_type"><OPTION SELECTED VALUE="All">(all)</OPTION><OPTION>Fuzzy<OPTION>Substring</OPTION><OPTION>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=last">all customers by last name</A></FORM>
+ <FORM ACTION="search/cust_main.cgi" METHOD="GET"><INPUT TYPE="hidden" NAME="company_on" VALUE="1">Company <INPUT TYPE="text" NAME="company_text"><SELECT NAME="company_type"><OPTION SELECTED VALUE="All">(all)</OPTION><OPTION>Fuzzy<OPTION>Substring</OPTION><OPTION>Exact</OPTION></SELECT><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/cust_main.cgi?browse=company">all customers by company</A></FORM>
+<% if ( $conf->exists('address2-search') ) { %>
+ <FORM ACTION="search/cust_main.cgi" METHOD="GET"><INPUT TYPE="hidden" NAME="address2_on" VALUE="1">Unit <INPUT TYPE="text" NAME="address2_text"><INPUT TYPE="submit" VALUE="Search"></FORM>
+<% } %>
+ <FORM ACTION="search/cust_main.cgi" METHOD="GET"><INPUT TYPE="hidden" NAME="phone_on" VALUE="1">Phone # <INPUT TYPE="text" NAME="phone_text"><INPUT TYPE="submit" VALUE="Search"></FORM>
+ <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"> or <A HREF="search/svc_acct.cgi?username">all accounts by username</A> or <A HREF="search/svc_acct.cgi?uid">uid</A></FORM>
+ <BR><FORM ACTION="search/svc_domain.cgi" METHOD="GET">Domain <INPUT TYPE="text" NAME="domain"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/svc_domain.cgi?domain">all domains</A></FORM>
+ <BR><FORM ACTION="search/svc_broadband.cgi" METHOD="GET">IP Address <INPUT TYPE="text" NAME="ip_addr"><INPUT TYPE="submit" VALUE="Search"> or <A HREF="search/svc_broadband.cgi?svcnum">all services by svcnum</A> or <A HREF="search/svc_broadband.cgi?blocknum">address block</A></FORM>
<BR><A HREF="search/svc_forward.cgi?svcnum">all mail forwards by svcnum</A><BR>
<BR><A HREF="search/svc_www.cgi?svcnum">all virtual hosts by svcnum</A><BR>
+ <BR><A HREF="search/svc_external.cgi?svcnum">all external services by svcnum</A><BR>
<BR>
</TD></TR>
</TABLE>
+ <BR><BR><BR>
+
+<% if ( $conf->config('ticket_system') ) { %>
+[ <A HREF="#customer_service">Sales / Customer service</A> ]
+[<A NAME="ticketing" style="background-color: #cccccc"> Support / Ticketing </A>]
+[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
+[ <A HREF="#reports">Reports</A> ]
+[ <A HREF="#sysadmin">Sysadmin</A> ]
+ <TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0" WIDTH="100%" BGCOLOR="#eeeeee">
+ <TR><TH BGCOLOR="#cccccc">Support/Ticketing</TH></TR>
+ <TR><TD>
+ <% if ( $conf->config('ticket_system') eq 'RT_Internal' ) { %>
+ <BR><FONT SIZE="+1"><A HREF="rt/">Ticketing Main</A></FONT>
+ <BR><BR>
+ Reports
+ <UL>
+ <LI><A HREF="search/cust_main.cgi?browse=tickets">Customers sorted by active tickets</A>
+ <!-- <LI><A HREF="">Active tickets not assigned to a customer</A> -->
+ <% } else { %>
+ <BR><FONT SIZE="+1"><A HREF="<%=FS::TicketSystem->baseurl()%>">Ticketing Main</A></FONT>
+ <BR><BR>
+ <% } %>
+ </TD></TR>
+ </TABLE>
<BR><BR><BR>
+<% } %>
+
-[ <A HREF="#customer_service">Sales / Customer service</A> ]
-[<A NAME="bookkeeping" style="background-color: #cccccc"> Bookkeeping / Collections </A>]
-[ <A HREF="#reports">Reports</A> ]
-[ <A HREF="#sysadmin">Sysadmin</A> ]
+[ <A HREF="#customer_service">Sales / Customer service</A> ]
+<% if ( $conf->config('ticket_system') ) { %>
+ [ <A HREF="#ticketing">Support / Ticketing</A> ]
+<% } %>
+[<A NAME="bookkeeping" style="background-color: #cccccc"> Bookkeeping / Collections </A>]
+[ <A HREF="#reports">Reports</A> ]
+[ <A HREF="#sysadmin">Sysadmin</A> ]
<TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0 WIDTH="100%" BGCOLOR="#eeeeee">
<TR><TH BGCOLOR="#cccccc">Bookkeeping / Collections</TH></TR>
<TR><TD>
- <BR><A HREF="search/cust_main-quickpay.html">Quick payment entry</A>
+ <BR><A HREF="misc/batch-cust_pay.html">Quick payment entry</A>
<BR>
- <BR><FORM ACTION="search/cust_main.cgi" METHOD="POST">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="POST">Invoice # <INPUT TYPE="text" NAME="invnum" SIZE="8"><INPUT TYPE="submit" VALUE="Search"></FORM>
- <FORM ACTION="search/cust_pay.cgi" METHOD="POST">Check # <INPUT TYPE="text" NAME="payinfo" SIZE="8"><INPUT TYPE="hidden" NAME="payby" VALUE="BILL"><INPUT TYPE="submit" VALUE="Search"></FORM>
+ <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><A HREF="browse/cust_pay_batch.cgi">View pending credit card batch</A> <BR><BR><A HREF="search/cust_pkg_report.cgi">Packages (by next bill date range)</A>
<BR><BR>Invoice reports
<UL>
- <LI><a href="search/cust_bill_event.html">Invoice event errors (failed credit cards, procesoor or printer problems, etc.)</a>
<LI>open invoices (<A HREF="search/cust_bill.html?OPEN_invnum">by invoice number</A>) (<A HREF="search/cust_bill.html?OPEN_date">by date</A>) (<A HREF="search/cust_bill.html?OPEN_custnum">by customer number</A>)
<LI>15 day open invoices (<A HREF="search/cust_bill.html?OPEN15_invnum">by invoice number</A>) (<A HREF="search/cust_bill.html?OPEN15_date">by date</A>) (<A HREF="search/cust_bill.html?OPEN15_custnum">by customer number</A>)
<LI>30 day open invoices (<A HREF="search/cust_bill.html?OPEN30_invnum">by invoice number</A>) (<A HREF="search/cust_bill.html?OPEN30_date">by date</A>) (<A HREF="search/cust_bill.html?OPEN30_custnum">by customer number</A>)
<LI>120 day open invoices (<A HREF="search/cust_bill.html?OPEN120_invnum">by invoice number</A>) (<A HREF="search/cust_bill.html?OPEN120_date">by date</A>) (<A HREF="search/cust_bill.html?OPEN120_custnum">by customer number</A>)
<LI>all invoices (<A HREF="search/cust_bill.html?invnum">by invoice number</A>) (<A HREF="search/cust_bill.html?date">by date</A>) (<A HREF="search/cust_bill.html?custnum">by customer number</A>)
</UL>
+ <A HREF="search/report_cust_bill.html">Advanced invoice reports</A><BR><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>
<A HREF="search/report_cust_pay.html">Payment report (by type and/or date range)</A>
<BR><BR><A HREF="search/report_cust_credit.html">Credit report (by employee and/or date range)</A>
<BR><BR><A HREF="graph/money_time.cgi">Sales, Credits and Receipts Summary</A>
<BR><BR><A HREF="search/report_prepaid_income.html">Prepaid Income (Unearned Revenue) Report</A>
<BR><BR><A HREF="search/report_tax.html">Sales Tax Liability Report</A>
<BR><BR>
- <CENTER><HR WIDTH="94%" NOSHADE></CENTER><BR>
- <A NAME="admin">Administration</a>
- <ul>
- <LI><A HREF="browse/part_pkg.cgi">View/Edit package definitions</A>
- - One or more services are grouped together into a package and
- given pricing information. Customers purchase packages, not
- services.
-<!-- <LI><A HREF="browse/agent_type.cgi">View/Edit agent types</A>
- - Agent types define groups of package definitions that you can
- then assign to particular agents.
- <LI><A HREF="browse/agent.cgi">View/Edit agents</A>
- - Agents are resellers of your service. Agents may be limited
- to a subset of your full offerings (via their type).
--->
- <LI><A HREF="browse/cust_main_county.cgi">View/Edit locales and tax rates</A>
- - Change tax rates, or break down a country into states, or a state
- into counties and assign different tax rates to each.
- <LI><A HREF="browse/part_bill_event.cgi">View/Edit invoice events</A> - Actions for overdue invoices
- </ul>
- <BR>
</TD></TR>
</TABLE>
-[ <A HREF="#customer_service">Sales / Customer service</A> ]
-[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
-[<A NAME="reports" style="background-color: #cccccc"> Reports </A>]
-[ <A HREF="#sysadmin">Sysadmin</A> ]
+[ <A HREF="#customer_service">Sales / Customer service</A> ]
+<% if ( $conf->config('ticket_system') ) { %>
+ [ <A HREF="#ticketing">Support / Ticketing</A> ]
+<% } %>
+[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
+[<A NAME="reports" style="background-color: #cccccc"> Reports </A>]
+[ <A HREF="#sysadmin">Sysadmin</A> ]
<TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0 WIDTH="100%" BGCOLOR="#eeeeee">
<TR><TH BGCOLOR="#cccccc">Reports</TH></TR>
<TR><TD>
Auditing pre-Freeside services with no customer record
<UL>
<LI>unlinked accounts (<A HREF="search/svc_acct.cgi?UN_svcnum">by service number</A>) (<A HREF="search/svc_acct.cgi?UN_username">by username</A>) (<A HREF="search/svc_acct.cgi?UN_uid">by uid</A>)
-<!-- <LI>unlinked mail forwards (<A HREF="search/svc_forward.cgi?UN_svcnum">by service number</A>) (by ?)) -->
+ <LI>unlinked mail forwards (<A HREF="search/svc_forward.cgi?UN_svcnum">by service number</A>)
<LI>unlinked domains (<A HREF="search/svc_domain.cgi?UN_svcnum">by service number</A>) (<A HREF="search/svc_domain.cgi?UN_domain">by domain</A>)
<LI>unlinked externals (<A HREF="search/svc_external.cgi?UN_svcnum">by service number</A>) (<A HREF="search/svc_external.cgi?UN_id">by id</A>)
</UL>
<LI><A HREF="search/cust_pkg_report.cgi">packages (by next bill date range)</A>
</UL>
<A HREF="browse/part_pkg.cgi?active=1">Package definitions (by number of active packages)</A><BR><BR>
- <A HREF="browse/part_svc.cgi?active=1">Service definitions (by number of active services)</A><BR><BR>
+ <A HREF="browse/part_svc.cgi?orderby=active">Service definitions (by number of active services)</A><BR><BR>
Customers
<UL>
<LI><A HREF="search/cust_main-otaker.cgi">Search customers by ordering employee</A>
</UL>
- <FORM ACTION="search/sql.html" METHOD="POST">SQL query: <TT>SELECT </TT><INPUT TYPE="text" NAME="sql" SIZE=32><INPUT TYPE="submit" VALUE="Query"></FORM>
+ <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>
<BR><BR><BR>
-[ <A HREF="#customer_service">Sales / Customer service</A> ]
-[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
-[ <A HREF="#reports">Reports</A> ]
-[<A NAME="sysadmin" style="background-color: #cccccc"> Sysadmin </A>]
+[ <A HREF="#customer_service">Sales / Customer service</A> ]
+<% if ( $conf->config('ticket_system') ) { %>
+ [ <A HREF="#ticketing">Support / Ticketing</A> ]
+<% } %>
+[ <A HREF="#bookkeeping">Bookkeeping / Collections</A> ]
+[ <A HREF="#reports">Reports</A> ]
+[<A NAME="sysadmin" style="background-color: #cccccc"> Sysadmin </A>]
<TABLE CELLSPACING=2 CELLPADDING=0 BORDER=0 WIDTH="100%" BGCOLOR="#eeeeee">
<TR><TH BGCOLOR="#cccccc">Sysadmin</TH></TR>
<TR><TD>
<BR><A HREF="misc/dump.cgi">Download database dump</A>
<BR><BR><CENTER><HR WIDTH="94%" NOSHADE></CENTER><BR>
<A NAME="config" HREF="config/config-view.cgi">Configuration</a><!-- - <font size="+2" color="#ff0000">start here</font> -->
- <BR><BR><A NAME="admin">Administration</a>
+ <BR><BR><A NAME="admin">Provisioning, services and packages</a>
<ul>
<LI><A HREF="browse/part_export.cgi">View/Edit exports</A>
- Provisioning services to external machines, databases and APIs.
- One or more services are grouped together into a package and
given pricing information. Customers purchase packages, not
services.
+ </ul>
+ <A NAME="admin_agent">Resellers</a>
+ <ul>
<LI><A HREF="browse/agent_type.cgi">View/Edit agent types</A>
- Agent types define groups of package definitions that you can
then assign to particular agents.
<LI><A HREF="browse/agent.cgi">View/Edit agents</A>
- Agents are resellers of your service. Agents may be limited
to a subset of your full offerings (via their type).
- <LI><A HREF="browse/part_referral.cgi">View/Edit advertising sources</A>
- - Where a customer heard about your service. Tracked for
- informational purposes.
+ </ul>
+ <A NAME="admin_billing">Billing</a>
+ <ul>
+ <LI><A HREF="browse/payment_gateway.html">View/Edit payment gateways</A>
+ - Credit card and electronic check processors
+ <LI><A HREF="browse/part_bill_event.cgi">View/Edit invoice events</A>
+ - Actions for overdue invoices
+ <LI><A HREF="search/prepay_credit.html">View/Edit prepaid cards</A>
+ - View outstanding cards, generate new cards
+ <LI><A HREF="browse/rate.cgi">View/Edit call rates and regions</A>
+ - Manage rate plans, regions and prefixes for VoIP and call billing.
<LI><A HREF="browse/cust_main_county.cgi">View/Edit locales and tax rates</A>
- Change tax rates, or break down a country into states, or a state
into counties and assign different tax rates to each.
+ </ul>
+ <A NAME="admin_svc_acct">Dialup</a>
+ <ul>
<LI><A HREF="browse/svc_acct_pop.cgi">View/Edit access numbers</A>
- Points of Presence
- <LI><A HREF="browse/part_bill_event.cgi">View/Edit invoice events</A> - Actions for overdue invoices
- <LI><A HREF="browse/msgcat.cgi">View/Edit message catalog</A> - Change error messages and other customizable labels.
- <LI><A HREF="browse/part_virtual_field.cgi">View/Edit virtual fields</A>
- - Locally defined fields
+ </ul>
+ <A NAME="admin_svc_broadband">Fixed (username-less) broadband</a>
+ <ul>
<LI><A HREF="browse/router.cgi">View/Edit routers</A>
- Broadband access routers
<LI><A HREF="browse/addr_block.cgi">View/Edit address blocks</A>
- Manage address blocks and block assignments to broadband routers.
- </ul>
+ </ul>
+ <A NAME="admin_misc">Miscellaneous</a>
+ <ul>
+ <LI><A HREF="browse/part_referral.cgi">View/Edit advertising sources</A>
+ - Where a customer heard about your service. Tracked for
+ informational purposes.
+ <LI><A HREF="browse/part_virtual_field.cgi">View/Edit virtual fields</A>
+ - Locally defined fields
+ <LI><A HREF="browse/msgcat.cgi">View/Edit message catalog</A>
+ - Change error messages and other customizable labels.
+ </ul>
<BR>
</TD></TR>
</TABLE>