Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Tue, 13 Oct 2015 17:10:40 +0000 (10:10 -0700)
committerIvan Kohler <ivan@freeside.biz>
Tue, 13 Oct 2015 17:10:40 +0000 (10:10 -0700)
233 files changed:
FS-Test/Makefile.PL [deleted file]
FS-Test/README
FS-Test/bin/freeside-test-fetch
FS-Test/bin/freeside-test-run [changed mode: 0644->0755]
FS-Test/bin/freeside-test-start
FS-Test/bin/freeside-test-stop
FS-Test/lib/FS/Test.pm
FS-Test/share/output/browse/part_pkg.cgi/active=1
FS-Test/share/output/browse/part_svc.cgi/orderby=active
FS-Test/share/output/edit/cust_main-contacts.html/135
FS-Test/share/output/edit/cust_main.cgi/135
FS-Test/share/output/edit/part_pkg.cgi/2
FS-Test/share/output/edit/process/quick-charge.cgi/amount=100.00:custnum=2:pkg=Test%20one-time%20charge:quantity=1:bill_now=1
FS-Test/share/output/graph/cust_bill_pkg.cgi/start_month=4:start_year=2015:end_month=3:end_year=2016:agentnum=1:cust_classnum=:refnum=1:class_mode=pkg:classnum=0:classnum=1:report_optionnum=0:class_agg_break=aggregate:use_setup=1:use_usage=0:use_discount=1
FS-Test/share/output/graph/cust_pkg.html/start_month=4:start_year=2015:end_month=3:end_year=2016
FS-Test/share/output/graph/money_time.cgi/start_month=4:start_year=2015:end_month=3:end_year=2016:agentnum=1:cust_classnum=:refnum=1
FS-Test/share/output/graph/money_time_daily.cgi/beginning=01%2F01%2F2016:ending=02%2F28%2F2016:agentnum=1
FS-Test/share/output/search/cust_bill.html/OPEN90_date [deleted file]
FS-Test/share/output/search/cust_bill.html/date [deleted file]
FS-Test/share/output/search/cust_bill.html/keywords=OPEN90_date:order_by=invnum [new file with mode: 0644]
FS-Test/share/output/search/cust_bill.html/keywords=date:order_by=invnum [new file with mode: 0644]
FS-Test/share/output/search/cust_bill.html/magic=_date:agentnum=1:beginning=:ending=10%2F01%2F2015:charged_lt=:charged_gt=200.00:owed_lt=:owed_gt=:open=1
FS-Test/share/output/search/cust_bill_pkg.cgi/agentnum=1:status=:cust_classnum=:beginning=01%2F01%2F2016:ending=01%2F31%2F2016
FS-Test/share/output/search/cust_bill_pkg.cgi/nottax=1:agentnum=1:refnum=1:classnum=0:classnum=1:begin=1438412400:end=1441090800
FS-Test/share/output/search/cust_bill_pkg.cgi/nottax=1:charges=RU:distribute=0:agentnum=1:refnum=1:use_override=0:classnum=0:classnum=1:begin=1438412400:end=1441090800
FS-Test/share/output/search/cust_bill_pkg.cgi/nottax=1:charges=S:distribute=0:agentnum=1:refnum=1:use_override=0:classnum=0:classnum=1:begin=1438412400:end=1441090800
FS-Test/share/output/search/cust_main.cgi/browse=last
FS-Test/share/output/search/cust_pay.html/magic=_date:unapplied=0:beginning=01%2F01%2F2016:agentnum=1:order_by=paynum
FS-Test/share/output/search/cust_pkg.cgi/keywords=pkgnum:order_by=pkgnum
FS-Test/share/output/search/cust_pkg.cgi/magic=bill:classnum=0:setup_ending=10%2F31%2F2015:pkgpart=5:pkgpart=2:order_by=pkgnum
FS-Test/share/output/search/cust_pkg.cgi/magic=bill:custnum=135
FS-Test/share/output/search/cust_pkg.cgi/pkgnum [deleted file]
FS-Test/share/output/search/cust_pkg_churn.html/agentnum=:status=setup:begin=1438412400:end=1441090800:order_by=cust_pkg.pkgnum
FS-Test/share/output/search/cust_pkg_summary.cgi/beginning=02%2F01%2F2016:ending=02%2F28%2F2016:classnum=0
FS-Test/share/output/search/h_cust_pkg.html/classnum=0:status=active,suspended:date=1454313600:pkgpart=2
FS-Test/share/output/search/report_receivables.cgi/days=0:as_of=03%2F01%2F2016
FS-Test/share/output/search/svc_acct.cgi/magic=all:sortby=username
FS-Test/share/output/search/svc_broadband.cgi/magic=advanced:custnum=:agentnum=1:routernum=none:cust_pkg_fields=:cust_fields=:_dummy=1:maxrecords=100:_type=html:offset=0:order_by=ip_addr
FS-Test/share/output/search/svc_domain.cgi/magic=all:sortby=domain
FS-Test/share/output/search/svc_phone.cgi/magic=all:sortby=phonenum
FS-Test/share/output/search/unprovisioned_services.html
FS-Test/share/output/view/cust_bill-tex.cgi/invnum=681:notice_name=Invoice
FS-Test/share/output/view/cust_bill.cgi/681
FS-Test/share/output/view/cust_main.cgi/135
FS-Test/share/output/view/cust_main.cgi/custnum=135:show=change_history
FS-Test/share/output/view/cust_main.cgi/custnum=135:show=packages
FS-Test/share/output/view/cust_main.cgi/custnum=135:show=payment_history
FS-Test/share/output/view/cust_main.cgi/custnum=2:show=packages
FS-Test/share/output/view/cust_main.cgi/custnum=2:show=payment_history
FS-Test/share/output/view/svc_acct.cgi/406
FS-Test/share/output/view/svc_broadband.cgi/401
FS-Test/share/output/view/svc_domain.cgi/402
FS-Test/share/output/view/svc_phone.cgi/403
FS-Test/share/ui_tests
FS/FS/API.pm
FS/FS/AccessRight.pm
FS/FS/ClientAPI/MyAccount.pm
FS/FS/ClientAPI_XMLRPC.pm
FS/FS/Conf.pm
FS/FS/Cron/agent_email.pm [deleted file]
FS/FS/Cron/backup.pm
FS/FS/Cron/notify.pm
FS/FS/Mason.pm
FS/FS/Misc.pm
FS/FS/Misc/DateTime.pm
FS/FS/Record.pm
FS/FS/Report/Table.pm
FS/FS/Report/Tax.pm
FS/FS/Schema.pm
FS/FS/Template_Mixin.pm
FS/FS/TicketSystem/RT_External.pm
FS/FS/TicketSystem/RT_Internal.pm
FS/FS/UI/Web.pm
FS/FS/Upgrade.pm
FS/FS/access_user.pm
FS/FS/cdr.pm
FS/FS/cdr/aapt.pm
FS/FS/cdr/amcom.pm
FS/FS/cdr/earthlink.pm
FS/FS/contact.pm
FS/FS/cust_bill.pm
FS/FS/cust_bill_pkg.pm
FS/FS/cust_credit.pm
FS/FS/cust_event.pm
FS/FS/cust_main.pm
FS/FS/cust_main/Billing.pm
FS/FS/cust_main/Billing_Realtime.pm
FS/FS/cust_main_Mixin.pm
FS/FS/cust_msg.pm
FS/FS/cust_pay.pm
FS/FS/cust_pay_batch.pm
FS/FS/cust_pkg.pm
FS/FS/cust_pkg_usageprice.pm
FS/FS/cust_tax_exempt_pkg.pm
FS/FS/deploy_zone.pm
FS/FS/deploy_zone_block.pm
FS/FS/discount.pm
FS/FS/log_context.pm
FS/FS/msg_template.pm
FS/FS/msg_template/InitialData.pm
FS/FS/msg_template/email.pm [new file with mode: 0644]
FS/FS/msg_template/http.pm [new file with mode: 0644]
FS/FS/o2m_Common.pm
FS/FS/part_event.pm
FS/FS/part_event/Action/http.pm [new file with mode: 0644]
FS/FS/part_event/Condition.pm
FS/FS/part_event_option.pm
FS/FS/part_pkg/discount_Mixin.pm
FS/FS/part_pkg/prorate_calendar.pm
FS/FS/part_pkg/sqlradacct_hour.pm
FS/FS/part_pkg_fcc_option.pm
FS/FS/part_pkg_usageprice.pm
FS/FS/pay_batch.pm
FS/FS/pay_batch/RBC.pm
FS/FS/payinfo_Mixin.pm
FS/FS/queue.pm
FS/FS/rate.pm
FS/FS/report_batch.pm [new file with mode: 0644]
FS/FS/svc_Tower_Mixin.pm
FS/FS/svc_acct.pm
FS/FS/tax_rate.pm
FS/FS/template_image.pm [new file with mode: 0644]
FS/MANIFEST
FS/bin/freeside-cdr-a2billing-import [new file with mode: 0755]
FS/bin/freeside-daily
FS/bin/freeside-fetch [deleted file]
FS/bin/freeside-queued
FS/bin/freeside-rbc-download
FS/bin/freeside-reexport
FS/t/report_batch.t [new file with mode: 0644]
bin/agent_email [deleted file]
bin/cdr-a2billing.import [deleted file]
bin/cust_main-bulk_change
bin/msg_template_http-demo.pl [new file with mode: 0755]
conf/invoice_html
conf/invoice_latex
httemplate/browse/deploy_zone.html
httemplate/browse/msg_template.html [deleted file]
httemplate/browse/msg_template/email.html [new file with mode: 0644]
httemplate/browse/msg_template/http.html [new file with mode: 0644]
httemplate/browse/part_pkg.cgi
httemplate/browse/part_svc.cgi
httemplate/browse/template_image.html [new file with mode: 0644]
httemplate/edit/cust_refund.cgi
httemplate/edit/deploy_zone-fixed.html
httemplate/edit/deploy_zone-mobile.html
httemplate/edit/msg_template.html
httemplate/edit/msg_template/email.html [new file with mode: 0644]
httemplate/edit/msg_template/http.html [new file with mode: 0644]
httemplate/edit/part_pkg.cgi
httemplate/edit/process/change-cust_pkg.html
httemplate/edit/process/cust_credit_bill.cgi
httemplate/edit/process/cust_refund.cgi
httemplate/edit/process/deploy_zone-fixed.html
httemplate/edit/process/deploy_zone-mobile.html
httemplate/edit/process/elements/process.html
httemplate/edit/process/msg_template.html
httemplate/edit/process/rate_detail.html
httemplate/edit/rate.cgi
httemplate/elements/contact.html
httemplate/elements/cust_pkg_usageprice.html
httemplate/elements/email-link.html
httemplate/elements/form-create_ticket.html
httemplate/elements/form-file_upload.html
httemplate/elements/htmlarea.html
httemplate/elements/images/ui-icons_ef8c08_256x240.png [new file with mode: 0644]
httemplate/elements/menu.html
httemplate/elements/order_pkg.js
httemplate/elements/polygon.html [new file with mode: 0644]
httemplate/elements/popup_link-send_report_batch.html [new file with mode: 0644]
httemplate/elements/schedule-appointment.html
httemplate/elements/select-terms.html
httemplate/elements/select-tower_sector.html
httemplate/elements/template_image-dialog.html [new file with mode: 0644]
httemplate/elements/tr-pkg_svc.html
httemplate/elements/tr-polygon.html [new file with mode: 0644]
httemplate/elements/tr-select-months.html
httemplate/elements/tr-td-label.html
httemplate/graph/cust_bill_pkg.cgi
httemplate/graph/elements/report.html
httemplate/graph/report_cust_bill_pkg.html
httemplate/misc/batch-cust_pay.html
httemplate/misc/change_pkg.cgi
httemplate/misc/cust_pkg_usageprice.html [new file with mode: 0644]
httemplate/misc/delete-cust_credit.cgi [deleted file]
httemplate/misc/delete-cust_pay.cgi [deleted file]
httemplate/misc/email-customers.html
httemplate/misc/order_pkg.html
httemplate/misc/process/deploy_zone-block_lookup.cgi [new file with mode: 0644]
httemplate/misc/process/payment.cgi
httemplate/misc/process/send-report.html [new file with mode: 0644]
httemplate/misc/process/template_image-delete.cgi [new file with mode: 0644]
httemplate/misc/process/template_image-upload.cgi [new file with mode: 0644]
httemplate/misc/process/void-cust_bill.html
httemplate/misc/send-report.html [new file with mode: 0644]
httemplate/misc/unapply-cust_pay.cgi
httemplate/misc/void-cust_bill.html
httemplate/misc/xmlhttp-part_pkg_usageprice.html
httemplate/misc/xmlhttp-template_image.cgi [new file with mode: 0644]
httemplate/misc/xmlhttp-ticket-update.html [new file with mode: 0644]
httemplate/search/cust_bill.html
httemplate/search/cust_bill_pkg.cgi
httemplate/search/cust_credit_bill_pkg.html
httemplate/search/cust_msg.html
httemplate/search/cust_pay.html
httemplate/search/cust_pkg.cgi
httemplate/search/elements/cust_pay_or_refund.html
httemplate/search/elements/search.html
httemplate/search/queue.html
httemplate/search/report_sales_commission_pkg.html
httemplate/search/report_tax-xls.cgi
httemplate/search/report_tax.cgi
httemplate/search/sales_commission_pkg.html
httemplate/search/tax_sales.cgi [new file with mode: 0644]
httemplate/search/tax_sales.html [new file with mode: 0755]
httemplate/view/cust_main/appointments.html
httemplate/view/cust_main/billing.html
httemplate/view/cust_main/payment_history.html
httemplate/view/cust_main/payment_history/credit.html
httemplate/view/cust_main/payment_history/payment.html
httemplate/view/cust_svc.cgi
rt/FREESIDE_MODIFIED
rt/lib/RT/Interface/Web_Vendor.pm
rt/share/html/Elements/CalendarDaySchedule
rt/share/html/Elements/CalendarSlotSchedule
rt/share/html/Elements/ShowCustomFieldDate
rt/share/html/Elements/ShowCustomFieldDateTime
rt/share/html/Search/Elements/ResultsStructuredView
rt/share/html/Search/Results.xls
rt/share/html/Search/Schedule.html
rt/share/html/Ticket/Display.html
torrus/configs/torrus-siteconfig.pl
torrus/perllib/Torrus/Renderer/Freeside.pm

diff --git a/FS-Test/Makefile.PL b/FS-Test/Makefile.PL
deleted file mode 100644 (file)
index cea088a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-use 5.006;
-use strict;
-use warnings FATAL => 'all';
-use ExtUtils::MakeMaker;
-use File::ShareDir::Install;
-
-install_share dist => 'share';
-
-WriteMakefile(
-    NAME             => 'FS::Test',
-    AUTHOR           => q{Mark Wells <mark@freeside.biz>},
-    VERSION_FROM     => 'lib/FS/Test.pm',
-    ABSTRACT         => 'Freeside test suite', 
-    LICENSE          => 'agpl_3',
-    PL_FILES         => {},
-    EXE_FILES        => [ glob 'bin/*' ],
-    MIN_PERL_VERSION => 5.006,
-    CONFIGURE_REQUIRES => {
-        'ExtUtils::MakeMaker' => 0,
-        'File::ShareDir::Install' => 0,
-    },
-    BUILD_REQUIRES => {
-        'Test::More' => 0,
-    },
-    PREREQ_PM => {
-        'WWW::Mechanize' => 0,
-    },
-    dist  => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
-    clean => { FILES => 'FS-Test-*' },
-);
-
-package MY;
-use File::ShareDir::Install qw(postamble);
-
index b1518bd..8e9681c 100644 (file)
@@ -2,42 +2,36 @@ FS-Test
 
 INSTALLATION
 
-To install this module, install Freeside as usual. Then run the following 
-commands:
-
-       perl Makefile.PL
-       make
-       make install
-
-INITIALIZATION
-
-Run "freeside-test-start" from an account that can sudo to root. This will
-create a database with the test image and set the system clock to one day
-after the last bill. If there's an existing Freeside database, it will be
-renamed to "freeside_YYYYMMDD" (the current date).
-
-To restore the system clock and put the existing database back in place,
-run "freeside-test-stop".
+This module no longer needs to be installed. Run it directly from the source
+tree.
 
 RUNNING TESTS
 
-"freeside-test-run" is the main test script. Currently there's only one 
-test plan, "ui_tests". freeside-test-run will:
+"freeside-test-run" is the main test script. Currently there's only one test
+plan, "ui_tests". freeside-test-run will:
 
 - download all the URLs listed in the test plan into a directory in /tmp
 - compare them to the reference versions with "diff -ur"
 - write the output to "freeside_test.YYYYMMDD.diff"
-- display the results of "diffstat" on that diff
 
 The raw output directory will not be deleted, so you can examine the results
-yourself. This is recommended for files that don't diff nicely like Excel 
-versions of reports and PDF invoices.
+yourself.
+
+If you want to do anything with the database besides compare the test results
+to reference, run "freeside-test-start" by hand first. This will create a
+database with the test image and start Apache with a fake time of one day after
+the last bill. If there's an existing Freeside database, it will be renamed to
+"freeside_YYYYMMDD" (the current date).
+
+To put the existing database back in place, run "freeside-test-stop", then
+restart Apache and any Freeside services.
 
 UPDATING THE REFERENCE PAGES
 
 The simplest way to update the reference copies of the test pages is
 
-freeside-test-fetch -d ./share/output
+bin/freeside-test-start
+bin/freeside-test-fetch -d ./share/output
 
 (from the FS-Test source directory). If you're installing from a git repo,
 this will overwrite the working tree with the newly downloaded test pages.
index ccc8528..9530057 100755 (executable)
@@ -1,8 +1,14 @@
 #!/usr/bin/perl
 
 use strict;
-use FS::Test;
 use Getopt::Std;
+use File::Spec;
+
+my @dirs = File::Spec->splitdir(File::Spec->rel2abs(__FILE__));
+splice @dirs, -2; # bin/freeside-test-run
+push @INC, File::Spec->catdir( @dirs, 'lib' );
+eval "use FS::Test;";
+die $@ if $@;
 
 my %opt;
 
old mode 100644 (file)
new mode 100755 (executable)
index add1e9b..853bdc9
@@ -2,18 +2,20 @@
 
 set -ae
 
-tempdir=$( mktemp -d freeside-test.XXXX )
-sharedir=$(perl -MFS::Test -e "print FS::Test::share_dir()")
+tempdir=$( mktemp -d --tmpdir freeside-test.XXXX )
+# get the parent directory of bin/(this script)
+testroot=$( dirname ${BASH_SOURCE[0]} )
+testroot=$( cd $testroot; cd ..; pwd )
 
 echo "Starting test mode."
-freeside-test-start
+$testroot/bin/freeside-test-start
 echo "Saving results to $tempdir."
-freeside-test-fetch -d $tempdir
+$testroot/bin/freeside-test-fetch -d $tempdir
 echo "Exiting test mode."
-freeside-test-stop || true
+$testroot/bin/freeside-test-stop || true
 
 diffname=freeside-test.`date +%Y%m%d`.diff
 echo "Writing diff to $diffname."
-diff -urb "$sharedir/output" "$tempdir" > $diffname
+diff -urb "$testroot/share/output" "$tempdir" > $diffname
 diffstat -C $diffname
 
index 4f12e32..ed8e131 100755 (executable)
@@ -4,12 +4,15 @@ VERSION='5.0.1'
 
 set -ae
 
+# get the parent directory of bin/(this script)
+testroot=$( dirname ${BASH_SOURCE[0]} )
+testroot=$( cd $testroot; cd ..; pwd )
+
 echo "Stopping services."
 sudo service freeside stop
 sudo service apache2 stop
 
 newname=freeside_`date +%Y%m%d`
-sharedir=$(perl -MFS::Test -e "print FS::Test::share_dir()")
 
 # get company_name from existing DB, strip whitespace
 # (if there is no existing DB, continue anyway)
@@ -34,7 +37,7 @@ fi
 if [ $createdb = YES ]; then
   echo "Creating new database from stock schema."
   createdb --owner=freeside freeside
-  sudo -u freeside psql freeside -q -f $sharedir/test.sql > /dev/null
+  sudo -u freeside psql freeside -q -f $testroot/share/test.sql > /dev/null
 fi
 
 newtime=$(sudo -u freeside \
index 7c67f54..6ec505a 100755 (executable)
@@ -24,9 +24,6 @@ oldname=$( psql -tl | \
 if [ -n "$oldname" ]; then
   echo "Renaming $oldname to freeside."
   psql postgres -c "ALTER DATABASE $oldname RENAME TO freeside"
-  echo "Restarting services."
-  sudo service apache2 restart
-  sudo service freeside restart
 fi
 
 echo "Done."
index aedf502..bc97977 100644 (file)
@@ -4,14 +4,15 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
-use File::ShareDir 'dist_dir';
+#use File::ShareDir 'dist_dir';
 use WWW::Mechanize;
 use File::chdir;
 use URI;
 use File::Slurp qw(write_file);
 use Class::Accessor 'antlers';
+use File::Spec;
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 =head1 NAME
 
@@ -29,7 +30,11 @@ database image, the test plan, and probably other stuff.
 =cut
 
 sub share_dir {
-  dist_dir('FS-Test')
+#  dist_dir('FS-Test')
+#  we no longer install this anywhere
+  my @dirs = File::Spec->splitdir(File::Spec->rel2abs(__FILE__));
+  splice @dirs, -3; # lib/FS/Test.pm
+  File::Spec->catdir( @dirs, 'share' );
 }
 
 =item new OPTIONS
index 6eeffd5..5f5f8a3 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1131,7 +1131,7 @@ function filter_change() {  window.location = 'http://localhost/freeside/browse/
 
 
 
-        <TD CLASS="grid"  ALIGN=left ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">prorate_round_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_verbose: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">cutoff_day: </td><TD ALIGN="left">1</td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=left ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">cutoff_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_round_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_verbose: </td><TD ALIGN="left">1</td></tr></table></TD>
 
 
 
@@ -1185,7 +1185,7 @@ function filter_change() {  window.location = 'http://localhost/freeside/browse/
 
 
 
-        <TD CLASS="grid"  ALIGN=left ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">prorate_round_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_verbose: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">cutoff_day: </td><TD ALIGN="left">1</td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=left ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">cutoff_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_round_day: </td><TD ALIGN="left">1</td></tr><tr><TD ALIGN="right">prorate_verbose: </td><TD ALIGN="left">1</td></tr></table></TD>
 
 
 
index 3ce994c..ce7d119 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -962,7 +962,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">sec_phrase</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">blocknum</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
@@ -974,8 +974,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">popnum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Access number</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">cf_privatekey</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -986,8 +986,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">sectornum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Tower sector</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">dir</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Home directory</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -998,20 +998,21 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">uid</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">UID</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">domsvc</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Domain</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            
+            1
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
+       Yes
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">gid</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">GID</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">finger</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Real name</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1022,8 +1023,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">finger</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Real name</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">gid</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">GID</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1034,8 +1035,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">dir</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Home directory</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">pbxsvc</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">PBX</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1046,8 +1047,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">shell</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Shell</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">popnum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Access number</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1070,8 +1071,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">slipip</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">IP address</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">routernum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1082,7 +1083,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">routernum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">sec_phrase</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
@@ -1094,8 +1095,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">blocknum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">sectornum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Tower sector</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1106,21 +1107,20 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">domsvc</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Domain</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">shell</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Shell</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            1
+            
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
-       Yes
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">pbxsvc</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">PBX</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">slipip</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">IP address</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1131,8 +1131,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">cf_privatekey</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee"></TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">uid</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">UID</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1188,8 +1188,8 @@ function part_export_areyousure(href) {
 
 
      
-     <TD CLASS="grid" BGCOLOR="#ffffff">suffix</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">au_eligibility_type</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">AU Eligibility Type</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1200,8 +1200,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">catchall</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">au_registrant_name</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">AU Registrant Name</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1212,8 +1212,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">quota</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Quota</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">catchall</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1224,7 +1224,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">registrarnum</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">expiration_date</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
@@ -1236,8 +1236,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">registrarkey</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">quota</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Quota</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1248,7 +1248,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">setup_date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">registrarkey</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
@@ -1260,7 +1260,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">renewal_interval</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">registrarnum</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
@@ -1272,7 +1272,7 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">expiration_date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">renewal_interval</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
@@ -1284,8 +1284,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">au_registrant_name</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">AU Registrant Name</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">setup_date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1296,8 +1296,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">au_eligibility_type</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">AU Eligibility Type</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">suffix</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff"></TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1341,8 +1341,8 @@ function part_export_areyousure(href) {
 
 
      
-     <TD CLASS="grid" BGCOLOR="#eeeeee">description</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Descriptive label</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">altitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Altitude</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1353,8 +1353,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">routernum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Router/block</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">authkey</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Authentication key</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1377,8 +1377,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">sectornum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Tower/sector</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">description</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Descriptive label</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1389,32 +1389,32 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">speed_up</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Upload speed (Kbps)</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">latitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Latitude</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            1024
+            
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">speed_down</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Download speed (Kbps)</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">longitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Longitude</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            1024
+            
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">authkey</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Authentication key</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">performance_profile</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Peformance Profile</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1425,8 +1425,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">latitude</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Latitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">plan_id</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Service Plan Id</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1437,8 +1437,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">longitude</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Longitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">poe_location</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">POE Location</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1449,8 +1449,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">altitude</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Altitude</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">radio_location</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Radio Location</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1461,8 +1461,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">vlan_profile</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">VLAN profile</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">radio_serialnum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Radio Serial Number</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1473,8 +1473,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">performance_profile</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Peformance Profile</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">routernum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Router/block</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1485,8 +1485,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">plan_id</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Service Plan Id</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">rssi</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">RSSI</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1497,8 +1497,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">radio_serialnum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Radio Serial Number</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">sectornum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Tower/sector</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1509,8 +1509,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">radio_location</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Radio Location</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">serviceid</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Torrus serviceid</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1521,8 +1521,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">poe_location</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">POE Location</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">shared_svcnum</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Shared Service</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1533,32 +1533,32 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">rssi</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">RSSI</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">speed_down</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Download speed (Kbps)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            
+            1024
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">suid</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">SUID</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">speed_up</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">Upload speed (Kbps)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
-            
+            1024
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">shared_svcnum</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Shared Service</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">suid</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">SUID</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1569,8 +1569,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">serviceid</TD>
-     <TD CLASS="grid" BGCOLOR="#eeeeee">Torrus serviceid</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">vlan_profile</TD>
+     <TD CLASS="grid" BGCOLOR="#eeeeee">VLAN profile</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#eeeeee">
 
@@ -1614,8 +1614,8 @@ function part_export_areyousure(href) {
 
 
      
-     <TD CLASS="grid" BGCOLOR="#ffffff">countrycode</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Country code</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">circuit_svcnum</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Circuit</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1626,20 +1626,20 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">sim_imsi</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">IMSI</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">countrycode</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Country code</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
-            
+            1
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">phone_name</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Name</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">domsvc</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Domain</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1650,8 +1650,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">pbxsvc</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">PBX</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">e911_class</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">E911 Service Class</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1662,8 +1662,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">domsvc</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Domain</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">e911_type</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">E911 Service Type</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1674,8 +1674,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">forwarddst</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Forward Destination</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">email</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Email</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1686,8 +1686,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">email</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Email</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">forwarddst</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Forward Destination</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1698,8 +1698,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_status</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Status</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_desired_due_date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Desired Due Date</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1710,8 +1710,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">portable</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Portable?</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_due_date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Due Date</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1722,8 +1722,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lrn</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LRN</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_other_provider</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Other Provider</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1734,8 +1734,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_desired_due_date</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Desired Due Date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_other_provider_account</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Other Provider Account #</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1746,8 +1746,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_due_date</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Due Date</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_reject_reason</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Reject Reason</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1758,8 +1758,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_other_provider</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Other Provider</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_status</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Status</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1770,8 +1770,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_other_provider_account</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Other Provider Account #</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">lrn</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">LRN</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1782,8 +1782,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">lnp_reject_reason</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">LNP Reject Reason</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">max_simultaneous</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Maximum number of simultaneous users</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1794,8 +1794,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">sms_carrierid</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">SMS Carrier</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">pbxsvc</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">PBX</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1806,8 +1806,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">sms_account</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">SMS Carrier Account</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">phone_name</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Name</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1818,8 +1818,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">max_simultaneous</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Maximum number of simultaneous users</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">portable</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">Portable?</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1830,8 +1830,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">e911_class</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">E911 Service Class</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">sim_imsi</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">IMSI</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1842,8 +1842,8 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">e911_type</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">E911 Service Type</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">sip_server</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">SIP Host</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
@@ -1854,20 +1854,20 @@ function part_export_areyousure(href) {
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">circuit_svcnum</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">Circuit</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">sms_account</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">SMS Carrier Account</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
-            1
+            
 
      </TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
      </TD>
 
      </TR><TR>
-     <TD CLASS="grid" BGCOLOR="#ffffff">sip_server</TD>
-     <TD CLASS="grid" BGCOLOR="#ffffff">SIP Host</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">sms_carrierid</TD>
+     <TD CLASS="grid" BGCOLOR="#ffffff">SMS Carrier</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">Fixed (unchangeable)</TD>
      <TD CLASS="grid" BGCOLOR="#ffffff">
 
index 6dd5bd8..ae160d6 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 84196c7..3f60d00 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 8a9f1fc..798351f 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1325,11 +1325,6 @@ function confirm_submit(f) {
         >Anniversary, with intro price</OPTION>
 
 
-        <OPTION VALUE="prorate_calendar"
-                
-        >Prorate (calendar cycle)</OPTION>
-
-
         <OPTION VALUE="prorate"
                  SELECTED
         >Prorate (Nth of month billing)</OPTION>
@@ -1340,6 +1335,11 @@ function confirm_submit(f) {
         >Prorate (Nth of month billing), with intro period</OPTION>
 
 
+        <OPTION VALUE="prorate_calendar"
+                
+        >Prorate (calendar cycle)</OPTION>
+
+
         <OPTION VALUE="prepaid"
                 
         >Prepaid, no automatic cycle</OPTION>
@@ -3742,10 +3742,15 @@ spawn_bill_dst_pkgpart(this);"
       <TR>
   <TD CLASS="background" COLSPAN=99>
 
+<SCRIPT>
+var provision_hold_td = [];
+var provision_hold_input = [];
+</SCRIPT>
+
 <TABLE BORDER=0 CELLSPACING=4 ><TR><TD VALIGN="top">
 
 
-<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hold<BR>Until<BR>Provision</FONT></TH></TR>
+<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc" ID="th_provision_hold1"><FONT SIZE=-1>Remove Hold After Provisioning</FONT></TH></TR><SCRIPT>provision_hold_td.push(document.getElementById('th_provision_hold1'))</SCRIPT>
 
 
   <TR>
@@ -3769,9 +3774,13 @@ spawn_bill_dst_pkgpart(this);"
       <INPUT TYPE="checkbox" NAME="no_bulk_skip1" VALUE="Y" CHECKED>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold1" VALUE="Y">
+    <TD ALIGN="center" ID="td_provision_hold1">
+      <INPUT TYPE="checkbox" ID="input_provision_hold1" NAME="provision_hold1" VALUE="Y">
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold1'));
+provision_hold_input.push(document.getElementById('input_provision_hold1'));
+</SCRIPT>
 
   </TR>
 
@@ -3796,15 +3805,19 @@ spawn_bill_dst_pkgpart(this);"
       <INPUT TYPE="checkbox" NAME="no_bulk_skip2" VALUE="Y" CHECKED>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold2" VALUE="Y">
+    <TD ALIGN="center" ID="td_provision_hold2">
+      <INPUT TYPE="checkbox" ID="input_provision_hold2" NAME="provision_hold2" VALUE="Y">
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold2'));
+provision_hold_input.push(document.getElementById('input_provision_hold2'));
+</SCRIPT>
 
   </TR>
 
          </TABLE></TD><TD VALIGN="top">
 
-<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hold<BR>Until<BR>Provision</FONT></TH></TR>
+<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc" ID="th_provision_hold2"><FONT SIZE=-1>Remove Hold After Provisioning</FONT></TH></TR><SCRIPT>provision_hold_td.push(document.getElementById('th_provision_hold2'))</SCRIPT>
 
   <TR>
     <TD>
@@ -3827,9 +3840,13 @@ spawn_bill_dst_pkgpart(this);"
       <INPUT TYPE="checkbox" NAME="no_bulk_skip3" VALUE="Y" CHECKED>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold3" VALUE="Y">
+    <TD ALIGN="center" ID="td_provision_hold3">
+      <INPUT TYPE="checkbox" ID="input_provision_hold3" NAME="provision_hold3" VALUE="Y">
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold3'));
+provision_hold_input.push(document.getElementById('input_provision_hold3'));
+</SCRIPT>
 
   </TR>
 
@@ -3854,15 +3871,19 @@ spawn_bill_dst_pkgpart(this);"
       <INPUT TYPE="checkbox" NAME="no_bulk_skip4" VALUE="Y" CHECKED>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold4" VALUE="Y">
+    <TD ALIGN="center" ID="td_provision_hold4">
+      <INPUT TYPE="checkbox" ID="input_provision_hold4" NAME="provision_hold4" VALUE="Y">
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold4'));
+provision_hold_input.push(document.getElementById('input_provision_hold4'));
+</SCRIPT>
 
   </TR>
 
          </TABLE></TD><TD VALIGN="top">
 
-<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hold<BR>Until<BR>Provision</FONT></TH></TR>
+<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH><TH BGCOLOR="#dcdcdc" ID="th_provision_hold3"><FONT SIZE=-1>Remove Hold After Provisioning</FONT></TH></TR><SCRIPT>provision_hold_td.push(document.getElementById('th_provision_hold3'))</SCRIPT>
 
   <TR>
     <TD>
@@ -3885,14 +3906,42 @@ spawn_bill_dst_pkgpart(this);"
       <INPUT TYPE="checkbox" NAME="no_bulk_skip5" VALUE="Y" CHECKED>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold5" VALUE="Y">
+    <TD ALIGN="center" ID="td_provision_hold5">
+      <INPUT TYPE="checkbox" ID="input_provision_hold5" NAME="provision_hold5" VALUE="Y">
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold5'));
+provision_hold_input.push(document.getElementById('input_provision_hold5'));
+</SCRIPT>
 
   </TR>
 
 </TR></TABLE></TD></TR></TABLE>
 
+<SCRIPT>
+// start_on_hold from edit/part_pkg.cgi
+// toggles display of provision_hold checkboxes when that changes
+function provision_hold_check () {
+  var start_on_hold = document.getElementById('start_on_hold');
+  if (start_on_hold) {
+    for (i = 0; i < provision_hold_td.length; i++) {
+      provision_hold_td[i].style.display = start_on_hold.checked ? '' : 'none';
+    }
+    for (i = 0; i < provision_hold_input.length; i++) {
+      provision_hold_input[i].disabled = start_on_hold.checked ? false : true;
+    }
+  }
+}
+function provision_hold_init () {
+  var start_on_hold = document.getElementById('start_on_hold');
+  if (start_on_hold) {
+    start_on_hold.onchange = provision_hold_check;
+    provision_hold_check();
+  }
+}
+provision_hold_init();
+</SCRIPT>
+
 
   </TD>
 </TR>
@@ -4261,7 +4310,39 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="flat__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="flat__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Prorate first month to synchronize with the customer's other packages</TD><TD><INPUT TYPE="checkbox" NAME="flat__sync_bill_date" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD><INPUT TYPE="checkbox" NAME="flat__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="flat__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="flat__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="flat__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="flat__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="flat__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="flat__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="flat__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="flat__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="flat__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="flat__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="flat__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD><INPUT TYPE="text" NAME="flat__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD><INPUT TYPE="text" NAME="flat__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD><INPUT TYPE="text" NAME="flat__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD><INPUT TYPE="text" NAME="flat__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD><INPUT TYPE="text" NAME="flat__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD><INPUT TYPE="checkbox" NAME="flat__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD><INPUT TYPE="checkbox" NAME="flat__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="flat__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="flat__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="flat__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="flat__OPTIONS" VALUE="recharge_downbytes,unused_credit_change,a2billing_carrer_initblock_offp,add_full_period,a2billing_tariff,prorate_defer_bill,unsuspend_adjust_bill,upbytes,recharge_seconds,recharge_upbytes,unused_credit_cancel,sync_bill_date,recharge_totalbytes,bill_recur_on_cancel,unused_credit_suspend,a2billing_carrier_cost_min,prorate_verbose,recharge_amount,a2billing_type,a2billing_retail_cost_min_offp,setup_fee,a2billing_simultaccess,downbytes,recur_fee,externalid,delay_cancel,usage_rollover,recur_temporality,bill_suspend_as_cancel,start_1st,a2billing_retail_initblock_offp,suspend_bill,prorate_round_day,seconds,totalbytes,recharge_reset,a2billing_carrier_increment_offp,a2billing_retail_increment_offp">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="flat__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Prorate first month to synchronize with the customer's other packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__sync_bill_date" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="flat__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "flat__OPTIONS"
+       ID    = "flat__OPTIONS"
+       VALUE = "recur_temporality,start_1st,sync_bill_date,prorate_defer_bill,prorate_round_day,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,prorate_verbose,seconds,upbytes,downbytes,totalbytes,recharge_amount,recharge_seconds,recharge_upbytes,recharge_downbytes,recharge_totalbytes,usage_rollover,recharge_reset,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4270,7 +4351,21 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="flat_delayed__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="flat_delayed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="flat_delayed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="flat_delayed__delay_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Initial free days</TD><TD><INPUT TYPE="text" NAME="flat_delayed__free_days" VALUE="0"></TD></TR><TR><TD ALIGN="right">Delay setup fee in addition to recurring fee</TD><TD><INPUT TYPE="checkbox" NAME="flat_delayed__delay_setup" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Number of days before recurring billing commences to notify customer. (0 means no warning)</TD><TD><INPUT TYPE="text" NAME="flat_delayed__recur_notify" VALUE="0"></TD></TR></TABLE><INPUT TYPE="hidden" NAME="flat_delayed__OPTIONS" VALUE="free_days,a2billing_tariff,delay_cancel,recur_notify,a2billing_simultaccess,recur_fee,delay_setup,a2billing_carrer_initblock_offp,setup_fee,unused_credit_change,a2billing_retail_increment_offp,a2billing_type,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,unused_credit_suspend,a2billing_carrier_cost_min,a2billing_retail_initblock_offp,suspend_bill,unused_credit_cancel">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_delayed__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_delayed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_delayed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_delayed__delay_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Initial free days</TD><TD>
+      <INPUT TYPE="text" NAME="flat_delayed__free_days" VALUE="0"></TD></TR><TR><TD ALIGN="right">Delay setup fee in addition to recurring fee</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_delayed__delay_setup" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Number of days before recurring billing commences to notify customer. (0 means no warning)</TD><TD>
+      <INPUT TYPE="text" NAME="flat_delayed__recur_notify" VALUE="0"></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "flat_delayed__OPTIONS"
+       ID    = "flat_delayed__OPTIONS"
+       VALUE = "suspend_bill,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp,free_days,delay_setup,recur_notify"
+>
+
+
 
       </DIV>
 
@@ -4279,34 +4374,143 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Duration of the introductory period, in number of months</TD><TD><INPUT TYPE="text" NAME="flat_introrate__intro_duration" VALUE="0"></TD></TR><TR><TD ALIGN="right">Introductory recurring fee for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__intro_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="flat_introrate__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Prorate first month to synchronize with the customer's other packages</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__sync_bill_date" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="flat_introrate__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD><INPUT TYPE="text" NAME="flat_introrate__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="flat_introrate__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="flat_introrate__OPTIONS" VALUE="usage_rollover,intro_fee,recur_temporality,downbytes,recur_fee,a2billing_simultaccess,delay_cancel,externalid,intro_duration,setup_fee,a2billing_carrier_increment_offp,a2billing_retail_increment_offp,totalbytes,recharge_reset,suspend_bill,a2billing_retail_initblock_offp,start_1st,seconds,prorate_round_day,bill_suspend_as_cancel,prorate_defer_bill,upbytes,unsuspend_adjust_bill,recharge_seconds,a2billing_tariff,a2billing_carrer_initblock_offp,add_full_period,unused_credit_change,recharge_downbytes,a2billing_retail_cost_min_offp,recharge_amount,a2billing_type,bill_recur_on_cancel,a2billing_carrier_cost_min,unused_credit_suspend,recharge_totalbytes,recharge_upbytes,unused_credit_cancel,sync_bill_date">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Duration of the introductory period, in number of months</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__intro_duration" VALUE="0"></TD></TR><TR><TD ALIGN="right">Introductory recurring fee for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__intro_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="flat_introrate__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Prorate first month to synchronize with the customer's other packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__sync_bill_date" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD>
+      <INPUT TYPE="text" NAME="flat_introrate__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="flat_introrate__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "flat_introrate__OPTIONS"
+       ID    = "flat_introrate__OPTIONS"
+       VALUE = "intro_duration,intro_fee,recur_temporality,start_1st,sync_bill_date,prorate_defer_bill,prorate_round_day,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,seconds,upbytes,downbytes,totalbytes,recharge_amount,recharge_seconds,recharge_upbytes,recharge_downbytes,recharge_totalbytes,usage_rollover,recharge_reset,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
 
-      <DIV ID="plandprorate_calendar"
-           STYLE="display: none; z-index: 0"
+      <DIV ID="plandprorate"
+           STYLE="display: block; z-index: 1"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing day (1 - end of cycle)</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD><INPUT TYPE="text" NAME="prorate_calendar__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="prorate_calendar__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="prorate_calendar__OPTIONS" VALUE="usage_rollover,recur_temporality,recur_fee,downbytes,a2billing_simultaccess,delay_cancel,externalid,setup_fee,a2billing_carrier_increment_offp,a2billing_retail_increment_offp,totalbytes,recharge_reset,suspend_bill,start_1st,a2billing_retail_initblock_offp,seconds,prorate_round_day,bill_suspend_as_cancel,cutoff_day,unsuspend_adjust_bill,prorate_defer_bill,upbytes,recharge_seconds,a2billing_tariff,a2billing_carrer_initblock_offp,add_full_period,unused_credit_change,recharge_downbytes,a2billing_retail_cost_min_offp,recharge_amount,prorate_verbose,a2billing_type,bill_recur_on_cancel,a2billing_carrier_cost_min,unused_credit_suspend,recharge_totalbytes,recharge_upbytes,unused_credit_cancel,sync_bill_date">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing Day (1 - 28)</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "prorate__OPTIONS"
+       ID    = "prorate__OPTIONS"
+       VALUE = "cutoff_day,prorate_defer_bill,add_full_period,prorate_round_day,prorate_verbose,start_1st,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,seconds,upbytes,downbytes,totalbytes,recharge_amount,recharge_seconds,recharge_upbytes,recharge_downbytes,recharge_totalbytes,usage_rollover,recharge_reset,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
 
-      <DIV ID="plandprorate"
-           STYLE="display: block; z-index: 1"
+      <DIV ID="plandprorate_delayed"
+           STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing Day (1 - 28)</TD><TD><INPUT TYPE="text" NAME="prorate__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="prorate__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="prorate__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="prorate__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="prorate__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="prorate__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="prorate__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="prorate__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prorate__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="prorate__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="prorate__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="prorate__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD><INPUT TYPE="text" NAME="prorate__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD><INPUT TYPE="text" NAME="prorate__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD><INPUT TYPE="text" NAME="prorate__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD><INPUT TYPE="text" NAME="prorate__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD><INPUT TYPE="text" NAME="prorate__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD><INPUT TYPE="checkbox" NAME="prorate__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD><INPUT TYPE="checkbox" NAME="prorate__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prorate__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="prorate__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="prorate__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="prorate__OPTIONS" VALUE="recharge_downbytes,unused_credit_change,a2billing_carrer_initblock_offp,add_full_period,a2billing_tariff,prorate_defer_bill,unsuspend_adjust_bill,upbytes,cutoff_day,recharge_seconds,recharge_upbytes,unused_credit_cancel,sync_bill_date,recharge_totalbytes,bill_recur_on_cancel,unused_credit_suspend,a2billing_carrier_cost_min,recharge_amount,prorate_verbose,a2billing_type,a2billing_retail_cost_min_offp,setup_fee,a2billing_simultaccess,recur_fee,downbytes,externalid,delay_cancel,usage_rollover,recur_temporality,bill_suspend_as_cancel,a2billing_retail_initblock_offp,start_1st,suspend_bill,prorate_round_day,seconds,totalbytes,recharge_reset,a2billing_carrier_increment_offp,a2billing_retail_increment_offp">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_delayed__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_delayed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_delayed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_delayed__delay_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Initial free days</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_delayed__free_days" VALUE="0"></TD></TR><TR><TD ALIGN="right">Delay setup fee in addition to recurring fee</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_delayed__delay_setup" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Number of days before recurring billing commences to notify customer. (0 means no warning)</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_delayed__recur_notify" VALUE="0"></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "prorate_delayed__OPTIONS"
+       ID    = "prorate_delayed__OPTIONS"
+       VALUE = "suspend_bill,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp,free_days,delay_setup,recur_notify"
+>
+
+
 
       </DIV>
 
 
-      <DIV ID="plandprorate_delayed"
+      <DIV ID="plandprorate_calendar"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="prorate_delayed__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prorate_delayed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="prorate_delayed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="prorate_delayed__delay_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Initial free days</TD><TD><INPUT TYPE="text" NAME="prorate_delayed__free_days" VALUE="0"></TD></TR><TR><TD ALIGN="right">Delay setup fee in addition to recurring fee</TD><TD><INPUT TYPE="checkbox" NAME="prorate_delayed__delay_setup" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Number of days before recurring billing commences to notify customer. (0 means no warning)</TD><TD><INPUT TYPE="text" NAME="prorate_delayed__recur_notify" VALUE="0"></TD></TR></TABLE><INPUT TYPE="hidden" NAME="prorate_delayed__OPTIONS" VALUE="setup_fee,unused_credit_change,delay_setup,a2billing_carrer_initblock_offp,free_days,a2billing_tariff,delay_cancel,a2billing_simultaccess,recur_notify,recur_fee,unused_credit_cancel,a2billing_retail_initblock_offp,suspend_bill,unused_credit_suspend,a2billing_carrier_cost_min,a2billing_retail_increment_offp,a2billing_type,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing day (1 - end of cycle)</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prorate_calendar__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll  over into current period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prorate_calendar__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "prorate_calendar__OPTIONS"
+       ID    = "prorate_calendar__OPTIONS"
+       VALUE = "cutoff_day,prorate_defer_bill,prorate_verbose,start_1st,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,seconds,upbytes,downbytes,totalbytes,recharge_amount,recharge_seconds,recharge_upbytes,recharge_downbytes,recharge_totalbytes,usage_rollover,recharge_reset,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4315,7 +4519,23 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Action to take upon reaching end of prepaid period</TD><TD><SELECT NAME="prepaid__recur_action"><OPTION VALUE="suspend">suspend<OPTION VALUE="cancel">cancel</SELECT></TD></TR><TR><TD ALIGN="right">Action to take upon reaching a usage limit.</TD><TD><SELECT NAME="prepaid__overlimit_action"><OPTION VALUE="overlimit">Default overlimit processing<OPTION VALUE="cancel">Cancel</SELECT></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="prepaid__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="prepaid__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="prepaid__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="prepaid__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="prepaid__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="prepaid__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="prepaid__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="prepaid__OPTIONS" VALUE="a2billing_retail_initblock_offp,recharge_totalbytes,seconds,unused_credit_cancel,recharge_upbytes,recur_action,recharge_amount,a2billing_type,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_increment_offp,totalbytes,recharge_reset,overlimit_action,unused_credit_suspend,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,recharge_downbytes,setup_fee,unused_credit_change,usage_rollover,recharge_seconds,upbytes,a2billing_simultaccess,downbytes,recur_fee,delay_cancel,a2billing_tariff">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Action to take upon reaching end of prepaid period</TD><TD>
+      <SELECT NAME="prepaid__recur_action"><OPTION VALUE="suspend">suspend<OPTION VALUE="cancel">cancel</SELECT></TD></TR><TR><TD ALIGN="right">Action to take upon reaching a usage limit.</TD><TD>
+      <SELECT NAME="prepaid__overlimit_action"><OPTION VALUE="overlimit">Default overlimit processing<OPTION VALUE="cancel">Cancel</SELECT></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prepaid__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prepaid__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prepaid__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="prepaid__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prepaid__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prepaid__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="prepaid__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "prepaid__OPTIONS"
+       ID    = "prepaid__OPTIONS"
+       VALUE = "recur_action,overlimit_action,seconds,upbytes,downbytes,totalbytes,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4324,7 +4544,30 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing day</TD><TD><INPUT TYPE="text" NAME="subscription__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD><INPUT TYPE="text" NAME="subscription__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD><INPUT TYPE="text" NAME="subscription__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD><INPUT TYPE="text" NAME="subscription__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD><INPUT TYPE="text" NAME="subscription__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD><INPUT TYPE="text" NAME="subscription__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD><INPUT TYPE="text" NAME="subscription__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD><INPUT TYPE="text" NAME="subscription__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD><INPUT TYPE="text" NAME="subscription__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD><INPUT TYPE="text" NAME="subscription__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll over into current period</TD><TD><INPUT TYPE="checkbox" NAME="subscription__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD><INPUT TYPE="checkbox" NAME="subscription__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="subscription__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="subscription__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="subscription__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="subscription__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="subscription__OPTIONS" VALUE="recharge_totalbytes,seconds,a2billing_retail_initblock_offp,recharge_upbytes,unused_credit_cancel,a2billing_retail_increment_offp,a2billing_type,recharge_amount,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,unused_credit_suspend,a2billing_carrier_cost_min,recharge_reset,totalbytes,a2billing_carrer_initblock_offp,setup_fee,recharge_downbytes,unused_credit_change,recharge_seconds,upbytes,cutoff_day,usage_rollover,externalid,a2billing_tariff,delay_cancel,a2billing_simultaccess,recur_fee,downbytes">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing day</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">Time limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Upload limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Download limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Transfer limit for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Cost of recharge for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__recharge_amount" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge time for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__recharge_seconds" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge upload for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__recharge_upbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge download for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__recharge_downbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Recharge transfer for this package</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__recharge_totalbytes" VALUE=""></TD></TR><TR><TD ALIGN="right">Allow usage from previous period to roll over into current period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="subscription__usage_rollover" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Reset usage to these values on manual package recharge</TD><TD>
+      <INPUT TYPE="checkbox" NAME="subscription__recharge_reset" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="subscription__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="subscription__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="subscription__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="subscription__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "subscription__OPTIONS"
+       ID    = "subscription__OPTIONS"
+       VALUE = "cutoff_day,seconds,upbytes,downbytes,totalbytes,recharge_amount,recharge_seconds,recharge_upbytes,recharge_downbytes,recharge_totalbytes,usage_rollover,recharge_reset,externalid,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4333,7 +4576,30 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Hours included</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_hours" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per hour</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_hourly_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for hours (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_hourly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Upload gigabytes included</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_input" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte upload</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_input_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for upload (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_input_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Download gigabytes included</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_output" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte download</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_output_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for download (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_output_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Total gigabytes included</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_total" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte total</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_total_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for total gigabytes (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__recur_total_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Global cap on all overage charges (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_hour__global_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_hour__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_hour__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_hour__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="sqlradacct_hour__OPTIONS" VALUE="a2billing_retail_increment_offp,a2billing_type,a2billing_carrier_increment_offp,recur_output_charge,a2billing_retail_cost_min_offp,unused_credit_suspend,a2billing_carrier_cost_min,recur_total_cap,a2billing_retail_initblock_offp,unused_credit_cancel,recur_included_hours,global_cap,delay_cancel,a2billing_tariff,recur_hourly_cap,recur_hourly_charge,recur_total_charge,a2billing_simultaccess,recur_included_output,recur_input_cap,recur_fee,recur_input_charge,a2billing_carrer_initblock_offp,recur_included_input,recur_output_cap,setup_fee,recur_included_total,unused_credit_change">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Hours included</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_hours" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per hour</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_hourly_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for hours (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_hourly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Upload gigabytes included</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_input" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte upload</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_input_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for upload (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_input_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Download gigabytes included</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_output" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte download</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_output_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for download (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_output_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Total gigabytes included</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_included_total" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per gigabyte total</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_total_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum overage charge for total gigabytes (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__recur_total_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Global cap on all overage charges (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_hour__global_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_hour__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_hour__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_hour__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "sqlradacct_hour__OPTIONS"
+       ID    = "sqlradacct_hour__OPTIONS"
+       VALUE = "recur_included_hours,recur_hourly_charge,recur_hourly_cap,recur_included_input,recur_input_charge,recur_input_cap,recur_included_output,recur_output_charge,recur_output_cap,recur_included_total,recur_total_charge,recur_total_cap,global_cap,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4342,7 +4608,31 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Hours included per day</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_hours" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per hour</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_hourly_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for hours (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_hourly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Upload megabytes included per day</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_input" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte upload</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_input_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for upload (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_input_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Download megabytes included per day</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_output" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte download</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_output_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for download (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_output_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Total megabytes included per day</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_total" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte total</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_total_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for total megabytes (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__recur_total_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Daily cap on all overage charges (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__global_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Monthly (billing frequency) cap on all overage charges (0 means no cap)</TD><TD><INPUT TYPE="text" NAME="sqlradacct_daily__monthly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_daily__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_daily__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="sqlradacct_daily__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="sqlradacct_daily__OPTIONS" VALUE="recur_input_charge,recur_included_input,a2billing_carrer_initblock_offp,recur_output_cap,setup_fee,unused_credit_change,recur_included_total,global_cap,delay_cancel,a2billing_tariff,recur_hourly_charge,recur_total_charge,recur_hourly_cap,a2billing_simultaccess,recur_fee,recur_included_output,recur_input_cap,recur_total_cap,a2billing_retail_initblock_offp,monthly_cap,recur_included_hours,unused_credit_cancel,a2billing_retail_increment_offp,a2billing_type,a2billing_carrier_increment_offp,recur_output_charge,a2billing_retail_cost_min_offp,unused_credit_suspend,a2billing_carrier_cost_min">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Hours included per day</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_hours" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per hour</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_hourly_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for hours (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_hourly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Upload megabytes included per day</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_input" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte upload</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_input_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for upload (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_input_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Download megabytes included per day</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_output" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte download</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_output_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for download (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_output_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Total megabytes included per day</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_included_total" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per megabyte total</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_total_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">Maximum daily charge for total megabytes (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__recur_total_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Daily cap on all overage charges (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__global_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Monthly (billing frequency) cap on all overage charges (0 means no cap)</TD><TD>
+      <INPUT TYPE="text" NAME="sqlradacct_daily__monthly_cap" VALUE="0"></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_daily__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_daily__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sqlradacct_daily__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "sqlradacct_daily__OPTIONS"
+       ID    = "sqlradacct_daily__OPTIONS"
+       VALUE = "recur_included_hours,recur_hourly_charge,recur_hourly_cap,recur_included_input,recur_input_charge,recur_input_cap,recur_included_output,recur_output_charge,recur_output_cap,recur_included_total,recur_total_charge,recur_total_cap,global_cap,monthly_cap,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4351,7 +4641,18 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="voip_cdr__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="voip_cdr__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="voip_cdr__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR service matching method</TD><TD><SELECT NAME="voip_cdr__cdr_svc_method"><OPTION VALUE="svc_phone.phonenum">Phone numbers (svc_phone.phonenum)<OPTION VALUE="svc_pbx.title">PBX name (svc_pbx.title)<OPTION VALUE="svc_pbx.svcnum">Freeside service # (svc_pbx.svcnum)<OPTION VALUE="svc_pbx.ip.src">PBX name to source IP address<OPTION VALUE="svc_pbx.ip.dst">PBX name to destination IP address<OPTION VALUE="svc_acct.username">Username (svc_acct.username)</SELECT></TD></TR><TR><TD ALIGN="right">Rating method</TD><TD><INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="prefix"> Rate calls by using destination prefix to look up a region and rate according to the internal prefix and rate tables<BR><INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="upstream_simple"> Simply pass through and charge the "upstream_price" amount.<BR><INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="single_price"> A single price per minute for all calls.<BR></TD></TR><TR><TD ALIGN="right">Rounding for destination prefix rating</TD><TD><SELECT NAME="voip_cdr__rounding"><OPTION VALUE="2">Two decimal places (cent)<OPTION VALUE="4">Four decimal places (100th of a cent)</SELECT></TD></TR><TR><TD ALIGN="right">Rate plan</TD><TD>
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="voip_cdr__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="voip_cdr__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR service matching method</TD><TD>
+      <SELECT NAME="voip_cdr__cdr_svc_method"><OPTION VALUE="svc_phone.phonenum">Phone numbers (svc_phone.phonenum)<OPTION VALUE="svc_pbx.title">PBX name (svc_pbx.title)<OPTION VALUE="svc_pbx.svcnum">Freeside service # (svc_pbx.svcnum)<OPTION VALUE="svc_pbx.ip.src">PBX name to source IP address<OPTION VALUE="svc_pbx.ip.dst">PBX name to destination IP address<OPTION VALUE="svc_acct.username">Username (svc_acct.username)</SELECT></TD></TR><TR><TD ALIGN="right">Rating method</TD><TD>
+      <INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="prefix"> Rate calls by using destination prefix to look up a region and rate according to the internal prefix and rate tables<BR><INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="upstream_simple"> Simply pass through and charge the "upstream_price" amount.<BR><INPUT TYPE="radio" NAME="voip_cdr__rating_method" VALUE="single_price"> A single price per minute for all calls.<BR></TD></TR><TR><TD ALIGN="right">Rounding for destination prefix rating</TD><TD>
+      <SELECT NAME="voip_cdr__rounding"><OPTION VALUE="2">Two decimal places (cent)<OPTION VALUE="4">Four decimal places (100th of a cent)</SELECT></TD></TR><TR><TD ALIGN="right">Rate plan</TD><TD>
+      
 <SELECT 
         NAME = "voip_cdr__ratenum"
         ID   = "ratenum"
@@ -4369,6 +4670,7 @@ spawn_supp_dst_pkgpart(this);"
 
 
 </TD></TR><TR><TD ALIGN="right">Optional alternate intrastate rate plan</TD><TD>
+      
 <SELECT 
         NAME = "voip_cdr__intrastate_ratenum"
         ID   = "ratenum"
@@ -4385,7 +4687,61 @@ spawn_supp_dst_pkgpart(this);"
 </SELECT>
 
 
-</TD></TR><TR><TD ALIGN="right">Number of calls included at no usage charge</TD><TD><INPUT TYPE="text" NAME="voip_cdr__calls_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Charge per minute when using "single price per minute" rating method</TD><TD><INPUT TYPE="text" NAME="voip_cdr__min_charge" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included when using the "single price per minute" or "prefix" rating method</TD><TD><INPUT TYPE="text" NAME="voip_cdr__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity when using "single price per minute" rating method</TD><TD><SELECT NAME="voip_cdr__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Handling of calls without a rate in the rate table</TD><TD><SELECT NAME="voip_cdr__ignore_unrateable"><OPTION VALUE="" SELECTED>Exit with a fatal error<OPTION VALUE="1">Ignore and continue<OPTION VALUE="2">Flag for later review</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD><INPUT TYPE="text" NAME="voip_cdr__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Disable rating of CDR records based on the "src" field in addition to "charged_party"</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__disable_src" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Destination prefix for domestic CDR records</TD><TD><INPUT TYPE="text" NAME="voip_cdr__domestic_prefix" VALUE="1"></TD></TR><TR><TD ALIGN="right">Destination prefix for international CDR records</TD><TD><INPUT TYPE="text" NAME="voip_cdr__international_prefix" VALUE="011"></TD></TR><TR><TD ALIGN="right">Disable automatic toll-free processing</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__disable_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination number starts with any of these values: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_dst_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the source is more than this many digits:</TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_src_length_more" VALUE=""></TD></TR><TR><TD ALIGN="right">Do charge for CDRs where source is equal or greater than the specified digits, when accountcode is toll free</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__noskip_src_length_accountcode_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional alternate rate plan when accountcode is toll free: </TD><TD><SELECT NAME="voip_cdr__accountcode_tollfree_ratenum"><OPTION VALUE=""></SELECT></TD></TR><TR><TD ALIGN="right">When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations</TD><TD><SELECT NAME="voip_cdr__accountcode_tollfree_field"><OPTION VALUE="dst">Destination (dst)<OPTION VALUE="src">Source (src)</SELECT></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do charge for CDRs where dst is less than the specified digits, when accountcode is toll free</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__noskip_dst_length_accountcode_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where max_callers is less than or equal to this value: </TD><TD><INPUT TYPE="text" NAME="voip_cdr__skip_max_callers" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for calls between numbers belonging to the same customer</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__skip_same_customer" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Rewrite these (comma-separated) destination numbers to 411 for rating purposes (also ignore any carrierid check): </TD><TD><INPUT TYPE="text" NAME="voip_cdr__411_rewrite" VALUE=""></TD></TR><TR><TD ALIGN="right">CDR display format for invoices</TD><TD><SELECT NAME="voip_cdr__output_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">CDR display format for selfservice</TD><TD><SELECT NAME="voip_cdr__selfservice_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">Inbound CDR display format for selfservice</TD><TD><SELECT NAME="voip_cdr__selfservice_inbound_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section.  The section is defined in the next option.</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not): </TD><TD><INPUT TYPE="text" NAME="voip_cdr__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show details for included / no-charge calls.</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__usage_showzero" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call (as well any setup fee, upon first payment).  Useful for prepaid.</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill for all phone numbers that were active during the billing period</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__bill_inactive_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only bill CDRs with a date during the package billing period</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__bill_only_pkg_dates" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__count_available_phones" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="voip_cdr__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="voip_cdr__OPTIONS" VALUE="disable_tollfree,summarize_usage,prorate_round_day,international_prefix,recur_temporality,selfservice_format,skip_max_callers,delay_cancel,skip_same_customer,setup_fee,usage_mandate,count_available_phones,recur_method,use_amaflags,rating_method,noskip_src_length_accountcode_tollfree,a2billing_retail_cost_min_offp,a2billing_carrier_cost_min,bill_every_call,use_duration,skip_src_length_more,skip_dst_prefix,unused_credit_cancel,ignore_disposition,skip_dcontext,ignore_cdrtypenum,calls_included,cdr_svc_method,a2billing_tariff,ignore_calltypenum,min_charge,domestic_prefix,disposition_in,skip_dst_length_less,a2billing_retail_increment_offp,disable_src,a2billing_carrier_increment_offp,usage_showzero,skip_lastapp,noskip_dst_length_accountcode_tollfree,a2billing_retail_initblock_offp,sec_granularity,suspend_bill,rounding,a2billing_simultaccess,recur_fee,bill_inactive_svcs,accountcode_tollfree_field,min_included,ratenum,intrastate_ratenum,a2billing_type,prorate_verbose,unused_credit_suspend,usage_section,ignore_unrateable,output_format,use_calltypenum,prorate_defer_bill,cutoff_day,use_cdrtypenum,default_prefix,411_rewrite,accountcode_tollfree_ratenum,selfservice_inbound_format,bill_only_pkg_dates,add_full_period,use_carrierid,skip_dstchannel_prefix,a2billing_carrer_initblock_offp,unused_credit_change">
+</TD></TR><TR><TD ALIGN="right">Number of calls included at no usage charge</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__calls_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Charge per minute when using "single price per minute" rating method</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__min_charge" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included when using the "single price per minute" or "prefix" rating method</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity when using "single price per minute" rating method</TD><TD>
+      <SELECT NAME="voip_cdr__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Handling of calls without a rate in the rate table</TD><TD>
+      <SELECT NAME="voip_cdr__ignore_unrateable"><OPTION VALUE="" SELECTED>Exit with a fatal error<OPTION VALUE="1">Ignore and continue<OPTION VALUE="2">Flag for later review</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Disable rating of CDR records based on the "src" field in addition to "charged_party"</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__disable_src" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Destination prefix for domestic CDR records</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__domestic_prefix" VALUE="1"></TD></TR><TR><TD ALIGN="right">Destination prefix for international CDR records</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__international_prefix" VALUE="011"></TD></TR><TR><TD ALIGN="right">Disable automatic toll-free processing</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__disable_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination number starts with any of these values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_dst_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the source is more than this many digits:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_src_length_more" VALUE=""></TD></TR><TR><TD ALIGN="right">Do charge for CDRs where source is equal or greater than the specified digits, when accountcode is toll free</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__noskip_src_length_accountcode_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional alternate rate plan when accountcode is toll free: </TD><TD>
+      <SELECT NAME="voip_cdr__accountcode_tollfree_ratenum"><OPTION VALUE=""></SELECT></TD></TR><TR><TD ALIGN="right">When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations</TD><TD>
+      <SELECT NAME="voip_cdr__accountcode_tollfree_field"><OPTION VALUE="dst">Destination (dst)<OPTION VALUE="src">Source (src)</SELECT></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do charge for CDRs where dst is less than the specified digits, when accountcode is toll free</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__noskip_dst_length_accountcode_tollfree" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where max_callers is less than or equal to this value: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__skip_max_callers" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for calls between numbers belonging to the same customer</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__skip_same_customer" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Rewrite these (comma-separated) destination numbers to 411 for rating purposes (also ignore any carrierid check): </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__411_rewrite" VALUE=""></TD></TR><TR><TD ALIGN="right">CDR display format for invoices</TD><TD>
+      <SELECT NAME="voip_cdr__output_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">CDR display format for selfservice</TD><TD>
+      <SELECT NAME="voip_cdr__selfservice_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">Inbound CDR display format for selfservice</TD><TD>
+      <SELECT NAME="voip_cdr__selfservice_inbound_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section.  The section is defined in the next option.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not): </TD><TD>
+      <INPUT TYPE="text" NAME="voip_cdr__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show details for included / no-charge calls.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__usage_showzero" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call (as well any setup fee, upon first payment).  Useful for prepaid.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill for all phone numbers that were active during the billing period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__bill_inactive_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only bill CDRs with a date during the package billing period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__bill_only_pkg_dates" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__count_available_phones" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_cdr__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "voip_cdr__OPTIONS"
+       ID    = "voip_cdr__OPTIONS"
+       VALUE = "recur_temporality,recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,cdr_svc_method,rating_method,rounding,ratenum,intrastate_ratenum,calls_included,min_charge,min_included,sec_granularity,ignore_unrateable,default_prefix,disable_src,domestic_prefix,international_prefix,disable_tollfree,use_amaflags,use_carrierid,use_cdrtypenum,ignore_cdrtypenum,use_calltypenum,ignore_calltypenum,ignore_disposition,disposition_in,skip_dcontext,skip_dst_prefix,skip_dstchannel_prefix,skip_src_length_more,noskip_src_length_accountcode_tollfree,accountcode_tollfree_ratenum,accountcode_tollfree_field,skip_dst_length_less,noskip_dst_length_accountcode_tollfree,skip_lastapp,skip_max_callers,skip_same_customer,use_duration,411_rewrite,output_format,selfservice_format,selfservice_inbound_format,usage_mandate,usage_section,summarize_usage,usage_showzero,bill_every_call,bill_inactive_svcs,bill_only_pkg_dates,count_available_phones,suspend_bill,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4394,7 +4750,46 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="voip_inbound__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="voip_inbound__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="voip_inbound__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Charge per minute</TD><TD><INPUT TYPE="text" NAME="voip_inbound__min_charge" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included</TD><TD><INPUT TYPE="text" NAME="voip_inbound__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity</TD><TD><SELECT NAME="voip_inbound__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD><INPUT TYPE="text" NAME="voip_inbound__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_inbound__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values:</TD><TD><INPUT TYPE="text" NAME="voip_inbound__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD><INPUT TYPE="text" NAME="voip_inbound__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD><INPUT TYPE="text" NAME="voip_inbound__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value</TD><TD><INPUT TYPE="text" NAME="voip_inbound__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD><SELECT NAME="voip_inbound__output_format"><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default<OPTION VALUE="sum_count_class">Summary, one line per usage class</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not)</TD><TD><INPUT TYPE="text" NAME="voip_inbound__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call.  Useful for prepaid.</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="voip_inbound__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="voip_inbound__OPTIONS" VALUE="a2billing_carrier_increment_offp,a2billing_retail_increment_offp,summarize_usage,skip_lastapp,sec_granularity,a2billing_retail_initblock_offp,prorate_round_day,recur_temporality,a2billing_simultaccess,recur_fee,delay_cancel,min_included,setup_fee,usage_mandate,use_amaflags,recur_method,prorate_verbose,a2billing_type,a2billing_retail_cost_min_offp,bill_every_call,unused_credit_suspend,usage_section,a2billing_carrier_cost_min,use_duration,use_calltypenum,unused_credit_cancel,output_format,ignore_disposition,use_cdrtypenum,cutoff_day,prorate_defer_bill,ignore_calltypenum,min_charge,skip_dcontext,ignore_cdrtypenum,default_prefix,a2billing_tariff,disposition_in,a2billing_carrer_initblock_offp,use_carrierid,add_full_period,skip_dstchannel_prefix,skip_dst_length_less,unused_credit_change">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="voip_inbound__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="voip_inbound__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Charge per minute</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__min_charge" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity</TD><TD>
+      <SELECT NAME="voip_inbound__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD>
+      <SELECT NAME="voip_inbound__output_format"><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="simple2">Simple with source<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="simple">Simple<OPTION VALUE="source_default">Default with source<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic">Basic<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not)</TD><TD>
+      <INPUT TYPE="text" NAME="voip_inbound__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call.  Useful for prepaid.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_inbound__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "voip_inbound__OPTIONS"
+       ID    = "voip_inbound__OPTIONS"
+       VALUE = "recur_temporality,recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,min_charge,min_included,sec_granularity,default_prefix,use_amaflags,use_carrierid,use_cdrtypenum,ignore_cdrtypenum,use_calltypenum,ignore_calltypenum,ignore_disposition,disposition_in,skip_dcontext,skip_dstchannel_prefix,skip_dst_length_less,skip_lastapp,use_duration,output_format,usage_mandate,summarize_usage,usage_section,bill_every_call,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4403,7 +4798,64 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="voip_tiered__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="voip_tiered__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="voip_tiered__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR service matching method</TD><TD><SELECT NAME="voip_tiered__cdr_svc_method"><OPTION VALUE="svc_phone.phonenum">Phone numbers (svc_phone.phonenum)<OPTION VALUE="svc_pbx.title">PBX name (svc_pbx.title)<OPTION VALUE="svc_pbx.svcnum">Freeside service # (svc_pbx.svcnum)<OPTION VALUE="svc_pbx.ip.src">PBX name to source IP address<OPTION VALUE="svc_pbx.ip.dst">PBX name to destination IP address<OPTION VALUE="svc_acct.username">Username (svc_acct.username)</SELECT></TD></TR><TR><TD ALIGN="right">Call direction when using phone number matching</TD><TD><SELECT NAME="voip_tiered__cdr_inout"><OPTION VALUE="outbound">Outbound<OPTION VALUE="inbound">Inbound<OPTION VALUE="outbound_inbound">Outbound and Inbound</SELECT></TD></TR><TR><TD ALIGN="right">Tier plan</TD><TD><SELECT NAME="voip_tiered__tiernum"></SELECT></TD></TR><TR><TD ALIGN="right">Rounding for destination prefix rating</TD><TD><SELECT NAME="voip_tiered__rounding"><OPTION VALUE="2">Two decimal places (cent)<OPTION VALUE="4">Four decimal places (100th of a cent)</SELECT></TD></TR><TR><TD ALIGN="right">Number of calls included at no usage charge</TD><TD><INPUT TYPE="text" NAME="voip_tiered__calls_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included</TD><TD><INPUT TYPE="text" NAME="voip_tiered__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity</TD><TD><SELECT NAME="voip_tiered__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD><INPUT TYPE="text" NAME="voip_tiered__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Disable rating of CDR records based on the "src" field in addition to "charged_party"</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__disable_src" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination number starts with any of these values: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_dst_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the source is more than this many digits:</TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_src_length_more" VALUE=""></TD></TR><TR><TD ALIGN="right">When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations</TD><TD><SELECT NAME="voip_tiered__accountcode_tollfree_field"><OPTION VALUE="dst">Destination (dst)<OPTION VALUE="src">Source (src)</SELECT></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where max_callers is less than or equal to this value: </TD><TD><INPUT TYPE="text" NAME="voip_tiered__skip_max_callers" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for calls between numbers belonging to the same customer</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__skip_same_customer" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Rewrite these (comma-separated) destination numbers to 411 for rating purposes (also ignore any carrierid check): </TD><TD><INPUT TYPE="text" NAME="voip_tiered__411_rewrite" VALUE=""></TD></TR><TR><TD ALIGN="right">CDR display format for invoices</TD><TD><SELECT NAME="voip_tiered__output_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">CDR display format for selfservice</TD><TD><SELECT NAME="voip_tiered__selfservice_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">Inbound CDR display format for selfservice</TD><TD><SELECT NAME="voip_tiered__selfservice_inbound_format"><OPTION VALUE="" SELECTED><OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="simple">Simple<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="simple2">Simple with source<OPTION VALUE="default">Default</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section.  The section is defined in the next option.</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not): </TD><TD><INPUT TYPE="text" NAME="voip_tiered__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show details for included / no-charge calls.</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__usage_showzero" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call (as well any setup fee, upon first payment).  Useful for prepaid.</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill for all phone numbers that were active during the billing period</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__bill_inactive_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only bill CDRs with a date during the package billing period</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__bill_only_pkg_dates" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__count_available_phones" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="voip_tiered__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="voip_tiered__OPTIONS" VALUE="default_prefix,accountcode_tollfree_ratenum,411_rewrite,selfservice_inbound_format,bill_only_pkg_dates,prorate_defer_bill,cutoff_day,use_cdrtypenum,unused_credit_change,use_carrierid,add_full_period,skip_dstchannel_prefix,a2billing_carrer_initblock_offp,unused_credit_suspend,usage_section,prorate_verbose,a2billing_type,output_format,use_calltypenum,tiernum,ignore_unrateable,cdr_inout,a2billing_simultaccess,bill_inactive_svcs,recur_fee,ratenum,intrastate_ratenum,min_included,accountcode_tollfree_field,usage_showzero,skip_lastapp,disable_src,a2billing_retail_increment_offp,a2billing_carrier_increment_offp,rounding,noskip_dst_length_accountcode_tollfree,sec_granularity,a2billing_retail_initblock_offp,suspend_bill,calls_included,skip_dcontext,ignore_cdrtypenum,a2billing_tariff,cdr_svc_method,ignore_calltypenum,min_charge,ignore_disposition,skip_dst_length_less,domestic_prefix,disposition_in,a2billing_carrier_cost_min,bill_every_call,rating_method,a2billing_retail_cost_min_offp,noskip_src_length_accountcode_tollfree,skip_src_length_more,skip_dst_prefix,unused_credit_cancel,use_duration,delay_cancel,recur_temporality,selfservice_format,skip_max_callers,skip_same_customer,setup_fee,usage_mandate,count_available_phones,recur_method,use_amaflags,disable_tollfree,summarize_usage,international_prefix,prorate_round_day">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="voip_tiered__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="voip_tiered__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR service matching method</TD><TD>
+      <SELECT NAME="voip_tiered__cdr_svc_method"><OPTION VALUE="svc_phone.phonenum">Phone numbers (svc_phone.phonenum)<OPTION VALUE="svc_pbx.title">PBX name (svc_pbx.title)<OPTION VALUE="svc_pbx.svcnum">Freeside service # (svc_pbx.svcnum)<OPTION VALUE="svc_pbx.ip.src">PBX name to source IP address<OPTION VALUE="svc_pbx.ip.dst">PBX name to destination IP address<OPTION VALUE="svc_acct.username">Username (svc_acct.username)</SELECT></TD></TR><TR><TD ALIGN="right">Call direction when using phone number matching</TD><TD>
+      <SELECT NAME="voip_tiered__cdr_inout"><OPTION VALUE="outbound">Outbound<OPTION VALUE="inbound">Inbound<OPTION VALUE="outbound_inbound">Outbound and Inbound</SELECT></TD></TR><TR><TD ALIGN="right">Tier plan</TD><TD>
+      <SELECT NAME="voip_tiered__tiernum"></SELECT></TD></TR><TR><TD ALIGN="right">Rounding for destination prefix rating</TD><TD>
+      <SELECT NAME="voip_tiered__rounding"><OPTION VALUE="2">Two decimal places (cent)<OPTION VALUE="4">Four decimal places (100th of a cent)</SELECT></TD></TR><TR><TD ALIGN="right">Number of calls included at no usage charge</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__calls_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Minutes included</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__min_included" VALUE=""></TD></TR><TR><TD ALIGN="right">Granularity</TD><TD>
+      <SELECT NAME="voip_tiered__sec_granularity"><OPTION VALUE="1">1 second<OPTION VALUE="6">6 second<OPTION VALUE="30">30 second<OPTION VALUE="60">minute<OPTION VALUE="0">call</SELECT></TD></TR><TR><TD ALIGN="right">Default prefix optionally prepended to customer DID numbers when searching for CDR records</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__default_prefix" VALUE="+1"></TD></TR><TR><TD ALIGN="right">Disable rating of CDR records based on the "src" field in addition to "charged_party"</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__disable_src" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the amaflags field is set to "2" ("BILL"/"BILLING").</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__use_amaflags" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Carrier ID is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__use_carrierid" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__use_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Type is set to this cdrtypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__ignore_cdrtypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__use_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the CDR Call Type is set to this calltypenum: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__ignore_calltypenum" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__ignore_disposition" VALUE=""></TD></TR><TR><TD ALIGN="right">Only charge for CDRs where the Disposition is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__disposition_in" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_dcontext" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination number starts with any of these values: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_dst_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the dstchannel starts with:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_dstchannel_prefix" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the source is more than this many digits:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_src_length_more" VALUE=""></TD></TR><TR><TD ALIGN="right">When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations</TD><TD>
+      <SELECT NAME="voip_tiered__accountcode_tollfree_field"><OPTION VALUE="dst">Destination (dst)<OPTION VALUE="src">Source (src)</SELECT></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the destination is less than this many digits:</TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_dst_length_less" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where the lastapp matches this value: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_lastapp" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for CDRs where max_callers is less than or equal to this value: </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__skip_max_callers" VALUE=""></TD></TR><TR><TD ALIGN="right">Do not charge for calls between numbers belonging to the same customer</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__skip_same_customer" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Calculate usage based on the duration field instead of the billsec field</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__use_duration" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Rewrite these (comma-separated) destination numbers to 411 for rating purposes (also ignore any carrierid check): </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__411_rewrite" VALUE=""></TD></TR><TR><TD ALIGN="right">CDR display format for invoices</TD><TD>
+      <SELECT NAME="voip_tiered__output_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">CDR display format for selfservice</TD><TD>
+      <SELECT NAME="voip_tiered__selfservice_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">Inbound CDR display format for selfservice</TD><TD>
+      <SELECT NAME="voip_tiered__selfservice_inbound_format"><OPTION VALUE="" SELECTED><OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic">Basic<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="default">Default<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple">Simple<OPTION VALUE="simple2">Simple with source<OPTION VALUE="source_default">Default with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix</SELECT></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section.  The section is defined in the next option.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Section in which to place usage charges (whether separated or not): </TD><TD>
+      <INPUT TYPE="text" NAME="voip_tiered__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show details for included / no-charge calls.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__usage_showzero" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Generate an invoice immediately for every call (as well any setup fee, upon first payment).  Useful for prepaid.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__bill_every_call" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill for all phone numbers that were active during the billing period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__bill_inactive_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Only bill CDRs with a date during the package billing period</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__bill_only_pkg_dates" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Consider for tax purposes the number of lines to be svc_phones that may be provisioned rather than those that actually are.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__count_available_phones" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="voip_tiered__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "voip_tiered__OPTIONS"
+       ID    = "voip_tiered__OPTIONS"
+       VALUE = "recur_temporality,recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,cdr_svc_method,cdr_inout,tiernum,rounding,calls_included,min_included,sec_granularity,default_prefix,disable_src,use_amaflags,use_carrierid,use_cdrtypenum,ignore_cdrtypenum,use_calltypenum,ignore_calltypenum,ignore_disposition,disposition_in,skip_dcontext,skip_dst_prefix,skip_dstchannel_prefix,skip_src_length_more,accountcode_tollfree_field,skip_dst_length_less,skip_lastapp,skip_max_callers,skip_same_customer,use_duration,411_rewrite,output_format,selfservice_format,selfservice_inbound_format,usage_mandate,usage_section,summarize_usage,usage_showzero,bill_every_call,bill_inactive_svcs,bill_only_pkg_dates,count_available_phones,suspend_bill,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4412,7 +4864,28 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="cdr_termination__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="cdr_termination__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="cdr_termination__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD><SELECT NAME="cdr_termination__output_format"><OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="default">Default<OPTION VALUE="simple2">Simple with source<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="simple">Simple<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_duration">Summary, one line per service</SELECT></TD></TR><TR><TD ALIGN="right">Section in which to place separate usage charges</TD><TD><INPUT TYPE="text" NAME="cdr_termination__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="cdr_termination__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="cdr_termination__OPTIONS" VALUE="recur_temporality,cutoff_day,prorate_defer_bill,recur_fee,a2billing_simultaccess,delay_cancel,a2billing_tariff,a2billing_carrer_initblock_offp,add_full_period,usage_mandate,recur_method,unused_credit_change,setup_fee,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,prorate_verbose,a2billing_type,a2billing_retail_increment_offp,summarize_usage,a2billing_carrier_cost_min,usage_section,unused_credit_suspend,a2billing_retail_initblock_offp,prorate_round_day,unused_credit_cancel,output_format">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="cdr_termination__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="cdr_termination__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="cdr_termination__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD>
+      <SELECT NAME="cdr_termination__output_format"><OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="basic">Basic<OPTION VALUE="default">Default<OPTION VALUE="source_default">Default with source<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="simple">Simple<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name<OPTION VALUE="simple2">Simple with source<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_duration">Summary, one line per service</SELECT></TD></TR><TR><TD ALIGN="right">Section in which to place separate usage charges</TD><TD>
+      <INPUT TYPE="text" NAME="cdr_termination__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="cdr_termination__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "cdr_termination__OPTIONS"
+       ID    = "cdr_termination__OPTIONS"
+       VALUE = "recur_temporality,recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,output_format,usage_section,summarize_usage,usage_mandate,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4421,7 +4894,14 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Nibble rate</TD><TD><INPUT TYPE="text" NAME="prepaid_nibblebill__nibble_rate" VALUE=""></TD></TR></TABLE><INPUT TYPE="hidden" NAME="prepaid_nibblebill__OPTIONS" VALUE="nibble_rate,recur_fee,setup_fee">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Nibble rate</TD><TD>
+      <INPUT TYPE="text" NAME="prepaid_nibblebill__nibble_rate" VALUE=""></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "prepaid_nibblebill__OPTIONS"
+       ID    = "prepaid_nibblebill__OPTIONS"
+       VALUE = "setup_fee,recur_fee,nibble_rate"
+>
+
+
 
       </DIV>
 
@@ -4430,7 +4910,21 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Setup fee for each new service</TD><TD><INPUT TYPE="text" NAME="bulk_simple__svc_setup_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Recurring fee for each service</TD><TD><INPUT TYPE="text" NAME="bulk_simple__svc_recur_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Only charge fees for these services</TD><TD><SELECT MULTIPLE NAME="bulk_simple__only_svcs"><OPTION VALUE="1">Domain<OPTION VALUE="2">Test svc_acct<OPTION VALUE="3">Test svc_domain<OPTION VALUE="4">Test svc_broadband<OPTION VALUE="5">Test svc_phone</SELECT></TD></TR><TR><TD ALIGN="right">Show a count of services on the invoice, instead of a detailed list</TD><TD><INPUT TYPE="checkbox" NAME="bulk_simple__summarize_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="bulk_simple__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="bulk_simple__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="bulk_simple__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="bulk_simple__OPTIONS" VALUE="svc_setup_fee,a2billing_simultaccess,recur_fee,delay_cancel,a2billing_tariff,a2billing_carrer_initblock_offp,setup_fee,svc_recur_fee,unused_credit_change,a2billing_type,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_increment_offp,summarize_svcs,unused_credit_suspend,a2billing_carrier_cost_min,a2billing_retail_initblock_offp,only_svcs,unused_credit_cancel">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Setup fee for each new service</TD><TD>
+      <INPUT TYPE="text" NAME="bulk_simple__svc_setup_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Recurring fee for each service</TD><TD>
+      <INPUT TYPE="text" NAME="bulk_simple__svc_recur_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Only charge fees for these services</TD><TD>
+      <SELECT MULTIPLE NAME="bulk_simple__only_svcs"><OPTION VALUE="1">Domain<OPTION VALUE="2">Test svc_acct<OPTION VALUE="3">Test svc_domain<OPTION VALUE="4">Test svc_broadband<OPTION VALUE="5">Test svc_phone</SELECT></TD></TR><TR><TD ALIGN="right">Show a count of services on the invoice, instead of a detailed list</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk_simple__summarize_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk_simple__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk_simple__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk_simple__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "bulk_simple__OPTIONS"
+       ID    = "bulk_simple__OPTIONS"
+       VALUE = "svc_setup_fee,svc_recur_fee,only_svcs,summarize_svcs,no_prorate,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4439,7 +4933,22 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Don't prorate recurring fees on services active for a partial month</TD><TD><INPUT TYPE="checkbox" NAME="bulk__no_prorate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Setup fee for each new service</TD><TD><INPUT TYPE="text" NAME="bulk__svc_setup_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Recurring fee for each service</TD><TD><INPUT TYPE="text" NAME="bulk__svc_recur_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Only charge fees for these services</TD><TD><SELECT MULTIPLE NAME="bulk__only_svcs"><OPTION VALUE="1">Domain<OPTION VALUE="2">Test svc_acct<OPTION VALUE="3">Test svc_domain<OPTION VALUE="4">Test svc_broadband<OPTION VALUE="5">Test svc_phone</SELECT></TD></TR><TR><TD ALIGN="right">Show a count of services on the invoice, instead of a detailed list</TD><TD><INPUT TYPE="checkbox" NAME="bulk__summarize_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="bulk__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="bulk__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="bulk__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="bulk__OPTIONS" VALUE="a2billing_type,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_increment_offp,summarize_svcs,unused_credit_suspend,a2billing_carrier_cost_min,a2billing_retail_initblock_offp,only_svcs,unused_credit_cancel,svc_setup_fee,no_prorate,a2billing_simultaccess,recur_fee,delay_cancel,a2billing_tariff,a2billing_carrer_initblock_offp,setup_fee,svc_recur_fee,unused_credit_change">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Don't prorate recurring fees on services active for a partial month</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk__no_prorate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Setup fee for each new service</TD><TD>
+      <INPUT TYPE="text" NAME="bulk__svc_setup_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Recurring fee for each service</TD><TD>
+      <INPUT TYPE="text" NAME="bulk__svc_recur_fee" VALUE="0"></TD></TR><TR><TD ALIGN="right">Only charge fees for these services</TD><TD>
+      <SELECT MULTIPLE NAME="bulk__only_svcs"><OPTION VALUE="1">Domain<OPTION VALUE="2">Test svc_acct<OPTION VALUE="3">Test svc_domain<OPTION VALUE="4">Test svc_broadband<OPTION VALUE="5">Test svc_phone</SELECT></TD></TR><TR><TD ALIGN="right">Show a count of services on the invoice, instead of a detailed list</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk__summarize_svcs" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="bulk__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "bulk__OPTIONS"
+       ID    = "bulk__OPTIONS"
+       VALUE = "no_prorate,svc_setup_fee,svc_recur_fee,only_svcs,summarize_svcs,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4448,7 +4957,25 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing Day (1 - 28)</TD><TD><INPUT TYPE="text" NAME="agent__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="agent__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Disable prorating bulk packages (charge full price for packages active only a portion of the month)</TD><TD><INPUT TYPE="checkbox" NAME="agent__no_pkg_prorate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Separate customer from package display on invoices</TD><TD><INPUT TYPE="checkbox" NAME="agent__display_separate_cust" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill wholesale on cost only, disabling the price fallback</TD><TD><INPUT TYPE="checkbox" NAME="agent__cost_only" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="agent__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="agent__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="agent__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="agent__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="agent__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="agent__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="agent__OPTIONS" VALUE="recur_fee,a2billing_simultaccess,delay_cancel,a2billing_tariff,cost_only,no_pkg_prorate,prorate_defer_bill,cutoff_day,recur_temporality,unused_credit_change,setup_fee,a2billing_carrer_initblock_offp,add_full_period,a2billing_carrier_cost_min,unused_credit_suspend,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,prorate_verbose,a2billing_type,a2billing_retail_increment_offp,display_separate_cust,unused_credit_cancel,sync_bill_date,a2billing_retail_initblock_offp,prorate_round_day">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Billing Day (1 - 28)</TD><TD>
+      <INPUT TYPE="text" NAME="agent__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Disable prorating bulk packages (charge full price for packages active only a portion of the month)</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__no_pkg_prorate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Separate customer from package display on invoices</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__display_separate_cust" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill wholesale on cost only, disabling the price fallback</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__cost_only" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "agent__OPTIONS"
+       ID    = "agent__OPTIONS"
+       VALUE = "cutoff_day,add_full_period,no_pkg_prorate,display_separate_cust,cost_only,prorate_defer_bill,prorate_round_day,prorate_verbose,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4457,7 +4984,28 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD><SELECT NAME="agent_cdr__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="agent_cdr__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="agent_cdr__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD><SELECT NAME="agent_cdr__output_format"><OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="default">Default<OPTION VALUE="simple2">Simple with source<OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="source_default">Default with source<OPTION VALUE="basic">Basic<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="simple">Simple<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name</SELECT></TD></TR><TR><TD ALIGN="right">Section in which to place separate usage charges</TD><TD><INPUT TYPE="text" NAME="agent_cdr__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="agent_cdr__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="agent_cdr__OPTIONS" VALUE="add_full_period,a2billing_carrer_initblock_offp,setup_fee,unused_credit_change,recur_method,usage_mandate,cutoff_day,prorate_defer_bill,recur_temporality,a2billing_tariff,delay_cancel,a2billing_simultaccess,recur_fee,prorate_round_day,a2billing_retail_initblock_offp,output_format,unused_credit_cancel,a2billing_retail_increment_offp,a2billing_type,prorate_verbose,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,usage_section,unused_credit_suspend,a2billing_carrier_cost_min,summarize_usage">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Charge recurring fee for period</TD><TD>
+      <SELECT NAME="agent_cdr__recur_temporality"><OPTION VALUE="upcoming">Upcoming (future)<OPTION VALUE="preceding">Preceding (past)</SELECT></TD></TR><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="agent_cdr__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="agent_cdr__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">CDR invoice display format</TD><TD>
+      <SELECT NAME="agent_cdr__output_format"><OPTION VALUE="sum_duration_prefix">Summary, one line per destination prefix<OPTION VALUE="sum_count">Number of calls, one line per service<OPTION VALUE="simple">Simple<OPTION VALUE="sum_count_class">Summary, one line per usage class<OPTION VALUE="basic">Basic<OPTION VALUE="default">Default<OPTION VALUE="source_default">Default with source<OPTION VALUE="description_default">Default with description field as destination<OPTION VALUE="simple2">Simple with source<OPTION VALUE="accountcode_default">Default plus accountcode<OPTION VALUE="sum_duration">Summary, one line per service<OPTION VALUE="accountcode_simple">Simple with accountcode<OPTION VALUE="basic_upstream_dst_regionname">Basic with upstream destination name</SELECT></TD></TR><TR><TD ALIGN="right">Section in which to place separate usage charges</TD><TD>
+      <INPUT TYPE="text" NAME="agent_cdr__usage_section" VALUE=""></TD></TR><TR><TD ALIGN="right">Include usage summary with recurring charges when usage is in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__summarize_usage" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Always put usage details in separate section</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__usage_mandate" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="agent_cdr__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "agent_cdr__OPTIONS"
+       ID    = "agent_cdr__OPTIONS"
+       VALUE = "recur_temporality,recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,output_format,usage_section,summarize_usage,usage_mandate,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4466,7 +5014,27 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Included megabytes/sec (95th percentile)</TD><TD><INPUT TYPE="text" NAME="torrus_bw_percentile__base_mbps" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge per megabyte/sec (95th percentile)</TD><TD><INPUT TYPE="text" NAME="torrus_bw_percentile__mbps_rate" VALUE="0"></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="torrus_bw_percentile__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_percentile__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="torrus_bw_percentile__OPTIONS" VALUE="cutoff_day,recur_temporality,prorate_defer_bill,unsuspend_adjust_bill,externalid,a2billing_tariff,delay_cancel,a2billing_simultaccess,recur_fee,add_full_period,a2billing_carrer_initblock_offp,setup_fee,base_mbps,unused_credit_change,a2billing_retail_increment_offp,a2billing_type,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,unused_credit_suspend,a2billing_carrier_cost_min,mbps_rate,bill_recur_on_cancel,prorate_round_day,a2billing_retail_initblock_offp,start_1st,suspend_bill,sync_bill_date,unused_credit_cancel,bill_suspend_as_cancel">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Included megabytes/sec (95th percentile)</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_percentile__base_mbps" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge per megabyte/sec (95th percentile)</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_percentile__mbps_rate" VALUE="0"></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_percentile__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_percentile__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "torrus_bw_percentile__OPTIONS"
+       ID    = "torrus_bw_percentile__OPTIONS"
+       VALUE = "base_mbps,mbps_rate,start_1st,prorate_defer_bill,prorate_round_day,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4475,7 +5043,27 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Included gigabytes</TD><TD><INPUT TYPE="text" NAME="torrus_bw_usage__base_gb" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge per gigabyte</TD><TD><INPUT TYPE="text" NAME="torrus_bw_usage__gb_rate" VALUE="0"></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD><INPUT TYPE="text" NAME="torrus_bw_usage__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="torrus_bw_usage__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="torrus_bw_usage__OPTIONS" VALUE="sync_bill_date,bill_suspend_as_cancel,unused_credit_cancel,prorate_round_day,start_1st,a2billing_retail_initblock_offp,suspend_bill,unused_credit_suspend,a2billing_carrier_cost_min,bill_recur_on_cancel,a2billing_retail_increment_offp,a2billing_type,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,setup_fee,unused_credit_change,add_full_period,a2billing_carrer_initblock_offp,externalid,a2billing_tariff,delay_cancel,a2billing_simultaccess,recur_fee,base_gb,prorate_defer_bill,recur_temporality,cutoff_day,unsuspend_adjust_bill,gb_rate">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Included gigabytes</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_usage__base_gb" VALUE="0"></TD></TR><TR><TD ALIGN="right">Charge per gigabyte</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_usage__gb_rate" VALUE="0"></TD></TR><TR><TD ALIGN="right">Auto-add a start date to the 1st, ignoring the current month.</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__start_1st" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, defer the bill until the customer's next bill date</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When synchronizing, round the prorated period to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Continue recurring billing while suspended</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__suspend_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Adjust next bill date forward when unsuspending</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__unsuspend_adjust_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill the last period on cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__bill_recur_on_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Bill immediately upon suspension</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__bill_suspend_as_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Optional External ID</TD><TD>
+      <INPUT TYPE="text" NAME="torrus_bw_usage__externalid" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="torrus_bw_usage__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "torrus_bw_usage__OPTIONS"
+       ID    = "torrus_bw_usage__OPTIONS"
+       VALUE = "base_gb,gb_rate,start_1st,prorate_defer_bill,prorate_round_day,suspend_bill,unsuspend_adjust_bill,bill_recur_on_cancel,bill_suspend_as_cancel,externalid,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4484,7 +5072,23 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Units included</TD><TD><INPUT TYPE="text" NAME="sql_generic__recur_included" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per unit</TD><TD><INPUT TYPE="text" NAME="sql_generic__recur_unit_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">DBI data source</TD><TD><INPUT TYPE="text" NAME="sql_generic__datasrc" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD><INPUT TYPE="text" NAME="sql_generic__db_username" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD><INPUT TYPE="text" NAME="sql_generic__db_password" VALUE=""></TD></TR><TR><TD ALIGN="right">SQL query</TD><TD><INPUT TYPE="text" NAME="sql_generic__query" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="sql_generic__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="sql_generic__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="sql_generic__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="sql_generic__OPTIONS" VALUE="delay_cancel,a2billing_tariff,recur_fee,a2billing_simultaccess,a2billing_carrer_initblock_offp,unused_credit_change,setup_fee,a2billing_retail_increment_offp,recur_unit_charge,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,a2billing_type,a2billing_carrier_cost_min,unused_credit_suspend,db_username,a2billing_retail_initblock_offp,datasrc,query,recur_included,unused_credit_cancel,db_password">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Units included</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__recur_included" VALUE="0"></TD></TR><TR><TD ALIGN="right">Additional charge per unit</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__recur_unit_charge" VALUE="0"></TD></TR><TR><TD ALIGN="right">DBI data source</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__datasrc" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__db_username" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__db_password" VALUE=""></TD></TR><TR><TD ALIGN="right">SQL query</TD><TD>
+      <INPUT TYPE="text" NAME="sql_generic__query" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_generic__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_generic__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_generic__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "sql_generic__OPTIONS"
+       ID    = "sql_generic__OPTIONS"
+       VALUE = "recur_included,recur_unit_charge,datasrc,db_username,db_password,query,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4493,7 +5097,27 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="sql_external__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="sql_external__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">DBI data source</TD><TD><INPUT TYPE="text" NAME="sql_external__datasrc" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD><INPUT TYPE="text" NAME="sql_external__db_username" VALUE=""></TD></TR><TR><TD ALIGN="right">Database password</TD><TD><INPUT TYPE="text" NAME="sql_external__db_password" VALUE=""></TD></TR><TR><TD ALIGN="right">SQL query</TD><TD><INPUT TYPE="text" NAME="sql_external__query" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="sql_external__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="sql_external__OPTIONS" VALUE="cutoff_day,prorate_defer_bill,recur_fee,a2billing_simultaccess,a2billing_tariff,delay_cancel,a2billing_carrer_initblock_offp,add_full_period,unused_credit_change,recur_method,setup_fee,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,prorate_verbose,a2billing_type,a2billing_retail_increment_offp,a2billing_carrier_cost_min,unused_credit_suspend,db_username,a2billing_retail_initblock_offp,datasrc,prorate_round_day,unused_credit_cancel,db_password,query">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="sql_external__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="sql_external__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">DBI data source</TD><TD>
+      <INPUT TYPE="text" NAME="sql_external__datasrc" VALUE=""></TD></TR><TR><TD ALIGN="right">Database username</TD><TD>
+      <INPUT TYPE="text" NAME="sql_external__db_username" VALUE=""></TD></TR><TR><TD ALIGN="right">Database password</TD><TD>
+      <INPUT TYPE="text" NAME="sql_external__db_password" VALUE=""></TD></TR><TR><TD ALIGN="right">SQL query</TD><TD>
+      <INPUT TYPE="text" NAME="sql_external__query" VALUE=""></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="sql_external__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "sql_external__OPTIONS"
+       ID    = "sql_external__OPTIONS"
+       VALUE = "recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,datasrc,db_username,db_password,query,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4502,7 +5126,23 @@ spawn_supp_dst_pkgpart(this);"
            STYLE="display: none; z-index: 0"
       >
 
-        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Recurring fee method</TD><TD><SELECT NAME="currency_fixed__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD><INPUT TYPE="text" NAME="currency_fixed__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD><span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD><INPUT TYPE="checkbox" NAME="currency_fixed__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE="hidden" NAME="currency_fixed__OPTIONS" VALUE="add_full_period,a2billing_carrer_initblock_offp,setup_fee,unused_credit_change,recur_method,cutoff_day,prorate_defer_bill,delay_cancel,a2billing_tariff,a2billing_simultaccess,recur_fee,prorate_round_day,a2billing_retail_initblock_offp,unused_credit_cancel,a2billing_retail_increment_offp,prorate_verbose,a2billing_type,a2billing_retail_cost_min_offp,a2billing_carrier_increment_offp,unused_credit_suspend,a2billing_carrier_cost_min">
+        <TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=2><TR><TD ALIGN="right">Recurring fee method</TD><TD>
+      <SELECT NAME="currency_fixed__recur_method"><OPTION VALUE="anniversary">Charge the recurring fee at the frequency specified above<OPTION VALUE="prorate">Charge a prorated fee the first time (selectable billing date)<OPTION VALUE="subscription">Charge the full fee for the first partial period (selectable billing date)</SELECT></TD></TR><TR><TD ALIGN="right">Billing Day (1 - 28) for prorating or subscription</TD><TD>
+      <INPUT TYPE="text" NAME="currency_fixed__cutoff_day" VALUE="1"></TD></TR><TR><TD ALIGN="right">When prorating, defer the first bill until the billing day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__prorate_defer_bill" VALUE=1 ></TD></TR><TR><TD ALIGN="right">When prorating, round to the nearest full day</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__prorate_round_day" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">When prorating first month, also bill for one full period after that</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__add_full_period" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Show prorate details on the invoice</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__prorate_verbose" VALUE=1  CHECKED></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service at cancellation</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__unused_credit_cancel" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when suspending</TD><TD>
+      <span title="You must set the 'suspend_credit_type' option in Configuration->Settings to gain access to this option.">N/A</span></TD></TR><TR><TD ALIGN="right">Credit the customer for the unused portion of service when changing packages</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__unused_credit_change" VALUE=1 ></TD></TR><TR><TD ALIGN="right">Automatically suspend for one day before cancelling</TD><TD>
+      <INPUT TYPE="checkbox" NAME="currency_fixed__delay_cancel" VALUE=1 ></TD></TR></TABLE><INPUT TYPE  = "hidden"
+       NAME  = "currency_fixed__OPTIONS"
+       ID    = "currency_fixed__OPTIONS"
+       VALUE = "recur_method,cutoff_day,prorate_defer_bill,prorate_round_day,add_full_period,prorate_verbose,setup_fee,recur_fee,unused_credit_cancel,unused_credit_suspend,unused_credit_change,delay_cancel,a2billing_tariff,a2billing_type,a2billing_simultaccess,a2billing_carrier_cost_min,a2billing_carrer_initblock_offp,a2billing_carrier_increment_offp,a2billing_retail_cost_min_offp,a2billing_retail_initblock_offp,a2billing_retail_increment_offp"
+>
+
+
 
       </DIV>
 
@@ -4521,12 +5161,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4574,12 +5214,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4627,12 +5267,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat').style.zIndex = 0;
               document.getElementById('plandflat_delayed').style.display = "none";
               document.getElementById('plandflat_delayed').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4674,7 +5314,7 @@ spawn_supp_dst_pkgpart(this);"
             document.getElementById('plandflat_introrate').style.zIndex = 1;
 
           }
-          if (planlayer == "prorate_calendar" ) {
+          if (planlayer == "prorate" ) {
 
               document.getElementById('plandflat').style.display = "none";
               document.getElementById('plandflat').style.zIndex = 0;
@@ -4682,10 +5322,10 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate').style.display = "none";
-              document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4723,11 +5363,11 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandcurrency_fixed').style.display = "none";
               document.getElementById('plandcurrency_fixed').style.zIndex = 0;
 
-            document.getElementById('plandprorate_calendar').style.display = "";
-            document.getElementById('plandprorate_calendar').style.zIndex = 1;
+            document.getElementById('plandprorate').style.display = "";
+            document.getElementById('plandprorate').style.zIndex = 1;
 
           }
-          if (planlayer == "prorate" ) {
+          if (planlayer == "prorate_delayed" ) {
 
               document.getElementById('plandflat').style.display = "none";
               document.getElementById('plandflat').style.zIndex = 0;
@@ -4735,10 +5375,10 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
+              document.getElementById('plandprorate').style.display = "none";
+              document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_calendar').style.display = "none";
               document.getElementById('plandprorate_calendar').style.zIndex = 0;
-              document.getElementById('plandprorate_delayed').style.display = "none";
-              document.getElementById('plandprorate_delayed').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4776,11 +5416,11 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandcurrency_fixed').style.display = "none";
               document.getElementById('plandcurrency_fixed').style.zIndex = 0;
 
-            document.getElementById('plandprorate').style.display = "";
-            document.getElementById('plandprorate').style.zIndex = 1;
+            document.getElementById('plandprorate_delayed').style.display = "";
+            document.getElementById('plandprorate_delayed').style.zIndex = 1;
 
           }
-          if (planlayer == "prorate_delayed" ) {
+          if (planlayer == "prorate_calendar" ) {
 
               document.getElementById('plandflat').style.display = "none";
               document.getElementById('plandflat').style.zIndex = 0;
@@ -4788,10 +5428,10 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
+              document.getElementById('plandprorate_delayed').style.display = "none";
+              document.getElementById('plandprorate_delayed').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -4829,8 +5469,8 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandcurrency_fixed').style.display = "none";
               document.getElementById('plandcurrency_fixed').style.zIndex = 0;
 
-            document.getElementById('plandprorate_delayed').style.display = "";
-            document.getElementById('plandprorate_delayed').style.zIndex = 1;
+            document.getElementById('plandprorate_calendar').style.display = "";
+            document.getElementById('plandprorate_calendar').style.zIndex = 1;
 
           }
           if (planlayer == "prepaid" ) {
@@ -4841,12 +5481,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
               document.getElementById('plandsubscription').style.zIndex = 0;
               document.getElementById('plandsqlradacct_hour').style.display = "none";
@@ -4894,12 +5534,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsqlradacct_hour').style.display = "none";
@@ -4947,12 +5587,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5000,12 +5640,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5053,12 +5693,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5106,12 +5746,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5159,12 +5799,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5212,12 +5852,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5265,12 +5905,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5318,12 +5958,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5371,12 +6011,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5424,12 +6064,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5477,12 +6117,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5530,12 +6170,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5583,12 +6223,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5636,12 +6276,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5689,12 +6329,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
@@ -5742,12 +6382,12 @@ spawn_supp_dst_pkgpart(this);"
               document.getElementById('plandflat_delayed').style.zIndex = 0;
               document.getElementById('plandflat_introrate').style.display = "none";
               document.getElementById('plandflat_introrate').style.zIndex = 0;
-              document.getElementById('plandprorate_calendar').style.display = "none";
-              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprorate').style.display = "none";
               document.getElementById('plandprorate').style.zIndex = 0;
               document.getElementById('plandprorate_delayed').style.display = "none";
               document.getElementById('plandprorate_delayed').style.zIndex = 0;
+              document.getElementById('plandprorate_calendar').style.display = "none";
+              document.getElementById('plandprorate_calendar').style.zIndex = 0;
               document.getElementById('plandprepaid').style.display = "none";
               document.getElementById('plandprepaid').style.zIndex = 0;
               document.getElementById('plandsubscription').style.display = "none";
index 038dde8..22d8b42 100644 (file)
-
-
-
-<html><body>
-
-<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><b>System error</b></font></p>
-<table border="0" cellspacing="0" cellpadding="1">
- <tr>
-  <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>error:</b>&nbsp;</font></td>
-  <td align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">Error during compilation of /var/www/html/freeside/edit/process/quick-charge.cgi:<br>syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 126, near &quot;)<br>               ( &quot;<br>Global symbol &quot;$amount&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 132.<br>Global symbol &quot;$setup_cost&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 133.<br>Global symbol &quot;$quantity&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 134.<br>Global symbol &quot;$override&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 147.<br>syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 1, near &quot;if&quot;<br>Global symbol &quot;$error&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 1.<br>Global symbol &quot;$error&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 2.<br>syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 4, near &quot;}&quot;<br>  (Might be a runaway multi-line '' string starting on line 3)<br>Global symbol &quot;$message&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 5.<br>syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 10, near &quot;}&quot;<br>  (Might be a runaway multi-line '' string starting on line 5)<br>/var/www/html/freeside/edit/process/quick-charge.cgi has too many errors.<br></font></td>
- </tr>
- <tr>
-  <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>context:</b>&nbsp;</font></td>
-  <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">
-   <table border="0" cellpadding="0" cellspacing="0">
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>1:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>% if ( $error ) {</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>2:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>%   $cgi-&gt;param('error', $error );</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>3:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">&lt;% $cgi-&gt;redirect($p.'quick-charge.html?'. $cgi-&gt;query_string) %&gt;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>4:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>% } else {</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>5:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>&lt;% header(emt($message)) %&gt;</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>6:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  &lt;SCRIPT TYPE=&quot;text/javascript&quot;&gt;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>7:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    window.top.location.reload();</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>8:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  &lt;/SCRIPT&gt;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>9:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  &lt;/BODY&gt;&lt;/HTML&gt;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>10:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>% }</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>11:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">&lt;%init&gt;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>12:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>13:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">my $curuser = $FS::CurrentUser::CurrentUser;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>14:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">die &quot;access denied&quot;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>...</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>122:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>123:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  if ( $param-&gt;{'taxclass'} eq '(select)' ) {</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>124:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    $error .= &quot;Must select a tax class.  &quot;</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>125:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">      unless ($conf-&gt;config('tax_data_vendor'))</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>126:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>               ( $override || $param-&gt;{taxproductnum} )</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>127:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">             );</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>128:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    $cgi-&gt;param('taxclass', '');</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>129:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  }</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>130:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>131:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  my %charge = (</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>132:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>    'amount'        =&gt; $amount,</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>133:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>    'setup_cost'    =&gt; $setup_cost,</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>134:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>    'quantity'      =&gt; $quantity,</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>135:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'bill_now'      =&gt; scalar($cgi-&gt;param('bill_now')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>136:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'invoice_terms' =&gt; scalar($cgi-&gt;param('invoice_terms')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>137:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'start_date'    =&gt; ( scalar($cgi-&gt;param('start_date'))</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>138:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">                           ? parse_datetime($cgi-&gt;param('start_date'))</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>...</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>143:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'pkg'           =&gt; scalar($cgi-&gt;param('pkg')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>144:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'setuptax'      =&gt; scalar($cgi-&gt;param('setuptax')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>145:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'taxclass'      =&gt; scalar($cgi-&gt;param('taxclass')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>146:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'taxproductnum' =&gt; scalar($cgi-&gt;param('taxproductnum')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>147:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><font color=red>    'tax_override'  =&gt; $override,</font></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>148:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'classnum'      =&gt; scalar($cgi-&gt;param('classnum')),</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>149:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">    'additional'    =&gt; \@description,</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>150:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">  );</font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>151:</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-    <tr>
-     <td nowrap="nowrap" align="left" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>...</b>&nbsp;</font></td>
-     <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font></td>
-    </tr>
-
-
-   </table>
-  </font></td>
- </tr>
- <tr>
-  <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>code stack:</b>&nbsp;</font></td>
-  <td align="left" valign="top" nowrap="nowrap"><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">
-        /usr/share/perl5/HTML/Mason/Interp.pm:453<br>
-        /usr/share/perl5/HTML/Mason/Request.pm:252<br>
-        /usr/share/perl5/HTML/Mason/Request.pm:215<br>
-        /usr/share/perl5/HTML/Mason/ApacheHandler.pm:94<br>
-        /usr/local/share/perl/5.20.2/FS/Mason/Request.pm:37<br>
-        /usr/share/perl5/Class/Container.pm:275<br>
-        /usr/share/perl5/Class/Container.pm:353<br>
-        /usr/share/perl5/HTML/Mason/Interp.pm:351<br>
-        /usr/share/perl5/HTML/Mason/ApacheHandler.pm:874<br>
-        /usr/share/perl5/HTML/Mason/ApacheHandler.pm:828<br>
-        /usr/local/etc/freeside/handler.pl:144<br>
-        -e:0<br>
-  </font></td>
- </tr>
-</table>
-
-<a href="#raw">raw error</a><br>
-
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-
-
-<a name="raw"></a>
-
-<pre>Error during compilation of /var/www/html/freeside/edit/process/quick-charge.cgi:
-syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 126, near &quot;)
-               ( &quot;
-Global symbol &quot;$amount&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 132.
-Global symbol &quot;$setup_cost&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 133.
-Global symbol &quot;$quantity&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 134.
-Global symbol &quot;$override&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 147.
-syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 1, near &quot;if&quot;
-Global symbol &quot;$error&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 1.
-Global symbol &quot;$error&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 2.
-syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 4, near &quot;}&quot;
-  (Might be a runaway multi-line '' string starting on line 3)
-Global symbol &quot;$message&quot; requires explicit package name at /var/www/html/freeside/edit/process/quick-charge.cgi line 5.
-syntax error at /var/www/html/freeside/edit/process/quick-charge.cgi line 10, near &quot;}&quot;
-  (Might be a runaway multi-line '' string starting on line 5)
-/var/www/html/freeside/edit/process/quick-charge.cgi has too many errors.
-
-
-Trace begun at /usr/share/perl5/HTML/Mason/Interp.pm line 854
-HTML::Mason::Interp::_compilation_error('HTML::Mason::Interp=HASH(0x7fbd843931b8)', '/var/www/html/freeside/edit/process/quick-charge.cgi', 'HTML::Mason::Exception::Compilation=HASH(0x7fbd8b2466a0)') called at /usr/share/perl5/HTML/Mason/Interp.pm line 453
-HTML::Mason::Interp::load('HTML::Mason::Interp=HASH(0x7fbd843931b8)', '/edit/process/quick-charge.cgi') called at /usr/share/perl5/HTML/Mason/Request.pm line 252
-eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 235
-HTML::Mason::Request::_initialize('FS::Mason::Request=HASH(0x7fbd8af54d08)') called at /usr/share/perl5/HTML/Mason/Request.pm line 215
-HTML::Mason::Request::new('FS::Mason::Request', 'error_mode', 'output', 'error_format', 'html', 'interp', 'HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)', 'container', 'HASH(0x7fbd8ba9c9b8)') called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 94
-HTML::Mason::Request::ApacheHandler::new('FS::Mason::Request', 'error_mode', 'output', 'error_format', 'html', 'interp', 'HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)', 'container', 'HASH(0x7fbd8ba9c9b8)') called at /usr/local/share/perl/5.20.2/FS/Mason/Request.pm line 37
-FS::Mason::Request::new('FS::Mason::Request', 'error_mode', 'output', 'error_format', 'html', 'interp', 'HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)', 'container', 'HASH(0x7fbd8ba9c9b8)') called at /usr/share/perl5/Class/Container.pm line 275
-Class::Container::call_method('HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'request', 'new', 'interp', 'HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)', 'container', 'HASH(0x7fbd8ba9c9b8)') called at /usr/share/perl5/Class/Container.pm line 353
-Class::Container::create_delayed_object('interp', 'HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)', 'container', 'HASH(0x7fbd8ba9c9b8)') called at /usr/share/perl5/HTML/Mason/Interp.pm line 351
-HTML::Mason::Interp::make_request('HTML::Mason::Interp=HASH(0x7fbd843931b8)', 'comp', '/edit/process/quick-charge.cgi', 'args', 'ARRAY(0x7fbd8ba9b970)', 'ah', 'HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'apache_req', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)') called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 874
-eval {...} at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 873
-HTML::Mason::ApacheHandler::prepare_request('HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)') called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 828
-HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=HASH(0x7fbd843be610)', 'Apache2::RequestRec=SCALAR(0x7fbd8b414c40)') called at /usr/local/etc/freeside/handler.pl line 144
-eval {...} at /usr/local/etc/freeside/handler.pl line 144
-HTML::Mason::handler('Apache2::RequestRec=SCALAR(0x7fbd8b414c40)') called at -e line 0
-eval {...} at -e line 0
-</pre>
-
-</body></html>
+    <HTML>
+      <HEAD>
+        <TITLE>
+          One-time charge added
+        </TITLE>
+        <META HTTP-Equiv="Cache-Control" Content="no-cache">
+        <META HTTP-Equiv="Pragma" Content="no-cache">
+        <META HTTP-Equiv="Expires" Content="0"> 
+      </HEAD>
+      <BODY BGCOLOR="#e8e8e8">
+          <FONT SIZE=6>
+            <CENTER>One-time charge added</CENTER>
+          </FONT>
+          <BR><!--<BR>-->
+
+  <SCRIPT TYPE="text/javascript">
+    window.top.location.reload();
+  </SCRIPT>
+  </BODY></HTML>
index 0cd3f85..e61ca51 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 6d22423..24ef458 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 9ed8214..106bad4 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index bc1f09d..9a09546 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
diff --git a/FS-Test/share/output/search/cust_bill.html/OPEN90_date b/FS-Test/share/output/search/cust_bill.html/OPEN90_date
deleted file mode 100644 (file)
index bf1c2dd..0000000
+++ /dev/null
@@ -1,5993 +0,0 @@
-
-            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-  <HEAD>
-    <TITLE>
-      Invoice Search Results
-    </TITLE>
-    <!-- per RT, to prevent IE compatibility mode -->
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
-    <META HTTP-Equiv="Cache-Control" Content="no-cache">
-    <META HTTP-Equiv="Pragma" Content="no-cache">
-    <META HTTP-Equiv="Expires" Content="0"> 
-
-    <script type="text/javascript" src="http://localhost/freeside/elements/cssexpr.js"></script>
-
-
-  <script type="text/javascript" src="http://localhost/freeside/elements/xmenu.top.js"></script>
-  <link href="http://localhost/freeside/elements/xmenu.top.css" type="text/css" rel="stylesheet">
-
-
-  <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
-  <link href="http://localhost/freeside/elements/freeside-print.css" type="text/css" rel="stylesheet" media="print">
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-<SCRIPT TYPE="text/javascript">
-
-  function about_freeside() {
-    overlib( OLiframeContent('http://localhost/freeside/docs/about.html', 300, 375, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'About', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#7e0079', CGCOLOR, '#7e0079', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); 
-  }
-
-  webfxMenuImagePath      = "http://localhost/freeside/images/";
-  webfxMenuUseHover       = 1;
-  webfxMenuShowTime       = 300;
-  webfxMenuHideTime       = 500;
-
-  var myBar = new WebFXMenuBar;
-
-    
-          myBar.add(new WebFXMenuButton('Billing Main', "http://localhost/freeside/", 'Billing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('Ticketing Main', "http://localhost/freeside/rt/", 'Ticketing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('New prospect', "http://localhost/freeside/edit/prospect_main.html", 'Add a new prospect' ));
-
-    
-          myBar.add(new WebFXMenuButton('New customer', "http://localhost/freeside/edit/cust_main.cgi", 'Add a new customer' ));
-
-
-          var myMenu0 = new WebFXMenu;
-myMenu0.emptyText = '';
-var myMenu1 = new WebFXMenu;
-myMenu1.emptyText = '';
-myMenu1.add(new WebFXMenuItem("List prospects", "http://localhost/freeside/search/prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuItem("Advanced prospect reports", "http://localhost/freeside/search/report_prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuSeparator());
-myMenu1.add(new WebFXMenuItem("Prospect contacts", "http://localhost/freeside/search/report_contact.html?link=prospect_main", "" ));
-myMenu1.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Prospects", null, "Prospect reports", myMenu1 ));
-var myMenu2 = new WebFXMenu;
-myMenu2.emptyText = '';
-myMenu2.add(new WebFXMenuItem("List quotations", "http://localhost/freeside/search/quotation.html", "" ));
-myMenu2.add(new WebFXMenuItem("Advanced quotation reports", "http://localhost/freeside/search/report_quotation.html", "" ));
-myMenu2.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Quotations", null, "Quotation reports", myMenu2 ));
-var myMenu3 = new WebFXMenu;
-myMenu3.emptyText = '';
-var myMenu4 = new WebFXMenu;
-myMenu4.emptyText = '';
-myMenu4.add(new WebFXMenuItem("by customer number", "http://localhost/freeside/search/cust_main.cgi?browse=custnum", "" ));
-myMenu4.add(new WebFXMenuItem("by last name", "http://localhost/freeside/search/cust_main.cgi?browse=last", "" ));
-myMenu4.add(new WebFXMenuItem("by company name", "http://localhost/freeside/search/cust_main.cgi?browse=company", "" ));
-myMenu4.add(new WebFXMenuItem("by active trouble tickets", "http://localhost/freeside/search/cust_main.cgi?browse=tickets", "" ));
-myMenu4.width = 256;
-
-myMenu3.add(new WebFXMenuItem("List customers", null, "List customers", myMenu4 ));
-myMenu3.add(new WebFXMenuItem("Zip code distribution", "http://localhost/freeside/search/report_cust_main-zip.html", "Zip codes by number of customers" ));
-myMenu3.add(new WebFXMenuItem("Customer signup report", "http://localhost/freeside/graph/report_cust_signup.html", "New customer signups by date" ));
-myMenu3.add(new WebFXMenuItem("Customer churn report", "http://localhost/freeside/graph/report_cust_churn.html", "New customers, suspensions, and cancellations summary" ));
-myMenu3.add(new WebFXMenuItem("Signup date report", "http://localhost/freeside/graph/report_signupdate.html", "Signup date report (by date of signup)" ));
-myMenu3.add(new WebFXMenuItem("Advanced customer reports", "http://localhost/freeside/search/report_cust_main.html", "by status, signup date, agent, etc." ));
-myMenu3.add(new WebFXMenuSeparator());
-myMenu3.add(new WebFXMenuItem("Customer contacts", "http://localhost/freeside/search/report_contact.html?link=cust_main", "" ));
-myMenu3.add(new WebFXMenuItem("Customer stored payment information", "http://localhost/freeside/search/report_cust_payby.html", "" ));
-myMenu3.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Customers", null, "Customer reports", myMenu3 ));
-var myMenu5 = new WebFXMenu;
-myMenu5.emptyText = '';
-var myMenu6 = new WebFXMenu;
-myMenu6.emptyText = '';
-myMenu6.add(new WebFXMenuItem("All open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN_date", "All invoices with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("15 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN15_date", "Invoices 15 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("30 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN30_date", "Invoices 30 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("60 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN60_date", "Invoices 60 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("90 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN90_date", "Invoices 90 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("120 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN120_date", "Invoices 120 days or older with an unpaid balance" ));
-myMenu6.width = 256;
-
-myMenu5.add(new WebFXMenuItem("Open invoices", null, "Open invoices", myMenu6 ));
-myMenu5.add(new WebFXMenuItem("All invoices", "http://localhost/freeside/search/cust_bill.html?date", "List all invoices" ));
-myMenu5.add(new WebFXMenuItem("Advanced invoice reports", "http://localhost/freeside/search/report_cust_bill.html", "by agent, date range, etc." ));
-myMenu5.add(new WebFXMenuSeparator());
-myMenu5.add(new WebFXMenuItem("Line items", "http://localhost/freeside/search/report_cust_bill_pkg.html", "Individual line item detail" ));
-myMenu5.add(new WebFXMenuItem("Voided invoices", "http://localhost/freeside/search/report_cust_bill_void.html", "Search for voided invoices" ));
-myMenu5.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Invoices", null, "Invoice reports", myMenu5 ));
-var myMenu7 = new WebFXMenu;
-myMenu7.emptyText = '';
-myMenu7.add(new WebFXMenuItem("Discount graph", "http://localhost/freeside/graph/report_cust_bill_pkg_discount.html", "Discount overview per month" ));
-myMenu7.add(new WebFXMenuItem("Discount detail", "http://localhost/freeside/search/report_cust_bill_pkg_discount.html", "Discount report (by employee and/or date range)" ));
-myMenu7.add(new WebFXMenuItem("Package discounts", "http://localhost/freeside/search/report_cust_pkg_discount.html", "Active/inactive discounts by package" ));
-myMenu7.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Discounts", null, "Discount reports", myMenu7 ));
-var myMenu8 = new WebFXMenu;
-myMenu8.emptyText = '';
-myMenu8.add(new WebFXMenuItem("Payments", "http://localhost/freeside/search/report_cust_pay.html", "Payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Payment application detail", "http://localhost/freeside/search/report_cust_bill_pay_pkg.html", "Line item application detail" ));
-myMenu8.add(new WebFXMenuItem("Pending Payments", "http://localhost/freeside/search/cust_pay_pending.html?magic=_date;statusNOT=done", "Pending real-time payments" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payments", "http://localhost/freeside/search/report_cust_pay.html?unapplied=1", "Unapplied payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Voided Payments", "http://localhost/freeside/search/report_cust_pay.html?void=1", "Voided payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payment Aging", "http://localhost/freeside/search/report_unapplied_cust_pay.html", "Unapplied payment aging report" ));
-myMenu8.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Payments", null, "Payment reports", myMenu8 ));
-var myMenu9 = new WebFXMenu;
-myMenu9.emptyText = '';
-myMenu9.add(new WebFXMenuItem("Package definitions (by # active)", "http://localhost/freeside/browse/part_pkg.cgi?active=1", "Package definitions by number of active packages" ));
-myMenu9.add(new WebFXMenuItem("Package costs", "http://localhost/freeside/graph/report_cust_pkg_cost.html", "Package setup and recurring costs graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("Package churn", "http://localhost/freeside/graph/report_cust_pkg.html", "Orders, suspensions and cancellations summary graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("All customer packages", "http://localhost/freeside/search/cust_pkg.cgi?pkgnum", "List all customer packages" ));
-myMenu9.add(new WebFXMenuItem("Package summary", "http://localhost/freeside/search/cust_pkg_summary.html", "Show package sales summary" ));
-myMenu9.add(new WebFXMenuItem("Suspended customer packages", "http://localhost/freeside/search/cust_pkg.cgi?magic=suspended", "List suspended packages" ));
-myMenu9.add(new WebFXMenuItem("Suspension summary", "http://localhost/freeside/search/cust_pkg_susp.html", "Show suspension activity" ));
-myMenu9.add(new WebFXMenuItem("Customer packages with unconfigured services", "http://localhost/freeside/search/cust_pkg.cgi?APKG_pkgnum", "List packages which have provisionable services" ));
-myMenu9.add(new WebFXMenuItem("Advanced package reports", "http://localhost/freeside/search/report_cust_pkg.html", "by agent, date range, status, package definition" ));
-myMenu9.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Packages", null, "Package reports", myMenu9 ));
-var myMenu10 = new WebFXMenu;
-myMenu10.emptyText = '';
-myMenu10.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi?orderby=active", "Service definitions by number of active packages" ));
-myMenu10.add(new WebFXMenuSeparator());
-myMenu10.add(new WebFXMenuItem("Unprovisioned services", "http://localhost/freeside/search/report_unprovisioned_services.html", "Unprovisioned services" ));
-myMenu10.add(new WebFXMenuSeparator());
-var myMenu11 = new WebFXMenu;
-myMenu11.emptyText = '';
-myMenu11.add(new WebFXMenuItem("All accounts by Username", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=username", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by UID", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=uid", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts with Time Remaining", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=seconds", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by Last login", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=last_login", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts never logged in", "http://localhost/freeside/search/svc_acct.cgi?magic=nologin;sortby=svcnum", "" ));
-myMenu11.add(new WebFXMenuItem("Advanced account reports", "http://localhost/freeside/search/report_svc_acct.html", "" ));
-myMenu11.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Accounts", null, "Access accounts and mailboxes", myMenu11 ));
-var myMenu12 = new WebFXMenu;
-myMenu12.emptyText = '';
-myMenu12.add(new WebFXMenuItem("All domains", "http://localhost/freeside/search/svc_domain.cgi?magic=all;sortby=domain", "" ));
-myMenu12.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Domains", null, "Domains", myMenu12 ));
-var myMenu13 = new WebFXMenu;
-myMenu13.emptyText = '';
-myMenu13.add(new WebFXMenuItem("All certificates", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cert;magic=all;sortby=svcnum", "" ));
-myMenu13.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Certificates", null, "Example services", myMenu13 ));
-var myMenu14 = new WebFXMenu;
-myMenu14.emptyText = '';
-myMenu14.add(new WebFXMenuItem("All mail forwards", "http://localhost/freeside/search/svc_forward.cgi?magic=all;sortby=svcnum", "" ));
-myMenu14.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mail forwards", null, "Mail forwards", myMenu14 ));
-var myMenu15 = new WebFXMenu;
-myMenu15.emptyText = '';
-myMenu15.add(new WebFXMenuItem("All mailing lists", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_mailinglist;magic=all;sortby=svcnum", "" ));
-myMenu15.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mailing lists", null, "Mailing lists", myMenu15 ));
-var myMenu16 = new WebFXMenu;
-myMenu16.emptyText = '';
-myMenu16.add(new WebFXMenuItem("All virtual hosting services", "http://localhost/freeside/search/svc_www.cgi?magic=all;sortby=svcnum", "" ));
-myMenu16.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Virtual hosting services", null, "Virtual hosting services", myMenu16 ));
-var myMenu17 = new WebFXMenu;
-myMenu17.emptyText = '';
-myMenu17.add(new WebFXMenuItem("All wireless broadband services", "http://localhost/freeside/search/svc_broadband.cgi?magic=all;sortby=svcnum", "" ));
-myMenu17.add(new WebFXMenuItem("Advanced wireless broadband reports", "http://localhost/freeside/search/report_svc_broadband.html", "" ));
-myMenu17.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Wireless broadband services", null, "Fixed wireless broadband services", myMenu17 ));
-var myMenu18 = new WebFXMenu;
-myMenu18.emptyText = '';
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Service", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=svcnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Serial number", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=serialnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by MAC address", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=mac_addr", "" ));
-myMenu18.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Cable Subscribers", null, "Cable Subscribers", myMenu18 ));
-var myMenu19 = new WebFXMenu;
-myMenu19.emptyText = '';
-myMenu19.add(new WebFXMenuItem("All DSLs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_dsl;magic=all;sortby=phonenum", "" ));
-myMenu19.add(new WebFXMenuItem("Qualifications", "http://localhost/freeside/search/qual.cgi", "" ));
-myMenu19.width = 256;
-
-myMenu10.add(new WebFXMenuItem("DSLs", null, "DSLs", myMenu19 ));
-var myMenu20 = new WebFXMenu;
-myMenu20.emptyText = '';
-myMenu20.add(new WebFXMenuItem("All dish services", "http://localhost/freeside/search/svc_dish.cgi?magic=all;sortby=svcnum", "" ));
-myMenu20.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Dish services", null, "Dish services", myMenu20 ));
-var myMenu21 = new WebFXMenu;
-myMenu21.emptyText = '';
-myMenu21.add(new WebFXMenuItem("All hardware", "http://localhost/freeside/search/svc_hardware.cgi?magic=all;sortby=svcnum", "" ));
-myMenu21.add(new WebFXMenuItem("Advanced hardware reports", "http://localhost/freeside/search/report_svc_hardware.html", "" ));
-myMenu21.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Hardware", null, "Hardware", myMenu21 ));
-var myMenu22 = new WebFXMenu;
-myMenu22.emptyText = '';
-myMenu22.add(new WebFXMenuItem("All phone numbers", "http://localhost/freeside/search/svc_phone.cgi?magic=all;sortby=phonenum", "" ));
-myMenu22.add(new WebFXMenuItem("Phone numbers' total usage by time period", "http://localhost/freeside/search/report_svc_phone_usage.html", "Total usage (minutes, and amount billed) for the specified time period, per phone number." ));
-myMenu22.add(new WebFXMenuItem("Phone numbers by state", "http://localhost/freeside/search/phone_state.html", "Current or historical phone services broken down by state." ));
-myMenu22.add(new WebFXMenuItem("Advanced phone number reports", "http://localhost/freeside/search/report_svc_phone.html", "" ));
-myMenu22.add(new WebFXMenuItem("Phone number (DID) availability", "http://localhost/freeside/search/report_phone_avail.html", "" ));
-myMenu22.add(new WebFXMenuItem("Inventory/Provisioning Status", "http://localhost/freeside/search/phone_inventory_provisioned.html", "" ));
-myMenu22.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Phone numbers", null, "Phone numbers", myMenu22 ));
-var myMenu23 = new WebFXMenu;
-myMenu23.emptyText = '';
-myMenu23.add(new WebFXMenuItem("All PBXs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_pbx;magic=all;sortby=svcnum", "" ));
-myMenu23.width = 256;
-
-myMenu10.add(new WebFXMenuItem("PBXs", null, "PBXs", myMenu23 ));
-var myMenu24 = new WebFXMenu;
-myMenu24.emptyText = '';
-myMenu24.add(new WebFXMenuItem("All circuits", "http://localhost/freeside/search/svc_circuit.cgi?magic=all;sortby=svcnum", "" ));
-myMenu24.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Circuits", null, "Voice and data circuit services", myMenu24 ));
-var myMenu25 = new WebFXMenu;
-myMenu25.emptyText = '';
-myMenu25.add(new WebFXMenuItem("All ports", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_port;magic=all;sortby=serviceid", "" ));
-myMenu25.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Ports", null, "Ports", myMenu25 ));
-var myMenu26 = new WebFXMenu;
-myMenu26.emptyText = '';
-myMenu26.add(new WebFXMenuItem("All alarm services", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_alarm;magic=all;sortby=acctnum", "" ));
-myMenu26.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Alarm services", null, "Alarm services", myMenu26 ));
-var myMenu27 = new WebFXMenu;
-myMenu27.emptyText = '';
-myMenu27.add(new WebFXMenuItem("All external services", "http://localhost/freeside/search/svc_external.cgi?magic=all;sortby=id", "" ));
-myMenu27.width = 256;
-
-myMenu10.add(new WebFXMenuItem("External services", null, "External services", myMenu27 ));
-myMenu10.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Services", null, "Services reports", myMenu10 ));
-var myMenu28 = new WebFXMenu;
-myMenu28.emptyText = '';
-myMenu28.add(new WebFXMenuItem("Inventory by agent", "http://localhost/freeside/search/report_agent_inventory.html", "" ));
-myMenu28.add(new WebFXMenuItem("Inventory activity", "http://localhost/freeside/search/report_h_inventory_item.html", "" ));
-myMenu28.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Inventory", null, "Inventory reports", myMenu28 ));
-var myMenu29 = new WebFXMenu;
-myMenu29.emptyText = '';
-myMenu29.add(new WebFXMenuItem("RADIUS sessions", "http://localhost/freeside/search/sqlradius.html", "" ));
-myMenu29.add(new WebFXMenuItem("RADIUS data usage", "http://localhost/freeside/search/report_sqlradius_usage.html", "" ));
-myMenu29.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/search/report_cdr.html", "" ));
-myMenu29.add(new WebFXMenuItem("Unrateable CDRs", "http://localhost/freeside/search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_", "" ));
-myMenu29.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Usage", null, "Usage reports", myMenu29 ));
-var myMenu30 = new WebFXMenu;
-myMenu30.emptyText = '';
-var myMenu31 = new WebFXMenu;
-myMenu31.emptyText = '';
-myMenu31.add(new WebFXMenuItem("Tickets per day per Queue", "http://localhost/freeside/rt/RTx/Statistics/CallsQueueDay", "View the number of tickets created, resolved or deleted in a specific Queue, over the requested period of days" ));
-myMenu31.add(new WebFXMenuItem("Ticket status by Queue", "http://localhost/freeside/rt/RTx/Statistics/OpenStalled", "View numbers of new, open and stalled tickets in a selected Queue" ));
-myMenu31.add(new WebFXMenuItem("Tickets per day (multiple Queues)", "http://localhost/freeside/rt/RTx/Statistics/CallsMultiQueue", "View tickets created, resolved or deleted on in one or more Queues over a specified time period" ));
-myMenu31.add(new WebFXMenuItem("Tickets per Day of Week", "http://localhost/freeside/rt/RTx/Statistics/DayOfWeek", "View trends showing when tickets are created, resolved or deleted" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve", "http://localhost/freeside/rt/RTx/Statistics/Resolution", "View how long tickets take to be resolved by Queue" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve (scatter graph)", "http://localhost/freeside/rt/RTx/Statistics/TimeToResolve", "View a detailed scatter graph of time to resolve tickets by Queue" ));
-myMenu31.width = 256;
-
-myMenu30.add(new WebFXMenuItem("Statistics", null, "", myMenu31 ));
-myMenu30.add(new WebFXMenuSeparator());
-myMenu30.add(new WebFXMenuItem("Advanced ticket reports", "http://localhost/freeside/rt/Search/Build.html?NewQuery=1", "List tickets by any criteria" ));
-myMenu30.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Tickets", null, "Ticket reports", myMenu30 ));
-var myMenu32 = new WebFXMenu;
-myMenu32.emptyText = '';
-var myMenu33 = new WebFXMenu;
-myMenu33.emptyText = '';
-myMenu33.add(new WebFXMenuItem("Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time.html", "Sales, credits and receipts summary graph" ));
-myMenu33.add(new WebFXMenuItem("Daily Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time_daily.html", "Sales, credits and receipts (broken down by day) summary graph" ));
-myMenu33.add(new WebFXMenuItem("Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg.html", "Sales report and graph (by agent, package class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Rated Call Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg_detail.html", "Sales report and graph (by agent, package class, usage class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Sales with Advertising Source", "http://localhost/freeside/search/report_cust_bill_pkg_referral.html", "" ));
-myMenu33.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Sales", null, "Sales reports", myMenu33 ));
-var myMenu34 = new WebFXMenu;
-myMenu34.emptyText = '';
-myMenu34.add(new WebFXMenuItem("Agent", "http://localhost/freeside/search/report_agent_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Agent per package", "http://localhost/freeside/search/report_agent_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person", "http://localhost/freeside/search/report_sales_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person per package", "http://localhost/freeside/search/report_sales_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Employee", "http://localhost/freeside/search/report_employee_commission.html", "" ));
-myMenu34.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Commissions", null, "Commission reports", myMenu34 ));
-var myMenu35 = new WebFXMenu;
-myMenu35.emptyText = '';
-myMenu35.add(new WebFXMenuItem("Credit Report", "http://localhost/freeside/search/report_cust_credit.html", "Credit report (by employee and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Credit package source detail", "http://localhost/freeside/search/report_cust_credit_source_bill_pkg.html", "Line-item detail for triggered package credits" ));
-myMenu35.add(new WebFXMenuItem("Credit application detail", "http://localhost/freeside/search/report_cust_credit_bill_pkg.html", "Line item application detail" ));
-myMenu35.add(new WebFXMenuItem("Unapplied Credits", "http://localhost/freeside/search/report_cust_credit.html?unapplied=1", "Unapplied credit report (by type and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Voided Credits", "http://localhost/freeside/search/report_cust_credit_void.html", "Voided credit report (by employee and/or date range)" ));
-myMenu35.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Credits", null, "Credit reports", myMenu35 ));
-var myMenu36 = new WebFXMenu;
-myMenu36.emptyText = '';
-myMenu36.add(new WebFXMenuItem("Refund Report", "http://localhost/freeside/search/report_cust_refund.html", "Refund report (by type and/or date range)" ));
-myMenu36.add(new WebFXMenuItem("Unapplied Refunds", "http://localhost/freeside/search/report_cust_refund.html?unapplied=1", "Unapplied refund report (by type and/or date range)" ));
-myMenu36.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Refunds", null, "Refund reports", myMenu36 ));
-myMenu32.add(new WebFXMenuItem("A/R Aging", "http://localhost/freeside/search/report_receivables.html", "Accounts Receivable Aging report" ));
-myMenu32.add(new WebFXMenuItem("Prepaid Income", "http://localhost/freeside/search/report_prepaid_income.html", "Prepaid income (unearned revenue)  report" ));
-myMenu32.add(new WebFXMenuItem("Tax Liability", "http://localhost/freeside/search/report_tax.html", "Tax liability report (internal tax data)" ));
-myMenu32.add(new WebFXMenuItem("E911 Fee Summary", "http://localhost/freeside/search/report_e911.html", "E911 fee summary" ));
-myMenu32.add(new WebFXMenuItem("Customer Accounting Summary", "http://localhost/freeside/search/report_customer_accounting_summary.html", "Customer accounting summary report" ));
-myMenu32.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Receivables)", null, "Financial reports (Receivables)", myMenu32 ));
-var myMenu37 = new WebFXMenu;
-myMenu37.emptyText = '';
-myMenu37.add(new WebFXMenuItem("Payables summary", "http://localhost/freeside/search/report_vend_main.html", "Payables summary by vendor" ));
-myMenu37.add(new WebFXMenuItem("Payables detail", "http://localhost/freeside/search/report_vend_bill.html", "" ));
-myMenu37.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Payables)", null, "Financial reports (Payables)", myMenu37 ));
-var myMenu38 = new WebFXMenu;
-myMenu38.emptyText = '';
-var myMenu39 = new WebFXMenu;
-myMenu39.emptyText = '';
-myMenu39.add(new WebFXMenuItem("All billing events", "http://localhost/freeside/search/report_cust_event.html", "All billing events for a date range" ));
-myMenu39.add(new WebFXMenuItem("Billing event errors", "http://localhost/freeside/search/report_cust_event.html?failed=1", "Failed credit cards, processor or printer problems, etc." ));
-myMenu39.width = 256;
-
-myMenu38.add(new WebFXMenuItem("Billing events", null, "Billing events", myMenu39 ));
-myMenu38.add(new WebFXMenuItem("Credit limit incidents", "http://localhost/freeside/search/report_cust_main_credit_limit.html", "" ));
-myMenu38.add(new WebFXMenuItem("Employee activity", "http://localhost/freeside/search/report_employee_audit.html", "" ));
-myMenu38.add(new WebFXMenuItem("System log", "http://localhost/freeside/search/log.html", "View system events and debugging information." ));
-myMenu38.add(new WebFXMenuItem("Outgoing messages", "http://localhost/freeside/search/cust_msg.html", "View outgoing message log" ));
-myMenu38.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Logs", null, "System and email logs", myMenu38 ));
-myMenu0.width = 256;
-
-          myBar.add(new WebFXMenuButton('Reports', null, 'Lists, reporting and graphing', myMenu0 ));
-
-
-          var myMenu40 = new WebFXMenu;
-myMenu40.emptyText = '';
-var myMenu41 = new WebFXMenu;
-myMenu41.emptyText = '';
-myMenu41.add(new WebFXMenuItem("Appointments", "http://localhost/freeside/rt/Search/Schedule.html?LengthMin=0", "View appointment schedule" ));
-myMenu41.add(new WebFXMenuItem("Attachments", "http://localhost/freeside/browse/cust_attachment.html", "View customer attachments" ));
-myMenu41.add(new WebFXMenuItem("Customer email settings", "http://localhost/freeside/misc/manage_cust_email.html", "" ));
-myMenu41.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Customers", null, "Customer tools", myMenu41 ));
-var myMenu42 = new WebFXMenu;
-myMenu42.emptyText = '';
-myMenu42.add(new WebFXMenuItem("Quick payment entry", "http://localhost/freeside/misc/batch-cust_pay.html", "Enter multiple payments in a batch" ));
-myMenu42.add(new WebFXMenuItem("Download invoice batches", "http://localhost/freeside/search/bill_batch.cgi", "" ));
-myMenu42.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Billing", null, "Payment and invoice tools", myMenu42 ));
-var myMenu43 = new WebFXMenu;
-myMenu43.emptyText = '';
-var myMenu44 = new WebFXMenu;
-myMenu44.emptyText = '';
-myMenu44.add(new WebFXMenuItem("Overview", "http://localhost/freeside/rt/Articles/index.html", "" ));
-myMenu44.add(new WebFXMenuItem("Search", "http://localhost/freeside/rt/Articles/Article/Search.html", "" ));
-myMenu44.add(new WebFXMenuItem("Topics", "http://localhost/freeside/rt/Articles/Topics.html", "" ));
-myMenu44.width = 256;
-
-myMenu43.add(new WebFXMenuItem("Articles", null, "", myMenu44 ));
-myMenu43.add(new WebFXMenuItem("My Day", "http://localhost/freeside/rt/Tools/MyDay.html", "" ));
-myMenu43.add(new WebFXMenuItem("My Reminders", "http://localhost/freeside/rt/Tools/MyReminders.html", "" ));
-myMenu43.add(new WebFXMenuItem("Offline", "http://localhost/freeside/rt/Tools/Offline.html", "" ));
-myMenu43.add(new WebFXMenuItem("Approval", "http://localhost/freeside/rt/Approvals/", "" ));
-myMenu43.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Ticketing", null, "Ticketing tools", myMenu43 ));
-var myMenu45 = new WebFXMenu;
-myMenu45.emptyText = '';
-myMenu45.add(new WebFXMenuItem("Bulk DID Orders", "http://localhost/freeside/browse/did_order.html", "View/manage bulk DID orders" ));
-myMenu45.add(new WebFXMenuItem("Business card scan", "http://localhost/freeside/edit/prospect_main-upload.html", "" ));
-myMenu45.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu45 ));
-var myMenu46 = new WebFXMenu;
-myMenu46.emptyText = '';
-myMenu46.add(new WebFXMenuItem("Customers", "http://localhost/freeside/misc/cust_main-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/misc/part_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer packages", "http://localhost/freeside/misc/cust_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer comments", "http://localhost/freeside/misc/cust_main_note-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("One-time charges", "http://localhost/freeside/misc/cust_main-import_charges.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Payments", "http://localhost/freeside/misc/cust_pay-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Credits", "http://localhost/freeside/misc/cust_credit-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Phone numbers (DIDs)", "http://localhost/freeside/misc/phone_avail-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/misc/cdr-import.html", "" ));
-myMenu46.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Importing", null, "Import tools", myMenu46 ));
-var myMenu47 = new WebFXMenu;
-myMenu47.emptyText = '';
-myMenu47.add(new WebFXMenuItem("Status", "http://localhost/freeside/view/Status.html", "System status" ));
-myMenu47.add(new WebFXMenuItem("Job Queue", "http://localhost/freeside/search/queue.html", "View pending job queue" ));
-myMenu47.width = 256;
-
-myMenu40.add(new WebFXMenuItem("System", null, "System tools", myMenu47 ));
-myMenu40.width = 256;
-
-          myBar.add(new WebFXMenuButton('Tools', null, 'Tools', myMenu40 ));
-
-
-          var myMenu48 = new WebFXMenu;
-myMenu48.emptyText = '';
-myMenu48.add(new WebFXMenuItem("Settings", "http://localhost/freeside/config/config-view.cgi", "" ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu49 = new WebFXMenu;
-myMenu49.emptyText = '';
-myMenu49.add(new WebFXMenuItem("Agent types", "http://localhost/freeside/browse/agent_type.cgi", "Agent types define groups of package definitions that you can then assign to particular agents" ));
-myMenu49.add(new WebFXMenuItem("Agents", "http://localhost/freeside/browse/agent.cgi", "Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type)" ));
-myMenu49.add(new WebFXMenuItem("Agent payment gateways", "http://localhost/freeside/browse/payment_gateway.html", "Credit card and electronic check processors for agent overrides" ));
-myMenu49.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Companies", null, "", myMenu49 ));
-var myMenu50 = new WebFXMenu;
-myMenu50.emptyText = '';
-myMenu50.add(new WebFXMenuItem("Sales People", "http://localhost/freeside/browse/sales.html", "Sales people bring in new business." ));
-myMenu50.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Sales People", null, "", myMenu50 ));
-var myMenu51 = new WebFXMenu;
-myMenu51.emptyText = '';
-myMenu51.add(new WebFXMenuItem("Employees", "http://localhost/freeside/browse/access_user.html", "Setup internal users" ));
-myMenu51.add(new WebFXMenuItem("Employee groups", "http://localhost/freeside/browse/access_group.html", "Employee groups allow you to control access to the backend" ));
-myMenu51.add(new WebFXMenuItem("Installer availability", "http://localhost/freeside/browse/sched_item.html", "Installer availability" ));
-myMenu51.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Employees", null, "", myMenu51 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu52 = new WebFXMenu;
-myMenu52.emptyText = '';
-myMenu52.add(new WebFXMenuItem("Customer tags", "http://localhost/freeside/browse/part_tag.html", "" ));
-myMenu52.add(new WebFXMenuItem("Customer classes", "http://localhost/freeside/browse/cust_class.html", "Customer classes define groups of customers for reporting." ));
-myMenu52.add(new WebFXMenuItem("Customer categories", "http://localhost/freeside/browse/cust_category.html", "Customer categories define groups of customer classes." ));
-myMenu52.add(new WebFXMenuSeparator());
-myMenu52.add(new WebFXMenuItem("Contact types", "http://localhost/freeside/browse/contact_class.html", "" ));
-myMenu52.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Customers", null, "", myMenu52 ));
-var myMenu53 = new WebFXMenu;
-myMenu53.emptyText = '';
-myMenu53.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/browse/part_pkg.cgi", "One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services" ));
-myMenu53.add(new WebFXMenuItem("Package classes", "http://localhost/freeside/browse/pkg_class.html", "Package classes define groups of packages, for taxation, ordering convenience and reporting." ));
-myMenu53.add(new WebFXMenuItem("Package categories", "http://localhost/freeside/browse/pkg_category.html", "Package categories define groups of package classes, for invoice sections." ));
-myMenu53.add(new WebFXMenuItem("Package report classes", "http://localhost/freeside/browse/part_pkg_report_option.html", "Package classes define optional groups of packages for reporting only." ));
-myMenu53.add(new WebFXMenuItem("Fees", "http://localhost/freeside/browse/part_fee.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discounts", "http://localhost/freeside/browse/discount.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discount classes", "http://localhost/freeside/browse/discount_class.html", "" ));
-var myMenu54 = new WebFXMenu;
-myMenu54.emptyText = '';
-myMenu54.add(new WebFXMenuItem("Cancel reasons", "http://localhost/freeside/browse/reason.html?class=C", "Cancel reasons explain why a service was cancelled." ));
-myMenu54.add(new WebFXMenuItem("Cancel reason types", "http://localhost/freeside/browse/reason_type.html?class=C", "Cancel reason types define groups of reasons." ));
-myMenu54.add(new WebFXMenuItem("Suspend reasons", "http://localhost/freeside/browse/reason.html?class=S", "Suspend reasons explain why a service was suspended." ));
-myMenu54.add(new WebFXMenuItem("Suspend reason types", "http://localhost/freeside/browse/reason_type.html?class=S", "Suspend reason types define groups of reasons." ));
-myMenu54.width = 256;
-
-myMenu53.add(new WebFXMenuItem("Cancel/Suspend Reasons", null, "", myMenu54 ));
-myMenu53.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Packages", null, "", myMenu53 ));
-var myMenu55 = new WebFXMenu;
-myMenu55.emptyText = '';
-myMenu55.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi", "Services are items you offer to your customers" ));
-myMenu55.add(new WebFXMenuItem("Service classes", "http://localhost/freeside/browse/part_svc_class.html", "Services classes are user-defined, informational types for services" ));
-myMenu55.add(new WebFXMenuItem("Service dependencies", "http://localhost/freeside/browse/part_svc_link.html", "Services depencies define rules between service definitions" ));
-myMenu55.add(new WebFXMenuItem("Provisioning exports", "http://localhost/freeside/browse/part_export.cgi", "Provisioning services to external machines, databases and APIs" ));
-var myMenu56 = new WebFXMenu;
-myMenu56.emptyText = '';
-myMenu56.add(new WebFXMenuItem("Access numbers", "http://localhost/freeside/browse/svc_acct_pop.cgi", "Points of Presence" ));
-myMenu56.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Dialup", null, "", myMenu56 ));
-var myMenu57 = new WebFXMenu;
-myMenu57.emptyText = '';
-myMenu57.add(new WebFXMenuItem("Towers", "http://localhost/freeside/browse/tower.html", "Towers and sectors" ));
-myMenu57.add(new WebFXMenuItem("Routers", "http://localhost/freeside/browse/router.cgi", "Broadband access routers" ));
-myMenu57.add(new WebFXMenuItem("Address blocks", "http://localhost/freeside/browse/addr_block.cgi", "Manage address blocks and block assignments to broadband routers" ));
-myMenu57.add(new WebFXMenuItem("Address ranges", "http://localhost/freeside/browse/addr_range.html", "Designate special address ranges" ));
-myMenu57.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Wireless broadband", null, "", myMenu57 ));
-var myMenu58 = new WebFXMenu;
-myMenu58.emptyText = '';
-myMenu58.add(new WebFXMenuItem("View/Edit phone device types", "http://localhost/freeside/browse/part_device.html", "Phone device types" ));
-myMenu58.add(new WebFXMenuItem("View/Edit bulk DID vendors", "http://localhost/freeside/browse/did_vendor.html", "Bulk DID vendors" ));
-myMenu58.add(new WebFXMenuItem("View/Edit Carriers", "http://localhost/freeside/browse/cdr_carrier.html", "Carriers" ));
-myMenu58.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Phone", null, "", myMenu58 ));
-var myMenu59 = new WebFXMenu;
-myMenu59.emptyText = '';
-myMenu59.add(new WebFXMenuItem("RADIUS Groups", "http://localhost/freeside/browse/radius_group.html", "Manage RADIUS groups" ));
-myMenu59.add(new WebFXMenuItem("RADIUS Clients", "http://localhost/freeside/browse/nas.html", "Manage RADIUS clients" ));
-myMenu59.width = 256;
-
-myMenu55.add(new WebFXMenuItem("RADIUS", null, "", myMenu59 ));
-var myMenu60 = new WebFXMenu;
-myMenu60.emptyText = '';
-myMenu60.add(new WebFXMenuItem("Cable providers", "http://localhost/freeside/browse/cable_provider.html", "" ));
-myMenu60.add(new WebFXMenuItem("Cable modem models", "http://localhost/freeside/browse/cable_model.html", "" ));
-myMenu60.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Cable", null, "", myMenu60 ));
-var myMenu61 = new WebFXMenu;
-myMenu61.emptyText = '';
-myMenu61.add(new WebFXMenuItem("Conferencing types", "http://localhost/freeside/browse/conferencing_type.html", "" ));
-myMenu61.add(new WebFXMenuItem("Quality levels", "http://localhost/freeside/browse/conferencing_quality.html", "" ));
-myMenu61.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Conferencing", null, "", myMenu61 ));
-var myMenu62 = new WebFXMenu;
-myMenu62.emptyText = '';
-myMenu62.add(new WebFXMenuItem("Alarm system vendors", "http://localhost/freeside/browse/alarm_system.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm system types", "http://localhost/freeside/browse/alarm_type.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm central stations", "http://localhost/freeside/browse/alarm_station.html", "" ));
-myMenu62.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Alarm", null, "", myMenu62 ));
-var myMenu63 = new WebFXMenu;
-myMenu63.emptyText = '';
-myMenu63.add(new WebFXMenuItem("Circuit types", "http://localhost/freeside/browse/circuit_type.html", "" ));
-myMenu63.add(new WebFXMenuItem("Circuit providers", "http://localhost/freeside/browse/circuit_provider.html", "" ));
-myMenu63.add(new WebFXMenuItem("Termination types", "http://localhost/freeside/browse/circuit_termination.html", "" ));
-myMenu63.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Circuits", null, "", myMenu63 ));
-myMenu55.add(new WebFXMenuItem("Hardware types", "http://localhost/freeside/browse/hardware_class.html", "Set up hardware type catalog" ));
-myMenu55.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Services", null, "", myMenu55 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu64 = new WebFXMenu;
-myMenu64.emptyText = '';
-myMenu64.add(new WebFXMenuItem("Vendor classes", "http://localhost/freeside/browse/vend_class.html", "" ));
-myMenu64.add(new WebFXMenuItem("Vendors", "http://localhost/freeside/browse/vend_main.html", "" ));
-myMenu64.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Vendors", null, "", myMenu64 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu65 = new WebFXMenu;
-myMenu65.emptyText = '';
-myMenu65.add(new WebFXMenuItem("Billing events", "http://localhost/freeside/browse/part_event.html", "Billing actions for customers, invoices and packages" ));
-myMenu65.add(new WebFXMenuItem("Invoice configurations", "http://localhost/freeside/browse/invoice_conf.html", "Adjust invoice settings for special-purpose notices" ));
-myMenu65.add(new WebFXMenuItem("Invoice templates", "http://localhost/freeside/browse/invoice_template.html", "Edit templates for HTML, plaintext and typeset invoices" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Prepaid cards", "http://localhost/freeside/search/prepay_credit.html", "View outstanding cards, generate new cards" ));
-var myMenu66 = new WebFXMenu;
-myMenu66.emptyText = '';
-myMenu66.add(new WebFXMenuItem("Rate plans", "http://localhost/freeside/browse/rate.cgi", "Manage rate plans" ));
-myMenu66.add(new WebFXMenuItem("Regions and prefixes", "http://localhost/freeside/browse/rate_region.html", "Manage regions and prefixes" ));
-myMenu66.add(new WebFXMenuItem("Usage classes", "http://localhost/freeside/browse/usage_class.html", "Usage classes define groups of usage for taxation." ));
-myMenu66.add(new WebFXMenuItem("Time periods", "http://localhost/freeside/browse/rate_time.html", "Time periods define days and hours for rate plans" ));
-myMenu66.add(new WebFXMenuItem("Edit rates with Excel", "http://localhost/freeside/misc/rate_edit_excel.html", "Download and edit rates with Excel, then upload changes." ));
-myMenu66.add(new WebFXMenuSeparator());
-myMenu66.add(new WebFXMenuItem("Tiering plans", "http://localhost/freeside/browse/rate_tier.html", "Rating tiers" ));
-myMenu66.width = 256;
-
-myMenu65.add(new WebFXMenuItem("Call rates and regions", null, "Manage rate plans, regions and prefixes for VoIP and call billing", myMenu66 ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Locales and tax rates", "http://localhost/freeside/browse/cust_main_county.cgi", "Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each" ));
-myMenu65.add(new WebFXMenuItem("Tax classes", "http://localhost/freeside/browse/part_pkg_taxclass.html", "Tax classes" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Credit reasons", "http://localhost/freeside/browse/reason.html?class=R", "Credit reasons explain why a credit was issued." ));
-myMenu65.add(new WebFXMenuItem("Credit reason types", "http://localhost/freeside/browse/reason_type.html?class=R", "Credit reason types define groups of reasons." ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Refund reasons", "http://localhost/freeside/browse/reason.html?class=F", "Refund reasons explain why a refund was issued." ));
-myMenu65.add(new WebFXMenuItem("Refund reason types", "http://localhost/freeside/browse/reason_type.html?class=F", "Refund reason types define groups of reasons." ));
-myMenu65.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu67 = new WebFXMenu;
-myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
-myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
-myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
-myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
-myMenu67.add(new WebFXMenuItem("Inventory classes and inventory", "http://localhost/freeside/browse/inventory_class.html", "Setup inventory classes and stock inventory" ));
-myMenu67.add(new WebFXMenuItem("Upload targets", "http://localhost/freeside/browse/upload_target.html", "Billing and payment upload destinations" ));
-myMenu67.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu67 ));
-myMenu48.width = 256;
-
-          myBar.add(new WebFXMenuButton('Configuration', null, 'Configuration and setup', myMenu48 ));
-
-
-          var myMenu68 = new WebFXMenu;
-myMenu68.emptyText = '';
-myMenu68.add(new WebFXMenuItem("Billing documentation", "http://www.freeside.biz/mediawiki/index.php/Freeside:4:Documentation", "Freeside documentation" ));
-myMenu68.add(new WebFXMenuItem("Ticketing documentation", "http://wiki.bestpractical.com/", "Request Tracker Wiki" ));
-myMenu68.add(new WebFXMenuSeparator());
-myMenu68.add(new WebFXMenuItem("About Freeside v5.0git", "javascript:about_freeside()", "" ));
-myMenu68.add(new WebFXMenuItem("About RT v4.2.11", "http://www.bestpractical.com/rt", "Request Tracker Homepage" ));
-myMenu68.width = 256;
-
-          myBar.add(new WebFXMenuButton('Help', null, '', myMenu68 ));
-
-
-  myBar.show( null, 'vertical' );
-  myBar.width = 154;
-
-</SCRIPT>
-
-
-
-
-      <link rel="stylesheet" href="http://localhost/freeside/elements/jquery-ui.min.css">
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery-ui.min.js"></SCRIPT>
-    
-    
-
-    
-
-  </HEAD>
-  <BODY BGCOLOR="#f8f8f8"  STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px">
-    <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead">
-      <tr>
-        <td BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="http://localhost/freeside/view/REAL_logo.cgi"></td>
-        <td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
-          <font size=6>Freeside Test 5.0.1</font>
-        </td>
-        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b>test&nbsp;</b> <FONT SIZE="-2"><a href="http://localhost/freeside/loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="http://localhost/freeside/pref/pref.html" STYLE="color: #000000">Preferences</a>
-          <BR></FONT>
-        </td>
-      </tr>
-    </table>
-
-    <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
-
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-
-      <TR CLASS="fsmenubar">
-
-
-        <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd">
-          <SCRIPT TYPE="text/javascript">
-            document.write(myBar);
-          </SCRIPT>
-        </TD>
-
-      </TR>
-
-      <TR CLASS="fssearchbar">
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/prospect_main.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_prospect" TYPE="text" VALUE="(name, company or phone)" STYLE="width:155px" onFocus="clearhint_search_prospect(this);" onClick="clearhint_search_prospect(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_prospect_main.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>
-    <INPUT TYPE="submit" VALUE="Search prospects" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_prospect (what) {
-    if ( what.value == '(name, company or phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_main.cgi" METHOD="POST" STYLE="margin:0">
-    <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or contact phone)" STYLE="width:246px" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_cust_main.html" CLASS="fslink" STYLE="font-size: 11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_cust (what) {
-    if ( what.value == '(cust #, name, company or contact phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center">
-          
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_address2 (what) {
-    if ( what.value == '(Unit #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline">
-    <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" STYLE="width:56px" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" CLASS="fstext">
-    <A HREF="http://localhost/freeside/search/report_cust_bill.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>    <BR>
-    <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px;margin-top:3px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_invoice (what) {
-    if ( what.value == '(inv #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_svc.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_svc" TYPE="text" VALUE="(user, email, ip, mac, domain or service phone)" STYLE="width:271px" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" CLASS="fstext"><BR>
-    <A NOTYET="http://localhost/freeside/search/svc_Smarter.html" STYLE="color: #cccccc; font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_svc (what) {
-    if ( what.value == '(user, email, ip, mac, domain or service phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px">
-          
-  <FORM ACTION="http://localhost/freeside//rt/index.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="q" TYPE="text" VALUE="(ticket #, subject, email or fulltext:text)" STYLE="width:223px" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside//rt/Search/Build.html?NewQuery=1" CLASS="fslink" STYLE="font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_ticket (what) {
-    if ( what.value == '(ticket #, subject, email or fulltext:text)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-      </TR>
-    </TABLE>
-
-
-
-    <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4>
-
-      <TR HEIGHT="100%">
-
-    <BR>
-        <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> -->
-
-          <H1>
-            Invoice Search Results
-          </H1>
-
-          <BR>
-
-          
-   <A HREF="javascript:confirm_print_process()" >Print these invoices</A> | <A HREF="javascript:confirm_email_process()" >Email these invoices</A>
-
-<BR><BR>
-
-
-
-
-        <SCRIPT TYPE="text/javascript">
-
-  function rs_init_object() {
-    var A;
-    try {
-      A=new ActiveXObject("Msxml2.XMLHTTP");
-    } catch (e) {
-      try {
-        A=new ActiveXObject("Microsoft.XMLHTTP");
-      } catch (oc) {
-        A=null;
-      }
-    }
-    if(!A && typeof XMLHttpRequest != "undefined")
-      A = new XMLHttpRequest();
-    if (!A)
-      alert("Can't create XMLHttpRequest object");
-    return A;
-
-  }
-
-</SCRIPT>
-
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_iframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_draggable.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_crossframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/iframecontentmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/ajaxcontentmws.js"></SCRIPT>
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function print_start_job() {
-        // count args; build URL
-        var url = "../misc/print_invoices.cgi";
-        var a = print_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function print_process () {
-
-  //alert('print_process for form print_form');
-
-  if ( document.print_form.submit.disabled == false ) {
-    document.print_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.print_form.elements.length; i++) {
-    field  = document.print_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('open') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.print_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/print_invoices.cgi', print_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', print_myCallback )' );
-  //alert('start_job()' );
-  print_start_job( Hash, print_myCallback );
-
-}
-
-function print_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=print_form&message=Invoices+re-printed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="print_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="90">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-<INPUT TYPE="hidden" NAME="open" VALUE="1">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function email_start_job() {
-        // count args; build URL
-        var url = "../misc/email_invoices.cgi";
-        var a = email_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function email_process () {
-
-  //alert('email_process for form email_form');
-
-  if ( document.email_form.submit.disabled == false ) {
-    document.email_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.email_form.elements.length; i++) {
-    field  = document.email_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('open') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.email_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/email_invoices.cgi', email_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', email_myCallback )' );
-  //alert('start_job()' );
-  email_start_job( Hash, email_myCallback );
-
-}
-
-function email_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=email_form&message=Invoices+re-emailed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="email_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="90">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-<INPUT TYPE="hidden" NAME="open" VALUE="1">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function fax_start_job() {
-        // count args; build URL
-        var url = "../misc/fax_invoices.cgi";
-        var a = fax_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function fax_process () {
-
-  //alert('fax_process for form fax_form');
-
-  if ( document.fax_form.submit.disabled == false ) {
-    document.fax_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.fax_form.elements.length; i++) {
-    field  = document.fax_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('open') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.fax_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/fax_invoices.cgi', fax_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', fax_myCallback )' );
-  //alert('start_job()' );
-  fax_start_job( Hash, fax_myCallback );
-
-}
-
-function fax_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=fax_form&message=Invoices+re-faxed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="fax_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="90">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-<INPUT TYPE="hidden" NAME="open" VALUE="1">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function ftp_start_job() {
-        // count args; build URL
-        var url = "../misc/ftp_invoices.cgi";
-        var a = ftp_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function ftp_process () {
-
-  //alert('ftp_process for form ftp_form');
-
-  if ( document.ftp_form.submit.disabled == false ) {
-    document.ftp_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.ftp_form.elements.length; i++) {
-    field  = document.ftp_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('open') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.ftp_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/ftp_invoices.cgi', ftp_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', ftp_myCallback )' );
-  //alert('start_job()' );
-  ftp_start_job( Hash, ftp_myCallback );
-
-}
-
-function ftp_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=ftp_form&message=Invoices+re-ftped';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="ftp_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="90">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-<INPUT TYPE="hidden" NAME="open" VALUE="1">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function spool_start_job() {
-        // count args; build URL
-        var url = "../misc/spool_invoices.cgi";
-        var a = spool_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function spool_process () {
-
-  //alert('spool_process for form spool_form');
-
-  if ( document.spool_form.submit.disabled == false ) {
-    document.spool_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.spool_form.elements.length; i++) {
-    field  = document.spool_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('open') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.spool_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/spool_invoices.cgi', spool_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', spool_myCallback )' );
-  //alert('start_job()' );
-  spool_start_job( Hash, spool_myCallback );
-
-}
-
-function spool_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=spool_form&message=Invoices+re-spooled';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="spool_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="90">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-<INPUT TYPE="hidden" NAME="open" VALUE="1">
-</FORM><SCRIPT TYPE="text/javascript">
-
-function confirm_print_process() {
-  if ( ! confirm('Are you sure you want to reprint these invoices?') ) {
-    return;
-  }
-  print_process();
-}
-function confirm_email_process() {
-  if ( ! confirm('Are you sure you want to re-email these invoices?') ) {
-    return;
-  }
-  email_process();
-}
-function confirm_fax_process() {
-  if ( ! confirm('Are you sure you want to re-fax these invoices?') ) {
-    return;
-  }
-  fax_process();
-}
-function confirm_ftp_process() {
-  if ( ! confirm('Are you sure you want to re-FTP these invoices?') ) {
-    return;
-  }
-  ftp_process();
-}
-function confirm_spool_process() {
-  if ( ! confirm('Are you sure you want to re-spool these invoices?') ) {
-    return;
-  }
-  spool_process();
-}
-
-</SCRIPT>
-
-
-
-        <TABLE>
-          <TR>
-
-            <TD VALIGN="bottom">
-
-              <FORM>
-
-                  219 total invoices
-
-
-                  ( show <SELECT NAME="maxrecords" onChange="window.location = 'http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=' + this.options[this.selectedIndex].value;">
-
-                  <OPTION VALUE="100" SELECTED>100</OPTION>
-                  <OPTION VALUE="500" >500</OPTION>
-                  <OPTION VALUE="1000" >1000</OPTION>
-                  <OPTION VALUE="2500" >2500</OPTION>
-
-                 </SELECT> per page )
-
-
-                <BR>
-
-                      $20769.29 gross sales<BR>
-                      − $0.00 discounted<BR>
-                      − $0.00 credited<BR>
-                      = $20769.29 net sales<BR>
-                      $20769.29 outstanding balance<BR>
-              </FORM>
-
-            </TD>
-
-
-              <TD ALIGN="right" CLASS="noprint">
-
-                Download full results<BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=invoices.xls">Excel spreadsheet</A><BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=csv">CSV file</A><BR>
-
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html-print">printable copy</A>
-
-              </TD>
-
-          </TR>
-          <TR>
-            <TD COLSPAN=2>
-
-
-                
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-
-                
-
-
-              
-<TABLE CLASS="grid" CELLSPACING=0 CELLPADDING=0 >
-
-
-
-
-<THEAD>
-
-  <TR>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "2"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=COALESCE%28%20agent_invid%2C%20invnum%20%29">Invoice #</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=gross">Gross Amount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=discounted">Discount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=credited">Credits</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=net">Net Amount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=owed">Balance</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=_date">Date</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Cust. Status
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Customer
-    </TH>
-  </TR>
-
-
-</THEAD>
-
-<TBODY>
-
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">Aug 07 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">Aug 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">10</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">Aug 17 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">12</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">Aug 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">Aug 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">20</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">Aug 26 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">Aug 31 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">35</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">33</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">39</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">46</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">26</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">29</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">43</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">54</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">Sep 07 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">Sep 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">57</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">Sep 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">59</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">Sep 12 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">60</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">Sep 13 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">63</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">Sep 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">Sep 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">69</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">Sep 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">74</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?134">Stokes, Janelle</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">73</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">72</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">75</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">Sep 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">79</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">Sep 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">81</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">Sep 23 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">83</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">Sep 25 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">86</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">Sep 27 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?98">Gleichner, Delmer</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">88</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">92</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">Sep 29 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">96</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">Sep 30 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">122</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?122">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">104</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?104">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">110</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?110">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">124</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">150</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?150">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">100</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?100">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">105</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?105">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">137</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?137">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">117</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?117">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">143</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?143">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?134">Stokes, Janelle</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">134</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?134">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">115</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?115">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">108</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?108">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">127</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?127">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">151</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">98</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?98">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">153</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">114</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?114">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">131</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?131">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?98">Gleichner, Delmer</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">129</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?129">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">147</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">146</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?146">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">161</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">$236.13</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">$236.13</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">$236.13</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?161">Oct 02 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?185">Christiansen LLC (Howe, Luis)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">165</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">$209.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">$209.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">$209.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?165">Oct 03 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?131">Wolff and Sons (Heller, Dagmar)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">167</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">$185.64</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">$185.64</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">$185.64</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?167">Oct 06 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?26">Romaguera, Tianna</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">171</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?171">Oct 07 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">175</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?175">Oct 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">178</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">$128.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">$128.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">$128.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?178">Oct 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?128">Powlowski, Veda</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">181</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?181">Oct 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">180</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">$174.03</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">$174.03</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">$174.03</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?180">Oct 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?2">Schowalter, Oswald</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">184</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?184">Oct 12 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">188</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">$123.39</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">$123.39</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">$123.39</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?188">Oct 13 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?80">Jakubowski, Jarrell</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">189</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?189">Oct 13 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">191</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?191">Oct 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">190</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?190">Oct 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?50">Marquardt, Abbey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">193</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?193">Oct 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?170">Wilderman, Annalise</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">195</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">$171.45</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">$171.45</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">$171.45</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?195">Oct 16 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?35">Bahringer LLC (Frami, Roslyn)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">198</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?198">Oct 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">200</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">$118.55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">$118.55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">$118.55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?200">Oct 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?116">Konopelski, Barry</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">206</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?206">Oct 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">204</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">$117.58</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">$117.58</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">$117.58</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?204">Oct 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?20">Weber, Aliza</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">210</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?210">Oct 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">208</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?208">Oct 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">212</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?212">Oct 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">216</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?216">Oct 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">219</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?219">Oct 23 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">220</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">$148.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">$148.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">$148.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?220">Oct 24 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?23">DuBuque Inc (King, Thomas)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">223</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?223">Oct 25 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">228</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?228">Oct 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">227</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?227">Oct 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">233</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">$135.48</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">$135.48</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">$135.48</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?233">Oct 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?137">Kohler Group (Bechtelar, Leopoldo)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">234</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?234">Oct 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">230</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?230">Oct 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">235</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">$106.94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">$106.94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">$106.94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?235">Oct 30 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?188">Prohaska, Ellis</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">236</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?236">Oct 31 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?56">Morar, Braulio</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">320</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?320">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">313</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">$215.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">$215.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">$215.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?313">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?143">Mann, Wilderman and Stiedemann (Maggio, Remington)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">304</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?304">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?128">Powlowski, Veda</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">238</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?238">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?2">Schowalter, Oswald</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">268</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?268">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">239</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?239">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">297</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?297">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?116">Konopelski, Barry</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">314</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?314">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">266</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?266">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?50">Marquardt, Abbey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">330</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?330">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?188">Prohaska, Ellis</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">285</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?285">Nov 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
-
-
-    </TR>
-
-
-</TBODY>
-
-</TABLE>
-
-
-              
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-  
-            </TD>
-          </TR>
-        </TABLE>
-
-
-        
-
-                </TD>
-      </TR>
-    </TABLE>
-  </BODY>
-</HTML>
-
-
-
-
-
-
diff --git a/FS-Test/share/output/search/cust_bill.html/date b/FS-Test/share/output/search/cust_bill.html/date
deleted file mode 100644 (file)
index 5681b42..0000000
+++ /dev/null
@@ -1,6054 +0,0 @@
-
-            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-  <HEAD>
-    <TITLE>
-      Invoice Search Results
-    </TITLE>
-    <!-- per RT, to prevent IE compatibility mode -->
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
-    <META HTTP-Equiv="Cache-Control" Content="no-cache">
-    <META HTTP-Equiv="Pragma" Content="no-cache">
-    <META HTTP-Equiv="Expires" Content="0"> 
-
-    <script type="text/javascript" src="http://localhost/freeside/elements/cssexpr.js"></script>
-
-
-  <script type="text/javascript" src="http://localhost/freeside/elements/xmenu.top.js"></script>
-  <link href="http://localhost/freeside/elements/xmenu.top.css" type="text/css" rel="stylesheet">
-
-
-  <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
-  <link href="http://localhost/freeside/elements/freeside-print.css" type="text/css" rel="stylesheet" media="print">
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-<SCRIPT TYPE="text/javascript">
-
-  function about_freeside() {
-    overlib( OLiframeContent('http://localhost/freeside/docs/about.html', 300, 375, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'About', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#7e0079', CGCOLOR, '#7e0079', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); 
-  }
-
-  webfxMenuImagePath      = "http://localhost/freeside/images/";
-  webfxMenuUseHover       = 1;
-  webfxMenuShowTime       = 300;
-  webfxMenuHideTime       = 500;
-
-  var myBar = new WebFXMenuBar;
-
-    
-          myBar.add(new WebFXMenuButton('Billing Main', "http://localhost/freeside/", 'Billing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('Ticketing Main', "http://localhost/freeside/rt/", 'Ticketing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('New prospect', "http://localhost/freeside/edit/prospect_main.html", 'Add a new prospect' ));
-
-    
-          myBar.add(new WebFXMenuButton('New customer', "http://localhost/freeside/edit/cust_main.cgi", 'Add a new customer' ));
-
-
-          var myMenu0 = new WebFXMenu;
-myMenu0.emptyText = '';
-var myMenu1 = new WebFXMenu;
-myMenu1.emptyText = '';
-myMenu1.add(new WebFXMenuItem("List prospects", "http://localhost/freeside/search/prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuItem("Advanced prospect reports", "http://localhost/freeside/search/report_prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuSeparator());
-myMenu1.add(new WebFXMenuItem("Prospect contacts", "http://localhost/freeside/search/report_contact.html?link=prospect_main", "" ));
-myMenu1.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Prospects", null, "Prospect reports", myMenu1 ));
-var myMenu2 = new WebFXMenu;
-myMenu2.emptyText = '';
-myMenu2.add(new WebFXMenuItem("List quotations", "http://localhost/freeside/search/quotation.html", "" ));
-myMenu2.add(new WebFXMenuItem("Advanced quotation reports", "http://localhost/freeside/search/report_quotation.html", "" ));
-myMenu2.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Quotations", null, "Quotation reports", myMenu2 ));
-var myMenu3 = new WebFXMenu;
-myMenu3.emptyText = '';
-var myMenu4 = new WebFXMenu;
-myMenu4.emptyText = '';
-myMenu4.add(new WebFXMenuItem("by customer number", "http://localhost/freeside/search/cust_main.cgi?browse=custnum", "" ));
-myMenu4.add(new WebFXMenuItem("by last name", "http://localhost/freeside/search/cust_main.cgi?browse=last", "" ));
-myMenu4.add(new WebFXMenuItem("by company name", "http://localhost/freeside/search/cust_main.cgi?browse=company", "" ));
-myMenu4.add(new WebFXMenuItem("by active trouble tickets", "http://localhost/freeside/search/cust_main.cgi?browse=tickets", "" ));
-myMenu4.width = 256;
-
-myMenu3.add(new WebFXMenuItem("List customers", null, "List customers", myMenu4 ));
-myMenu3.add(new WebFXMenuItem("Zip code distribution", "http://localhost/freeside/search/report_cust_main-zip.html", "Zip codes by number of customers" ));
-myMenu3.add(new WebFXMenuItem("Customer signup report", "http://localhost/freeside/graph/report_cust_signup.html", "New customer signups by date" ));
-myMenu3.add(new WebFXMenuItem("Customer churn report", "http://localhost/freeside/graph/report_cust_churn.html", "New customers, suspensions, and cancellations summary" ));
-myMenu3.add(new WebFXMenuItem("Signup date report", "http://localhost/freeside/graph/report_signupdate.html", "Signup date report (by date of signup)" ));
-myMenu3.add(new WebFXMenuItem("Advanced customer reports", "http://localhost/freeside/search/report_cust_main.html", "by status, signup date, agent, etc." ));
-myMenu3.add(new WebFXMenuSeparator());
-myMenu3.add(new WebFXMenuItem("Customer contacts", "http://localhost/freeside/search/report_contact.html?link=cust_main", "" ));
-myMenu3.add(new WebFXMenuItem("Customer stored payment information", "http://localhost/freeside/search/report_cust_payby.html", "" ));
-myMenu3.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Customers", null, "Customer reports", myMenu3 ));
-var myMenu5 = new WebFXMenu;
-myMenu5.emptyText = '';
-var myMenu6 = new WebFXMenu;
-myMenu6.emptyText = '';
-myMenu6.add(new WebFXMenuItem("All open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN_date", "All invoices with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("15 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN15_date", "Invoices 15 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("30 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN30_date", "Invoices 30 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("60 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN60_date", "Invoices 60 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("90 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN90_date", "Invoices 90 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("120 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN120_date", "Invoices 120 days or older with an unpaid balance" ));
-myMenu6.width = 256;
-
-myMenu5.add(new WebFXMenuItem("Open invoices", null, "Open invoices", myMenu6 ));
-myMenu5.add(new WebFXMenuItem("All invoices", "http://localhost/freeside/search/cust_bill.html?date", "List all invoices" ));
-myMenu5.add(new WebFXMenuItem("Advanced invoice reports", "http://localhost/freeside/search/report_cust_bill.html", "by agent, date range, etc." ));
-myMenu5.add(new WebFXMenuSeparator());
-myMenu5.add(new WebFXMenuItem("Line items", "http://localhost/freeside/search/report_cust_bill_pkg.html", "Individual line item detail" ));
-myMenu5.add(new WebFXMenuItem("Voided invoices", "http://localhost/freeside/search/report_cust_bill_void.html", "Search for voided invoices" ));
-myMenu5.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Invoices", null, "Invoice reports", myMenu5 ));
-var myMenu7 = new WebFXMenu;
-myMenu7.emptyText = '';
-myMenu7.add(new WebFXMenuItem("Discount graph", "http://localhost/freeside/graph/report_cust_bill_pkg_discount.html", "Discount overview per month" ));
-myMenu7.add(new WebFXMenuItem("Discount detail", "http://localhost/freeside/search/report_cust_bill_pkg_discount.html", "Discount report (by employee and/or date range)" ));
-myMenu7.add(new WebFXMenuItem("Package discounts", "http://localhost/freeside/search/report_cust_pkg_discount.html", "Active/inactive discounts by package" ));
-myMenu7.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Discounts", null, "Discount reports", myMenu7 ));
-var myMenu8 = new WebFXMenu;
-myMenu8.emptyText = '';
-myMenu8.add(new WebFXMenuItem("Payments", "http://localhost/freeside/search/report_cust_pay.html", "Payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Payment application detail", "http://localhost/freeside/search/report_cust_bill_pay_pkg.html", "Line item application detail" ));
-myMenu8.add(new WebFXMenuItem("Pending Payments", "http://localhost/freeside/search/cust_pay_pending.html?magic=_date;statusNOT=done", "Pending real-time payments" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payments", "http://localhost/freeside/search/report_cust_pay.html?unapplied=1", "Unapplied payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Voided Payments", "http://localhost/freeside/search/report_cust_pay.html?void=1", "Voided payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payment Aging", "http://localhost/freeside/search/report_unapplied_cust_pay.html", "Unapplied payment aging report" ));
-myMenu8.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Payments", null, "Payment reports", myMenu8 ));
-var myMenu9 = new WebFXMenu;
-myMenu9.emptyText = '';
-myMenu9.add(new WebFXMenuItem("Package definitions (by # active)", "http://localhost/freeside/browse/part_pkg.cgi?active=1", "Package definitions by number of active packages" ));
-myMenu9.add(new WebFXMenuItem("Package costs", "http://localhost/freeside/graph/report_cust_pkg_cost.html", "Package setup and recurring costs graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("Package churn", "http://localhost/freeside/graph/report_cust_pkg.html", "Orders, suspensions and cancellations summary graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("All customer packages", "http://localhost/freeside/search/cust_pkg.cgi?pkgnum", "List all customer packages" ));
-myMenu9.add(new WebFXMenuItem("Package summary", "http://localhost/freeside/search/cust_pkg_summary.html", "Show package sales summary" ));
-myMenu9.add(new WebFXMenuItem("Suspended customer packages", "http://localhost/freeside/search/cust_pkg.cgi?magic=suspended", "List suspended packages" ));
-myMenu9.add(new WebFXMenuItem("Suspension summary", "http://localhost/freeside/search/cust_pkg_susp.html", "Show suspension activity" ));
-myMenu9.add(new WebFXMenuItem("Customer packages with unconfigured services", "http://localhost/freeside/search/cust_pkg.cgi?APKG_pkgnum", "List packages which have provisionable services" ));
-myMenu9.add(new WebFXMenuItem("Advanced package reports", "http://localhost/freeside/search/report_cust_pkg.html", "by agent, date range, status, package definition" ));
-myMenu9.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Packages", null, "Package reports", myMenu9 ));
-var myMenu10 = new WebFXMenu;
-myMenu10.emptyText = '';
-myMenu10.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi?orderby=active", "Service definitions by number of active packages" ));
-myMenu10.add(new WebFXMenuSeparator());
-myMenu10.add(new WebFXMenuItem("Unprovisioned services", "http://localhost/freeside/search/report_unprovisioned_services.html", "Unprovisioned services" ));
-myMenu10.add(new WebFXMenuSeparator());
-var myMenu11 = new WebFXMenu;
-myMenu11.emptyText = '';
-myMenu11.add(new WebFXMenuItem("All accounts by Username", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=username", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by UID", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=uid", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts with Time Remaining", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=seconds", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by Last login", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=last_login", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts never logged in", "http://localhost/freeside/search/svc_acct.cgi?magic=nologin;sortby=svcnum", "" ));
-myMenu11.add(new WebFXMenuItem("Advanced account reports", "http://localhost/freeside/search/report_svc_acct.html", "" ));
-myMenu11.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Accounts", null, "Access accounts and mailboxes", myMenu11 ));
-var myMenu12 = new WebFXMenu;
-myMenu12.emptyText = '';
-myMenu12.add(new WebFXMenuItem("All domains", "http://localhost/freeside/search/svc_domain.cgi?magic=all;sortby=domain", "" ));
-myMenu12.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Domains", null, "Domains", myMenu12 ));
-var myMenu13 = new WebFXMenu;
-myMenu13.emptyText = '';
-myMenu13.add(new WebFXMenuItem("All certificates", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cert;magic=all;sortby=svcnum", "" ));
-myMenu13.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Certificates", null, "Example services", myMenu13 ));
-var myMenu14 = new WebFXMenu;
-myMenu14.emptyText = '';
-myMenu14.add(new WebFXMenuItem("All mail forwards", "http://localhost/freeside/search/svc_forward.cgi?magic=all;sortby=svcnum", "" ));
-myMenu14.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mail forwards", null, "Mail forwards", myMenu14 ));
-var myMenu15 = new WebFXMenu;
-myMenu15.emptyText = '';
-myMenu15.add(new WebFXMenuItem("All mailing lists", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_mailinglist;magic=all;sortby=svcnum", "" ));
-myMenu15.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mailing lists", null, "Mailing lists", myMenu15 ));
-var myMenu16 = new WebFXMenu;
-myMenu16.emptyText = '';
-myMenu16.add(new WebFXMenuItem("All virtual hosting services", "http://localhost/freeside/search/svc_www.cgi?magic=all;sortby=svcnum", "" ));
-myMenu16.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Virtual hosting services", null, "Virtual hosting services", myMenu16 ));
-var myMenu17 = new WebFXMenu;
-myMenu17.emptyText = '';
-myMenu17.add(new WebFXMenuItem("All wireless broadband services", "http://localhost/freeside/search/svc_broadband.cgi?magic=all;sortby=svcnum", "" ));
-myMenu17.add(new WebFXMenuItem("Advanced wireless broadband reports", "http://localhost/freeside/search/report_svc_broadband.html", "" ));
-myMenu17.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Wireless broadband services", null, "Fixed wireless broadband services", myMenu17 ));
-var myMenu18 = new WebFXMenu;
-myMenu18.emptyText = '';
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Service", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=svcnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Serial number", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=serialnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by MAC address", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=mac_addr", "" ));
-myMenu18.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Cable Subscribers", null, "Cable Subscribers", myMenu18 ));
-var myMenu19 = new WebFXMenu;
-myMenu19.emptyText = '';
-myMenu19.add(new WebFXMenuItem("All DSLs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_dsl;magic=all;sortby=phonenum", "" ));
-myMenu19.add(new WebFXMenuItem("Qualifications", "http://localhost/freeside/search/qual.cgi", "" ));
-myMenu19.width = 256;
-
-myMenu10.add(new WebFXMenuItem("DSLs", null, "DSLs", myMenu19 ));
-var myMenu20 = new WebFXMenu;
-myMenu20.emptyText = '';
-myMenu20.add(new WebFXMenuItem("All dish services", "http://localhost/freeside/search/svc_dish.cgi?magic=all;sortby=svcnum", "" ));
-myMenu20.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Dish services", null, "Dish services", myMenu20 ));
-var myMenu21 = new WebFXMenu;
-myMenu21.emptyText = '';
-myMenu21.add(new WebFXMenuItem("All hardware", "http://localhost/freeside/search/svc_hardware.cgi?magic=all;sortby=svcnum", "" ));
-myMenu21.add(new WebFXMenuItem("Advanced hardware reports", "http://localhost/freeside/search/report_svc_hardware.html", "" ));
-myMenu21.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Hardware", null, "Hardware", myMenu21 ));
-var myMenu22 = new WebFXMenu;
-myMenu22.emptyText = '';
-myMenu22.add(new WebFXMenuItem("All phone numbers", "http://localhost/freeside/search/svc_phone.cgi?magic=all;sortby=phonenum", "" ));
-myMenu22.add(new WebFXMenuItem("Phone numbers' total usage by time period", "http://localhost/freeside/search/report_svc_phone_usage.html", "Total usage (minutes, and amount billed) for the specified time period, per phone number." ));
-myMenu22.add(new WebFXMenuItem("Phone numbers by state", "http://localhost/freeside/search/phone_state.html", "Current or historical phone services broken down by state." ));
-myMenu22.add(new WebFXMenuItem("Advanced phone number reports", "http://localhost/freeside/search/report_svc_phone.html", "" ));
-myMenu22.add(new WebFXMenuItem("Phone number (DID) availability", "http://localhost/freeside/search/report_phone_avail.html", "" ));
-myMenu22.add(new WebFXMenuItem("Inventory/Provisioning Status", "http://localhost/freeside/search/phone_inventory_provisioned.html", "" ));
-myMenu22.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Phone numbers", null, "Phone numbers", myMenu22 ));
-var myMenu23 = new WebFXMenu;
-myMenu23.emptyText = '';
-myMenu23.add(new WebFXMenuItem("All PBXs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_pbx;magic=all;sortby=svcnum", "" ));
-myMenu23.width = 256;
-
-myMenu10.add(new WebFXMenuItem("PBXs", null, "PBXs", myMenu23 ));
-var myMenu24 = new WebFXMenu;
-myMenu24.emptyText = '';
-myMenu24.add(new WebFXMenuItem("All circuits", "http://localhost/freeside/search/svc_circuit.cgi?magic=all;sortby=svcnum", "" ));
-myMenu24.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Circuits", null, "Voice and data circuit services", myMenu24 ));
-var myMenu25 = new WebFXMenu;
-myMenu25.emptyText = '';
-myMenu25.add(new WebFXMenuItem("All ports", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_port;magic=all;sortby=serviceid", "" ));
-myMenu25.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Ports", null, "Ports", myMenu25 ));
-var myMenu26 = new WebFXMenu;
-myMenu26.emptyText = '';
-myMenu26.add(new WebFXMenuItem("All alarm services", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_alarm;magic=all;sortby=acctnum", "" ));
-myMenu26.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Alarm services", null, "Alarm services", myMenu26 ));
-var myMenu27 = new WebFXMenu;
-myMenu27.emptyText = '';
-myMenu27.add(new WebFXMenuItem("All external services", "http://localhost/freeside/search/svc_external.cgi?magic=all;sortby=id", "" ));
-myMenu27.width = 256;
-
-myMenu10.add(new WebFXMenuItem("External services", null, "External services", myMenu27 ));
-myMenu10.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Services", null, "Services reports", myMenu10 ));
-var myMenu28 = new WebFXMenu;
-myMenu28.emptyText = '';
-myMenu28.add(new WebFXMenuItem("Inventory by agent", "http://localhost/freeside/search/report_agent_inventory.html", "" ));
-myMenu28.add(new WebFXMenuItem("Inventory activity", "http://localhost/freeside/search/report_h_inventory_item.html", "" ));
-myMenu28.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Inventory", null, "Inventory reports", myMenu28 ));
-var myMenu29 = new WebFXMenu;
-myMenu29.emptyText = '';
-myMenu29.add(new WebFXMenuItem("RADIUS sessions", "http://localhost/freeside/search/sqlradius.html", "" ));
-myMenu29.add(new WebFXMenuItem("RADIUS data usage", "http://localhost/freeside/search/report_sqlradius_usage.html", "" ));
-myMenu29.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/search/report_cdr.html", "" ));
-myMenu29.add(new WebFXMenuItem("Unrateable CDRs", "http://localhost/freeside/search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_", "" ));
-myMenu29.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Usage", null, "Usage reports", myMenu29 ));
-var myMenu30 = new WebFXMenu;
-myMenu30.emptyText = '';
-var myMenu31 = new WebFXMenu;
-myMenu31.emptyText = '';
-myMenu31.add(new WebFXMenuItem("Tickets per day per Queue", "http://localhost/freeside/rt/RTx/Statistics/CallsQueueDay", "View the number of tickets created, resolved or deleted in a specific Queue, over the requested period of days" ));
-myMenu31.add(new WebFXMenuItem("Ticket status by Queue", "http://localhost/freeside/rt/RTx/Statistics/OpenStalled", "View numbers of new, open and stalled tickets in a selected Queue" ));
-myMenu31.add(new WebFXMenuItem("Tickets per day (multiple Queues)", "http://localhost/freeside/rt/RTx/Statistics/CallsMultiQueue", "View tickets created, resolved or deleted on in one or more Queues over a specified time period" ));
-myMenu31.add(new WebFXMenuItem("Tickets per Day of Week", "http://localhost/freeside/rt/RTx/Statistics/DayOfWeek", "View trends showing when tickets are created, resolved or deleted" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve", "http://localhost/freeside/rt/RTx/Statistics/Resolution", "View how long tickets take to be resolved by Queue" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve (scatter graph)", "http://localhost/freeside/rt/RTx/Statistics/TimeToResolve", "View a detailed scatter graph of time to resolve tickets by Queue" ));
-myMenu31.width = 256;
-
-myMenu30.add(new WebFXMenuItem("Statistics", null, "", myMenu31 ));
-myMenu30.add(new WebFXMenuSeparator());
-myMenu30.add(new WebFXMenuItem("Advanced ticket reports", "http://localhost/freeside/rt/Search/Build.html?NewQuery=1", "List tickets by any criteria" ));
-myMenu30.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Tickets", null, "Ticket reports", myMenu30 ));
-var myMenu32 = new WebFXMenu;
-myMenu32.emptyText = '';
-var myMenu33 = new WebFXMenu;
-myMenu33.emptyText = '';
-myMenu33.add(new WebFXMenuItem("Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time.html", "Sales, credits and receipts summary graph" ));
-myMenu33.add(new WebFXMenuItem("Daily Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time_daily.html", "Sales, credits and receipts (broken down by day) summary graph" ));
-myMenu33.add(new WebFXMenuItem("Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg.html", "Sales report and graph (by agent, package class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Rated Call Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg_detail.html", "Sales report and graph (by agent, package class, usage class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Sales with Advertising Source", "http://localhost/freeside/search/report_cust_bill_pkg_referral.html", "" ));
-myMenu33.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Sales", null, "Sales reports", myMenu33 ));
-var myMenu34 = new WebFXMenu;
-myMenu34.emptyText = '';
-myMenu34.add(new WebFXMenuItem("Agent", "http://localhost/freeside/search/report_agent_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Agent per package", "http://localhost/freeside/search/report_agent_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person", "http://localhost/freeside/search/report_sales_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person per package", "http://localhost/freeside/search/report_sales_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Employee", "http://localhost/freeside/search/report_employee_commission.html", "" ));
-myMenu34.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Commissions", null, "Commission reports", myMenu34 ));
-var myMenu35 = new WebFXMenu;
-myMenu35.emptyText = '';
-myMenu35.add(new WebFXMenuItem("Credit Report", "http://localhost/freeside/search/report_cust_credit.html", "Credit report (by employee and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Credit package source detail", "http://localhost/freeside/search/report_cust_credit_source_bill_pkg.html", "Line-item detail for triggered package credits" ));
-myMenu35.add(new WebFXMenuItem("Credit application detail", "http://localhost/freeside/search/report_cust_credit_bill_pkg.html", "Line item application detail" ));
-myMenu35.add(new WebFXMenuItem("Unapplied Credits", "http://localhost/freeside/search/report_cust_credit.html?unapplied=1", "Unapplied credit report (by type and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Voided Credits", "http://localhost/freeside/search/report_cust_credit_void.html", "Voided credit report (by employee and/or date range)" ));
-myMenu35.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Credits", null, "Credit reports", myMenu35 ));
-var myMenu36 = new WebFXMenu;
-myMenu36.emptyText = '';
-myMenu36.add(new WebFXMenuItem("Refund Report", "http://localhost/freeside/search/report_cust_refund.html", "Refund report (by type and/or date range)" ));
-myMenu36.add(new WebFXMenuItem("Unapplied Refunds", "http://localhost/freeside/search/report_cust_refund.html?unapplied=1", "Unapplied refund report (by type and/or date range)" ));
-myMenu36.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Refunds", null, "Refund reports", myMenu36 ));
-myMenu32.add(new WebFXMenuItem("A/R Aging", "http://localhost/freeside/search/report_receivables.html", "Accounts Receivable Aging report" ));
-myMenu32.add(new WebFXMenuItem("Prepaid Income", "http://localhost/freeside/search/report_prepaid_income.html", "Prepaid income (unearned revenue)  report" ));
-myMenu32.add(new WebFXMenuItem("Tax Liability", "http://localhost/freeside/search/report_tax.html", "Tax liability report (internal tax data)" ));
-myMenu32.add(new WebFXMenuItem("E911 Fee Summary", "http://localhost/freeside/search/report_e911.html", "E911 fee summary" ));
-myMenu32.add(new WebFXMenuItem("Customer Accounting Summary", "http://localhost/freeside/search/report_customer_accounting_summary.html", "Customer accounting summary report" ));
-myMenu32.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Receivables)", null, "Financial reports (Receivables)", myMenu32 ));
-var myMenu37 = new WebFXMenu;
-myMenu37.emptyText = '';
-myMenu37.add(new WebFXMenuItem("Payables summary", "http://localhost/freeside/search/report_vend_main.html", "Payables summary by vendor" ));
-myMenu37.add(new WebFXMenuItem("Payables detail", "http://localhost/freeside/search/report_vend_bill.html", "" ));
-myMenu37.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Payables)", null, "Financial reports (Payables)", myMenu37 ));
-var myMenu38 = new WebFXMenu;
-myMenu38.emptyText = '';
-var myMenu39 = new WebFXMenu;
-myMenu39.emptyText = '';
-myMenu39.add(new WebFXMenuItem("All billing events", "http://localhost/freeside/search/report_cust_event.html", "All billing events for a date range" ));
-myMenu39.add(new WebFXMenuItem("Billing event errors", "http://localhost/freeside/search/report_cust_event.html?failed=1", "Failed credit cards, processor or printer problems, etc." ));
-myMenu39.width = 256;
-
-myMenu38.add(new WebFXMenuItem("Billing events", null, "Billing events", myMenu39 ));
-myMenu38.add(new WebFXMenuItem("Credit limit incidents", "http://localhost/freeside/search/report_cust_main_credit_limit.html", "" ));
-myMenu38.add(new WebFXMenuItem("Employee activity", "http://localhost/freeside/search/report_employee_audit.html", "" ));
-myMenu38.add(new WebFXMenuItem("System log", "http://localhost/freeside/search/log.html", "View system events and debugging information." ));
-myMenu38.add(new WebFXMenuItem("Outgoing messages", "http://localhost/freeside/search/cust_msg.html", "View outgoing message log" ));
-myMenu38.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Logs", null, "System and email logs", myMenu38 ));
-myMenu0.width = 256;
-
-          myBar.add(new WebFXMenuButton('Reports', null, 'Lists, reporting and graphing', myMenu0 ));
-
-
-          var myMenu40 = new WebFXMenu;
-myMenu40.emptyText = '';
-var myMenu41 = new WebFXMenu;
-myMenu41.emptyText = '';
-myMenu41.add(new WebFXMenuItem("Appointments", "http://localhost/freeside/rt/Search/Schedule.html?LengthMin=0", "View appointment schedule" ));
-myMenu41.add(new WebFXMenuItem("Attachments", "http://localhost/freeside/browse/cust_attachment.html", "View customer attachments" ));
-myMenu41.add(new WebFXMenuItem("Customer email settings", "http://localhost/freeside/misc/manage_cust_email.html", "" ));
-myMenu41.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Customers", null, "Customer tools", myMenu41 ));
-var myMenu42 = new WebFXMenu;
-myMenu42.emptyText = '';
-myMenu42.add(new WebFXMenuItem("Quick payment entry", "http://localhost/freeside/misc/batch-cust_pay.html", "Enter multiple payments in a batch" ));
-myMenu42.add(new WebFXMenuItem("Download invoice batches", "http://localhost/freeside/search/bill_batch.cgi", "" ));
-myMenu42.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Billing", null, "Payment and invoice tools", myMenu42 ));
-var myMenu43 = new WebFXMenu;
-myMenu43.emptyText = '';
-var myMenu44 = new WebFXMenu;
-myMenu44.emptyText = '';
-myMenu44.add(new WebFXMenuItem("Overview", "http://localhost/freeside/rt/Articles/index.html", "" ));
-myMenu44.add(new WebFXMenuItem("Search", "http://localhost/freeside/rt/Articles/Article/Search.html", "" ));
-myMenu44.add(new WebFXMenuItem("Topics", "http://localhost/freeside/rt/Articles/Topics.html", "" ));
-myMenu44.width = 256;
-
-myMenu43.add(new WebFXMenuItem("Articles", null, "", myMenu44 ));
-myMenu43.add(new WebFXMenuItem("My Day", "http://localhost/freeside/rt/Tools/MyDay.html", "" ));
-myMenu43.add(new WebFXMenuItem("My Reminders", "http://localhost/freeside/rt/Tools/MyReminders.html", "" ));
-myMenu43.add(new WebFXMenuItem("Offline", "http://localhost/freeside/rt/Tools/Offline.html", "" ));
-myMenu43.add(new WebFXMenuItem("Approval", "http://localhost/freeside/rt/Approvals/", "" ));
-myMenu43.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Ticketing", null, "Ticketing tools", myMenu43 ));
-var myMenu45 = new WebFXMenu;
-myMenu45.emptyText = '';
-myMenu45.add(new WebFXMenuItem("Bulk DID Orders", "http://localhost/freeside/browse/did_order.html", "View/manage bulk DID orders" ));
-myMenu45.add(new WebFXMenuItem("Business card scan", "http://localhost/freeside/edit/prospect_main-upload.html", "" ));
-myMenu45.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu45 ));
-var myMenu46 = new WebFXMenu;
-myMenu46.emptyText = '';
-myMenu46.add(new WebFXMenuItem("Customers", "http://localhost/freeside/misc/cust_main-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/misc/part_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer packages", "http://localhost/freeside/misc/cust_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer comments", "http://localhost/freeside/misc/cust_main_note-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("One-time charges", "http://localhost/freeside/misc/cust_main-import_charges.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Payments", "http://localhost/freeside/misc/cust_pay-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Credits", "http://localhost/freeside/misc/cust_credit-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Phone numbers (DIDs)", "http://localhost/freeside/misc/phone_avail-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/misc/cdr-import.html", "" ));
-myMenu46.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Importing", null, "Import tools", myMenu46 ));
-var myMenu47 = new WebFXMenu;
-myMenu47.emptyText = '';
-myMenu47.add(new WebFXMenuItem("Status", "http://localhost/freeside/view/Status.html", "System status" ));
-myMenu47.add(new WebFXMenuItem("Job Queue", "http://localhost/freeside/search/queue.html", "View pending job queue" ));
-myMenu47.width = 256;
-
-myMenu40.add(new WebFXMenuItem("System", null, "System tools", myMenu47 ));
-myMenu40.width = 256;
-
-          myBar.add(new WebFXMenuButton('Tools', null, 'Tools', myMenu40 ));
-
-
-          var myMenu48 = new WebFXMenu;
-myMenu48.emptyText = '';
-myMenu48.add(new WebFXMenuItem("Settings", "http://localhost/freeside/config/config-view.cgi", "" ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu49 = new WebFXMenu;
-myMenu49.emptyText = '';
-myMenu49.add(new WebFXMenuItem("Agent types", "http://localhost/freeside/browse/agent_type.cgi", "Agent types define groups of package definitions that you can then assign to particular agents" ));
-myMenu49.add(new WebFXMenuItem("Agents", "http://localhost/freeside/browse/agent.cgi", "Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type)" ));
-myMenu49.add(new WebFXMenuItem("Agent payment gateways", "http://localhost/freeside/browse/payment_gateway.html", "Credit card and electronic check processors for agent overrides" ));
-myMenu49.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Companies", null, "", myMenu49 ));
-var myMenu50 = new WebFXMenu;
-myMenu50.emptyText = '';
-myMenu50.add(new WebFXMenuItem("Sales People", "http://localhost/freeside/browse/sales.html", "Sales people bring in new business." ));
-myMenu50.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Sales People", null, "", myMenu50 ));
-var myMenu51 = new WebFXMenu;
-myMenu51.emptyText = '';
-myMenu51.add(new WebFXMenuItem("Employees", "http://localhost/freeside/browse/access_user.html", "Setup internal users" ));
-myMenu51.add(new WebFXMenuItem("Employee groups", "http://localhost/freeside/browse/access_group.html", "Employee groups allow you to control access to the backend" ));
-myMenu51.add(new WebFXMenuItem("Installer availability", "http://localhost/freeside/browse/sched_item.html", "Installer availability" ));
-myMenu51.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Employees", null, "", myMenu51 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu52 = new WebFXMenu;
-myMenu52.emptyText = '';
-myMenu52.add(new WebFXMenuItem("Customer tags", "http://localhost/freeside/browse/part_tag.html", "" ));
-myMenu52.add(new WebFXMenuItem("Customer classes", "http://localhost/freeside/browse/cust_class.html", "Customer classes define groups of customers for reporting." ));
-myMenu52.add(new WebFXMenuItem("Customer categories", "http://localhost/freeside/browse/cust_category.html", "Customer categories define groups of customer classes." ));
-myMenu52.add(new WebFXMenuSeparator());
-myMenu52.add(new WebFXMenuItem("Contact types", "http://localhost/freeside/browse/contact_class.html", "" ));
-myMenu52.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Customers", null, "", myMenu52 ));
-var myMenu53 = new WebFXMenu;
-myMenu53.emptyText = '';
-myMenu53.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/browse/part_pkg.cgi", "One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services" ));
-myMenu53.add(new WebFXMenuItem("Package classes", "http://localhost/freeside/browse/pkg_class.html", "Package classes define groups of packages, for taxation, ordering convenience and reporting." ));
-myMenu53.add(new WebFXMenuItem("Package categories", "http://localhost/freeside/browse/pkg_category.html", "Package categories define groups of package classes, for invoice sections." ));
-myMenu53.add(new WebFXMenuItem("Package report classes", "http://localhost/freeside/browse/part_pkg_report_option.html", "Package classes define optional groups of packages for reporting only." ));
-myMenu53.add(new WebFXMenuItem("Fees", "http://localhost/freeside/browse/part_fee.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discounts", "http://localhost/freeside/browse/discount.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discount classes", "http://localhost/freeside/browse/discount_class.html", "" ));
-var myMenu54 = new WebFXMenu;
-myMenu54.emptyText = '';
-myMenu54.add(new WebFXMenuItem("Cancel reasons", "http://localhost/freeside/browse/reason.html?class=C", "Cancel reasons explain why a service was cancelled." ));
-myMenu54.add(new WebFXMenuItem("Cancel reason types", "http://localhost/freeside/browse/reason_type.html?class=C", "Cancel reason types define groups of reasons." ));
-myMenu54.add(new WebFXMenuItem("Suspend reasons", "http://localhost/freeside/browse/reason.html?class=S", "Suspend reasons explain why a service was suspended." ));
-myMenu54.add(new WebFXMenuItem("Suspend reason types", "http://localhost/freeside/browse/reason_type.html?class=S", "Suspend reason types define groups of reasons." ));
-myMenu54.width = 256;
-
-myMenu53.add(new WebFXMenuItem("Cancel/Suspend Reasons", null, "", myMenu54 ));
-myMenu53.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Packages", null, "", myMenu53 ));
-var myMenu55 = new WebFXMenu;
-myMenu55.emptyText = '';
-myMenu55.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi", "Services are items you offer to your customers" ));
-myMenu55.add(new WebFXMenuItem("Service classes", "http://localhost/freeside/browse/part_svc_class.html", "Services classes are user-defined, informational types for services" ));
-myMenu55.add(new WebFXMenuItem("Service dependencies", "http://localhost/freeside/browse/part_svc_link.html", "Services depencies define rules between service definitions" ));
-myMenu55.add(new WebFXMenuItem("Provisioning exports", "http://localhost/freeside/browse/part_export.cgi", "Provisioning services to external machines, databases and APIs" ));
-var myMenu56 = new WebFXMenu;
-myMenu56.emptyText = '';
-myMenu56.add(new WebFXMenuItem("Access numbers", "http://localhost/freeside/browse/svc_acct_pop.cgi", "Points of Presence" ));
-myMenu56.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Dialup", null, "", myMenu56 ));
-var myMenu57 = new WebFXMenu;
-myMenu57.emptyText = '';
-myMenu57.add(new WebFXMenuItem("Towers", "http://localhost/freeside/browse/tower.html", "Towers and sectors" ));
-myMenu57.add(new WebFXMenuItem("Routers", "http://localhost/freeside/browse/router.cgi", "Broadband access routers" ));
-myMenu57.add(new WebFXMenuItem("Address blocks", "http://localhost/freeside/browse/addr_block.cgi", "Manage address blocks and block assignments to broadband routers" ));
-myMenu57.add(new WebFXMenuItem("Address ranges", "http://localhost/freeside/browse/addr_range.html", "Designate special address ranges" ));
-myMenu57.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Wireless broadband", null, "", myMenu57 ));
-var myMenu58 = new WebFXMenu;
-myMenu58.emptyText = '';
-myMenu58.add(new WebFXMenuItem("View/Edit phone device types", "http://localhost/freeside/browse/part_device.html", "Phone device types" ));
-myMenu58.add(new WebFXMenuItem("View/Edit bulk DID vendors", "http://localhost/freeside/browse/did_vendor.html", "Bulk DID vendors" ));
-myMenu58.add(new WebFXMenuItem("View/Edit Carriers", "http://localhost/freeside/browse/cdr_carrier.html", "Carriers" ));
-myMenu58.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Phone", null, "", myMenu58 ));
-var myMenu59 = new WebFXMenu;
-myMenu59.emptyText = '';
-myMenu59.add(new WebFXMenuItem("RADIUS Groups", "http://localhost/freeside/browse/radius_group.html", "Manage RADIUS groups" ));
-myMenu59.add(new WebFXMenuItem("RADIUS Clients", "http://localhost/freeside/browse/nas.html", "Manage RADIUS clients" ));
-myMenu59.width = 256;
-
-myMenu55.add(new WebFXMenuItem("RADIUS", null, "", myMenu59 ));
-var myMenu60 = new WebFXMenu;
-myMenu60.emptyText = '';
-myMenu60.add(new WebFXMenuItem("Cable providers", "http://localhost/freeside/browse/cable_provider.html", "" ));
-myMenu60.add(new WebFXMenuItem("Cable modem models", "http://localhost/freeside/browse/cable_model.html", "" ));
-myMenu60.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Cable", null, "", myMenu60 ));
-var myMenu61 = new WebFXMenu;
-myMenu61.emptyText = '';
-myMenu61.add(new WebFXMenuItem("Conferencing types", "http://localhost/freeside/browse/conferencing_type.html", "" ));
-myMenu61.add(new WebFXMenuItem("Quality levels", "http://localhost/freeside/browse/conferencing_quality.html", "" ));
-myMenu61.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Conferencing", null, "", myMenu61 ));
-var myMenu62 = new WebFXMenu;
-myMenu62.emptyText = '';
-myMenu62.add(new WebFXMenuItem("Alarm system vendors", "http://localhost/freeside/browse/alarm_system.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm system types", "http://localhost/freeside/browse/alarm_type.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm central stations", "http://localhost/freeside/browse/alarm_station.html", "" ));
-myMenu62.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Alarm", null, "", myMenu62 ));
-var myMenu63 = new WebFXMenu;
-myMenu63.emptyText = '';
-myMenu63.add(new WebFXMenuItem("Circuit types", "http://localhost/freeside/browse/circuit_type.html", "" ));
-myMenu63.add(new WebFXMenuItem("Circuit providers", "http://localhost/freeside/browse/circuit_provider.html", "" ));
-myMenu63.add(new WebFXMenuItem("Termination types", "http://localhost/freeside/browse/circuit_termination.html", "" ));
-myMenu63.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Circuits", null, "", myMenu63 ));
-myMenu55.add(new WebFXMenuItem("Hardware types", "http://localhost/freeside/browse/hardware_class.html", "Set up hardware type catalog" ));
-myMenu55.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Services", null, "", myMenu55 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu64 = new WebFXMenu;
-myMenu64.emptyText = '';
-myMenu64.add(new WebFXMenuItem("Vendor classes", "http://localhost/freeside/browse/vend_class.html", "" ));
-myMenu64.add(new WebFXMenuItem("Vendors", "http://localhost/freeside/browse/vend_main.html", "" ));
-myMenu64.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Vendors", null, "", myMenu64 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu65 = new WebFXMenu;
-myMenu65.emptyText = '';
-myMenu65.add(new WebFXMenuItem("Billing events", "http://localhost/freeside/browse/part_event.html", "Billing actions for customers, invoices and packages" ));
-myMenu65.add(new WebFXMenuItem("Invoice configurations", "http://localhost/freeside/browse/invoice_conf.html", "Adjust invoice settings for special-purpose notices" ));
-myMenu65.add(new WebFXMenuItem("Invoice templates", "http://localhost/freeside/browse/invoice_template.html", "Edit templates for HTML, plaintext and typeset invoices" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Prepaid cards", "http://localhost/freeside/search/prepay_credit.html", "View outstanding cards, generate new cards" ));
-var myMenu66 = new WebFXMenu;
-myMenu66.emptyText = '';
-myMenu66.add(new WebFXMenuItem("Rate plans", "http://localhost/freeside/browse/rate.cgi", "Manage rate plans" ));
-myMenu66.add(new WebFXMenuItem("Regions and prefixes", "http://localhost/freeside/browse/rate_region.html", "Manage regions and prefixes" ));
-myMenu66.add(new WebFXMenuItem("Usage classes", "http://localhost/freeside/browse/usage_class.html", "Usage classes define groups of usage for taxation." ));
-myMenu66.add(new WebFXMenuItem("Time periods", "http://localhost/freeside/browse/rate_time.html", "Time periods define days and hours for rate plans" ));
-myMenu66.add(new WebFXMenuItem("Edit rates with Excel", "http://localhost/freeside/misc/rate_edit_excel.html", "Download and edit rates with Excel, then upload changes." ));
-myMenu66.add(new WebFXMenuSeparator());
-myMenu66.add(new WebFXMenuItem("Tiering plans", "http://localhost/freeside/browse/rate_tier.html", "Rating tiers" ));
-myMenu66.width = 256;
-
-myMenu65.add(new WebFXMenuItem("Call rates and regions", null, "Manage rate plans, regions and prefixes for VoIP and call billing", myMenu66 ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Locales and tax rates", "http://localhost/freeside/browse/cust_main_county.cgi", "Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each" ));
-myMenu65.add(new WebFXMenuItem("Tax classes", "http://localhost/freeside/browse/part_pkg_taxclass.html", "Tax classes" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Credit reasons", "http://localhost/freeside/browse/reason.html?class=R", "Credit reasons explain why a credit was issued." ));
-myMenu65.add(new WebFXMenuItem("Credit reason types", "http://localhost/freeside/browse/reason_type.html?class=R", "Credit reason types define groups of reasons." ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Refund reasons", "http://localhost/freeside/browse/reason.html?class=F", "Refund reasons explain why a refund was issued." ));
-myMenu65.add(new WebFXMenuItem("Refund reason types", "http://localhost/freeside/browse/reason_type.html?class=F", "Refund reason types define groups of reasons." ));
-myMenu65.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu67 = new WebFXMenu;
-myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
-myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
-myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
-myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
-myMenu67.add(new WebFXMenuItem("Inventory classes and inventory", "http://localhost/freeside/browse/inventory_class.html", "Setup inventory classes and stock inventory" ));
-myMenu67.add(new WebFXMenuItem("Upload targets", "http://localhost/freeside/browse/upload_target.html", "Billing and payment upload destinations" ));
-myMenu67.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu67 ));
-myMenu48.width = 256;
-
-          myBar.add(new WebFXMenuButton('Configuration', null, 'Configuration and setup', myMenu48 ));
-
-
-          var myMenu68 = new WebFXMenu;
-myMenu68.emptyText = '';
-myMenu68.add(new WebFXMenuItem("Billing documentation", "http://www.freeside.biz/mediawiki/index.php/Freeside:4:Documentation", "Freeside documentation" ));
-myMenu68.add(new WebFXMenuItem("Ticketing documentation", "http://wiki.bestpractical.com/", "Request Tracker Wiki" ));
-myMenu68.add(new WebFXMenuSeparator());
-myMenu68.add(new WebFXMenuItem("About Freeside v5.0git", "javascript:about_freeside()", "" ));
-myMenu68.add(new WebFXMenuItem("About RT v4.2.11", "http://www.bestpractical.com/rt", "Request Tracker Homepage" ));
-myMenu68.width = 256;
-
-          myBar.add(new WebFXMenuButton('Help', null, '', myMenu68 ));
-
-
-  myBar.show( null, 'vertical' );
-  myBar.width = 154;
-
-</SCRIPT>
-
-
-
-
-      <link rel="stylesheet" href="http://localhost/freeside/elements/jquery-ui.min.css">
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery-ui.min.js"></SCRIPT>
-    
-    
-
-    
-
-  </HEAD>
-  <BODY BGCOLOR="#f8f8f8"  STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px">
-    <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead">
-      <tr>
-        <td BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="http://localhost/freeside/view/REAL_logo.cgi"></td>
-        <td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
-          <font size=6>Freeside Test 5.0.1</font>
-        </td>
-        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b>test&nbsp;</b> <FONT SIZE="-2"><a href="http://localhost/freeside/loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="http://localhost/freeside/pref/pref.html" STYLE="color: #000000">Preferences</a>
-          <BR></FONT>
-        </td>
-      </tr>
-    </table>
-
-    <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
-
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-
-      <TR CLASS="fsmenubar">
-
-
-        <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd">
-          <SCRIPT TYPE="text/javascript">
-            document.write(myBar);
-          </SCRIPT>
-        </TD>
-
-      </TR>
-
-      <TR CLASS="fssearchbar">
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/prospect_main.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_prospect" TYPE="text" VALUE="(name, company or phone)" STYLE="width:155px" onFocus="clearhint_search_prospect(this);" onClick="clearhint_search_prospect(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_prospect_main.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>
-    <INPUT TYPE="submit" VALUE="Search prospects" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_prospect (what) {
-    if ( what.value == '(name, company or phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_main.cgi" METHOD="POST" STYLE="margin:0">
-    <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or contact phone)" STYLE="width:246px" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_cust_main.html" CLASS="fslink" STYLE="font-size: 11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_cust (what) {
-    if ( what.value == '(cust #, name, company or contact phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center">
-          
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_address2 (what) {
-    if ( what.value == '(Unit #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline">
-    <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" STYLE="width:56px" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" CLASS="fstext">
-    <A HREF="http://localhost/freeside/search/report_cust_bill.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>    <BR>
-    <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px;margin-top:3px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_invoice (what) {
-    if ( what.value == '(inv #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_svc.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_svc" TYPE="text" VALUE="(user, email, ip, mac, domain or service phone)" STYLE="width:271px" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" CLASS="fstext"><BR>
-    <A NOTYET="http://localhost/freeside/search/svc_Smarter.html" STYLE="color: #cccccc; font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_svc (what) {
-    if ( what.value == '(user, email, ip, mac, domain or service phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px">
-          
-  <FORM ACTION="http://localhost/freeside//rt/index.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="q" TYPE="text" VALUE="(ticket #, subject, email or fulltext:text)" STYLE="width:223px" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside//rt/Search/Build.html?NewQuery=1" CLASS="fslink" STYLE="font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_ticket (what) {
-    if ( what.value == '(ticket #, subject, email or fulltext:text)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-      </TR>
-    </TABLE>
-
-
-
-    <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4>
-
-      <TR HEIGHT="100%">
-
-    <BR>
-        <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> -->
-
-          <H1>
-            Invoice Search Results
-          </H1>
-
-          <BR>
-
-          
-   <A HREF="javascript:confirm_print_process()" >Print these invoices</A> | <A HREF="javascript:confirm_email_process()" >Email these invoices</A>
-
-<BR><BR>
-
-
-
-
-        <SCRIPT TYPE="text/javascript">
-
-  function rs_init_object() {
-    var A;
-    try {
-      A=new ActiveXObject("Msxml2.XMLHTTP");
-    } catch (e) {
-      try {
-        A=new ActiveXObject("Microsoft.XMLHTTP");
-      } catch (oc) {
-        A=null;
-      }
-    }
-    if(!A && typeof XMLHttpRequest != "undefined")
-      A = new XMLHttpRequest();
-    if (!A)
-      alert("Can't create XMLHttpRequest object");
-    return A;
-
-  }
-
-</SCRIPT>
-
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_iframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_draggable.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_crossframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/iframecontentmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/ajaxcontentmws.js"></SCRIPT>
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function print_start_job() {
-        // count args; build URL
-        var url = "../misc/print_invoices.cgi";
-        var a = print_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function print_process () {
-
-  //alert('print_process for form print_form');
-
-  if ( document.print_form.submit.disabled == false ) {
-    document.print_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.print_form.elements.length; i++) {
-    field  = document.print_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.print_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/print_invoices.cgi', print_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', print_myCallback )' );
-  //alert('start_job()' );
-  print_start_job( Hash, print_myCallback );
-
-}
-
-function print_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=print_form&message=Invoices+re-printed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="print_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function email_start_job() {
-        // count args; build URL
-        var url = "../misc/email_invoices.cgi";
-        var a = email_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function email_process () {
-
-  //alert('email_process for form email_form');
-
-  if ( document.email_form.submit.disabled == false ) {
-    document.email_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.email_form.elements.length; i++) {
-    field  = document.email_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.email_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/email_invoices.cgi', email_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', email_myCallback )' );
-  //alert('start_job()' );
-  email_start_job( Hash, email_myCallback );
-
-}
-
-function email_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=email_form&message=Invoices+re-emailed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="email_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function fax_start_job() {
-        // count args; build URL
-        var url = "../misc/fax_invoices.cgi";
-        var a = fax_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function fax_process () {
-
-  //alert('fax_process for form fax_form');
-
-  if ( document.fax_form.submit.disabled == false ) {
-    document.fax_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.fax_form.elements.length; i++) {
-    field  = document.fax_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.fax_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/fax_invoices.cgi', fax_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', fax_myCallback )' );
-  //alert('start_job()' );
-  fax_start_job( Hash, fax_myCallback );
-
-}
-
-function fax_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=fax_form&message=Invoices+re-faxed';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="fax_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function ftp_start_job() {
-        // count args; build URL
-        var url = "../misc/ftp_invoices.cgi";
-        var a = ftp_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function ftp_process () {
-
-  //alert('ftp_process for form ftp_form');
-
-  if ( document.ftp_form.submit.disabled == false ) {
-    document.ftp_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.ftp_form.elements.length; i++) {
-    field  = document.ftp_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.ftp_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/ftp_invoices.cgi', ftp_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', ftp_myCallback )' );
-  //alert('start_job()' );
-  ftp_start_job( Hash, ftp_myCallback );
-
-}
-
-function ftp_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=ftp_form&message=Invoices+re-ftped';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="ftp_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-</FORM>
-
-
-<SCRIPT TYPE="text/javascript">
-
-
-    function spool_start_job() {
-        // count args; build URL
-        var url = "../misc/spool_invoices.cgi";
-        var a = spool_start_job.arguments;
-
-        var args;
-        var len;
-        var content = 'sub=start_job';
-        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
-            args = a[0];
-            len = args.length
-        } else {
-            args = a;
-            len = args.length - 1;
-        }
-        for (var i = 0; i < len; i++) 
-            content = content + "&arg=" + escape(args[i]);
-        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
-
-        if ( 'POST' == 'GET' ) {
-          url = url + content;
-        }
-
-        //alert('POST ' + url);
-
-        var xmlhttp = rs_init_object();
-        xmlhttp.open("POST", url, true);
-
-        xmlhttp.onreadystatechange = function() {
-            if (xmlhttp.readyState != 4) 
-               return;
-
-            if (xmlhttp.status != 200) {
-              if ( xmlhttp.status != 0 ) {
-                //not warning on the 0 errors, they pop up when navagating away
-                // from the page
-                alert(xmlhttp.status + " status connecting to " + url);
-              }
-            } else {
-              var data = xmlhttp.responseText;
-              //alert('received response: ' + data);
-              if ( data.indexOf("<b>System error</b>") > -1 ) {
-                // trim this a little
-                var end = data.indexOf('<a href="#raw">') - 1;
-                data = data.substring(0, end);
-
-                overlib(data,
-                  WIDTH, 480, MIDX, 0, MIDY, 0,
-                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
-                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
-                );
-                //var w;
-                //if ( w = window.open("about:blank") ) {
-                //  w.document.write(data);
-                //} else {
-                //  // popup blocking?  should use an overlib popup instead 
-                //  alert("Error popup disabled; try disabling popup blocking to see");
-                //}
-              } else {
-                // invoke the callback
-                a[a.length-1](data);
-              }
-            }
-        }
-
-        if ( 'POST' == 'POST' ) {
-
-          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-          xmlhttp.send(content);
-
-        } else {
-
-          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
-          xmlhttp.send(null);
-
-        }
-
-        //rs_debug("x_$func_name url = " + url);
-        //rs_debug("x_$func_name waiting..");
-    }
-
-
-</SCRIPT>
-
-
-
-
-<SCRIPT TYPE="text/javascript">
-
-function spool_process () {
-
-  //alert('spool_process for form spool_form');
-
-  if ( document.spool_form.submit.disabled == false ) {
-    document.spool_form.submit.disabled=true;
-  }
-
-  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-  var Hash = new Array();
-  var x = 0;
-  var fieldName;
-  for (var i = 0; i<document.spool_form.elements.length; i++) {
-    field  = document.spool_form.elements[i];
-    if ( (field.name.indexOf('days') > -1) || (field.name.indexOf('charged') > -1) || (field.name.indexOf('order_by') > -1) || (field.name.indexOf('owed') > -1)
-       )
-    {
-        if ( field.type == 'select-multiple' ) {
-          //alert('select-multiple ' + field.name);
-          for (var j=0; j < field.options.length; j++) {
-            if ( field.options[j].selected ) {
-              //alert(field.name + ' => ' + field.options[j].value);
-              Hash[x++] = field.name;
-              Hash[x++] = field.options[j].value;
-            }
-          }
-        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
-                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
-                         && document.spool_form.elements[i].checked
-                       )
-                  )
-        {
-          Hash[x++] = field.name;
-          Hash[x++] = field.value;
-        }
-    }
-  }
-
-  // jsrsPOST = true;
-  // jsrsExecute( '../misc/spool_invoices.cgi', spool_myCallback, 'start_job', Hash );
-
-  //alert('start_job( ' + Hash + ', spool_myCallback )' );
-  //alert('start_job()' );
-  spool_start_job( Hash, spool_myCallback );
-
-}
-
-function spool_myCallback( jobnum ) {
-
-  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=spool_form&message=Invoices+re-spooled';
-  url = url.replace('_JOBNUM_', jobnum);
-  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
-
-}
-
-</SCRIPT>
-
-
-<FORM NAME="spool_form">
-<INPUT TYPE="hidden" NAME="days" VALUE="">
-<INPUT TYPE="hidden" NAME="order_by" VALUE="cust_bill._date">
-</FORM><SCRIPT TYPE="text/javascript">
-
-function confirm_print_process() {
-  if ( ! confirm('Are you sure you want to reprint these invoices?') ) {
-    return;
-  }
-  print_process();
-}
-function confirm_email_process() {
-  if ( ! confirm('Are you sure you want to re-email these invoices?') ) {
-    return;
-  }
-  email_process();
-}
-function confirm_fax_process() {
-  if ( ! confirm('Are you sure you want to re-fax these invoices?') ) {
-    return;
-  }
-  fax_process();
-}
-function confirm_ftp_process() {
-  if ( ! confirm('Are you sure you want to re-FTP these invoices?') ) {
-    return;
-  }
-  ftp_process();
-}
-function confirm_spool_process() {
-  if ( ! confirm('Are you sure you want to re-spool these invoices?') ) {
-    return;
-  }
-  spool_process();
-}
-
-</SCRIPT>
-
-
-
-        <TABLE>
-          <TR>
-
-            <TD VALIGN="bottom">
-
-              <FORM>
-
-                  1584 total invoices
-
-
-                  ( show <SELECT NAME="maxrecords" onChange="window.location = 'http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=' + this.options[this.selectedIndex].value;">
-
-                  <OPTION VALUE="100" SELECTED>100</OPTION>
-                  <OPTION VALUE="500" >500</OPTION>
-                  <OPTION VALUE="1000" >1000</OPTION>
-                  <OPTION VALUE="2500" >2500</OPTION>
-
-                 </SELECT> per page )
-
-
-                <BR>
-
-                      $141620.74 gross sales<BR>
-                      − $0.00 discounted<BR>
-                      − $0.00 credited<BR>
-                      = $141620.74 net sales<BR>
-                      $48352.49 outstanding balance<BR>
-              </FORM>
-
-            </TD>
-
-
-              <TD ALIGN="right" CLASS="noprint">
-
-                Download full results<BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=invoices.xls">Excel spreadsheet</A><BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=csv">CSV file</A><BR>
-
-
-                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html-print">printable copy</A>
-
-              </TD>
-
-          </TR>
-          <TR>
-            <TD COLSPAN=2>
-
-
-                
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
-
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-
-                
-
-
-              
-<TABLE CLASS="grid" CELLSPACING=0 CELLPADDING=0 >
-
-
-
-
-<THEAD>
-
-  <TR>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "2"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=COALESCE%28%20agent_invid%2C%20invnum%20%29">Invoice #</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=gross">Gross Amount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=discounted">Discount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=credited">Credits</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=net">Net Amount</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=owed">Balance</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=_date">Date</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Cust. Status
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Customer
-    </TH>
-  </TR>
-
-
-</THEAD>
-
-<TBODY>
-
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">Aug 07 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">3</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">Aug 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">2</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">Aug 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">Aug 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">5</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">Aug 12 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">6</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">Aug 13 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">7</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">Aug 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">8</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">Aug 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">9</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">Aug 15 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">10</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">Aug 17 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">11</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">Aug 17 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">13</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">Aug 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">12</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">Aug 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">14</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">Aug 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">15</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">Aug 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">16</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">Aug 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">17</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">Aug 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">18</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">Aug 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">19</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">Aug 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">20</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">Aug 26 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">21</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">Aug 30 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">23</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">Aug 31 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">22</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">Aug 31 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">25</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">45</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">28</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">27</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">43</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">32</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">26</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">46</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">33</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">35</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">30</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">37</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">44</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">34</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">38</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">40</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">41</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">29</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">31</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">39</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">36</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">24</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">42</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">Sep 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">47</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">Sep 02 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">49</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">Sep 02 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?171">Mante LLC (Kessler, Enid)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">48</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">Sep 02 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?99">Luettgen-Jacobs (Hintz, Junior)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">50</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">Sep 03 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?75">Hoeger-Brown (Shields, Serenity)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">51</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">Sep 04 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?109">Lind-Bahringer (Ratke, Roma)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">53</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">Sep 06 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?147">Pfeffer, Shanahan and Cruickshank (Kutch, Rosario)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">52</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">Sep 06 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?94">McKenzie, Kareem</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">54</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">Sep 07 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">56</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">Sep 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">55</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">Sep 08 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">57</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">Sep 09 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">58</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">Sep 10 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?3">Flatley-Hagenes (Donnelly, Odessa)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">59</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">Sep 12 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">60</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">Sep 13 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">61</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">Sep 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?34">Kunde, Noemi</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">63</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">Sep 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">62</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">Sep 14 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">64</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">Sep 15 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">66</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">Sep 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">65</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">Sep 18 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">70</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">Sep 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?196">Turcotte, Janessa</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">69</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">Sep 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">67</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">Sep 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">68</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">Sep 19 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">74</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?134">Stokes, Janelle</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">72</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">73</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">Sep 20 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">75</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">Sep 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">78</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">Sep 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?159">McLaughlin-Luettgen (Berge, Houston)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">77</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">Sep 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?52">Frami, Gayle</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">76</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">Sep 21 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">79</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">Sep 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">80</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">Sep 22 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?112">Gleason, Ahmed</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">81</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">Sep 23 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">82</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">Sep 24 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?66">Abbott, Addison</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">83</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">Sep 25 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">85</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">Sep 26 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?172">Rowe, Amara</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">84</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">Sep 26 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?130">Carter, Cathy</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">86</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">Sep 27 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?98">Gleichner, Delmer</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">87</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">Sep 27 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?189">Rodriguez-Ebert (Bergstrom, Cecilia)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">92</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">88</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">89</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?30">Toy, Bethany</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">90</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?129">Quitzon Group (Davis, Jeffery)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">91</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">Sep 28 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?126">Kunze, Michale</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">95</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">Sep 29 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?121">Cole, Graham and Towne (Hickle, Javier)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">93</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">Sep 29 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?19">Toy-Gerlach (Zulauf, Sharon)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">94</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">Sep 29 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">96</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">Sep 30 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">121</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">124</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">147</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?147">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">153</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">Oct 01 2015</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-    </TR>
-
-
-</TBODY>
-
-</TABLE>
-
-
-              
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
-
-          ...
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
-
-      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-  
-            </TD>
-          </TR>
-        </TABLE>
-
-
-        
-
-                </TD>
-      </TR>
-    </TABLE>
-  </BODY>
-</HTML>
-
-
-
-
-
-
diff --git a/FS-Test/share/output/search/cust_bill.html/keywords=OPEN90_date:order_by=invnum b/FS-Test/share/output/search/cust_bill.html/keywords=OPEN90_date:order_by=invnum
new file mode 100644 (file)
index 0000000..cb6d637
--- /dev/null
@@ -0,0 +1,6044 @@
+
+            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>
+      Invoice Search Results
+    </TITLE>
+    <!-- per RT, to prevent IE compatibility mode -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
+    <META HTTP-Equiv="Cache-Control" Content="no-cache">
+    <META HTTP-Equiv="Pragma" Content="no-cache">
+    <META HTTP-Equiv="Expires" Content="0"> 
+
+    <script type="text/javascript" src="http://localhost/freeside/elements/cssexpr.js"></script>
+
+
+  <script type="text/javascript" src="http://localhost/freeside/elements/xmenu.top.js"></script>
+  <link href="http://localhost/freeside/elements/xmenu.top.css" type="text/css" rel="stylesheet">
+
+
+  <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
+  <link href="http://localhost/freeside/elements/freeside-print.css" type="text/css" rel="stylesheet" media="print">
+<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
+
+<SCRIPT TYPE="text/javascript">
+
+  function about_freeside() {
+    overlib( OLiframeContent('http://localhost/freeside/docs/about.html', 300, 375, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'About', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#7e0079', CGCOLOR, '#7e0079', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); 
+  }
+
+  webfxMenuImagePath      = "http://localhost/freeside/images/";
+  webfxMenuUseHover       = 1;
+  webfxMenuShowTime       = 300;
+  webfxMenuHideTime       = 500;
+
+  var myBar = new WebFXMenuBar;
+
+    
+          myBar.add(new WebFXMenuButton('Billing Main', "http://localhost/freeside/", 'Billing start page' ));
+
+    
+          myBar.add(new WebFXMenuButton('Ticketing Main', "http://localhost/freeside/rt/", 'Ticketing start page' ));
+
+    
+          myBar.add(new WebFXMenuButton('New prospect', "http://localhost/freeside/edit/prospect_main.html", 'Add a new prospect' ));
+
+    
+          myBar.add(new WebFXMenuButton('New customer', "http://localhost/freeside/edit/cust_main.cgi", 'Add a new customer' ));
+
+
+          var myMenu0 = new WebFXMenu;
+myMenu0.emptyText = '';
+var myMenu1 = new WebFXMenu;
+myMenu1.emptyText = '';
+myMenu1.add(new WebFXMenuItem("List prospects", "http://localhost/freeside/search/prospect_main.html", "" ));
+myMenu1.add(new WebFXMenuItem("Advanced prospect reports", "http://localhost/freeside/search/report_prospect_main.html", "" ));
+myMenu1.add(new WebFXMenuSeparator());
+myMenu1.add(new WebFXMenuItem("Prospect contacts", "http://localhost/freeside/search/report_contact.html?link=prospect_main", "" ));
+myMenu1.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Prospects", null, "Prospect reports", myMenu1 ));
+var myMenu2 = new WebFXMenu;
+myMenu2.emptyText = '';
+myMenu2.add(new WebFXMenuItem("List quotations", "http://localhost/freeside/search/quotation.html", "" ));
+myMenu2.add(new WebFXMenuItem("Advanced quotation reports", "http://localhost/freeside/search/report_quotation.html", "" ));
+myMenu2.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Quotations", null, "Quotation reports", myMenu2 ));
+var myMenu3 = new WebFXMenu;
+myMenu3.emptyText = '';
+var myMenu4 = new WebFXMenu;
+myMenu4.emptyText = '';
+myMenu4.add(new WebFXMenuItem("by customer number", "http://localhost/freeside/search/cust_main.cgi?browse=custnum", "" ));
+myMenu4.add(new WebFXMenuItem("by last name", "http://localhost/freeside/search/cust_main.cgi?browse=last", "" ));
+myMenu4.add(new WebFXMenuItem("by company name", "http://localhost/freeside/search/cust_main.cgi?browse=company", "" ));
+myMenu4.add(new WebFXMenuItem("by active trouble tickets", "http://localhost/freeside/search/cust_main.cgi?browse=tickets", "" ));
+myMenu4.width = 256;
+
+myMenu3.add(new WebFXMenuItem("List customers", null, "List customers", myMenu4 ));
+myMenu3.add(new WebFXMenuItem("Zip code distribution", "http://localhost/freeside/search/report_cust_main-zip.html", "Zip codes by number of customers" ));
+myMenu3.add(new WebFXMenuItem("Customer signup report", "http://localhost/freeside/graph/report_cust_signup.html", "New customer signups by date" ));
+myMenu3.add(new WebFXMenuItem("Customer churn report", "http://localhost/freeside/graph/report_cust_churn.html", "New customers, suspensions, and cancellations summary" ));
+myMenu3.add(new WebFXMenuItem("Signup date report", "http://localhost/freeside/graph/report_signupdate.html", "Signup date report (by date of signup)" ));
+myMenu3.add(new WebFXMenuItem("Advanced customer reports", "http://localhost/freeside/search/report_cust_main.html", "by status, signup date, agent, etc." ));
+myMenu3.add(new WebFXMenuSeparator());
+myMenu3.add(new WebFXMenuItem("Customer contacts", "http://localhost/freeside/search/report_contact.html?link=cust_main", "" ));
+myMenu3.add(new WebFXMenuItem("Customer stored payment information", "http://localhost/freeside/search/report_cust_payby.html", "" ));
+myMenu3.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Customers", null, "Customer reports", myMenu3 ));
+var myMenu5 = new WebFXMenu;
+myMenu5.emptyText = '';
+var myMenu6 = new WebFXMenu;
+myMenu6.emptyText = '';
+myMenu6.add(new WebFXMenuItem("All open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN_date", "All invoices with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("15 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN15_date", "Invoices 15 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("30 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN30_date", "Invoices 30 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("60 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN60_date", "Invoices 60 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("90 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN90_date", "Invoices 90 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("120 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN120_date", "Invoices 120 days or older with an unpaid balance" ));
+myMenu6.width = 256;
+
+myMenu5.add(new WebFXMenuItem("Open invoices", null, "Open invoices", myMenu6 ));
+myMenu5.add(new WebFXMenuItem("All invoices", "http://localhost/freeside/search/cust_bill.html?date", "List all invoices" ));
+myMenu5.add(new WebFXMenuItem("Advanced invoice reports", "http://localhost/freeside/search/report_cust_bill.html", "by agent, date range, etc." ));
+myMenu5.add(new WebFXMenuSeparator());
+myMenu5.add(new WebFXMenuItem("Line items", "http://localhost/freeside/search/report_cust_bill_pkg.html", "Individual line item detail" ));
+myMenu5.add(new WebFXMenuItem("Voided invoices", "http://localhost/freeside/search/report_cust_bill_void.html", "Search for voided invoices" ));
+myMenu5.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Invoices", null, "Invoice reports", myMenu5 ));
+var myMenu7 = new WebFXMenu;
+myMenu7.emptyText = '';
+myMenu7.add(new WebFXMenuItem("Discount graph", "http://localhost/freeside/graph/report_cust_bill_pkg_discount.html", "Discount overview per month" ));
+myMenu7.add(new WebFXMenuItem("Discount detail", "http://localhost/freeside/search/report_cust_bill_pkg_discount.html", "Discount report (by employee and/or date range)" ));
+myMenu7.add(new WebFXMenuItem("Package discounts", "http://localhost/freeside/search/report_cust_pkg_discount.html", "Active/inactive discounts by package" ));
+myMenu7.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Discounts", null, "Discount reports", myMenu7 ));
+var myMenu8 = new WebFXMenu;
+myMenu8.emptyText = '';
+myMenu8.add(new WebFXMenuItem("Payments", "http://localhost/freeside/search/report_cust_pay.html", "Payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Payment application detail", "http://localhost/freeside/search/report_cust_bill_pay_pkg.html", "Line item application detail" ));
+myMenu8.add(new WebFXMenuItem("Pending Payments", "http://localhost/freeside/search/cust_pay_pending.html?magic=_date;statusNOT=done", "Pending real-time payments" ));
+myMenu8.add(new WebFXMenuItem("Unapplied Payments", "http://localhost/freeside/search/report_cust_pay.html?unapplied=1", "Unapplied payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Voided Payments", "http://localhost/freeside/search/report_cust_pay.html?void=1", "Voided payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Unapplied Payment Aging", "http://localhost/freeside/search/report_unapplied_cust_pay.html", "Unapplied payment aging report" ));
+myMenu8.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Payments", null, "Payment reports", myMenu8 ));
+var myMenu9 = new WebFXMenu;
+myMenu9.emptyText = '';
+myMenu9.add(new WebFXMenuItem("Package definitions (by # active)", "http://localhost/freeside/browse/part_pkg.cgi?active=1", "Package definitions by number of active packages" ));
+myMenu9.add(new WebFXMenuItem("Package costs", "http://localhost/freeside/graph/report_cust_pkg_cost.html", "Package setup and recurring costs graph" ));
+myMenu9.add(new WebFXMenuSeparator());
+myMenu9.add(new WebFXMenuItem("Package churn", "http://localhost/freeside/graph/report_cust_pkg.html", "Orders, suspensions and cancellations summary graph" ));
+myMenu9.add(new WebFXMenuSeparator());
+myMenu9.add(new WebFXMenuItem("All customer packages", "http://localhost/freeside/search/cust_pkg.cgi?pkgnum", "List all customer packages" ));
+myMenu9.add(new WebFXMenuItem("Package summary", "http://localhost/freeside/search/cust_pkg_summary.html", "Show package sales summary" ));
+myMenu9.add(new WebFXMenuItem("Suspended customer packages", "http://localhost/freeside/search/cust_pkg.cgi?magic=suspended", "List suspended packages" ));
+myMenu9.add(new WebFXMenuItem("Suspension summary", "http://localhost/freeside/search/cust_pkg_susp.html", "Show suspension activity" ));
+myMenu9.add(new WebFXMenuItem("Customer packages with unconfigured services", "http://localhost/freeside/search/cust_pkg.cgi?APKG_pkgnum", "List packages which have provisionable services" ));
+myMenu9.add(new WebFXMenuItem("Advanced package reports", "http://localhost/freeside/search/report_cust_pkg.html", "by agent, date range, status, package definition" ));
+myMenu9.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Packages", null, "Package reports", myMenu9 ));
+var myMenu10 = new WebFXMenu;
+myMenu10.emptyText = '';
+myMenu10.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi?orderby=active", "Service definitions by number of active packages" ));
+myMenu10.add(new WebFXMenuSeparator());
+myMenu10.add(new WebFXMenuItem("Unprovisioned services", "http://localhost/freeside/search/report_unprovisioned_services.html", "Unprovisioned services" ));
+myMenu10.add(new WebFXMenuSeparator());
+var myMenu11 = new WebFXMenu;
+myMenu11.emptyText = '';
+myMenu11.add(new WebFXMenuItem("All accounts by Username", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=username", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts by UID", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=uid", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts with Time Remaining", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=seconds", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts by Last login", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=last_login", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts never logged in", "http://localhost/freeside/search/svc_acct.cgi?magic=nologin;sortby=svcnum", "" ));
+myMenu11.add(new WebFXMenuItem("Advanced account reports", "http://localhost/freeside/search/report_svc_acct.html", "" ));
+myMenu11.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Accounts", null, "Access accounts and mailboxes", myMenu11 ));
+var myMenu12 = new WebFXMenu;
+myMenu12.emptyText = '';
+myMenu12.add(new WebFXMenuItem("All domains", "http://localhost/freeside/search/svc_domain.cgi?magic=all;sortby=domain", "" ));
+myMenu12.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Domains", null, "Domains", myMenu12 ));
+var myMenu13 = new WebFXMenu;
+myMenu13.emptyText = '';
+myMenu13.add(new WebFXMenuItem("All certificates", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cert;magic=all;sortby=svcnum", "" ));
+myMenu13.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Certificates", null, "Example services", myMenu13 ));
+var myMenu14 = new WebFXMenu;
+myMenu14.emptyText = '';
+myMenu14.add(new WebFXMenuItem("All mail forwards", "http://localhost/freeside/search/svc_forward.cgi?magic=all;sortby=svcnum", "" ));
+myMenu14.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Mail forwards", null, "Mail forwards", myMenu14 ));
+var myMenu15 = new WebFXMenu;
+myMenu15.emptyText = '';
+myMenu15.add(new WebFXMenuItem("All mailing lists", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_mailinglist;magic=all;sortby=svcnum", "" ));
+myMenu15.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Mailing lists", null, "Mailing lists", myMenu15 ));
+var myMenu16 = new WebFXMenu;
+myMenu16.emptyText = '';
+myMenu16.add(new WebFXMenuItem("All virtual hosting services", "http://localhost/freeside/search/svc_www.cgi?magic=all;sortby=svcnum", "" ));
+myMenu16.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Virtual hosting services", null, "Virtual hosting services", myMenu16 ));
+var myMenu17 = new WebFXMenu;
+myMenu17.emptyText = '';
+myMenu17.add(new WebFXMenuItem("All wireless broadband services", "http://localhost/freeside/search/svc_broadband.cgi?magic=all;sortby=svcnum", "" ));
+myMenu17.add(new WebFXMenuItem("Advanced wireless broadband reports", "http://localhost/freeside/search/report_svc_broadband.html", "" ));
+myMenu17.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Wireless broadband services", null, "Fixed wireless broadband services", myMenu17 ));
+var myMenu18 = new WebFXMenu;
+myMenu18.emptyText = '';
+myMenu18.add(new WebFXMenuItem("All cable subscribers by Service", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=svcnum", "" ));
+myMenu18.add(new WebFXMenuItem("All cable subscribers by Serial number", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=serialnum", "" ));
+myMenu18.add(new WebFXMenuItem("All cable subscribers by MAC address", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=mac_addr", "" ));
+myMenu18.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Cable Subscribers", null, "Cable Subscribers", myMenu18 ));
+var myMenu19 = new WebFXMenu;
+myMenu19.emptyText = '';
+myMenu19.add(new WebFXMenuItem("All DSLs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_dsl;magic=all;sortby=phonenum", "" ));
+myMenu19.add(new WebFXMenuItem("Qualifications", "http://localhost/freeside/search/qual.cgi", "" ));
+myMenu19.width = 256;
+
+myMenu10.add(new WebFXMenuItem("DSLs", null, "DSLs", myMenu19 ));
+var myMenu20 = new WebFXMenu;
+myMenu20.emptyText = '';
+myMenu20.add(new WebFXMenuItem("All dish services", "http://localhost/freeside/search/svc_dish.cgi?magic=all;sortby=svcnum", "" ));
+myMenu20.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Dish services", null, "Dish services", myMenu20 ));
+var myMenu21 = new WebFXMenu;
+myMenu21.emptyText = '';
+myMenu21.add(new WebFXMenuItem("All hardware", "http://localhost/freeside/search/svc_hardware.cgi?magic=all;sortby=svcnum", "" ));
+myMenu21.add(new WebFXMenuItem("Advanced hardware reports", "http://localhost/freeside/search/report_svc_hardware.html", "" ));
+myMenu21.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Hardware", null, "Hardware", myMenu21 ));
+var myMenu22 = new WebFXMenu;
+myMenu22.emptyText = '';
+myMenu22.add(new WebFXMenuItem("All phone numbers", "http://localhost/freeside/search/svc_phone.cgi?magic=all;sortby=phonenum", "" ));
+myMenu22.add(new WebFXMenuItem("Phone numbers' total usage by time period", "http://localhost/freeside/search/report_svc_phone_usage.html", "Total usage (minutes, and amount billed) for the specified time period, per phone number." ));
+myMenu22.add(new WebFXMenuItem("Phone numbers by state", "http://localhost/freeside/search/phone_state.html", "Current or historical phone services broken down by state." ));
+myMenu22.add(new WebFXMenuItem("Advanced phone number reports", "http://localhost/freeside/search/report_svc_phone.html", "" ));
+myMenu22.add(new WebFXMenuItem("Phone number (DID) availability", "http://localhost/freeside/search/report_phone_avail.html", "" ));
+myMenu22.add(new WebFXMenuItem("Inventory/Provisioning Status", "http://localhost/freeside/search/phone_inventory_provisioned.html", "" ));
+myMenu22.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Phone numbers", null, "Phone numbers", myMenu22 ));
+var myMenu23 = new WebFXMenu;
+myMenu23.emptyText = '';
+myMenu23.add(new WebFXMenuItem("All PBXs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_pbx;magic=all;sortby=svcnum", "" ));
+myMenu23.width = 256;
+
+myMenu10.add(new WebFXMenuItem("PBXs", null, "PBXs", myMenu23 ));
+var myMenu24 = new WebFXMenu;
+myMenu24.emptyText = '';
+myMenu24.add(new WebFXMenuItem("All circuits", "http://localhost/freeside/search/svc_circuit.cgi?magic=all;sortby=svcnum", "" ));
+myMenu24.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Circuits", null, "Voice and data circuit services", myMenu24 ));
+var myMenu25 = new WebFXMenu;
+myMenu25.emptyText = '';
+myMenu25.add(new WebFXMenuItem("All ports", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_port;magic=all;sortby=serviceid", "" ));
+myMenu25.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Ports", null, "Ports", myMenu25 ));
+var myMenu26 = new WebFXMenu;
+myMenu26.emptyText = '';
+myMenu26.add(new WebFXMenuItem("All alarm services", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_alarm;magic=all;sortby=acctnum", "" ));
+myMenu26.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Alarm services", null, "Alarm services", myMenu26 ));
+var myMenu27 = new WebFXMenu;
+myMenu27.emptyText = '';
+myMenu27.add(new WebFXMenuItem("All external services", "http://localhost/freeside/search/svc_external.cgi?magic=all;sortby=id", "" ));
+myMenu27.width = 256;
+
+myMenu10.add(new WebFXMenuItem("External services", null, "External services", myMenu27 ));
+myMenu10.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Services", null, "Services reports", myMenu10 ));
+var myMenu28 = new WebFXMenu;
+myMenu28.emptyText = '';
+myMenu28.add(new WebFXMenuItem("Inventory by agent", "http://localhost/freeside/search/report_agent_inventory.html", "" ));
+myMenu28.add(new WebFXMenuItem("Inventory activity", "http://localhost/freeside/search/report_h_inventory_item.html", "" ));
+myMenu28.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Inventory", null, "Inventory reports", myMenu28 ));
+var myMenu29 = new WebFXMenu;
+myMenu29.emptyText = '';
+myMenu29.add(new WebFXMenuItem("RADIUS sessions", "http://localhost/freeside/search/sqlradius.html", "" ));
+myMenu29.add(new WebFXMenuItem("RADIUS data usage", "http://localhost/freeside/search/report_sqlradius_usage.html", "" ));
+myMenu29.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/search/report_cdr.html", "" ));
+myMenu29.add(new WebFXMenuItem("Unrateable CDRs", "http://localhost/freeside/search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_", "" ));
+myMenu29.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Usage", null, "Usage reports", myMenu29 ));
+var myMenu30 = new WebFXMenu;
+myMenu30.emptyText = '';
+var myMenu31 = new WebFXMenu;
+myMenu31.emptyText = '';
+myMenu31.add(new WebFXMenuItem("Tickets per day per Queue", "http://localhost/freeside/rt/RTx/Statistics/CallsQueueDay", "View the number of tickets created, resolved or deleted in a specific Queue, over the requested period of days" ));
+myMenu31.add(new WebFXMenuItem("Ticket status by Queue", "http://localhost/freeside/rt/RTx/Statistics/OpenStalled", "View numbers of new, open and stalled tickets in a selected Queue" ));
+myMenu31.add(new WebFXMenuItem("Tickets per day (multiple Queues)", "http://localhost/freeside/rt/RTx/Statistics/CallsMultiQueue", "View tickets created, resolved or deleted on in one or more Queues over a specified time period" ));
+myMenu31.add(new WebFXMenuItem("Tickets per Day of Week", "http://localhost/freeside/rt/RTx/Statistics/DayOfWeek", "View trends showing when tickets are created, resolved or deleted" ));
+myMenu31.add(new WebFXMenuItem("Time to resolve", "http://localhost/freeside/rt/RTx/Statistics/Resolution", "View how long tickets take to be resolved by Queue" ));
+myMenu31.add(new WebFXMenuItem("Time to resolve (scatter graph)", "http://localhost/freeside/rt/RTx/Statistics/TimeToResolve", "View a detailed scatter graph of time to resolve tickets by Queue" ));
+myMenu31.width = 256;
+
+myMenu30.add(new WebFXMenuItem("Statistics", null, "", myMenu31 ));
+myMenu30.add(new WebFXMenuSeparator());
+myMenu30.add(new WebFXMenuItem("Advanced ticket reports", "http://localhost/freeside/rt/Search/Build.html?NewQuery=1", "List tickets by any criteria" ));
+myMenu30.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Tickets", null, "Ticket reports", myMenu30 ));
+var myMenu32 = new WebFXMenu;
+myMenu32.emptyText = '';
+var myMenu33 = new WebFXMenu;
+myMenu33.emptyText = '';
+myMenu33.add(new WebFXMenuItem("Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time.html", "Sales, credits and receipts summary graph" ));
+myMenu33.add(new WebFXMenuItem("Daily Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time_daily.html", "Sales, credits and receipts (broken down by day) summary graph" ));
+myMenu33.add(new WebFXMenuItem("Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg.html", "Sales report and graph (by agent, package class and/or date range)" ));
+myMenu33.add(new WebFXMenuItem("Rated Call Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg_detail.html", "Sales report and graph (by agent, package class, usage class and/or date range)" ));
+myMenu33.add(new WebFXMenuItem("Sales with Advertising Source", "http://localhost/freeside/search/report_cust_bill_pkg_referral.html", "" ));
+myMenu33.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Sales", null, "Sales reports", myMenu33 ));
+var myMenu34 = new WebFXMenu;
+myMenu34.emptyText = '';
+myMenu34.add(new WebFXMenuItem("Agent", "http://localhost/freeside/search/report_agent_commission.html", "" ));
+myMenu34.add(new WebFXMenuItem("Agent per package", "http://localhost/freeside/search/report_agent_commission_pkg.html", "" ));
+myMenu34.add(new WebFXMenuItem("Sales Person", "http://localhost/freeside/search/report_sales_commission.html", "" ));
+myMenu34.add(new WebFXMenuItem("Sales Person per package", "http://localhost/freeside/search/report_sales_commission_pkg.html", "" ));
+myMenu34.add(new WebFXMenuItem("Employee", "http://localhost/freeside/search/report_employee_commission.html", "" ));
+myMenu34.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Commissions", null, "Commission reports", myMenu34 ));
+var myMenu35 = new WebFXMenu;
+myMenu35.emptyText = '';
+myMenu35.add(new WebFXMenuItem("Credit Report", "http://localhost/freeside/search/report_cust_credit.html", "Credit report (by employee and/or date range)" ));
+myMenu35.add(new WebFXMenuItem("Credit package source detail", "http://localhost/freeside/search/report_cust_credit_source_bill_pkg.html", "Line-item detail for triggered package credits" ));
+myMenu35.add(new WebFXMenuItem("Credit application detail", "http://localhost/freeside/search/report_cust_credit_bill_pkg.html", "Line item application detail" ));
+myMenu35.add(new WebFXMenuItem("Unapplied Credits", "http://localhost/freeside/search/report_cust_credit.html?unapplied=1", "Unapplied credit report (by type and/or date range)" ));
+myMenu35.add(new WebFXMenuItem("Voided Credits", "http://localhost/freeside/search/report_cust_credit_void.html", "Voided credit report (by employee and/or date range)" ));
+myMenu35.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Credits", null, "Credit reports", myMenu35 ));
+var myMenu36 = new WebFXMenu;
+myMenu36.emptyText = '';
+myMenu36.add(new WebFXMenuItem("Refund Report", "http://localhost/freeside/search/report_cust_refund.html", "Refund report (by type and/or date range)" ));
+myMenu36.add(new WebFXMenuItem("Unapplied Refunds", "http://localhost/freeside/search/report_cust_refund.html?unapplied=1", "Unapplied refund report (by type and/or date range)" ));
+myMenu36.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Refunds", null, "Refund reports", myMenu36 ));
+myMenu32.add(new WebFXMenuItem("A/R Aging", "http://localhost/freeside/search/report_receivables.html", "Accounts Receivable Aging report" ));
+myMenu32.add(new WebFXMenuItem("Prepaid Income", "http://localhost/freeside/search/report_prepaid_income.html", "Prepaid income (unearned revenue)  report" ));
+myMenu32.add(new WebFXMenuItem("Tax Liability", "http://localhost/freeside/search/report_tax.html", "Tax liability report (internal tax data)" ));
+myMenu32.add(new WebFXMenuItem("E911 Fee Summary", "http://localhost/freeside/search/report_e911.html", "E911 fee summary" ));
+myMenu32.add(new WebFXMenuItem("Customer Accounting Summary", "http://localhost/freeside/search/report_customer_accounting_summary.html", "Customer accounting summary report" ));
+myMenu32.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Financial (Receivables)", null, "Financial reports (Receivables)", myMenu32 ));
+var myMenu37 = new WebFXMenu;
+myMenu37.emptyText = '';
+myMenu37.add(new WebFXMenuItem("Payables summary", "http://localhost/freeside/search/report_vend_main.html", "Payables summary by vendor" ));
+myMenu37.add(new WebFXMenuItem("Payables detail", "http://localhost/freeside/search/report_vend_bill.html", "" ));
+myMenu37.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Financial (Payables)", null, "Financial reports (Payables)", myMenu37 ));
+var myMenu38 = new WebFXMenu;
+myMenu38.emptyText = '';
+var myMenu39 = new WebFXMenu;
+myMenu39.emptyText = '';
+myMenu39.add(new WebFXMenuItem("All billing events", "http://localhost/freeside/search/report_cust_event.html", "All billing events for a date range" ));
+myMenu39.add(new WebFXMenuItem("Billing event errors", "http://localhost/freeside/search/report_cust_event.html?failed=1", "Failed credit cards, processor or printer problems, etc." ));
+myMenu39.width = 256;
+
+myMenu38.add(new WebFXMenuItem("Billing events", null, "Billing events", myMenu39 ));
+myMenu38.add(new WebFXMenuItem("Credit limit incidents", "http://localhost/freeside/search/report_cust_main_credit_limit.html", "" ));
+myMenu38.add(new WebFXMenuItem("Employee activity", "http://localhost/freeside/search/report_employee_audit.html", "" ));
+myMenu38.add(new WebFXMenuItem("System log", "http://localhost/freeside/search/log.html", "View system events and debugging information." ));
+myMenu38.add(new WebFXMenuItem("Outgoing messages", "http://localhost/freeside/search/cust_msg.html", "View outgoing message log" ));
+myMenu38.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Logs", null, "System and email logs", myMenu38 ));
+myMenu0.width = 256;
+
+          myBar.add(new WebFXMenuButton('Reports', null, 'Lists, reporting and graphing', myMenu0 ));
+
+
+          var myMenu40 = new WebFXMenu;
+myMenu40.emptyText = '';
+var myMenu41 = new WebFXMenu;
+myMenu41.emptyText = '';
+myMenu41.add(new WebFXMenuItem("Appointments", "http://localhost/freeside/rt/Search/Schedule.html?LengthMin=0", "View appointment schedule" ));
+myMenu41.add(new WebFXMenuItem("Attachments", "http://localhost/freeside/browse/cust_attachment.html", "View customer attachments" ));
+myMenu41.add(new WebFXMenuItem("Customer email settings", "http://localhost/freeside/misc/manage_cust_email.html", "" ));
+myMenu41.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Customers", null, "Customer tools", myMenu41 ));
+var myMenu42 = new WebFXMenu;
+myMenu42.emptyText = '';
+myMenu42.add(new WebFXMenuItem("Quick payment entry", "http://localhost/freeside/misc/batch-cust_pay.html", "Enter multiple payments in a batch" ));
+myMenu42.add(new WebFXMenuItem("Download invoice batches", "http://localhost/freeside/search/bill_batch.cgi", "" ));
+myMenu42.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Billing", null, "Payment and invoice tools", myMenu42 ));
+var myMenu43 = new WebFXMenu;
+myMenu43.emptyText = '';
+var myMenu44 = new WebFXMenu;
+myMenu44.emptyText = '';
+myMenu44.add(new WebFXMenuItem("Overview", "http://localhost/freeside/rt/Articles/index.html", "" ));
+myMenu44.add(new WebFXMenuItem("Search", "http://localhost/freeside/rt/Articles/Article/Search.html", "" ));
+myMenu44.add(new WebFXMenuItem("Topics", "http://localhost/freeside/rt/Articles/Topics.html", "" ));
+myMenu44.width = 256;
+
+myMenu43.add(new WebFXMenuItem("Articles", null, "", myMenu44 ));
+myMenu43.add(new WebFXMenuItem("My Day", "http://localhost/freeside/rt/Tools/MyDay.html", "" ));
+myMenu43.add(new WebFXMenuItem("My Reminders", "http://localhost/freeside/rt/Tools/MyReminders.html", "" ));
+myMenu43.add(new WebFXMenuItem("Offline", "http://localhost/freeside/rt/Tools/Offline.html", "" ));
+myMenu43.add(new WebFXMenuItem("Approval", "http://localhost/freeside/rt/Approvals/", "" ));
+myMenu43.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Ticketing", null, "Ticketing tools", myMenu43 ));
+var myMenu45 = new WebFXMenu;
+myMenu45.emptyText = '';
+myMenu45.add(new WebFXMenuItem("Bulk DID Orders", "http://localhost/freeside/browse/did_order.html", "View/manage bulk DID orders" ));
+myMenu45.add(new WebFXMenuItem("Business card scan", "http://localhost/freeside/edit/prospect_main-upload.html", "" ));
+myMenu45.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu45 ));
+var myMenu46 = new WebFXMenu;
+myMenu46.emptyText = '';
+myMenu46.add(new WebFXMenuItem("Customers", "http://localhost/freeside/misc/cust_main-import.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/misc/part_pkg-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Customer packages", "http://localhost/freeside/misc/cust_pkg-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Customer comments", "http://localhost/freeside/misc/cust_main_note-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("One-time charges", "http://localhost/freeside/misc/cust_main-import_charges.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Payments", "http://localhost/freeside/misc/cust_pay-import.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Credits", "http://localhost/freeside/misc/cust_credit-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Phone numbers (DIDs)", "http://localhost/freeside/misc/phone_avail-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/misc/cdr-import.html", "" ));
+myMenu46.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Importing", null, "Import tools", myMenu46 ));
+var myMenu47 = new WebFXMenu;
+myMenu47.emptyText = '';
+myMenu47.add(new WebFXMenuItem("Status", "http://localhost/freeside/view/Status.html", "System status" ));
+myMenu47.add(new WebFXMenuItem("Job Queue", "http://localhost/freeside/search/queue.html", "View pending job queue" ));
+myMenu47.width = 256;
+
+myMenu40.add(new WebFXMenuItem("System", null, "System tools", myMenu47 ));
+myMenu40.width = 256;
+
+          myBar.add(new WebFXMenuButton('Tools', null, 'Tools', myMenu40 ));
+
+
+          var myMenu48 = new WebFXMenu;
+myMenu48.emptyText = '';
+myMenu48.add(new WebFXMenuItem("Settings", "http://localhost/freeside/config/config-view.cgi", "" ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu49 = new WebFXMenu;
+myMenu49.emptyText = '';
+myMenu49.add(new WebFXMenuItem("Agent types", "http://localhost/freeside/browse/agent_type.cgi", "Agent types define groups of package definitions that you can then assign to particular agents" ));
+myMenu49.add(new WebFXMenuItem("Agents", "http://localhost/freeside/browse/agent.cgi", "Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type)" ));
+myMenu49.add(new WebFXMenuItem("Agent payment gateways", "http://localhost/freeside/browse/payment_gateway.html", "Credit card and electronic check processors for agent overrides" ));
+myMenu49.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Companies", null, "", myMenu49 ));
+var myMenu50 = new WebFXMenu;
+myMenu50.emptyText = '';
+myMenu50.add(new WebFXMenuItem("Sales People", "http://localhost/freeside/browse/sales.html", "Sales people bring in new business." ));
+myMenu50.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Sales People", null, "", myMenu50 ));
+var myMenu51 = new WebFXMenu;
+myMenu51.emptyText = '';
+myMenu51.add(new WebFXMenuItem("Employees", "http://localhost/freeside/browse/access_user.html", "Setup internal users" ));
+myMenu51.add(new WebFXMenuItem("Employee groups", "http://localhost/freeside/browse/access_group.html", "Employee groups allow you to control access to the backend" ));
+myMenu51.add(new WebFXMenuItem("Installer availability", "http://localhost/freeside/browse/sched_item.html", "Installer availability" ));
+myMenu51.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Employees", null, "", myMenu51 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu52 = new WebFXMenu;
+myMenu52.emptyText = '';
+myMenu52.add(new WebFXMenuItem("Customer tags", "http://localhost/freeside/browse/part_tag.html", "" ));
+myMenu52.add(new WebFXMenuItem("Customer classes", "http://localhost/freeside/browse/cust_class.html", "Customer classes define groups of customers for reporting." ));
+myMenu52.add(new WebFXMenuItem("Customer categories", "http://localhost/freeside/browse/cust_category.html", "Customer categories define groups of customer classes." ));
+myMenu52.add(new WebFXMenuSeparator());
+myMenu52.add(new WebFXMenuItem("Contact types", "http://localhost/freeside/browse/contact_class.html", "" ));
+myMenu52.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Customers", null, "", myMenu52 ));
+var myMenu53 = new WebFXMenu;
+myMenu53.emptyText = '';
+myMenu53.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/browse/part_pkg.cgi", "One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services" ));
+myMenu53.add(new WebFXMenuItem("Package classes", "http://localhost/freeside/browse/pkg_class.html", "Package classes define groups of packages, for taxation, ordering convenience and reporting." ));
+myMenu53.add(new WebFXMenuItem("Package categories", "http://localhost/freeside/browse/pkg_category.html", "Package categories define groups of package classes, for invoice sections." ));
+myMenu53.add(new WebFXMenuItem("Package report classes", "http://localhost/freeside/browse/part_pkg_report_option.html", "Package classes define optional groups of packages for reporting only." ));
+myMenu53.add(new WebFXMenuItem("Fees", "http://localhost/freeside/browse/part_fee.html", "" ));
+myMenu53.add(new WebFXMenuItem("Discounts", "http://localhost/freeside/browse/discount.html", "" ));
+myMenu53.add(new WebFXMenuItem("Discount classes", "http://localhost/freeside/browse/discount_class.html", "" ));
+var myMenu54 = new WebFXMenu;
+myMenu54.emptyText = '';
+myMenu54.add(new WebFXMenuItem("Cancel reasons", "http://localhost/freeside/browse/reason.html?class=C", "Cancel reasons explain why a service was cancelled." ));
+myMenu54.add(new WebFXMenuItem("Cancel reason types", "http://localhost/freeside/browse/reason_type.html?class=C", "Cancel reason types define groups of reasons." ));
+myMenu54.add(new WebFXMenuItem("Suspend reasons", "http://localhost/freeside/browse/reason.html?class=S", "Suspend reasons explain why a service was suspended." ));
+myMenu54.add(new WebFXMenuItem("Suspend reason types", "http://localhost/freeside/browse/reason_type.html?class=S", "Suspend reason types define groups of reasons." ));
+myMenu54.width = 256;
+
+myMenu53.add(new WebFXMenuItem("Cancel/Suspend Reasons", null, "", myMenu54 ));
+myMenu53.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Packages", null, "", myMenu53 ));
+var myMenu55 = new WebFXMenu;
+myMenu55.emptyText = '';
+myMenu55.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi", "Services are items you offer to your customers" ));
+myMenu55.add(new WebFXMenuItem("Service classes", "http://localhost/freeside/browse/part_svc_class.html", "Services classes are user-defined, informational types for services" ));
+myMenu55.add(new WebFXMenuItem("Service dependencies", "http://localhost/freeside/browse/part_svc_link.html", "Services depencies define rules between service definitions" ));
+myMenu55.add(new WebFXMenuItem("Provisioning exports", "http://localhost/freeside/browse/part_export.cgi", "Provisioning services to external machines, databases and APIs" ));
+var myMenu56 = new WebFXMenu;
+myMenu56.emptyText = '';
+myMenu56.add(new WebFXMenuItem("Access numbers", "http://localhost/freeside/browse/svc_acct_pop.cgi", "Points of Presence" ));
+myMenu56.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Dialup", null, "", myMenu56 ));
+var myMenu57 = new WebFXMenu;
+myMenu57.emptyText = '';
+myMenu57.add(new WebFXMenuItem("Towers", "http://localhost/freeside/browse/tower.html", "Towers and sectors" ));
+myMenu57.add(new WebFXMenuItem("Routers", "http://localhost/freeside/browse/router.cgi", "Broadband access routers" ));
+myMenu57.add(new WebFXMenuItem("Address blocks", "http://localhost/freeside/browse/addr_block.cgi", "Manage address blocks and block assignments to broadband routers" ));
+myMenu57.add(new WebFXMenuItem("Address ranges", "http://localhost/freeside/browse/addr_range.html", "Designate special address ranges" ));
+myMenu57.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Wireless broadband", null, "", myMenu57 ));
+var myMenu58 = new WebFXMenu;
+myMenu58.emptyText = '';
+myMenu58.add(new WebFXMenuItem("View/Edit phone device types", "http://localhost/freeside/browse/part_device.html", "Phone device types" ));
+myMenu58.add(new WebFXMenuItem("View/Edit bulk DID vendors", "http://localhost/freeside/browse/did_vendor.html", "Bulk DID vendors" ));
+myMenu58.add(new WebFXMenuItem("View/Edit Carriers", "http://localhost/freeside/browse/cdr_carrier.html", "Carriers" ));
+myMenu58.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Phone", null, "", myMenu58 ));
+var myMenu59 = new WebFXMenu;
+myMenu59.emptyText = '';
+myMenu59.add(new WebFXMenuItem("RADIUS Groups", "http://localhost/freeside/browse/radius_group.html", "Manage RADIUS groups" ));
+myMenu59.add(new WebFXMenuItem("RADIUS Clients", "http://localhost/freeside/browse/nas.html", "Manage RADIUS clients" ));
+myMenu59.width = 256;
+
+myMenu55.add(new WebFXMenuItem("RADIUS", null, "", myMenu59 ));
+var myMenu60 = new WebFXMenu;
+myMenu60.emptyText = '';
+myMenu60.add(new WebFXMenuItem("Cable providers", "http://localhost/freeside/browse/cable_provider.html", "" ));
+myMenu60.add(new WebFXMenuItem("Cable modem models", "http://localhost/freeside/browse/cable_model.html", "" ));
+myMenu60.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Cable", null, "", myMenu60 ));
+var myMenu61 = new WebFXMenu;
+myMenu61.emptyText = '';
+myMenu61.add(new WebFXMenuItem("Conferencing types", "http://localhost/freeside/browse/conferencing_type.html", "" ));
+myMenu61.add(new WebFXMenuItem("Quality levels", "http://localhost/freeside/browse/conferencing_quality.html", "" ));
+myMenu61.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Conferencing", null, "", myMenu61 ));
+var myMenu62 = new WebFXMenu;
+myMenu62.emptyText = '';
+myMenu62.add(new WebFXMenuItem("Alarm system vendors", "http://localhost/freeside/browse/alarm_system.html", "" ));
+myMenu62.add(new WebFXMenuItem("Alarm system types", "http://localhost/freeside/browse/alarm_type.html", "" ));
+myMenu62.add(new WebFXMenuItem("Alarm central stations", "http://localhost/freeside/browse/alarm_station.html", "" ));
+myMenu62.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Alarm", null, "", myMenu62 ));
+var myMenu63 = new WebFXMenu;
+myMenu63.emptyText = '';
+myMenu63.add(new WebFXMenuItem("Circuit types", "http://localhost/freeside/browse/circuit_type.html", "" ));
+myMenu63.add(new WebFXMenuItem("Circuit providers", "http://localhost/freeside/browse/circuit_provider.html", "" ));
+myMenu63.add(new WebFXMenuItem("Termination types", "http://localhost/freeside/browse/circuit_termination.html", "" ));
+myMenu63.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Circuits", null, "", myMenu63 ));
+myMenu55.add(new WebFXMenuItem("Hardware types", "http://localhost/freeside/browse/hardware_class.html", "Set up hardware type catalog" ));
+myMenu55.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Services", null, "", myMenu55 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu64 = new WebFXMenu;
+myMenu64.emptyText = '';
+myMenu64.add(new WebFXMenuItem("Vendor classes", "http://localhost/freeside/browse/vend_class.html", "" ));
+myMenu64.add(new WebFXMenuItem("Vendors", "http://localhost/freeside/browse/vend_main.html", "" ));
+myMenu64.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Vendors", null, "", myMenu64 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu65 = new WebFXMenu;
+myMenu65.emptyText = '';
+myMenu65.add(new WebFXMenuItem("Billing events", "http://localhost/freeside/browse/part_event.html", "Billing actions for customers, invoices and packages" ));
+myMenu65.add(new WebFXMenuItem("Invoice configurations", "http://localhost/freeside/browse/invoice_conf.html", "Adjust invoice settings for special-purpose notices" ));
+myMenu65.add(new WebFXMenuItem("Invoice templates", "http://localhost/freeside/browse/invoice_template.html", "Edit templates for HTML, plaintext and typeset invoices" ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Prepaid cards", "http://localhost/freeside/search/prepay_credit.html", "View outstanding cards, generate new cards" ));
+var myMenu66 = new WebFXMenu;
+myMenu66.emptyText = '';
+myMenu66.add(new WebFXMenuItem("Rate plans", "http://localhost/freeside/browse/rate.cgi", "Manage rate plans" ));
+myMenu66.add(new WebFXMenuItem("Regions and prefixes", "http://localhost/freeside/browse/rate_region.html", "Manage regions and prefixes" ));
+myMenu66.add(new WebFXMenuItem("Usage classes", "http://localhost/freeside/browse/usage_class.html", "Usage classes define groups of usage for taxation." ));
+myMenu66.add(new WebFXMenuItem("Time periods", "http://localhost/freeside/browse/rate_time.html", "Time periods define days and hours for rate plans" ));
+myMenu66.add(new WebFXMenuItem("Edit rates with Excel", "http://localhost/freeside/misc/rate_edit_excel.html", "Download and edit rates with Excel, then upload changes." ));
+myMenu66.add(new WebFXMenuSeparator());
+myMenu66.add(new WebFXMenuItem("Tiering plans", "http://localhost/freeside/browse/rate_tier.html", "Rating tiers" ));
+myMenu66.width = 256;
+
+myMenu65.add(new WebFXMenuItem("Call rates and regions", null, "Manage rate plans, regions and prefixes for VoIP and call billing", myMenu66 ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Locales and tax rates", "http://localhost/freeside/browse/cust_main_county.cgi", "Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each" ));
+myMenu65.add(new WebFXMenuItem("Tax classes", "http://localhost/freeside/browse/part_pkg_taxclass.html", "Tax classes" ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Credit reasons", "http://localhost/freeside/browse/reason.html?class=R", "Credit reasons explain why a credit was issued." ));
+myMenu65.add(new WebFXMenuItem("Credit reason types", "http://localhost/freeside/browse/reason_type.html?class=R", "Credit reason types define groups of reasons." ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Refund reasons", "http://localhost/freeside/browse/reason.html?class=F", "Refund reasons explain why a refund was issued." ));
+myMenu65.add(new WebFXMenuItem("Refund reason types", "http://localhost/freeside/browse/reason_type.html?class=F", "Refund reason types define groups of reasons." ));
+myMenu65.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu67 = new WebFXMenu;
+myMenu67.emptyText = '';
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
+myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
+myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
+myMenu67.add(new WebFXMenuItem("Inventory classes and inventory", "http://localhost/freeside/browse/inventory_class.html", "Setup inventory classes and stock inventory" ));
+myMenu67.add(new WebFXMenuItem("Upload targets", "http://localhost/freeside/browse/upload_target.html", "Billing and payment upload destinations" ));
+myMenu67.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu67 ));
+myMenu48.width = 256;
+
+          myBar.add(new WebFXMenuButton('Configuration', null, 'Configuration and setup', myMenu48 ));
+
+
+          var myMenu68 = new WebFXMenu;
+myMenu68.emptyText = '';
+myMenu68.add(new WebFXMenuItem("Billing documentation", "http://www.freeside.biz/mediawiki/index.php/Freeside:4:Documentation", "Freeside documentation" ));
+myMenu68.add(new WebFXMenuItem("Ticketing documentation", "http://wiki.bestpractical.com/", "Request Tracker Wiki" ));
+myMenu68.add(new WebFXMenuSeparator());
+myMenu68.add(new WebFXMenuItem("About Freeside v5.0git", "javascript:about_freeside()", "" ));
+myMenu68.add(new WebFXMenuItem("About RT v4.2.11", "http://www.bestpractical.com/rt", "Request Tracker Homepage" ));
+myMenu68.width = 256;
+
+          myBar.add(new WebFXMenuButton('Help', null, '', myMenu68 ));
+
+
+  myBar.show( null, 'vertical' );
+  myBar.width = 154;
+
+</SCRIPT>
+
+
+
+
+      <link rel="stylesheet" href="http://localhost/freeside/elements/jquery-ui.min.css">
+      <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
+      <SCRIPT SRC="http://localhost/freeside/elements/jquery-ui.min.js"></SCRIPT>
+    
+    
+
+    
+
+  </HEAD>
+  <BODY BGCOLOR="#f8f8f8"  STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px">
+    <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead">
+      <tr>
+        <td BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="http://localhost/freeside/view/REAL_logo.cgi"></td>
+        <td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
+          <font size=6>Freeside Test 5.0.1</font>
+        </td>
+        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b>test&nbsp;</b> <FONT SIZE="-2"><a href="http://localhost/freeside/loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="http://localhost/freeside/pref/pref.html" STYLE="color: #000000">Preferences</a>
+          <BR></FONT>
+        </td>
+      </tr>
+    </table>
+
+    <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
+
+<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
+
+
+      <TR CLASS="fsmenubar">
+
+
+        <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd">
+          <SCRIPT TYPE="text/javascript">
+            document.write(myBar);
+          </SCRIPT>
+        </TD>
+
+      </TR>
+
+      <TR CLASS="fssearchbar">
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/prospect_main.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="search_prospect" TYPE="text" VALUE="(name, company or phone)" STYLE="width:155px" onFocus="clearhint_search_prospect(this);" onClick="clearhint_search_prospect(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside/search/report_prospect_main.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>
+    <INPUT TYPE="submit" VALUE="Search prospects" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_prospect (what) {
+    if ( what.value == '(name, company or phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_main.cgi" METHOD="POST" STYLE="margin:0">
+    <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or contact phone)" STYLE="width:246px" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside/search/report_cust_main.html" CLASS="fslink" STYLE="font-size: 11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_cust (what) {
+    if ( what.value == '(cust #, name, company or contact phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center">
+          
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_address2 (what) {
+    if ( what.value == '(Unit #)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline">
+    <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" STYLE="width:56px" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" CLASS="fstext">
+    <A HREF="http://localhost/freeside/search/report_cust_bill.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>    <BR>
+    <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px;margin-top:3px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_invoice (what) {
+    if ( what.value == '(inv #)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_svc.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="search_svc" TYPE="text" VALUE="(user, email, ip, mac, domain or service phone)" STYLE="width:271px" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" CLASS="fstext"><BR>
+    <A NOTYET="http://localhost/freeside/search/svc_Smarter.html" STYLE="color: #cccccc; font-size:11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_svc (what) {
+    if ( what.value == '(user, email, ip, mac, domain or service phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px">
+          
+  <FORM ACTION="http://localhost/freeside//rt/index.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="q" TYPE="text" VALUE="(ticket #, subject, email or fulltext:text)" STYLE="width:223px" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside//rt/Search/Build.html?NewQuery=1" CLASS="fslink" STYLE="font-size:11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_ticket (what) {
+    if ( what.value == '(ticket #, subject, email or fulltext:text)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+      </TR>
+    </TABLE>
+
+
+
+    <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4>
+
+      <TR HEIGHT="100%">
+
+    <BR>
+        <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> -->
+
+          <H1>
+            Invoice Search Results
+          </H1>
+
+          <BR>
+
+          
+   <A HREF="javascript:confirm_print_process()" >Print these invoices</A> | <A HREF="javascript:confirm_email_process()" >Email these invoices</A>
+
+<BR><BR>
+
+
+
+
+        <SCRIPT TYPE="text/javascript">
+
+  function rs_init_object() {
+    var A;
+    try {
+      A=new ActiveXObject("Msxml2.XMLHTTP");
+    } catch (e) {
+      try {
+        A=new ActiveXObject("Microsoft.XMLHTTP");
+      } catch (oc) {
+        A=null;
+      }
+    }
+    if(!A && typeof XMLHttpRequest != "undefined")
+      A = new XMLHttpRequest();
+    if (!A)
+      alert("Can't create XMLHttpRequest object");
+    return A;
+
+  }
+
+</SCRIPT>
+
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_iframe.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_draggable.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_crossframe.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/iframecontentmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/ajaxcontentmws.js"></SCRIPT>
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function print_start_job() {
+        // count args; build URL
+        var url = "../misc/print_invoices.cgi";
+        var a = print_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function print_process () {
+
+  //alert('print_process for form print_form');
+
+  if ( document.print_form.submit.disabled == false ) {
+    document.print_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.print_form.elements.length; i++) {
+    field  = document.print_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.print_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/print_invoices.cgi', print_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', print_myCallback )' );
+  //alert('start_job()' );
+  print_start_job( Hash, print_myCallback );
+
+}
+
+function print_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=print_form&message=Invoices+re-printed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="print_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function email_start_job() {
+        // count args; build URL
+        var url = "../misc/email_invoices.cgi";
+        var a = email_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function email_process () {
+
+  //alert('email_process for form email_form');
+
+  if ( document.email_form.submit.disabled == false ) {
+    document.email_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.email_form.elements.length; i++) {
+    field  = document.email_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.email_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/email_invoices.cgi', email_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', email_myCallback )' );
+  //alert('start_job()' );
+  email_start_job( Hash, email_myCallback );
+
+}
+
+function email_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=email_form&message=Invoices+re-emailed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="email_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function fax_start_job() {
+        // count args; build URL
+        var url = "../misc/fax_invoices.cgi";
+        var a = fax_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function fax_process () {
+
+  //alert('fax_process for form fax_form');
+
+  if ( document.fax_form.submit.disabled == false ) {
+    document.fax_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.fax_form.elements.length; i++) {
+    field  = document.fax_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.fax_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/fax_invoices.cgi', fax_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', fax_myCallback )' );
+  //alert('start_job()' );
+  fax_start_job( Hash, fax_myCallback );
+
+}
+
+function fax_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=fax_form&message=Invoices+re-faxed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="fax_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function ftp_start_job() {
+        // count args; build URL
+        var url = "../misc/ftp_invoices.cgi";
+        var a = ftp_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function ftp_process () {
+
+  //alert('ftp_process for form ftp_form');
+
+  if ( document.ftp_form.submit.disabled == false ) {
+    document.ftp_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.ftp_form.elements.length; i++) {
+    field  = document.ftp_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.ftp_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/ftp_invoices.cgi', ftp_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', ftp_myCallback )' );
+  //alert('start_job()' );
+  ftp_start_job( Hash, ftp_myCallback );
+
+}
+
+function ftp_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=ftp_form&message=Invoices+re-ftped';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="ftp_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function spool_start_job() {
+        // count args; build URL
+        var url = "../misc/spool_invoices.cgi";
+        var a = spool_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function spool_process () {
+
+  //alert('spool_process for form spool_form');
+
+  if ( document.spool_form.submit.disabled == false ) {
+    document.spool_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.spool_form.elements.length; i++) {
+    field  = document.spool_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.spool_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/spool_invoices.cgi', spool_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', spool_myCallback )' );
+  //alert('start_job()' );
+  spool_start_job( Hash, spool_myCallback );
+
+}
+
+function spool_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=spool_form&message=Invoices+re-spooled';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="spool_form">
+</FORM><SCRIPT TYPE="text/javascript">
+
+function confirm_print_process() {
+  if ( ! confirm('Are you sure you want to reprint these invoices?') ) {
+    return;
+  }
+  print_process();
+}
+function confirm_email_process() {
+  if ( ! confirm('Are you sure you want to re-email these invoices?') ) {
+    return;
+  }
+  email_process();
+}
+function confirm_fax_process() {
+  if ( ! confirm('Are you sure you want to re-fax these invoices?') ) {
+    return;
+  }
+  fax_process();
+}
+function confirm_ftp_process() {
+  if ( ! confirm('Are you sure you want to re-FTP these invoices?') ) {
+    return;
+  }
+  ftp_process();
+}
+function confirm_spool_process() {
+  if ( ! confirm('Are you sure you want to re-spool these invoices?') ) {
+    return;
+  }
+  spool_process();
+}
+
+</SCRIPT>
+
+
+
+        <TABLE>
+          <TR>
+
+            <TD VALIGN="bottom">
+
+              <FORM>
+
+                  1584 total invoices
+
+
+                  ( show <SELECT NAME="maxrecords" onChange="window.location = 'http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=' + this.options[this.selectedIndex].value;">
+
+                  <OPTION VALUE="100" SELECTED>100</OPTION>
+                  <OPTION VALUE="500" >500</OPTION>
+                  <OPTION VALUE="1000" >1000</OPTION>
+                  <OPTION VALUE="2500" >2500</OPTION>
+
+                 </SELECT> per page )
+
+
+                <BR>
+
+                      $141620.74 gross sales<BR>
+                      − $0.00 discounted<BR>
+                      − $0.00 credited<BR>
+                      = $141620.74 net sales<BR>
+                      $48352.49 outstanding balance<BR>
+              </FORM>
+
+            </TD>
+
+
+              <TD ALIGN="right" CLASS="noprint">
+
+                Download full results<BR>
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=invoices.xls">Excel spreadsheet</A><BR>
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=csv">CSV file</A><BR>
+
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html-print">printable copy</A>
+
+              </TD>
+
+          </TR>
+          <TR>
+            <TD COLSPAN=2>
+
+
+                
+        <FONT SIZE="+2">1</FONT>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
+
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
+
+
+
+                
+
+
+              
+<TABLE CLASS="grid" CELLSPACING=0 CELLPADDING=0 >
+
+
+
+
+<THEAD>
+
+  <TR>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "2"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=COALESCE%28%20agent_invid%2C%20invnum%20%29">Invoice #</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=gross">Gross Amount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=discounted">Discount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=credited">Credits</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=net">Net Amount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=owed">Balance</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=_date">Date</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      Cust. Status
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      Customer
+    </TH>
+  </TR>
+
+
+</THEAD>
+
+<TBODY>
+
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">1</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">Aug 07 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">3</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">Aug 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">2</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">Aug 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">4</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">Aug 09 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">5</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">Aug 12 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">6</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">Aug 13 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">7</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">Aug 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">8</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">Aug 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">9</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">Aug 15 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">10</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">Aug 17 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">11</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">Aug 17 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">13</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">Aug 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">12</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">Aug 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">16</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">14</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">15</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">17</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">Aug 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">18</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">Aug 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">Aug 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">Aug 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">21</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">Aug 30 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">22</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">Aug 31 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">Aug 31 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">25</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">33</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">36</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">45</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">24</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">43</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">26</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">42</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">29</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">27</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">38</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">37</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">40</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">34</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">46</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">30</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">31</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">39</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">44</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">28</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">47</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">49</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?171">Mante LLC (Kessler, Enid)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">48</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?99">Luettgen-Jacobs (Hintz, Junior)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">50</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">Sep 03 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?75">Hoeger-Brown (Shields, Serenity)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">51</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">Sep 04 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?109">Lind-Bahringer (Ratke, Roma)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">53</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">Sep 06 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?147">Pfeffer, Shanahan and Cruickshank (Kutch, Rosario)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">52</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">Sep 06 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?94">McKenzie, Kareem</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">54</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">Sep 07 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">56</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">Sep 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">Sep 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">57</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">Sep 09 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">58</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">Sep 10 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?3">Flatley-Hagenes (Donnelly, Odessa)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">59</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">Sep 12 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">60</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">Sep 13 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">61</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?34">Kunde, Noemi</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">63</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">62</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">64</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">Sep 15 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">Sep 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">66</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">Sep 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">70</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?196">Turcotte, Janessa</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">69</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">67</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?134">Stokes, Janelle</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">72</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">73</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">76</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">78</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?159">McLaughlin-Luettgen (Berge, Houston)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?52">Frami, Gayle</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">79</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">Sep 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">80</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">Sep 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?112">Gleason, Ahmed</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">81</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">Sep 23 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">82</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">Sep 24 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?66">Abbott, Addison</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">83</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">Sep 25 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">85</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">Sep 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?172">Rowe, Amara</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">Sep 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?130">Carter, Cathy</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">Sep 27 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?189">Rodriguez-Ebert (Bergstrom, Cecilia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">86</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">Sep 27 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?98">Gleichner, Delmer</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">92</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">89</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?30">Toy, Bethany</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">88</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">90</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?129">Quitzon Group (Davis, Jeffery)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?126">Kunze, Michale</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">95</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?121">Cole, Graham and Towne (Hickle, Javier)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">93</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?19">Toy-Gerlach (Zulauf, Sharon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">96</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">Sep 30 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">153</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">151</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">124</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">121</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
+
+
+    </TR>
+
+
+</TBODY>
+
+</TABLE>
+
+
+              
+        <FONT SIZE="+2">1</FONT>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
+
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=OPEN90_date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
+
+
+  
+            </TD>
+          </TR>
+        </TABLE>
+
+
+        
+
+                </TD>
+      </TR>
+    </TABLE>
+  </BODY>
+</HTML>
+
+
+
+
+
+
diff --git a/FS-Test/share/output/search/cust_bill.html/keywords=date:order_by=invnum b/FS-Test/share/output/search/cust_bill.html/keywords=date:order_by=invnum
new file mode 100644 (file)
index 0000000..0fbf9aa
--- /dev/null
@@ -0,0 +1,6044 @@
+
+            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>
+      Invoice Search Results
+    </TITLE>
+    <!-- per RT, to prevent IE compatibility mode -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
+    <META HTTP-Equiv="Cache-Control" Content="no-cache">
+    <META HTTP-Equiv="Pragma" Content="no-cache">
+    <META HTTP-Equiv="Expires" Content="0"> 
+
+    <script type="text/javascript" src="http://localhost/freeside/elements/cssexpr.js"></script>
+
+
+  <script type="text/javascript" src="http://localhost/freeside/elements/xmenu.top.js"></script>
+  <link href="http://localhost/freeside/elements/xmenu.top.css" type="text/css" rel="stylesheet">
+
+
+  <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
+  <link href="http://localhost/freeside/elements/freeside-print.css" type="text/css" rel="stylesheet" media="print">
+<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
+
+<SCRIPT TYPE="text/javascript">
+
+  function about_freeside() {
+    overlib( OLiframeContent('http://localhost/freeside/docs/about.html', 300, 375, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'About', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#7e0079', CGCOLOR, '#7e0079', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); 
+  }
+
+  webfxMenuImagePath      = "http://localhost/freeside/images/";
+  webfxMenuUseHover       = 1;
+  webfxMenuShowTime       = 300;
+  webfxMenuHideTime       = 500;
+
+  var myBar = new WebFXMenuBar;
+
+    
+          myBar.add(new WebFXMenuButton('Billing Main', "http://localhost/freeside/", 'Billing start page' ));
+
+    
+          myBar.add(new WebFXMenuButton('Ticketing Main', "http://localhost/freeside/rt/", 'Ticketing start page' ));
+
+    
+          myBar.add(new WebFXMenuButton('New prospect', "http://localhost/freeside/edit/prospect_main.html", 'Add a new prospect' ));
+
+    
+          myBar.add(new WebFXMenuButton('New customer', "http://localhost/freeside/edit/cust_main.cgi", 'Add a new customer' ));
+
+
+          var myMenu0 = new WebFXMenu;
+myMenu0.emptyText = '';
+var myMenu1 = new WebFXMenu;
+myMenu1.emptyText = '';
+myMenu1.add(new WebFXMenuItem("List prospects", "http://localhost/freeside/search/prospect_main.html", "" ));
+myMenu1.add(new WebFXMenuItem("Advanced prospect reports", "http://localhost/freeside/search/report_prospect_main.html", "" ));
+myMenu1.add(new WebFXMenuSeparator());
+myMenu1.add(new WebFXMenuItem("Prospect contacts", "http://localhost/freeside/search/report_contact.html?link=prospect_main", "" ));
+myMenu1.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Prospects", null, "Prospect reports", myMenu1 ));
+var myMenu2 = new WebFXMenu;
+myMenu2.emptyText = '';
+myMenu2.add(new WebFXMenuItem("List quotations", "http://localhost/freeside/search/quotation.html", "" ));
+myMenu2.add(new WebFXMenuItem("Advanced quotation reports", "http://localhost/freeside/search/report_quotation.html", "" ));
+myMenu2.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Quotations", null, "Quotation reports", myMenu2 ));
+var myMenu3 = new WebFXMenu;
+myMenu3.emptyText = '';
+var myMenu4 = new WebFXMenu;
+myMenu4.emptyText = '';
+myMenu4.add(new WebFXMenuItem("by customer number", "http://localhost/freeside/search/cust_main.cgi?browse=custnum", "" ));
+myMenu4.add(new WebFXMenuItem("by last name", "http://localhost/freeside/search/cust_main.cgi?browse=last", "" ));
+myMenu4.add(new WebFXMenuItem("by company name", "http://localhost/freeside/search/cust_main.cgi?browse=company", "" ));
+myMenu4.add(new WebFXMenuItem("by active trouble tickets", "http://localhost/freeside/search/cust_main.cgi?browse=tickets", "" ));
+myMenu4.width = 256;
+
+myMenu3.add(new WebFXMenuItem("List customers", null, "List customers", myMenu4 ));
+myMenu3.add(new WebFXMenuItem("Zip code distribution", "http://localhost/freeside/search/report_cust_main-zip.html", "Zip codes by number of customers" ));
+myMenu3.add(new WebFXMenuItem("Customer signup report", "http://localhost/freeside/graph/report_cust_signup.html", "New customer signups by date" ));
+myMenu3.add(new WebFXMenuItem("Customer churn report", "http://localhost/freeside/graph/report_cust_churn.html", "New customers, suspensions, and cancellations summary" ));
+myMenu3.add(new WebFXMenuItem("Signup date report", "http://localhost/freeside/graph/report_signupdate.html", "Signup date report (by date of signup)" ));
+myMenu3.add(new WebFXMenuItem("Advanced customer reports", "http://localhost/freeside/search/report_cust_main.html", "by status, signup date, agent, etc." ));
+myMenu3.add(new WebFXMenuSeparator());
+myMenu3.add(new WebFXMenuItem("Customer contacts", "http://localhost/freeside/search/report_contact.html?link=cust_main", "" ));
+myMenu3.add(new WebFXMenuItem("Customer stored payment information", "http://localhost/freeside/search/report_cust_payby.html", "" ));
+myMenu3.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Customers", null, "Customer reports", myMenu3 ));
+var myMenu5 = new WebFXMenu;
+myMenu5.emptyText = '';
+var myMenu6 = new WebFXMenu;
+myMenu6.emptyText = '';
+myMenu6.add(new WebFXMenuItem("All open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN_date", "All invoices with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("15 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN15_date", "Invoices 15 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("30 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN30_date", "Invoices 30 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("60 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN60_date", "Invoices 60 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("90 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN90_date", "Invoices 90 days or older with an unpaid balance" ));
+myMenu6.add(new WebFXMenuItem("120 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN120_date", "Invoices 120 days or older with an unpaid balance" ));
+myMenu6.width = 256;
+
+myMenu5.add(new WebFXMenuItem("Open invoices", null, "Open invoices", myMenu6 ));
+myMenu5.add(new WebFXMenuItem("All invoices", "http://localhost/freeside/search/cust_bill.html?date", "List all invoices" ));
+myMenu5.add(new WebFXMenuItem("Advanced invoice reports", "http://localhost/freeside/search/report_cust_bill.html", "by agent, date range, etc." ));
+myMenu5.add(new WebFXMenuSeparator());
+myMenu5.add(new WebFXMenuItem("Line items", "http://localhost/freeside/search/report_cust_bill_pkg.html", "Individual line item detail" ));
+myMenu5.add(new WebFXMenuItem("Voided invoices", "http://localhost/freeside/search/report_cust_bill_void.html", "Search for voided invoices" ));
+myMenu5.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Invoices", null, "Invoice reports", myMenu5 ));
+var myMenu7 = new WebFXMenu;
+myMenu7.emptyText = '';
+myMenu7.add(new WebFXMenuItem("Discount graph", "http://localhost/freeside/graph/report_cust_bill_pkg_discount.html", "Discount overview per month" ));
+myMenu7.add(new WebFXMenuItem("Discount detail", "http://localhost/freeside/search/report_cust_bill_pkg_discount.html", "Discount report (by employee and/or date range)" ));
+myMenu7.add(new WebFXMenuItem("Package discounts", "http://localhost/freeside/search/report_cust_pkg_discount.html", "Active/inactive discounts by package" ));
+myMenu7.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Discounts", null, "Discount reports", myMenu7 ));
+var myMenu8 = new WebFXMenu;
+myMenu8.emptyText = '';
+myMenu8.add(new WebFXMenuItem("Payments", "http://localhost/freeside/search/report_cust_pay.html", "Payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Payment application detail", "http://localhost/freeside/search/report_cust_bill_pay_pkg.html", "Line item application detail" ));
+myMenu8.add(new WebFXMenuItem("Pending Payments", "http://localhost/freeside/search/cust_pay_pending.html?magic=_date;statusNOT=done", "Pending real-time payments" ));
+myMenu8.add(new WebFXMenuItem("Unapplied Payments", "http://localhost/freeside/search/report_cust_pay.html?unapplied=1", "Unapplied payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Voided Payments", "http://localhost/freeside/search/report_cust_pay.html?void=1", "Voided payment report (by type and/or date range)" ));
+myMenu8.add(new WebFXMenuItem("Unapplied Payment Aging", "http://localhost/freeside/search/report_unapplied_cust_pay.html", "Unapplied payment aging report" ));
+myMenu8.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Payments", null, "Payment reports", myMenu8 ));
+var myMenu9 = new WebFXMenu;
+myMenu9.emptyText = '';
+myMenu9.add(new WebFXMenuItem("Package definitions (by # active)", "http://localhost/freeside/browse/part_pkg.cgi?active=1", "Package definitions by number of active packages" ));
+myMenu9.add(new WebFXMenuItem("Package costs", "http://localhost/freeside/graph/report_cust_pkg_cost.html", "Package setup and recurring costs graph" ));
+myMenu9.add(new WebFXMenuSeparator());
+myMenu9.add(new WebFXMenuItem("Package churn", "http://localhost/freeside/graph/report_cust_pkg.html", "Orders, suspensions and cancellations summary graph" ));
+myMenu9.add(new WebFXMenuSeparator());
+myMenu9.add(new WebFXMenuItem("All customer packages", "http://localhost/freeside/search/cust_pkg.cgi?pkgnum", "List all customer packages" ));
+myMenu9.add(new WebFXMenuItem("Package summary", "http://localhost/freeside/search/cust_pkg_summary.html", "Show package sales summary" ));
+myMenu9.add(new WebFXMenuItem("Suspended customer packages", "http://localhost/freeside/search/cust_pkg.cgi?magic=suspended", "List suspended packages" ));
+myMenu9.add(new WebFXMenuItem("Suspension summary", "http://localhost/freeside/search/cust_pkg_susp.html", "Show suspension activity" ));
+myMenu9.add(new WebFXMenuItem("Customer packages with unconfigured services", "http://localhost/freeside/search/cust_pkg.cgi?APKG_pkgnum", "List packages which have provisionable services" ));
+myMenu9.add(new WebFXMenuItem("Advanced package reports", "http://localhost/freeside/search/report_cust_pkg.html", "by agent, date range, status, package definition" ));
+myMenu9.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Packages", null, "Package reports", myMenu9 ));
+var myMenu10 = new WebFXMenu;
+myMenu10.emptyText = '';
+myMenu10.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi?orderby=active", "Service definitions by number of active packages" ));
+myMenu10.add(new WebFXMenuSeparator());
+myMenu10.add(new WebFXMenuItem("Unprovisioned services", "http://localhost/freeside/search/report_unprovisioned_services.html", "Unprovisioned services" ));
+myMenu10.add(new WebFXMenuSeparator());
+var myMenu11 = new WebFXMenu;
+myMenu11.emptyText = '';
+myMenu11.add(new WebFXMenuItem("All accounts by Username", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=username", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts by UID", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=uid", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts with Time Remaining", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=seconds", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts by Last login", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=last_login", "" ));
+myMenu11.add(new WebFXMenuItem("All accounts never logged in", "http://localhost/freeside/search/svc_acct.cgi?magic=nologin;sortby=svcnum", "" ));
+myMenu11.add(new WebFXMenuItem("Advanced account reports", "http://localhost/freeside/search/report_svc_acct.html", "" ));
+myMenu11.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Accounts", null, "Access accounts and mailboxes", myMenu11 ));
+var myMenu12 = new WebFXMenu;
+myMenu12.emptyText = '';
+myMenu12.add(new WebFXMenuItem("All domains", "http://localhost/freeside/search/svc_domain.cgi?magic=all;sortby=domain", "" ));
+myMenu12.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Domains", null, "Domains", myMenu12 ));
+var myMenu13 = new WebFXMenu;
+myMenu13.emptyText = '';
+myMenu13.add(new WebFXMenuItem("All certificates", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cert;magic=all;sortby=svcnum", "" ));
+myMenu13.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Certificates", null, "Example services", myMenu13 ));
+var myMenu14 = new WebFXMenu;
+myMenu14.emptyText = '';
+myMenu14.add(new WebFXMenuItem("All mail forwards", "http://localhost/freeside/search/svc_forward.cgi?magic=all;sortby=svcnum", "" ));
+myMenu14.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Mail forwards", null, "Mail forwards", myMenu14 ));
+var myMenu15 = new WebFXMenu;
+myMenu15.emptyText = '';
+myMenu15.add(new WebFXMenuItem("All mailing lists", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_mailinglist;magic=all;sortby=svcnum", "" ));
+myMenu15.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Mailing lists", null, "Mailing lists", myMenu15 ));
+var myMenu16 = new WebFXMenu;
+myMenu16.emptyText = '';
+myMenu16.add(new WebFXMenuItem("All virtual hosting services", "http://localhost/freeside/search/svc_www.cgi?magic=all;sortby=svcnum", "" ));
+myMenu16.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Virtual hosting services", null, "Virtual hosting services", myMenu16 ));
+var myMenu17 = new WebFXMenu;
+myMenu17.emptyText = '';
+myMenu17.add(new WebFXMenuItem("All wireless broadband services", "http://localhost/freeside/search/svc_broadband.cgi?magic=all;sortby=svcnum", "" ));
+myMenu17.add(new WebFXMenuItem("Advanced wireless broadband reports", "http://localhost/freeside/search/report_svc_broadband.html", "" ));
+myMenu17.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Wireless broadband services", null, "Fixed wireless broadband services", myMenu17 ));
+var myMenu18 = new WebFXMenu;
+myMenu18.emptyText = '';
+myMenu18.add(new WebFXMenuItem("All cable subscribers by Service", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=svcnum", "" ));
+myMenu18.add(new WebFXMenuItem("All cable subscribers by Serial number", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=serialnum", "" ));
+myMenu18.add(new WebFXMenuItem("All cable subscribers by MAC address", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=mac_addr", "" ));
+myMenu18.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Cable Subscribers", null, "Cable Subscribers", myMenu18 ));
+var myMenu19 = new WebFXMenu;
+myMenu19.emptyText = '';
+myMenu19.add(new WebFXMenuItem("All DSLs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_dsl;magic=all;sortby=phonenum", "" ));
+myMenu19.add(new WebFXMenuItem("Qualifications", "http://localhost/freeside/search/qual.cgi", "" ));
+myMenu19.width = 256;
+
+myMenu10.add(new WebFXMenuItem("DSLs", null, "DSLs", myMenu19 ));
+var myMenu20 = new WebFXMenu;
+myMenu20.emptyText = '';
+myMenu20.add(new WebFXMenuItem("All dish services", "http://localhost/freeside/search/svc_dish.cgi?magic=all;sortby=svcnum", "" ));
+myMenu20.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Dish services", null, "Dish services", myMenu20 ));
+var myMenu21 = new WebFXMenu;
+myMenu21.emptyText = '';
+myMenu21.add(new WebFXMenuItem("All hardware", "http://localhost/freeside/search/svc_hardware.cgi?magic=all;sortby=svcnum", "" ));
+myMenu21.add(new WebFXMenuItem("Advanced hardware reports", "http://localhost/freeside/search/report_svc_hardware.html", "" ));
+myMenu21.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Hardware", null, "Hardware", myMenu21 ));
+var myMenu22 = new WebFXMenu;
+myMenu22.emptyText = '';
+myMenu22.add(new WebFXMenuItem("All phone numbers", "http://localhost/freeside/search/svc_phone.cgi?magic=all;sortby=phonenum", "" ));
+myMenu22.add(new WebFXMenuItem("Phone numbers' total usage by time period", "http://localhost/freeside/search/report_svc_phone_usage.html", "Total usage (minutes, and amount billed) for the specified time period, per phone number." ));
+myMenu22.add(new WebFXMenuItem("Phone numbers by state", "http://localhost/freeside/search/phone_state.html", "Current or historical phone services broken down by state." ));
+myMenu22.add(new WebFXMenuItem("Advanced phone number reports", "http://localhost/freeside/search/report_svc_phone.html", "" ));
+myMenu22.add(new WebFXMenuItem("Phone number (DID) availability", "http://localhost/freeside/search/report_phone_avail.html", "" ));
+myMenu22.add(new WebFXMenuItem("Inventory/Provisioning Status", "http://localhost/freeside/search/phone_inventory_provisioned.html", "" ));
+myMenu22.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Phone numbers", null, "Phone numbers", myMenu22 ));
+var myMenu23 = new WebFXMenu;
+myMenu23.emptyText = '';
+myMenu23.add(new WebFXMenuItem("All PBXs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_pbx;magic=all;sortby=svcnum", "" ));
+myMenu23.width = 256;
+
+myMenu10.add(new WebFXMenuItem("PBXs", null, "PBXs", myMenu23 ));
+var myMenu24 = new WebFXMenu;
+myMenu24.emptyText = '';
+myMenu24.add(new WebFXMenuItem("All circuits", "http://localhost/freeside/search/svc_circuit.cgi?magic=all;sortby=svcnum", "" ));
+myMenu24.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Circuits", null, "Voice and data circuit services", myMenu24 ));
+var myMenu25 = new WebFXMenu;
+myMenu25.emptyText = '';
+myMenu25.add(new WebFXMenuItem("All ports", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_port;magic=all;sortby=serviceid", "" ));
+myMenu25.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Ports", null, "Ports", myMenu25 ));
+var myMenu26 = new WebFXMenu;
+myMenu26.emptyText = '';
+myMenu26.add(new WebFXMenuItem("All alarm services", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_alarm;magic=all;sortby=acctnum", "" ));
+myMenu26.width = 256;
+
+myMenu10.add(new WebFXMenuItem("Alarm services", null, "Alarm services", myMenu26 ));
+var myMenu27 = new WebFXMenu;
+myMenu27.emptyText = '';
+myMenu27.add(new WebFXMenuItem("All external services", "http://localhost/freeside/search/svc_external.cgi?magic=all;sortby=id", "" ));
+myMenu27.width = 256;
+
+myMenu10.add(new WebFXMenuItem("External services", null, "External services", myMenu27 ));
+myMenu10.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Services", null, "Services reports", myMenu10 ));
+var myMenu28 = new WebFXMenu;
+myMenu28.emptyText = '';
+myMenu28.add(new WebFXMenuItem("Inventory by agent", "http://localhost/freeside/search/report_agent_inventory.html", "" ));
+myMenu28.add(new WebFXMenuItem("Inventory activity", "http://localhost/freeside/search/report_h_inventory_item.html", "" ));
+myMenu28.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Inventory", null, "Inventory reports", myMenu28 ));
+var myMenu29 = new WebFXMenu;
+myMenu29.emptyText = '';
+myMenu29.add(new WebFXMenuItem("RADIUS sessions", "http://localhost/freeside/search/sqlradius.html", "" ));
+myMenu29.add(new WebFXMenuItem("RADIUS data usage", "http://localhost/freeside/search/report_sqlradius_usage.html", "" ));
+myMenu29.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/search/report_cdr.html", "" ));
+myMenu29.add(new WebFXMenuItem("Unrateable CDRs", "http://localhost/freeside/search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_", "" ));
+myMenu29.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Usage", null, "Usage reports", myMenu29 ));
+var myMenu30 = new WebFXMenu;
+myMenu30.emptyText = '';
+var myMenu31 = new WebFXMenu;
+myMenu31.emptyText = '';
+myMenu31.add(new WebFXMenuItem("Tickets per day per Queue", "http://localhost/freeside/rt/RTx/Statistics/CallsQueueDay", "View the number of tickets created, resolved or deleted in a specific Queue, over the requested period of days" ));
+myMenu31.add(new WebFXMenuItem("Ticket status by Queue", "http://localhost/freeside/rt/RTx/Statistics/OpenStalled", "View numbers of new, open and stalled tickets in a selected Queue" ));
+myMenu31.add(new WebFXMenuItem("Tickets per day (multiple Queues)", "http://localhost/freeside/rt/RTx/Statistics/CallsMultiQueue", "View tickets created, resolved or deleted on in one or more Queues over a specified time period" ));
+myMenu31.add(new WebFXMenuItem("Tickets per Day of Week", "http://localhost/freeside/rt/RTx/Statistics/DayOfWeek", "View trends showing when tickets are created, resolved or deleted" ));
+myMenu31.add(new WebFXMenuItem("Time to resolve", "http://localhost/freeside/rt/RTx/Statistics/Resolution", "View how long tickets take to be resolved by Queue" ));
+myMenu31.add(new WebFXMenuItem("Time to resolve (scatter graph)", "http://localhost/freeside/rt/RTx/Statistics/TimeToResolve", "View a detailed scatter graph of time to resolve tickets by Queue" ));
+myMenu31.width = 256;
+
+myMenu30.add(new WebFXMenuItem("Statistics", null, "", myMenu31 ));
+myMenu30.add(new WebFXMenuSeparator());
+myMenu30.add(new WebFXMenuItem("Advanced ticket reports", "http://localhost/freeside/rt/Search/Build.html?NewQuery=1", "List tickets by any criteria" ));
+myMenu30.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Tickets", null, "Ticket reports", myMenu30 ));
+var myMenu32 = new WebFXMenu;
+myMenu32.emptyText = '';
+var myMenu33 = new WebFXMenu;
+myMenu33.emptyText = '';
+myMenu33.add(new WebFXMenuItem("Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time.html", "Sales, credits and receipts summary graph" ));
+myMenu33.add(new WebFXMenuItem("Daily Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time_daily.html", "Sales, credits and receipts (broken down by day) summary graph" ));
+myMenu33.add(new WebFXMenuItem("Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg.html", "Sales report and graph (by agent, package class and/or date range)" ));
+myMenu33.add(new WebFXMenuItem("Rated Call Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg_detail.html", "Sales report and graph (by agent, package class, usage class and/or date range)" ));
+myMenu33.add(new WebFXMenuItem("Sales with Advertising Source", "http://localhost/freeside/search/report_cust_bill_pkg_referral.html", "" ));
+myMenu33.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Sales", null, "Sales reports", myMenu33 ));
+var myMenu34 = new WebFXMenu;
+myMenu34.emptyText = '';
+myMenu34.add(new WebFXMenuItem("Agent", "http://localhost/freeside/search/report_agent_commission.html", "" ));
+myMenu34.add(new WebFXMenuItem("Agent per package", "http://localhost/freeside/search/report_agent_commission_pkg.html", "" ));
+myMenu34.add(new WebFXMenuItem("Sales Person", "http://localhost/freeside/search/report_sales_commission.html", "" ));
+myMenu34.add(new WebFXMenuItem("Sales Person per package", "http://localhost/freeside/search/report_sales_commission_pkg.html", "" ));
+myMenu34.add(new WebFXMenuItem("Employee", "http://localhost/freeside/search/report_employee_commission.html", "" ));
+myMenu34.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Commissions", null, "Commission reports", myMenu34 ));
+var myMenu35 = new WebFXMenu;
+myMenu35.emptyText = '';
+myMenu35.add(new WebFXMenuItem("Credit Report", "http://localhost/freeside/search/report_cust_credit.html", "Credit report (by employee and/or date range)" ));
+myMenu35.add(new WebFXMenuItem("Credit package source detail", "http://localhost/freeside/search/report_cust_credit_source_bill_pkg.html", "Line-item detail for triggered package credits" ));
+myMenu35.add(new WebFXMenuItem("Credit application detail", "http://localhost/freeside/search/report_cust_credit_bill_pkg.html", "Line item application detail" ));
+myMenu35.add(new WebFXMenuItem("Unapplied Credits", "http://localhost/freeside/search/report_cust_credit.html?unapplied=1", "Unapplied credit report (by type and/or date range)" ));
+myMenu35.add(new WebFXMenuItem("Voided Credits", "http://localhost/freeside/search/report_cust_credit_void.html", "Voided credit report (by employee and/or date range)" ));
+myMenu35.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Credits", null, "Credit reports", myMenu35 ));
+var myMenu36 = new WebFXMenu;
+myMenu36.emptyText = '';
+myMenu36.add(new WebFXMenuItem("Refund Report", "http://localhost/freeside/search/report_cust_refund.html", "Refund report (by type and/or date range)" ));
+myMenu36.add(new WebFXMenuItem("Unapplied Refunds", "http://localhost/freeside/search/report_cust_refund.html?unapplied=1", "Unapplied refund report (by type and/or date range)" ));
+myMenu36.width = 256;
+
+myMenu32.add(new WebFXMenuItem("Refunds", null, "Refund reports", myMenu36 ));
+myMenu32.add(new WebFXMenuItem("A/R Aging", "http://localhost/freeside/search/report_receivables.html", "Accounts Receivable Aging report" ));
+myMenu32.add(new WebFXMenuItem("Prepaid Income", "http://localhost/freeside/search/report_prepaid_income.html", "Prepaid income (unearned revenue)  report" ));
+myMenu32.add(new WebFXMenuItem("Tax Liability", "http://localhost/freeside/search/report_tax.html", "Tax liability report (internal tax data)" ));
+myMenu32.add(new WebFXMenuItem("E911 Fee Summary", "http://localhost/freeside/search/report_e911.html", "E911 fee summary" ));
+myMenu32.add(new WebFXMenuItem("Customer Accounting Summary", "http://localhost/freeside/search/report_customer_accounting_summary.html", "Customer accounting summary report" ));
+myMenu32.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Financial (Receivables)", null, "Financial reports (Receivables)", myMenu32 ));
+var myMenu37 = new WebFXMenu;
+myMenu37.emptyText = '';
+myMenu37.add(new WebFXMenuItem("Payables summary", "http://localhost/freeside/search/report_vend_main.html", "Payables summary by vendor" ));
+myMenu37.add(new WebFXMenuItem("Payables detail", "http://localhost/freeside/search/report_vend_bill.html", "" ));
+myMenu37.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Financial (Payables)", null, "Financial reports (Payables)", myMenu37 ));
+var myMenu38 = new WebFXMenu;
+myMenu38.emptyText = '';
+var myMenu39 = new WebFXMenu;
+myMenu39.emptyText = '';
+myMenu39.add(new WebFXMenuItem("All billing events", "http://localhost/freeside/search/report_cust_event.html", "All billing events for a date range" ));
+myMenu39.add(new WebFXMenuItem("Billing event errors", "http://localhost/freeside/search/report_cust_event.html?failed=1", "Failed credit cards, processor or printer problems, etc." ));
+myMenu39.width = 256;
+
+myMenu38.add(new WebFXMenuItem("Billing events", null, "Billing events", myMenu39 ));
+myMenu38.add(new WebFXMenuItem("Credit limit incidents", "http://localhost/freeside/search/report_cust_main_credit_limit.html", "" ));
+myMenu38.add(new WebFXMenuItem("Employee activity", "http://localhost/freeside/search/report_employee_audit.html", "" ));
+myMenu38.add(new WebFXMenuItem("System log", "http://localhost/freeside/search/log.html", "View system events and debugging information." ));
+myMenu38.add(new WebFXMenuItem("Outgoing messages", "http://localhost/freeside/search/cust_msg.html", "View outgoing message log" ));
+myMenu38.width = 256;
+
+myMenu0.add(new WebFXMenuItem("Logs", null, "System and email logs", myMenu38 ));
+myMenu0.width = 256;
+
+          myBar.add(new WebFXMenuButton('Reports', null, 'Lists, reporting and graphing', myMenu0 ));
+
+
+          var myMenu40 = new WebFXMenu;
+myMenu40.emptyText = '';
+var myMenu41 = new WebFXMenu;
+myMenu41.emptyText = '';
+myMenu41.add(new WebFXMenuItem("Appointments", "http://localhost/freeside/rt/Search/Schedule.html?LengthMin=0", "View appointment schedule" ));
+myMenu41.add(new WebFXMenuItem("Attachments", "http://localhost/freeside/browse/cust_attachment.html", "View customer attachments" ));
+myMenu41.add(new WebFXMenuItem("Customer email settings", "http://localhost/freeside/misc/manage_cust_email.html", "" ));
+myMenu41.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Customers", null, "Customer tools", myMenu41 ));
+var myMenu42 = new WebFXMenu;
+myMenu42.emptyText = '';
+myMenu42.add(new WebFXMenuItem("Quick payment entry", "http://localhost/freeside/misc/batch-cust_pay.html", "Enter multiple payments in a batch" ));
+myMenu42.add(new WebFXMenuItem("Download invoice batches", "http://localhost/freeside/search/bill_batch.cgi", "" ));
+myMenu42.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Billing", null, "Payment and invoice tools", myMenu42 ));
+var myMenu43 = new WebFXMenu;
+myMenu43.emptyText = '';
+var myMenu44 = new WebFXMenu;
+myMenu44.emptyText = '';
+myMenu44.add(new WebFXMenuItem("Overview", "http://localhost/freeside/rt/Articles/index.html", "" ));
+myMenu44.add(new WebFXMenuItem("Search", "http://localhost/freeside/rt/Articles/Article/Search.html", "" ));
+myMenu44.add(new WebFXMenuItem("Topics", "http://localhost/freeside/rt/Articles/Topics.html", "" ));
+myMenu44.width = 256;
+
+myMenu43.add(new WebFXMenuItem("Articles", null, "", myMenu44 ));
+myMenu43.add(new WebFXMenuItem("My Day", "http://localhost/freeside/rt/Tools/MyDay.html", "" ));
+myMenu43.add(new WebFXMenuItem("My Reminders", "http://localhost/freeside/rt/Tools/MyReminders.html", "" ));
+myMenu43.add(new WebFXMenuItem("Offline", "http://localhost/freeside/rt/Tools/Offline.html", "" ));
+myMenu43.add(new WebFXMenuItem("Approval", "http://localhost/freeside/rt/Approvals/", "" ));
+myMenu43.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Ticketing", null, "Ticketing tools", myMenu43 ));
+var myMenu45 = new WebFXMenu;
+myMenu45.emptyText = '';
+myMenu45.add(new WebFXMenuItem("Bulk DID Orders", "http://localhost/freeside/browse/did_order.html", "View/manage bulk DID orders" ));
+myMenu45.add(new WebFXMenuItem("Business card scan", "http://localhost/freeside/edit/prospect_main-upload.html", "" ));
+myMenu45.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu45 ));
+var myMenu46 = new WebFXMenu;
+myMenu46.emptyText = '';
+myMenu46.add(new WebFXMenuItem("Customers", "http://localhost/freeside/misc/cust_main-import.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/misc/part_pkg-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Customer packages", "http://localhost/freeside/misc/cust_pkg-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Customer comments", "http://localhost/freeside/misc/cust_main_note-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("One-time charges", "http://localhost/freeside/misc/cust_main-import_charges.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Payments", "http://localhost/freeside/misc/cust_pay-import.cgi", "" ));
+myMenu46.add(new WebFXMenuItem("Credits", "http://localhost/freeside/misc/cust_credit-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Phone numbers (DIDs)", "http://localhost/freeside/misc/phone_avail-import.html", "" ));
+myMenu46.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/misc/cdr-import.html", "" ));
+myMenu46.width = 256;
+
+myMenu40.add(new WebFXMenuItem("Importing", null, "Import tools", myMenu46 ));
+var myMenu47 = new WebFXMenu;
+myMenu47.emptyText = '';
+myMenu47.add(new WebFXMenuItem("Status", "http://localhost/freeside/view/Status.html", "System status" ));
+myMenu47.add(new WebFXMenuItem("Job Queue", "http://localhost/freeside/search/queue.html", "View pending job queue" ));
+myMenu47.width = 256;
+
+myMenu40.add(new WebFXMenuItem("System", null, "System tools", myMenu47 ));
+myMenu40.width = 256;
+
+          myBar.add(new WebFXMenuButton('Tools', null, 'Tools', myMenu40 ));
+
+
+          var myMenu48 = new WebFXMenu;
+myMenu48.emptyText = '';
+myMenu48.add(new WebFXMenuItem("Settings", "http://localhost/freeside/config/config-view.cgi", "" ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu49 = new WebFXMenu;
+myMenu49.emptyText = '';
+myMenu49.add(new WebFXMenuItem("Agent types", "http://localhost/freeside/browse/agent_type.cgi", "Agent types define groups of package definitions that you can then assign to particular agents" ));
+myMenu49.add(new WebFXMenuItem("Agents", "http://localhost/freeside/browse/agent.cgi", "Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type)" ));
+myMenu49.add(new WebFXMenuItem("Agent payment gateways", "http://localhost/freeside/browse/payment_gateway.html", "Credit card and electronic check processors for agent overrides" ));
+myMenu49.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Companies", null, "", myMenu49 ));
+var myMenu50 = new WebFXMenu;
+myMenu50.emptyText = '';
+myMenu50.add(new WebFXMenuItem("Sales People", "http://localhost/freeside/browse/sales.html", "Sales people bring in new business." ));
+myMenu50.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Sales People", null, "", myMenu50 ));
+var myMenu51 = new WebFXMenu;
+myMenu51.emptyText = '';
+myMenu51.add(new WebFXMenuItem("Employees", "http://localhost/freeside/browse/access_user.html", "Setup internal users" ));
+myMenu51.add(new WebFXMenuItem("Employee groups", "http://localhost/freeside/browse/access_group.html", "Employee groups allow you to control access to the backend" ));
+myMenu51.add(new WebFXMenuItem("Installer availability", "http://localhost/freeside/browse/sched_item.html", "Installer availability" ));
+myMenu51.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Employees", null, "", myMenu51 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu52 = new WebFXMenu;
+myMenu52.emptyText = '';
+myMenu52.add(new WebFXMenuItem("Customer tags", "http://localhost/freeside/browse/part_tag.html", "" ));
+myMenu52.add(new WebFXMenuItem("Customer classes", "http://localhost/freeside/browse/cust_class.html", "Customer classes define groups of customers for reporting." ));
+myMenu52.add(new WebFXMenuItem("Customer categories", "http://localhost/freeside/browse/cust_category.html", "Customer categories define groups of customer classes." ));
+myMenu52.add(new WebFXMenuSeparator());
+myMenu52.add(new WebFXMenuItem("Contact types", "http://localhost/freeside/browse/contact_class.html", "" ));
+myMenu52.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Customers", null, "", myMenu52 ));
+var myMenu53 = new WebFXMenu;
+myMenu53.emptyText = '';
+myMenu53.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/browse/part_pkg.cgi", "One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services" ));
+myMenu53.add(new WebFXMenuItem("Package classes", "http://localhost/freeside/browse/pkg_class.html", "Package classes define groups of packages, for taxation, ordering convenience and reporting." ));
+myMenu53.add(new WebFXMenuItem("Package categories", "http://localhost/freeside/browse/pkg_category.html", "Package categories define groups of package classes, for invoice sections." ));
+myMenu53.add(new WebFXMenuItem("Package report classes", "http://localhost/freeside/browse/part_pkg_report_option.html", "Package classes define optional groups of packages for reporting only." ));
+myMenu53.add(new WebFXMenuItem("Fees", "http://localhost/freeside/browse/part_fee.html", "" ));
+myMenu53.add(new WebFXMenuItem("Discounts", "http://localhost/freeside/browse/discount.html", "" ));
+myMenu53.add(new WebFXMenuItem("Discount classes", "http://localhost/freeside/browse/discount_class.html", "" ));
+var myMenu54 = new WebFXMenu;
+myMenu54.emptyText = '';
+myMenu54.add(new WebFXMenuItem("Cancel reasons", "http://localhost/freeside/browse/reason.html?class=C", "Cancel reasons explain why a service was cancelled." ));
+myMenu54.add(new WebFXMenuItem("Cancel reason types", "http://localhost/freeside/browse/reason_type.html?class=C", "Cancel reason types define groups of reasons." ));
+myMenu54.add(new WebFXMenuItem("Suspend reasons", "http://localhost/freeside/browse/reason.html?class=S", "Suspend reasons explain why a service was suspended." ));
+myMenu54.add(new WebFXMenuItem("Suspend reason types", "http://localhost/freeside/browse/reason_type.html?class=S", "Suspend reason types define groups of reasons." ));
+myMenu54.width = 256;
+
+myMenu53.add(new WebFXMenuItem("Cancel/Suspend Reasons", null, "", myMenu54 ));
+myMenu53.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Packages", null, "", myMenu53 ));
+var myMenu55 = new WebFXMenu;
+myMenu55.emptyText = '';
+myMenu55.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi", "Services are items you offer to your customers" ));
+myMenu55.add(new WebFXMenuItem("Service classes", "http://localhost/freeside/browse/part_svc_class.html", "Services classes are user-defined, informational types for services" ));
+myMenu55.add(new WebFXMenuItem("Service dependencies", "http://localhost/freeside/browse/part_svc_link.html", "Services depencies define rules between service definitions" ));
+myMenu55.add(new WebFXMenuItem("Provisioning exports", "http://localhost/freeside/browse/part_export.cgi", "Provisioning services to external machines, databases and APIs" ));
+var myMenu56 = new WebFXMenu;
+myMenu56.emptyText = '';
+myMenu56.add(new WebFXMenuItem("Access numbers", "http://localhost/freeside/browse/svc_acct_pop.cgi", "Points of Presence" ));
+myMenu56.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Dialup", null, "", myMenu56 ));
+var myMenu57 = new WebFXMenu;
+myMenu57.emptyText = '';
+myMenu57.add(new WebFXMenuItem("Towers", "http://localhost/freeside/browse/tower.html", "Towers and sectors" ));
+myMenu57.add(new WebFXMenuItem("Routers", "http://localhost/freeside/browse/router.cgi", "Broadband access routers" ));
+myMenu57.add(new WebFXMenuItem("Address blocks", "http://localhost/freeside/browse/addr_block.cgi", "Manage address blocks and block assignments to broadband routers" ));
+myMenu57.add(new WebFXMenuItem("Address ranges", "http://localhost/freeside/browse/addr_range.html", "Designate special address ranges" ));
+myMenu57.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Wireless broadband", null, "", myMenu57 ));
+var myMenu58 = new WebFXMenu;
+myMenu58.emptyText = '';
+myMenu58.add(new WebFXMenuItem("View/Edit phone device types", "http://localhost/freeside/browse/part_device.html", "Phone device types" ));
+myMenu58.add(new WebFXMenuItem("View/Edit bulk DID vendors", "http://localhost/freeside/browse/did_vendor.html", "Bulk DID vendors" ));
+myMenu58.add(new WebFXMenuItem("View/Edit Carriers", "http://localhost/freeside/browse/cdr_carrier.html", "Carriers" ));
+myMenu58.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Phone", null, "", myMenu58 ));
+var myMenu59 = new WebFXMenu;
+myMenu59.emptyText = '';
+myMenu59.add(new WebFXMenuItem("RADIUS Groups", "http://localhost/freeside/browse/radius_group.html", "Manage RADIUS groups" ));
+myMenu59.add(new WebFXMenuItem("RADIUS Clients", "http://localhost/freeside/browse/nas.html", "Manage RADIUS clients" ));
+myMenu59.width = 256;
+
+myMenu55.add(new WebFXMenuItem("RADIUS", null, "", myMenu59 ));
+var myMenu60 = new WebFXMenu;
+myMenu60.emptyText = '';
+myMenu60.add(new WebFXMenuItem("Cable providers", "http://localhost/freeside/browse/cable_provider.html", "" ));
+myMenu60.add(new WebFXMenuItem("Cable modem models", "http://localhost/freeside/browse/cable_model.html", "" ));
+myMenu60.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Cable", null, "", myMenu60 ));
+var myMenu61 = new WebFXMenu;
+myMenu61.emptyText = '';
+myMenu61.add(new WebFXMenuItem("Conferencing types", "http://localhost/freeside/browse/conferencing_type.html", "" ));
+myMenu61.add(new WebFXMenuItem("Quality levels", "http://localhost/freeside/browse/conferencing_quality.html", "" ));
+myMenu61.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Conferencing", null, "", myMenu61 ));
+var myMenu62 = new WebFXMenu;
+myMenu62.emptyText = '';
+myMenu62.add(new WebFXMenuItem("Alarm system vendors", "http://localhost/freeside/browse/alarm_system.html", "" ));
+myMenu62.add(new WebFXMenuItem("Alarm system types", "http://localhost/freeside/browse/alarm_type.html", "" ));
+myMenu62.add(new WebFXMenuItem("Alarm central stations", "http://localhost/freeside/browse/alarm_station.html", "" ));
+myMenu62.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Alarm", null, "", myMenu62 ));
+var myMenu63 = new WebFXMenu;
+myMenu63.emptyText = '';
+myMenu63.add(new WebFXMenuItem("Circuit types", "http://localhost/freeside/browse/circuit_type.html", "" ));
+myMenu63.add(new WebFXMenuItem("Circuit providers", "http://localhost/freeside/browse/circuit_provider.html", "" ));
+myMenu63.add(new WebFXMenuItem("Termination types", "http://localhost/freeside/browse/circuit_termination.html", "" ));
+myMenu63.width = 256;
+
+myMenu55.add(new WebFXMenuItem("Circuits", null, "", myMenu63 ));
+myMenu55.add(new WebFXMenuItem("Hardware types", "http://localhost/freeside/browse/hardware_class.html", "Set up hardware type catalog" ));
+myMenu55.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Services", null, "", myMenu55 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu64 = new WebFXMenu;
+myMenu64.emptyText = '';
+myMenu64.add(new WebFXMenuItem("Vendor classes", "http://localhost/freeside/browse/vend_class.html", "" ));
+myMenu64.add(new WebFXMenuItem("Vendors", "http://localhost/freeside/browse/vend_main.html", "" ));
+myMenu64.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Vendors", null, "", myMenu64 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu65 = new WebFXMenu;
+myMenu65.emptyText = '';
+myMenu65.add(new WebFXMenuItem("Billing events", "http://localhost/freeside/browse/part_event.html", "Billing actions for customers, invoices and packages" ));
+myMenu65.add(new WebFXMenuItem("Invoice configurations", "http://localhost/freeside/browse/invoice_conf.html", "Adjust invoice settings for special-purpose notices" ));
+myMenu65.add(new WebFXMenuItem("Invoice templates", "http://localhost/freeside/browse/invoice_template.html", "Edit templates for HTML, plaintext and typeset invoices" ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Prepaid cards", "http://localhost/freeside/search/prepay_credit.html", "View outstanding cards, generate new cards" ));
+var myMenu66 = new WebFXMenu;
+myMenu66.emptyText = '';
+myMenu66.add(new WebFXMenuItem("Rate plans", "http://localhost/freeside/browse/rate.cgi", "Manage rate plans" ));
+myMenu66.add(new WebFXMenuItem("Regions and prefixes", "http://localhost/freeside/browse/rate_region.html", "Manage regions and prefixes" ));
+myMenu66.add(new WebFXMenuItem("Usage classes", "http://localhost/freeside/browse/usage_class.html", "Usage classes define groups of usage for taxation." ));
+myMenu66.add(new WebFXMenuItem("Time periods", "http://localhost/freeside/browse/rate_time.html", "Time periods define days and hours for rate plans" ));
+myMenu66.add(new WebFXMenuItem("Edit rates with Excel", "http://localhost/freeside/misc/rate_edit_excel.html", "Download and edit rates with Excel, then upload changes." ));
+myMenu66.add(new WebFXMenuSeparator());
+myMenu66.add(new WebFXMenuItem("Tiering plans", "http://localhost/freeside/browse/rate_tier.html", "Rating tiers" ));
+myMenu66.width = 256;
+
+myMenu65.add(new WebFXMenuItem("Call rates and regions", null, "Manage rate plans, regions and prefixes for VoIP and call billing", myMenu66 ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Locales and tax rates", "http://localhost/freeside/browse/cust_main_county.cgi", "Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each" ));
+myMenu65.add(new WebFXMenuItem("Tax classes", "http://localhost/freeside/browse/part_pkg_taxclass.html", "Tax classes" ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Credit reasons", "http://localhost/freeside/browse/reason.html?class=R", "Credit reasons explain why a credit was issued." ));
+myMenu65.add(new WebFXMenuItem("Credit reason types", "http://localhost/freeside/browse/reason_type.html?class=R", "Credit reason types define groups of reasons." ));
+myMenu65.add(new WebFXMenuSeparator());
+myMenu65.add(new WebFXMenuItem("Refund reasons", "http://localhost/freeside/browse/reason.html?class=F", "Refund reasons explain why a refund was issued." ));
+myMenu65.add(new WebFXMenuItem("Refund reason types", "http://localhost/freeside/browse/reason_type.html?class=F", "Refund reason types define groups of reasons." ));
+myMenu65.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
+myMenu48.add(new WebFXMenuSeparator());
+var myMenu67 = new WebFXMenu;
+myMenu67.emptyText = '';
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
+myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
+myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
+myMenu67.add(new WebFXMenuItem("Inventory classes and inventory", "http://localhost/freeside/browse/inventory_class.html", "Setup inventory classes and stock inventory" ));
+myMenu67.add(new WebFXMenuItem("Upload targets", "http://localhost/freeside/browse/upload_target.html", "Billing and payment upload destinations" ));
+myMenu67.width = 256;
+
+myMenu48.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu67 ));
+myMenu48.width = 256;
+
+          myBar.add(new WebFXMenuButton('Configuration', null, 'Configuration and setup', myMenu48 ));
+
+
+          var myMenu68 = new WebFXMenu;
+myMenu68.emptyText = '';
+myMenu68.add(new WebFXMenuItem("Billing documentation", "http://www.freeside.biz/mediawiki/index.php/Freeside:4:Documentation", "Freeside documentation" ));
+myMenu68.add(new WebFXMenuItem("Ticketing documentation", "http://wiki.bestpractical.com/", "Request Tracker Wiki" ));
+myMenu68.add(new WebFXMenuSeparator());
+myMenu68.add(new WebFXMenuItem("About Freeside v5.0git", "javascript:about_freeside()", "" ));
+myMenu68.add(new WebFXMenuItem("About RT v4.2.11", "http://www.bestpractical.com/rt", "Request Tracker Homepage" ));
+myMenu68.width = 256;
+
+          myBar.add(new WebFXMenuButton('Help', null, '', myMenu68 ));
+
+
+  myBar.show( null, 'vertical' );
+  myBar.width = 154;
+
+</SCRIPT>
+
+
+
+
+      <link rel="stylesheet" href="http://localhost/freeside/elements/jquery-ui.min.css">
+      <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
+      <SCRIPT SRC="http://localhost/freeside/elements/jquery-ui.min.js"></SCRIPT>
+    
+    
+
+    
+
+  </HEAD>
+  <BODY BGCOLOR="#f8f8f8"  STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px">
+    <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead">
+      <tr>
+        <td BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="http://localhost/freeside/view/REAL_logo.cgi"></td>
+        <td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
+          <font size=6>Freeside Test 5.0.1</font>
+        </td>
+        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b>test&nbsp;</b> <FONT SIZE="-2"><a href="http://localhost/freeside/loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="http://localhost/freeside/pref/pref.html" STYLE="color: #000000">Preferences</a>
+          <BR></FONT>
+        </td>
+      </tr>
+    </table>
+
+    <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
+
+<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
+
+
+      <TR CLASS="fsmenubar">
+
+
+        <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd">
+          <SCRIPT TYPE="text/javascript">
+            document.write(myBar);
+          </SCRIPT>
+        </TD>
+
+      </TR>
+
+      <TR CLASS="fssearchbar">
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/prospect_main.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="search_prospect" TYPE="text" VALUE="(name, company or phone)" STYLE="width:155px" onFocus="clearhint_search_prospect(this);" onClick="clearhint_search_prospect(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside/search/report_prospect_main.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>
+    <INPUT TYPE="submit" VALUE="Search prospects" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_prospect (what) {
+    if ( what.value == '(name, company or phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_main.cgi" METHOD="POST" STYLE="margin:0">
+    <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or contact phone)" STYLE="width:246px" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside/search/report_cust_main.html" CLASS="fslink" STYLE="font-size: 11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_cust (what) {
+    if ( what.value == '(cust #, name, company or contact phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center">
+          
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_address2 (what) {
+    if ( what.value == '(Unit #)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline">
+    <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" STYLE="width:56px" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" CLASS="fstext">
+    <A HREF="http://localhost/freeside/search/report_cust_bill.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>    <BR>
+    <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px;margin-top:3px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_invoice (what) {
+    if ( what.value == '(inv #)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
+          
+  <FORM ACTION="http://localhost/freeside/search/cust_svc.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="search_svc" TYPE="text" VALUE="(user, email, ip, mac, domain or service phone)" STYLE="width:271px" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" CLASS="fstext"><BR>
+    <A NOTYET="http://localhost/freeside/search/svc_Smarter.html" STYLE="color: #cccccc; font-size:11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_svc (what) {
+    if ( what.value == '(user, email, ip, mac, domain or service phone)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px">
+          
+  <FORM ACTION="http://localhost/freeside//rt/index.html" METHOD="GET" STYLE="margin:0">
+    <INPUT NAME="q" TYPE="text" VALUE="(ticket #, subject, email or fulltext:text)" STYLE="width:223px" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" CLASS="fstext"><BR>
+    <A HREF="http://localhost/freeside//rt/Search/Build.html?NewQuery=1" CLASS="fslink" STYLE="font-size:11px">Advanced</A>
+    <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
+  </FORM>
+  
+
+
+<SCRIPT TYPE="text/javascript">
+
+  function clearhint_search_ticket (what) {
+    if ( what.value == '(ticket #, subject, email or fulltext:text)' )
+      what.value = '';
+  }
+
+</SCRIPT>
+
+        </TD>
+
+      </TR>
+    </TABLE>
+
+
+
+    <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4>
+
+      <TR HEIGHT="100%">
+
+    <BR>
+        <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> -->
+
+          <H1>
+            Invoice Search Results
+          </H1>
+
+          <BR>
+
+          
+   <A HREF="javascript:confirm_print_process()" >Print these invoices</A> | <A HREF="javascript:confirm_email_process()" >Email these invoices</A>
+
+<BR><BR>
+
+
+
+
+        <SCRIPT TYPE="text/javascript">
+
+  function rs_init_object() {
+    var A;
+    try {
+      A=new ActiveXObject("Msxml2.XMLHTTP");
+    } catch (e) {
+      try {
+        A=new ActiveXObject("Microsoft.XMLHTTP");
+      } catch (oc) {
+        A=null;
+      }
+    }
+    if(!A && typeof XMLHttpRequest != "undefined")
+      A = new XMLHttpRequest();
+    if (!A)
+      alert("Can't create XMLHttpRequest object");
+    return A;
+
+  }
+
+</SCRIPT>
+
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_iframe.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_draggable.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_crossframe.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/iframecontentmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/ajaxcontentmws.js"></SCRIPT>
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function print_start_job() {
+        // count args; build URL
+        var url = "../misc/print_invoices.cgi";
+        var a = print_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function print_process () {
+
+  //alert('print_process for form print_form');
+
+  if ( document.print_form.submit.disabled == false ) {
+    document.print_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.print_form.elements.length; i++) {
+    field  = document.print_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.print_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/print_invoices.cgi', print_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', print_myCallback )' );
+  //alert('start_job()' );
+  print_start_job( Hash, print_myCallback );
+
+}
+
+function print_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=print_form&message=Invoices+re-printed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="print_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function email_start_job() {
+        // count args; build URL
+        var url = "../misc/email_invoices.cgi";
+        var a = email_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function email_process () {
+
+  //alert('email_process for form email_form');
+
+  if ( document.email_form.submit.disabled == false ) {
+    document.email_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.email_form.elements.length; i++) {
+    field  = document.email_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.email_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/email_invoices.cgi', email_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', email_myCallback )' );
+  //alert('start_job()' );
+  email_start_job( Hash, email_myCallback );
+
+}
+
+function email_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=email_form&message=Invoices+re-emailed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="email_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function fax_start_job() {
+        // count args; build URL
+        var url = "../misc/fax_invoices.cgi";
+        var a = fax_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function fax_process () {
+
+  //alert('fax_process for form fax_form');
+
+  if ( document.fax_form.submit.disabled == false ) {
+    document.fax_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.fax_form.elements.length; i++) {
+    field  = document.fax_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.fax_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/fax_invoices.cgi', fax_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', fax_myCallback )' );
+  //alert('start_job()' );
+  fax_start_job( Hash, fax_myCallback );
+
+}
+
+function fax_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=fax_form&message=Invoices+re-faxed';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="fax_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function ftp_start_job() {
+        // count args; build URL
+        var url = "../misc/ftp_invoices.cgi";
+        var a = ftp_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function ftp_process () {
+
+  //alert('ftp_process for form ftp_form');
+
+  if ( document.ftp_form.submit.disabled == false ) {
+    document.ftp_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.ftp_form.elements.length; i++) {
+    field  = document.ftp_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.ftp_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/ftp_invoices.cgi', ftp_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', ftp_myCallback )' );
+  //alert('start_job()' );
+  ftp_start_job( Hash, ftp_myCallback );
+
+}
+
+function ftp_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=ftp_form&message=Invoices+re-ftped';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="ftp_form">
+</FORM>
+
+
+<SCRIPT TYPE="text/javascript">
+
+
+    function spool_start_job() {
+        // count args; build URL
+        var url = "../misc/spool_invoices.cgi";
+        var a = spool_start_job.arguments;
+
+        var args;
+        var len;
+        var content = 'sub=start_job';
+        if ( a && typeof a  == 'object'  && a[0].constructor == Array ) {
+            args = a[0];
+            len = args.length
+        } else {
+            args = a;
+            len = args.length - 1;
+        }
+        for (var i = 0; i < len; i++) 
+            content = content + "&arg=" + escape(args[i]);
+        content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs 
+
+        if ( 'POST' == 'GET' ) {
+          url = url + content;
+        }
+
+        //alert('POST ' + url);
+
+        var xmlhttp = rs_init_object();
+        xmlhttp.open("POST", url, true);
+
+        xmlhttp.onreadystatechange = function() {
+            if (xmlhttp.readyState != 4) 
+               return;
+
+            if (xmlhttp.status != 200) {
+              if ( xmlhttp.status != 0 ) {
+                //not warning on the 0 errors, they pop up when navagating away
+                // from the page
+                alert(xmlhttp.status + " status connecting to " + url);
+              }
+            } else {
+              var data = xmlhttp.responseText;
+              //alert('received response: ' + data);
+              if ( data.indexOf("<b>System error</b>") > -1 ) {
+                // trim this a little
+                var end = data.indexOf('<a href="#raw">') - 1;
+                data = data.substring(0, end);
+
+                overlib(data,
+                  WIDTH, 480, MIDX, 0, MIDY, 0,
+                  CAPTION, 'Error', STICKY, AUTOSTATUSCAP, DRAGGABLE,
+                  CLOSECLICK, BGCOLOR, '#f00', CGCOLOR, '#f00'
+                );
+                //var w;
+                //if ( w = window.open("about:blank") ) {
+                //  w.document.write(data);
+                //} else {
+                //  // popup blocking?  should use an overlib popup instead 
+                //  alert("Error popup disabled; try disabling popup blocking to see");
+                //}
+              } else {
+                // invoke the callback
+                a[a.length-1](data);
+              }
+            }
+        }
+
+        if ( 'POST' == 'POST' ) {
+
+          xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+          xmlhttp.send(content);
+
+        } else {
+
+          xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+          xmlhttp.send(null);
+
+        }
+
+        //rs_debug("x_$func_name url = " + url);
+        //rs_debug("x_$func_name waiting..");
+    }
+
+
+</SCRIPT>
+
+
+
+
+<SCRIPT TYPE="text/javascript">
+
+function spool_process () {
+
+  //alert('spool_process for form spool_form');
+
+  if ( document.spool_form.submit.disabled == false ) {
+    document.spool_form.submit.disabled=true;
+  }
+
+  overlib( 'Submitting job to server...', WIDTH, 444, HEIGHT, 168, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+  var Hash = new Array();
+  var x = 0;
+  var fieldName;
+  for (var i = 0; i<document.spool_form.elements.length; i++) {
+    field  = document.spool_form.elements[i];
+    if ( (field.name.indexOf('charged') > -1) || (field.name.indexOf('owed') > -1)
+       )
+    {
+        if ( field.type == 'select-multiple' ) {
+          //alert('select-multiple ' + field.name);
+          for (var j=0; j < field.options.length; j++) {
+            if ( field.options[j].selected ) {
+              //alert(field.name + ' => ' + field.options[j].value);
+              Hash[x++] = field.name;
+              Hash[x++] = field.options[j].value;
+            }
+          }
+        } else if (    ( field.type != 'radio'  && field.type != 'checkbox' )
+                    || ( ( field.type == 'radio' || field.type == 'checkbox' )
+                         && document.spool_form.elements[i].checked
+                       )
+                  )
+        {
+          Hash[x++] = field.name;
+          Hash[x++] = field.value;
+        }
+    }
+  }
+
+  // jsrsPOST = true;
+  // jsrsExecute( '../misc/spool_invoices.cgi', spool_myCallback, 'start_job', Hash );
+
+  //alert('start_job( ' + Hash + ', spool_myCallback )' );
+  //alert('start_job()' );
+  spool_start_job( Hash, spool_myCallback );
+
+}
+
+function spool_myCallback( jobnum ) {
+
+  var url = 'http://localhost/freeside/elements/progress-popup.html?jobnum=_JOBNUM_&formname=spool_form&message=Invoices+re-spooled';
+  url = url.replace('_JOBNUM_', jobnum);
+  overlib( OLiframeContent(url, 444, 168, 'popup-0000000000-0000-000000000.000000'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
+
+}
+
+</SCRIPT>
+
+
+<FORM NAME="spool_form">
+</FORM><SCRIPT TYPE="text/javascript">
+
+function confirm_print_process() {
+  if ( ! confirm('Are you sure you want to reprint these invoices?') ) {
+    return;
+  }
+  print_process();
+}
+function confirm_email_process() {
+  if ( ! confirm('Are you sure you want to re-email these invoices?') ) {
+    return;
+  }
+  email_process();
+}
+function confirm_fax_process() {
+  if ( ! confirm('Are you sure you want to re-fax these invoices?') ) {
+    return;
+  }
+  fax_process();
+}
+function confirm_ftp_process() {
+  if ( ! confirm('Are you sure you want to re-FTP these invoices?') ) {
+    return;
+  }
+  ftp_process();
+}
+function confirm_spool_process() {
+  if ( ! confirm('Are you sure you want to re-spool these invoices?') ) {
+    return;
+  }
+  spool_process();
+}
+
+</SCRIPT>
+
+
+
+        <TABLE>
+          <TR>
+
+            <TD VALIGN="bottom">
+
+              <FORM>
+
+                  1584 total invoices
+
+
+                  ( show <SELECT NAME="maxrecords" onChange="window.location = 'http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=' + this.options[this.selectedIndex].value;">
+
+                  <OPTION VALUE="100" SELECTED>100</OPTION>
+                  <OPTION VALUE="500" >500</OPTION>
+                  <OPTION VALUE="1000" >1000</OPTION>
+                  <OPTION VALUE="2500" >2500</OPTION>
+
+                 </SELECT> per page )
+
+
+                <BR>
+
+                      $141620.74 gross sales<BR>
+                      − $0.00 discounted<BR>
+                      − $0.00 credited<BR>
+                      = $141620.74 net sales<BR>
+                      $48352.49 outstanding balance<BR>
+              </FORM>
+
+            </TD>
+
+
+              <TD ALIGN="right" CLASS="noprint">
+
+                Download full results<BR>
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=invoices.xls">Excel spreadsheet</A><BR>
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=csv">CSV file</A><BR>
+
+
+                as <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html-print">printable copy</A>
+
+              </TD>
+
+          </TR>
+          <TR>
+            <TD COLSPAN=2>
+
+
+                
+        <FONT SIZE="+2">1</FONT>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
+
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
+
+
+
+                
+
+
+              
+<TABLE CLASS="grid" CELLSPACING=0 CELLPADDING=0 >
+
+
+
+
+<THEAD>
+
+  <TR>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "2"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=COALESCE%28%20agent_invid%2C%20invnum%20%29">Invoice #</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=gross">Gross Amount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=discounted">Discount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=credited">Credits</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=net">Net Amount</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=owed">Balance</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=_date">Date</A>
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      Cust. Status
+    </TH>
+    <TH CLASS   = "grid"
+        BGCOLOR = "#cccccc"
+        ROWSPAN = "1"
+        
+        
+
+    >
+      Customer
+    </TH>
+  </TR>
+
+
+</THEAD>
+
+<TBODY>
+
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">1</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">$129.19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?1">Aug 07 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">3</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$194.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?3">Aug 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">2</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$177.91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?2">Aug 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">4</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">$191.77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?4">Aug 09 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">5</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$162.41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?5">Aug 12 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">6</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$158.55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?6">Aug 13 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">7</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$154.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?7">Aug 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">8</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$189.68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?8">Aug 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">9</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$174.35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?9">Aug 15 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">10</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?10">Aug 17 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">11</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$143.07</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?11">Aug 17 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">13</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$174.20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?13">Aug 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">12</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">$165.65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?12">Aug 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">16</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$162.74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?16">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">14</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$170.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?14">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">15</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$135.32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?15">Aug 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">17</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$159.84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?17">Aug 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">18</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$156.94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?18">Aug 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">19</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">$158.71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?19">Aug 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">20</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">$108.23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?20">Aug 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">21</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$92.75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?21">Aug 30 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">22</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$88.87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?22">Aug 31 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">23</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">$105.97</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?23">Aug 31 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">25</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?25">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?18">Zemlak, Asia</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">33</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?33">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?74">Boyer, Lamont</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">36</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?36">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?82">Kessler, Dana</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">45</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?45">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">35</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?35">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">24</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?24">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?10">Grady, Aniya</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">43</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?43">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">26</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?26">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">42</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?42">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?114">Donnelly, Raleigh</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">29</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?29">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?38">Christiansen, Leone</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">27</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?27">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">38</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?38">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">32</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?32">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?58">Schultz, Colten</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">37</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?37">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">40</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?40">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">34</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?34">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?70">Brown, Danial</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">46</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?46">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">30</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?30">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?46">Steuber, Ryley</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">31</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?31">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">39</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?39">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">44</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?44">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?138">Leuschke, Edd</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">28</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?28">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">41</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?41">Sep 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">47</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$236.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?47">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">49</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?49">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?171">Mante LLC (Kessler, Enid)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">48</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?48">Sep 02 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?99">Luettgen-Jacobs (Hintz, Junior)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">50</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$209.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?50">Sep 03 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?75">Hoeger-Brown (Shields, Serenity)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">51</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$228.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?51">Sep 04 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?109">Lind-Bahringer (Ratke, Roma)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">53</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$200.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?53">Sep 06 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?147">Pfeffer, Shanahan and Cruickshank (Kutch, Rosario)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">52</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$185.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?52">Sep 06 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?94">McKenzie, Kareem</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">54</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?54">Sep 07 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">56</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?56">Sep 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">55</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">$212.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?55">Sep 08 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">57</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?57">Sep 09 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">58</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?58">Sep 10 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?3">Flatley-Hagenes (Donnelly, Odessa)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">59</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">$182.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?59">Sep 12 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">60</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">$179.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?60">Sep 13 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">61</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$153.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?61">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?34">Kunde, Noemi</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">63</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">$188.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?63">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">62</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?62">Sep 14 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">64</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?64">Sep 15 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">65</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?65">Sep 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">66</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?66">Sep 18 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">70</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$117.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?70">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?196">Turcotte, Janessa</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">69</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">$161.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?69">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">67</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?67">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">68</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?68">Sep 19 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">71</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?71">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">74</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">$129.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?74">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?134">Stokes, Janelle</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">72</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?72">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">73</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">$164.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?73">Sep 20 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">76</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?76">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?51">Medhurst Group (Medhurst, Rafaela)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">75</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?75">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">78</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$155.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?78">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?159">McLaughlin-Luettgen (Berge, Houston)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">77</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$115.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?77">Sep 21 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?52">Frami, Gayle</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">79</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?79">Sep 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?29">Lehner-Klein (Smitham, Pansy)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">80</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$114.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?80">Sep 22 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?112">Gleason, Ahmed</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">81</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?81">Sep 23 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?164">Bernhard, Kris</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">82</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$113.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?82">Sep 24 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?66">Abbott, Addison</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">83</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">$143.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?83">Sep 25 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?95">Wolff Inc (Hessel, Brianne)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">85</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$110.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?85">Sep 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?172">Rowe, Amara</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">84</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$105.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?84">Sep 26 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?130">Carter, Cathy</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">87</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$136.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?87">Sep 27 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?189">Rodriguez-Ebert (Bergstrom, Cecilia)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">86</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">$101.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?86">Sep 27 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?98">Gleichner, Delmer</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">92</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">$60.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?92">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">89</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?89">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?30">Toy, Bethany</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">88</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">$108.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?88">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?8">Douglas, Willow</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">90</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$132.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?90">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?129">Quitzon Group (Davis, Jeffery)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">91</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$97.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?91">Sep 28 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?126">Kunze, Michale</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">95</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?95">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?121">Cole, Graham and Towne (Hickle, Javier)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">93</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?93">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?19">Toy-Gerlach (Zulauf, Sharon)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">94</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">$131.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?94">Sep 29 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?47">Bernhard-Treutel (Shanahan, Kevin)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">96</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">$128.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?96">Sep 30 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?11">Torp, Sawayn and Friesen (Pollich, Maritza)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">153</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?153">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">151</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">$30.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?151">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?176">Waters, Godfrey</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row0">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">124</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">$90.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?124">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
+
+
+    </TR>
+
+    <TR ID="" CLASS="row1">
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">121</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$120.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">$0.00</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_bill.cgi?121">Oct 01 2015</A></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
+
+
+
+        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
+
+
+    </TR>
+
+
+</TBODY>
+
+</TABLE>
+
+
+              
+        <FONT SIZE="+2">1</FONT>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=700">8</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=800">9</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1000">11</A>
+
+          ...
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1200">13</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1300">14</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1400">15</A>
+
+
+        <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=1500">16</A>
+
+      <A HREF="http://localhost/freeside/search/cust_bill.html?keywords=date%3Aorder_by%3Dinvnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
+
+
+  
+            </TD>
+          </TR>
+        </TABLE>
+
+
+        
+
+                </TD>
+      </TR>
+    </TABLE>
+  </BODY>
+</HTML>
+
+
+
+
+
+
index 0b7e3f2..b040cdc 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index f527425..ecff0d1 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1002,7 +1002,7 @@ myMenu68.width = 256;
         
 
     >
-      Paid
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?agentnum=1;status=;cust_classnum=;beginning=01%2F01%2F2016;ending=01%2F31%2F2016;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=pay_amount">Paid</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
@@ -1011,7 +1011,7 @@ myMenu68.width = 256;
         
 
     >
-      Credited
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?agentnum=1;status=;cust_classnum=;beginning=01%2F01%2F2016;ending=01%2F31%2F2016;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=credit_amount">Credited</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
index 17a7ecb..75e4a4b 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -988,7 +988,7 @@ myMenu68.width = 256;
         
 
     >
-      Paid
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;agentnum=1;refnum=1;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=pay_amount">Paid</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
@@ -997,7 +997,7 @@ myMenu68.width = 256;
         
 
     >
-      Credited
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;agentnum=1;refnum=1;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=credit_amount">Credited</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
index 70d7c33..ced2a5b 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -977,7 +977,7 @@ myMenu68.width = 256;
         
 
     >
-      Paid
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;charges=RU;distribute=0;agentnum=1;refnum=1;use_override=0;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=pay_amount">Paid</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
@@ -986,7 +986,7 @@ myMenu68.width = 256;
         
 
     >
-      Credited
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;charges=RU;distribute=0;agentnum=1;refnum=1;use_override=0;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=credit_amount">Credited</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
index 250d050..1cd7616 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -977,7 +977,7 @@ myMenu68.width = 256;
         
 
     >
-      Paid
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;charges=S;distribute=0;agentnum=1;refnum=1;use_override=0;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=pay_amount">Paid</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
@@ -986,7 +986,7 @@ myMenu68.width = 256;
         
 
     >
-      Credited
+      <A HREF="http://localhost/freeside/search/cust_bill_pkg.cgi?nottax=1;charges=S;distribute=0;agentnum=1;refnum=1;use_override=0;classnum=0;classnum=1;begin=1438412400;end=1441090800;_type=html;order_by=credit_amount">Credited</A>
     </TH>
     <TH CLASS   = "grid"
         BGCOLOR = "#cccccc"
index ecac7e2..9a7af33 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 44c3de1..10fa46a 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 160b6e7..7aeefea 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1274,7 +1274,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?1">example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?1">example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1375,7 +1375,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?2">berta@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?2">berta@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1476,7 +1476,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?3">IP:10.212.50.247, MAC:0000911C4815</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?3">IP:10.212.50.247, MAC:0000911C4815</A></td></tr></table></TD>
 
 
     </TR>
@@ -1577,7 +1577,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?4">waters-turner.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?4">waters-turner.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1678,7 +1678,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?5">IP:10.127.31.117, MAC:0000A3E013D7</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?5">IP:10.127.31.117, MAC:0000A3E013D7</A></td></tr></table></TD>
 
 
     </TR>
@@ -1779,7 +1779,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?6">ziemann-dietrich.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?6">ziemann-dietrich.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1880,7 +1880,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?7">19671718037</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?7">19671718037</A></td></tr></table></TD>
 
 
     </TR>
@@ -1981,7 +1981,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?8">watsica-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?8">watsica-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2082,7 +2082,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?9">337448915280026</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?9">337448915280026</A></td></tr></table></TD>
 
 
     </TR>
@@ -2183,7 +2183,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?10">sherwood@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?10">sherwood@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2284,7 +2284,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?11">7941182146</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?11">7941182146</A></td></tr></table></TD>
 
 
     </TR>
@@ -2385,7 +2385,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?12">rashad@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?12">rashad@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2486,7 +2486,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?13">IP:10.4.160.230, MAC:0000D12765F4</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?13">IP:10.4.160.230, MAC:0000D12765F4</A></td></tr></table></TD>
 
 
     </TR>
@@ -2587,7 +2587,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?14">doris@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?14">doris@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2688,7 +2688,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?15">IP:10.203.139.97, MAC:0000FA2C8FB1</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?15">IP:10.203.139.97, MAC:0000FA2C8FB1</A></td></tr></table></TD>
 
 
     </TR>
@@ -2789,7 +2789,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?16">hane-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?16">hane-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2890,7 +2890,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?17">IP:10.75.143.4, MAC:0000EE773AA3</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?17">IP:10.75.143.4, MAC:0000EE773AA3</A></td></tr></table></TD>
 
 
     </TR>
@@ -2991,7 +2991,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?18">will-schmitt-and-buckridge.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?18">will-schmitt-and-buckridge.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3092,7 +3092,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?19">507789172836615</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?19">507789172836615</A></td></tr></table></TD>
 
 
     </TR>
@@ -3193,7 +3193,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?20">hagenes-mclaughlin-and-fadel.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?20">hagenes-mclaughlin-and-fadel.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3294,7 +3294,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?21">402545251883238</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?21">402545251883238</A></td></tr></table></TD>
 
 
     </TR>
@@ -3395,7 +3395,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?22">hilario@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?22">hilario@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3496,7 +3496,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?23">5204979036</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?23">5204979036</A></td></tr></table></TD>
 
 
     </TR>
@@ -3597,7 +3597,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?24">lennie@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?24">lennie@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3698,7 +3698,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?25">IP:10.2.159.93, MAC:0000BEEA3257</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?25">IP:10.2.159.93, MAC:0000BEEA3257</A></td></tr></table></TD>
 
 
     </TR>
@@ -3799,7 +3799,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?26">travis@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?26">travis@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3900,7 +3900,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?27">IP:10.147.177.86, MAC:0000E5156362</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?27">IP:10.147.177.86, MAC:0000E5156362</A></td></tr></table></TD>
 
 
     </TR>
@@ -4001,7 +4001,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?28">watsica-sauer-and-braun.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?28">watsica-sauer-and-braun.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4102,7 +4102,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?29">IP:10.61.84.169, MAC:000069394AF2</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?29">IP:10.61.84.169, MAC:000069394AF2</A></td></tr></table></TD>
 
 
     </TR>
@@ -4203,7 +4203,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?30">greenholt-parisian.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?30">greenholt-parisian.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4304,7 +4304,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?31">2103459718</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?31">2103459718</A></td></tr></table></TD>
 
 
     </TR>
@@ -4405,7 +4405,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?32">corkery-hackett-and-franecki.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?32">corkery-hackett-and-franecki.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4506,7 +4506,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?33">14745441565</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?33">14745441565</A></td></tr></table></TD>
 
 
     </TR>
@@ -4607,7 +4607,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?34">william@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?34">william@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4708,7 +4708,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?35">4609716945803</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?35">4609716945803</A></td></tr></table></TD>
 
 
     </TR>
@@ -4809,7 +4809,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?36">richmond@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?36">richmond@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4910,7 +4910,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?37">IP:10.229.63.194, MAC:00004D3E8513</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?37">IP:10.229.63.194, MAC:00004D3E8513</A></td></tr></table></TD>
 
 
     </TR>
@@ -5011,7 +5011,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?38">samir@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?38">samir@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5112,7 +5112,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?39">IP:10.188.48.84, MAC:000036BEDE13</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?39">IP:10.188.48.84, MAC:000036BEDE13</A></td></tr></table></TD>
 
 
     </TR>
@@ -5213,7 +5213,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?40">ullrich-kilback.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?40">ullrich-kilback.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5314,7 +5314,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?41">IP:10.225.235.123, MAC:00003C2A1764</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?41">IP:10.225.235.123, MAC:00003C2A1764</A></td></tr></table></TD>
 
 
     </TR>
@@ -5415,7 +5415,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?42">crooks-collins.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?42">crooks-collins.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5516,7 +5516,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?43">7315522562</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?43">7315522562</A></td></tr></table></TD>
 
 
     </TR>
@@ -5617,7 +5617,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?44">kuhn-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?44">kuhn-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5718,7 +5718,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?45">5473351513</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?45">5473351513</A></td></tr></table></TD>
 
 
     </TR>
@@ -5819,7 +5819,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?46">walton@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?46">walton@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5920,7 +5920,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?47">580124349433539</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?47">580124349433539</A></td></tr></table></TD>
 
 
     </TR>
@@ -6021,7 +6021,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?48">nigel@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?48">nigel@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6122,7 +6122,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?49">IP:10.189.193.93, MAC:000043D6F9E3</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?49">IP:10.189.193.93, MAC:000043D6F9E3</A></td></tr></table></TD>
 
 
     </TR>
@@ -6223,7 +6223,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?50">sammy@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?50">sammy@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6324,7 +6324,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?51">IP:10.44.211.87, MAC:00008BCF4552</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?51">IP:10.44.211.87, MAC:00008BCF4552</A></td></tr></table></TD>
 
 
     </TR>
@@ -6425,7 +6425,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?52">hansen-kilback.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?52">hansen-kilback.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6526,7 +6526,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?53">IP:10.116.203.5, MAC:00005AFAF158</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?53">IP:10.116.203.5, MAC:00005AFAF158</A></td></tr></table></TD>
 
 
     </TR>
@@ -6627,7 +6627,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?54">klocko-inc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?54">klocko-inc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6728,7 +6728,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?55">47925781188566</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?55">47925781188566</A></td></tr></table></TD>
 
 
     </TR>
@@ -6829,7 +6829,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?56">ward-murphy-and-wisozk.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?56">ward-murphy-and-wisozk.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6930,7 +6930,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?57">215984572910627</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?57">215984572910627</A></td></tr></table></TD>
 
 
     </TR>
@@ -7031,7 +7031,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?58">linwood@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?58">linwood@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7132,7 +7132,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?59">5055483796977</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?59">5055483796977</A></td></tr></table></TD>
 
 
     </TR>
@@ -7233,7 +7233,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?60">esperanza@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?60">esperanza@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7334,7 +7334,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?61">IP:10.178.209.2, MAC:00009245E1CE</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?61">IP:10.178.209.2, MAC:00009245E1CE</A></td></tr></table></TD>
 
 
     </TR>
@@ -7435,7 +7435,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?62">branson@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?62">branson@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7536,7 +7536,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?63">IP:10.86.8.116, MAC:00009D2D385F</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?63">IP:10.86.8.116, MAC:00009D2D385F</A></td></tr></table></TD>
 
 
     </TR>
@@ -7637,7 +7637,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?64">okeefe-stracke.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?64">okeefe-stracke.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7738,7 +7738,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?65">IP:10.166.5.138, MAC:000020A5C9AB</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?65">IP:10.166.5.138, MAC:000020A5C9AB</A></td></tr></table></TD>
 
 
     </TR>
@@ -7839,7 +7839,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?66">murazik-padberg-and-dibbert.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?66">murazik-padberg-and-dibbert.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7940,7 +7940,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?67">510207687452209</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?67">510207687452209</A></td></tr></table></TD>
 
 
     </TR>
@@ -8041,7 +8041,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?68">rodriguez-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?68">rodriguez-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8142,7 +8142,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?69">19732087174151</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?69">19732087174151</A></td></tr></table></TD>
 
 
     </TR>
@@ -8243,7 +8243,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?70">victor@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?70">victor@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8344,7 +8344,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?71">99158298078002</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?71">99158298078002</A></td></tr></table></TD>
 
 
     </TR>
@@ -8445,7 +8445,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?72">ryleigh@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?72">ryleigh@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8546,7 +8546,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?73">IP:10.223.20.110, MAC:0000B618A255</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?73">IP:10.223.20.110, MAC:0000B618A255</A></td></tr></table></TD>
 
 
     </TR>
@@ -8647,7 +8647,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?74">citlalli@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?74">citlalli@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8748,7 +8748,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?75">IP:10.181.162.31, MAC:0000A7F64E79</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?75">IP:10.181.162.31, MAC:0000A7F64E79</A></td></tr></table></TD>
 
 
     </TR>
@@ -8849,7 +8849,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?76">gorczany-weimann.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?76">gorczany-weimann.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8950,7 +8950,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?77">IP:10.30.204.50, MAC:000097EB747A</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?77">IP:10.30.204.50, MAC:000097EB747A</A></td></tr></table></TD>
 
 
     </TR>
@@ -9051,7 +9051,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?78">ward-buckridge.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?78">ward-buckridge.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9152,7 +9152,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?79">8935173249</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?79">8935173249</A></td></tr></table></TD>
 
 
     </TR>
@@ -9253,7 +9253,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?80">treutel-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?80">treutel-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9354,7 +9354,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?81">152553597965486</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?81">152553597965486</A></td></tr></table></TD>
 
 
     </TR>
@@ -9455,7 +9455,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?82">lenora@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?82">lenora@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9556,7 +9556,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?83">114180154577357</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?83">114180154577357</A></td></tr></table></TD>
 
 
     </TR>
@@ -9657,7 +9657,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?84">nyasia@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?84">nyasia@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9758,7 +9758,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?85">IP:10.171.182.118, MAC:00003EE1A6D7</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?85">IP:10.171.182.118, MAC:00003EE1A6D7</A></td></tr></table></TD>
 
 
     </TR>
@@ -9859,7 +9859,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?86">alden@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?86">alden@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9960,7 +9960,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?87">IP:10.79.94.0, MAC:00008A11465E</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?87">IP:10.79.94.0, MAC:00008A11465E</A></td></tr></table></TD>
 
 
     </TR>
@@ -10061,7 +10061,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?88">baumbach-llc.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?88">baumbach-llc.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10162,7 +10162,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?89">IP:10.74.128.210, MAC:00009E471138</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?89">IP:10.74.128.210, MAC:00009E471138</A></td></tr></table></TD>
 
 
     </TR>
@@ -10263,7 +10263,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?90">kessler-larson-and-bauch.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?90">kessler-larson-and-bauch.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10364,7 +10364,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?91">1535633738761521</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?91">1535633738761521</A></td></tr></table></TD>
 
 
     </TR>
@@ -10465,7 +10465,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?92">moen-kovacek.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?92">moen-kovacek.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10566,7 +10566,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?93">7091741436337</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?93">7091741436337</A></td></tr></table></TD>
 
 
     </TR>
@@ -10667,7 +10667,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?94">sally@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?94">sally@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10768,7 +10768,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?95">1076194311</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?95">1076194311</A></td></tr></table></TD>
 
 
     </TR>
@@ -10869,7 +10869,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?96">drew@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?96">drew@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10970,7 +10970,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?97">IP:10.72.141.97, MAC:000086A32C19</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?97">IP:10.72.141.97, MAC:000086A32C19</A></td></tr></table></TD>
 
 
     </TR>
@@ -11071,7 +11071,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?98">nils@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?98">nils@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -11172,7 +11172,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?99">IP:10.229.201.34, MAC:0000494CF06C</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?99">IP:10.229.201.34, MAC:0000494CF06C</A></td></tr></table></TD>
 
 
     </TR>
@@ -11273,7 +11273,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?100">marvin-and-sons.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?100">marvin-and-sons.com</A></td></tr></table></TD>
 
 
     </TR>
index fc43d42..8a748b9 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -866,7 +866,7 @@ myMenu68.width = 256;
    
    
    
->Change&nbsp;these&nbsp;packages</A><BR><A HREF="http://localhost/freeside/misc/email-customers.html?table=cust_pkg&agent_virt_agentnum=&classnum=0&query=0&magic=bill&setup=0&setup=1446361199&pkgpart=5&pkgpart=2">Email a notice to these customers</A>
+>Change&nbsp;these&nbsp;packages</A><BR><A HREF="http://localhost/freeside/misc/email-customers.html?table=cust_pkg&agent_virt_agentnum=&classnum=0&magic=bill&pkgpart=5&pkgpart=2&query=0&setup=0&setup=1446361199">Email a notice to these customers</A>
 
 <BR><BR>
 
@@ -1259,7 +1259,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?2">berta@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?2">berta@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1360,7 +1360,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?7">19671718037</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?7">19671718037</A></td></tr></table></TD>
 
 
     </TR>
@@ -1461,7 +1461,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?21">402545251883238</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?21">402545251883238</A></td></tr></table></TD>
 
 
     </TR>
@@ -1562,7 +1562,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?22">hilario@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?22">hilario@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1663,7 +1663,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?23">5204979036</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?23">5204979036</A></td></tr></table></TD>
 
 
     </TR>
@@ -1764,7 +1764,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?24">lennie@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?24">lennie@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1865,7 +1865,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?26">travis@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?26">travis@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -1966,7 +1966,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?31">2103459718</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?31">2103459718</A></td></tr></table></TD>
 
 
     </TR>
@@ -2067,7 +2067,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?35">4609716945803</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?35">4609716945803</A></td></tr></table></TD>
 
 
     </TR>
@@ -2168,7 +2168,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?36">richmond@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?36">richmond@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2269,7 +2269,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?43">7315522562</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?43">7315522562</A></td></tr></table></TD>
 
 
     </TR>
@@ -2370,7 +2370,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?50">sammy@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?50">sammy@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2471,7 +2471,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?55">47925781188566</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?55">47925781188566</A></td></tr></table></TD>
 
 
     </TR>
@@ -2572,7 +2572,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?57">215984572910627</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?57">215984572910627</A></td></tr></table></TD>
 
 
     </TR>
@@ -2673,7 +2673,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?58">linwood@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?58">linwood@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -2774,7 +2774,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?67">510207687452209</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?67">510207687452209</A></td></tr></table></TD>
 
 
     </TR>
@@ -2875,7 +2875,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?71">99158298078002</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?71">99158298078002</A></td></tr></table></TD>
 
 
     </TR>
@@ -2976,7 +2976,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?72">ryleigh@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?72">ryleigh@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3077,7 +3077,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?74">citlalli@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?74">citlalli@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3178,7 +3178,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?81">152553597965486</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?81">152553597965486</A></td></tr></table></TD>
 
 
     </TR>
@@ -3279,7 +3279,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?82">lenora@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?82">lenora@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3380,7 +3380,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?83">114180154577357</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?83">114180154577357</A></td></tr></table></TD>
 
 
     </TR>
@@ -3481,7 +3481,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?84">nyasia@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?84">nyasia@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3582,7 +3582,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?86">alden@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?86">alden@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3683,7 +3683,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?93">7091741436337</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?93">7091741436337</A></td></tr></table></TD>
 
 
     </TR>
@@ -3784,7 +3784,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?94">sally@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?94">sally@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3885,7 +3885,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?98">nils@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?98">nils@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -3986,7 +3986,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?103">19242934458</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?103">19242934458</A></td></tr></table></TD>
 
 
     </TR>
@@ -4087,7 +4087,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?107">6941312477183</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?107">6941312477183</A></td></tr></table></TD>
 
 
     </TR>
@@ -4188,7 +4188,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?108">kolby@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?108">kolby@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4289,7 +4289,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?110">donato@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?110">donato@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4390,7 +4390,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?117">158607899401245</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?117">158607899401245</A></td></tr></table></TD>
 
 
     </TR>
@@ -4491,7 +4491,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?118">hardy@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?118">hardy@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4592,7 +4592,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?127">5260896063</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?127">5260896063</A></td></tr></table></TD>
 
 
     </TR>
@@ -4693,7 +4693,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?134">hilbert@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?134">hilbert@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -4794,7 +4794,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?139">71877083088273</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?139">71877083088273</A></td></tr></table></TD>
 
 
     </TR>
@@ -4895,7 +4895,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?143">95994707748468</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?143">95994707748468</A></td></tr></table></TD>
 
 
     </TR>
@@ -4996,7 +4996,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?144">ebony@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?144">ebony@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5097,7 +5097,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?146">edd@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?146">edd@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5198,7 +5198,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?151">7511349049</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?151">7511349049</A></td></tr></table></TD>
 
 
     </TR>
@@ -5299,7 +5299,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?153">0465059470</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?153">0465059470</A></td></tr></table></TD>
 
 
     </TR>
@@ -5400,7 +5400,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?154">ettie@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?154">ettie@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5501,7 +5501,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?155">261457560511658</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?155">261457560511658</A></td></tr></table></TD>
 
 
     </TR>
@@ -5602,7 +5602,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?156">haley@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?156">haley@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5703,7 +5703,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?165">1906003499937</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?165">1906003499937</A></td></tr></table></TD>
 
 
     </TR>
@@ -5804,7 +5804,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?166">rodolfo@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?166">rodolfo@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -5905,7 +5905,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?170">anika@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?170">anika@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6006,7 +6006,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?175">6741985321</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?175">6741985321</A></td></tr></table></TD>
 
 
     </TR>
@@ -6107,7 +6107,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?191">078151255309299</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?191">078151255309299</A></td></tr></table></TD>
 
 
     </TR>
@@ -6208,7 +6208,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?192">kaitlyn@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?192">kaitlyn@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6309,7 +6309,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?194">marian@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?194">marian@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6410,7 +6410,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?203">8632406717</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?203">8632406717</A></td></tr></table></TD>
 
 
     </TR>
@@ -6511,7 +6511,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?204">kacey@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?204">kacey@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6612,7 +6612,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?206">kyla@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?206">kyla@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6713,7 +6713,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?213">2636239939</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?213">2636239939</A></td></tr></table></TD>
 
 
     </TR>
@@ -6814,7 +6814,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?214">jacky@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?214">jacky@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -6915,7 +6915,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?218">horace@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?218">horace@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7016,7 +7016,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?223">68981950057600</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?223">68981950057600</A></td></tr></table></TD>
 
 
     </TR>
@@ -7117,7 +7117,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?225">31674614863771</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?225">31674614863771</A></td></tr></table></TD>
 
 
     </TR>
@@ -7218,7 +7218,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?226">alexa@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?226">alexa@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7319,7 +7319,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?237">10163759294554</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?237">10163759294554</A></td></tr></table></TD>
 
 
     </TR>
@@ -7420,7 +7420,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?238">lexie@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?238">lexie@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7521,7 +7521,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?242">cleo@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?242">cleo@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7622,7 +7622,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?247">2749371736</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?247">2749371736</A></td></tr></table></TD>
 
 
     </TR>
@@ -7723,7 +7723,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?251">70045317269958</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?251">70045317269958</A></td></tr></table></TD>
 
 
     </TR>
@@ -7824,7 +7824,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?252">clinton@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?252">clinton@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -7925,7 +7925,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?259">106766405260980</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?259">106766405260980</A></td></tr></table></TD>
 
 
     </TR>
@@ -8026,7 +8026,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?271">9519625792</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?271">9519625792</A></td></tr></table></TD>
 
 
     </TR>
@@ -8127,7 +8127,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?273">16095013569</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?273">16095013569</A></td></tr></table></TD>
 
 
     </TR>
@@ -8228,7 +8228,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?274">karen@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?274">karen@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8329,7 +8329,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?275">1732869050</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?275">1732869050</A></td></tr></table></TD>
 
 
     </TR>
@@ -8430,7 +8430,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?276">antwan@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?276">antwan@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8531,7 +8531,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?278">mitchell@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?278">mitchell@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8632,7 +8632,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?283">5866817423</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?283">5866817423</A></td></tr></table></TD>
 
 
     </TR>
@@ -8733,7 +8733,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?285">3521080416</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?285">3521080416</A></td></tr></table></TD>
 
 
     </TR>
@@ -8834,7 +8834,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?286">rebeca@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?286">rebeca@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -8935,7 +8935,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?287">183790150181541</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?287">183790150181541</A></td></tr></table></TD>
 
 
     </TR>
@@ -9036,7 +9036,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?288">ibrahim@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?288">ibrahim@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9137,7 +9137,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?290">jadon@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?290">jadon@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9238,7 +9238,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?295">14991580189167</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?295">14991580189167</A></td></tr></table></TD>
 
 
     </TR>
@@ -9339,7 +9339,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?299">2964457155392</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?299">2964457155392</A></td></tr></table></TD>
 
 
     </TR>
@@ -9440,7 +9440,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?300">coby@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?300">coby@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9541,7 +9541,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?307">4593519604</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?307">4593519604</A></td></tr></table></TD>
 
 
     </TR>
@@ -9642,7 +9642,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?323">4989851645</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?323">4989851645</A></td></tr></table></TD>
 
 
     </TR>
@@ -9743,7 +9743,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?324">stanton@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?324">stanton@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -9844,7 +9844,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?333">3337658056</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?333">3337658056</A></td></tr></table></TD>
 
 
     </TR>
@@ -9945,7 +9945,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?334">clarabelle@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?334">clarabelle@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10046,7 +10046,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?338">stan@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?338">stan@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10147,7 +10147,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?345">0783009535773</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?345">0783009535773</A></td></tr></table></TD>
 
 
     </TR>
@@ -10248,7 +10248,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?346">marc@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?346">marc@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10349,7 +10349,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?347">1894866195856273</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?347">1894866195856273</A></td></tr></table></TD>
 
 
     </TR>
@@ -10450,7 +10450,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?348">newell@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?348">newell@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10551,7 +10551,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?355">15790441533145</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?355">15790441533145</A></td></tr></table></TD>
 
 
     </TR>
@@ -10652,7 +10652,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?359">3724022714296</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?359">3724022714296</A></td></tr></table></TD>
 
 
     </TR>
@@ -10753,7 +10753,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?360">therese@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?360">therese@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -10854,7 +10854,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?367">4942001551</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?367">4942001551</A></td></tr></table></TD>
 
 
     </TR>
@@ -10955,7 +10955,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?374">maida@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?374">maida@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -11056,7 +11056,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?381">3911632965</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?381">3911632965</A></td></tr></table></TD>
 
 
     </TR>
@@ -11157,7 +11157,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_acct.cgi?382">eldridge@example.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_acct:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?382">eldridge@example.com</A></td></tr></table></TD>
 
 
     </TR>
@@ -11258,7 +11258,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?383">150342529271096</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?383">150342529271096</A></td></tr></table></TD>
 
 
     </TR>
index 2ccc71f..7963b90 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1242,7 +1242,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?403">152300260278657</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?403">152300260278657</A></td></tr></table></TD>
 
 
     </TR>
@@ -1343,7 +1343,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_broadband.cgi?401">IP:10.98.22.188, MAC:00007E436BF5</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_broadband:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?401">IP:10.98.22.188, MAC:00007E436BF5</A></td></tr></table></TD>
 
 
     </TR>
@@ -1444,7 +1444,7 @@ myMenu68.width = 256;
 
 
 
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_domain.cgi?402">botsford-mueller.com</A></td></tr></table></TD>
+        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_domain:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/cust_svc.cgi?402">botsford-mueller.com</A></td></tr></table></TD>
 
 
     </TR>
diff --git a/FS-Test/share/output/search/cust_pkg.cgi/pkgnum b/FS-Test/share/output/search/cust_pkg.cgi/pkgnum
deleted file mode 100644 (file)
index 495e808..0000000
+++ /dev/null
@@ -1,11329 +0,0 @@
-
-            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
-  <HEAD>
-    <TITLE>
-      Package Search Results
-    </TITLE>
-    <!-- per RT, to prevent IE compatibility mode -->
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
-    <META HTTP-Equiv="Cache-Control" Content="no-cache">
-    <META HTTP-Equiv="Pragma" Content="no-cache">
-    <META HTTP-Equiv="Expires" Content="0"> 
-
-    <script type="text/javascript" src="http://localhost/freeside/elements/cssexpr.js"></script>
-
-
-  <script type="text/javascript" src="http://localhost/freeside/elements/xmenu.top.js"></script>
-  <link href="http://localhost/freeside/elements/xmenu.top.css" type="text/css" rel="stylesheet">
-
-
-  <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
-  <link href="http://localhost/freeside/elements/freeside-print.css" type="text/css" rel="stylesheet" media="print">
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-<SCRIPT TYPE="text/javascript">
-
-  function about_freeside() {
-    overlib( OLiframeContent('http://localhost/freeside/docs/about.html', 300, 375, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'About', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#7e0079', CGCOLOR, '#7e0079', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); 
-  }
-
-  webfxMenuImagePath      = "http://localhost/freeside/images/";
-  webfxMenuUseHover       = 1;
-  webfxMenuShowTime       = 300;
-  webfxMenuHideTime       = 500;
-
-  var myBar = new WebFXMenuBar;
-
-    
-          myBar.add(new WebFXMenuButton('Billing Main', "http://localhost/freeside/", 'Billing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('Ticketing Main', "http://localhost/freeside/rt/", 'Ticketing start page' ));
-
-    
-          myBar.add(new WebFXMenuButton('New prospect', "http://localhost/freeside/edit/prospect_main.html", 'Add a new prospect' ));
-
-    
-          myBar.add(new WebFXMenuButton('New customer', "http://localhost/freeside/edit/cust_main.cgi", 'Add a new customer' ));
-
-
-          var myMenu0 = new WebFXMenu;
-myMenu0.emptyText = '';
-var myMenu1 = new WebFXMenu;
-myMenu1.emptyText = '';
-myMenu1.add(new WebFXMenuItem("List prospects", "http://localhost/freeside/search/prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuItem("Advanced prospect reports", "http://localhost/freeside/search/report_prospect_main.html", "" ));
-myMenu1.add(new WebFXMenuSeparator());
-myMenu1.add(new WebFXMenuItem("Prospect contacts", "http://localhost/freeside/search/report_contact.html?link=prospect_main", "" ));
-myMenu1.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Prospects", null, "Prospect reports", myMenu1 ));
-var myMenu2 = new WebFXMenu;
-myMenu2.emptyText = '';
-myMenu2.add(new WebFXMenuItem("List quotations", "http://localhost/freeside/search/quotation.html", "" ));
-myMenu2.add(new WebFXMenuItem("Advanced quotation reports", "http://localhost/freeside/search/report_quotation.html", "" ));
-myMenu2.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Quotations", null, "Quotation reports", myMenu2 ));
-var myMenu3 = new WebFXMenu;
-myMenu3.emptyText = '';
-var myMenu4 = new WebFXMenu;
-myMenu4.emptyText = '';
-myMenu4.add(new WebFXMenuItem("by customer number", "http://localhost/freeside/search/cust_main.cgi?browse=custnum", "" ));
-myMenu4.add(new WebFXMenuItem("by last name", "http://localhost/freeside/search/cust_main.cgi?browse=last", "" ));
-myMenu4.add(new WebFXMenuItem("by company name", "http://localhost/freeside/search/cust_main.cgi?browse=company", "" ));
-myMenu4.add(new WebFXMenuItem("by active trouble tickets", "http://localhost/freeside/search/cust_main.cgi?browse=tickets", "" ));
-myMenu4.width = 256;
-
-myMenu3.add(new WebFXMenuItem("List customers", null, "List customers", myMenu4 ));
-myMenu3.add(new WebFXMenuItem("Zip code distribution", "http://localhost/freeside/search/report_cust_main-zip.html", "Zip codes by number of customers" ));
-myMenu3.add(new WebFXMenuItem("Customer signup report", "http://localhost/freeside/graph/report_cust_signup.html", "New customer signups by date" ));
-myMenu3.add(new WebFXMenuItem("Customer churn report", "http://localhost/freeside/graph/report_cust_churn.html", "New customers, suspensions, and cancellations summary" ));
-myMenu3.add(new WebFXMenuItem("Signup date report", "http://localhost/freeside/graph/report_signupdate.html", "Signup date report (by date of signup)" ));
-myMenu3.add(new WebFXMenuItem("Advanced customer reports", "http://localhost/freeside/search/report_cust_main.html", "by status, signup date, agent, etc." ));
-myMenu3.add(new WebFXMenuSeparator());
-myMenu3.add(new WebFXMenuItem("Customer contacts", "http://localhost/freeside/search/report_contact.html?link=cust_main", "" ));
-myMenu3.add(new WebFXMenuItem("Customer stored payment information", "http://localhost/freeside/search/report_cust_payby.html", "" ));
-myMenu3.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Customers", null, "Customer reports", myMenu3 ));
-var myMenu5 = new WebFXMenu;
-myMenu5.emptyText = '';
-var myMenu6 = new WebFXMenu;
-myMenu6.emptyText = '';
-myMenu6.add(new WebFXMenuItem("All open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN_date", "All invoices with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("15 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN15_date", "Invoices 15 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("30 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN30_date", "Invoices 30 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("60 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN60_date", "Invoices 60 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("90 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN90_date", "Invoices 90 days or older with an unpaid balance" ));
-myMenu6.add(new WebFXMenuItem("120 day open invoices", "http://localhost/freeside/search/cust_bill.html?OPEN120_date", "Invoices 120 days or older with an unpaid balance" ));
-myMenu6.width = 256;
-
-myMenu5.add(new WebFXMenuItem("Open invoices", null, "Open invoices", myMenu6 ));
-myMenu5.add(new WebFXMenuItem("All invoices", "http://localhost/freeside/search/cust_bill.html?date", "List all invoices" ));
-myMenu5.add(new WebFXMenuItem("Advanced invoice reports", "http://localhost/freeside/search/report_cust_bill.html", "by agent, date range, etc." ));
-myMenu5.add(new WebFXMenuSeparator());
-myMenu5.add(new WebFXMenuItem("Line items", "http://localhost/freeside/search/report_cust_bill_pkg.html", "Individual line item detail" ));
-myMenu5.add(new WebFXMenuItem("Voided invoices", "http://localhost/freeside/search/report_cust_bill_void.html", "Search for voided invoices" ));
-myMenu5.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Invoices", null, "Invoice reports", myMenu5 ));
-var myMenu7 = new WebFXMenu;
-myMenu7.emptyText = '';
-myMenu7.add(new WebFXMenuItem("Discount graph", "http://localhost/freeside/graph/report_cust_bill_pkg_discount.html", "Discount overview per month" ));
-myMenu7.add(new WebFXMenuItem("Discount detail", "http://localhost/freeside/search/report_cust_bill_pkg_discount.html", "Discount report (by employee and/or date range)" ));
-myMenu7.add(new WebFXMenuItem("Package discounts", "http://localhost/freeside/search/report_cust_pkg_discount.html", "Active/inactive discounts by package" ));
-myMenu7.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Discounts", null, "Discount reports", myMenu7 ));
-var myMenu8 = new WebFXMenu;
-myMenu8.emptyText = '';
-myMenu8.add(new WebFXMenuItem("Payments", "http://localhost/freeside/search/report_cust_pay.html", "Payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Payment application detail", "http://localhost/freeside/search/report_cust_bill_pay_pkg.html", "Line item application detail" ));
-myMenu8.add(new WebFXMenuItem("Pending Payments", "http://localhost/freeside/search/cust_pay_pending.html?magic=_date;statusNOT=done", "Pending real-time payments" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payments", "http://localhost/freeside/search/report_cust_pay.html?unapplied=1", "Unapplied payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Voided Payments", "http://localhost/freeside/search/report_cust_pay.html?void=1", "Voided payment report (by type and/or date range)" ));
-myMenu8.add(new WebFXMenuItem("Unapplied Payment Aging", "http://localhost/freeside/search/report_unapplied_cust_pay.html", "Unapplied payment aging report" ));
-myMenu8.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Payments", null, "Payment reports", myMenu8 ));
-var myMenu9 = new WebFXMenu;
-myMenu9.emptyText = '';
-myMenu9.add(new WebFXMenuItem("Package definitions (by # active)", "http://localhost/freeside/browse/part_pkg.cgi?active=1", "Package definitions by number of active packages" ));
-myMenu9.add(new WebFXMenuItem("Package costs", "http://localhost/freeside/graph/report_cust_pkg_cost.html", "Package setup and recurring costs graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("Package churn", "http://localhost/freeside/graph/report_cust_pkg.html", "Orders, suspensions and cancellations summary graph" ));
-myMenu9.add(new WebFXMenuSeparator());
-myMenu9.add(new WebFXMenuItem("All customer packages", "http://localhost/freeside/search/cust_pkg.cgi?pkgnum", "List all customer packages" ));
-myMenu9.add(new WebFXMenuItem("Package summary", "http://localhost/freeside/search/cust_pkg_summary.html", "Show package sales summary" ));
-myMenu9.add(new WebFXMenuItem("Suspended customer packages", "http://localhost/freeside/search/cust_pkg.cgi?magic=suspended", "List suspended packages" ));
-myMenu9.add(new WebFXMenuItem("Suspension summary", "http://localhost/freeside/search/cust_pkg_susp.html", "Show suspension activity" ));
-myMenu9.add(new WebFXMenuItem("Customer packages with unconfigured services", "http://localhost/freeside/search/cust_pkg.cgi?APKG_pkgnum", "List packages which have provisionable services" ));
-myMenu9.add(new WebFXMenuItem("Advanced package reports", "http://localhost/freeside/search/report_cust_pkg.html", "by agent, date range, status, package definition" ));
-myMenu9.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Packages", null, "Package reports", myMenu9 ));
-var myMenu10 = new WebFXMenu;
-myMenu10.emptyText = '';
-myMenu10.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi?orderby=active", "Service definitions by number of active packages" ));
-myMenu10.add(new WebFXMenuSeparator());
-myMenu10.add(new WebFXMenuItem("Unprovisioned services", "http://localhost/freeside/search/report_unprovisioned_services.html", "Unprovisioned services" ));
-myMenu10.add(new WebFXMenuSeparator());
-var myMenu11 = new WebFXMenu;
-myMenu11.emptyText = '';
-myMenu11.add(new WebFXMenuItem("All accounts by Username", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=username", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by UID", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=uid", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts with Time Remaining", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=seconds", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts by Last login", "http://localhost/freeside/search/svc_acct.cgi?magic=all;sortby=last_login", "" ));
-myMenu11.add(new WebFXMenuItem("All accounts never logged in", "http://localhost/freeside/search/svc_acct.cgi?magic=nologin;sortby=svcnum", "" ));
-myMenu11.add(new WebFXMenuItem("Advanced account reports", "http://localhost/freeside/search/report_svc_acct.html", "" ));
-myMenu11.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Accounts", null, "Access accounts and mailboxes", myMenu11 ));
-var myMenu12 = new WebFXMenu;
-myMenu12.emptyText = '';
-myMenu12.add(new WebFXMenuItem("All domains", "http://localhost/freeside/search/svc_domain.cgi?magic=all;sortby=domain", "" ));
-myMenu12.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Domains", null, "Domains", myMenu12 ));
-var myMenu13 = new WebFXMenu;
-myMenu13.emptyText = '';
-myMenu13.add(new WebFXMenuItem("All certificates", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cert;magic=all;sortby=svcnum", "" ));
-myMenu13.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Certificates", null, "Example services", myMenu13 ));
-var myMenu14 = new WebFXMenu;
-myMenu14.emptyText = '';
-myMenu14.add(new WebFXMenuItem("All mail forwards", "http://localhost/freeside/search/svc_forward.cgi?magic=all;sortby=svcnum", "" ));
-myMenu14.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mail forwards", null, "Mail forwards", myMenu14 ));
-var myMenu15 = new WebFXMenu;
-myMenu15.emptyText = '';
-myMenu15.add(new WebFXMenuItem("All mailing lists", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_mailinglist;magic=all;sortby=svcnum", "" ));
-myMenu15.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Mailing lists", null, "Mailing lists", myMenu15 ));
-var myMenu16 = new WebFXMenu;
-myMenu16.emptyText = '';
-myMenu16.add(new WebFXMenuItem("All virtual hosting services", "http://localhost/freeside/search/svc_www.cgi?magic=all;sortby=svcnum", "" ));
-myMenu16.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Virtual hosting services", null, "Virtual hosting services", myMenu16 ));
-var myMenu17 = new WebFXMenu;
-myMenu17.emptyText = '';
-myMenu17.add(new WebFXMenuItem("All wireless broadband services", "http://localhost/freeside/search/svc_broadband.cgi?magic=all;sortby=svcnum", "" ));
-myMenu17.add(new WebFXMenuItem("Advanced wireless broadband reports", "http://localhost/freeside/search/report_svc_broadband.html", "" ));
-myMenu17.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Wireless broadband services", null, "Fixed wireless broadband services", myMenu17 ));
-var myMenu18 = new WebFXMenu;
-myMenu18.emptyText = '';
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Service", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=svcnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by Serial number", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=serialnum", "" ));
-myMenu18.add(new WebFXMenuItem("All cable subscribers by MAC address", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_cable;magic=all;sortby=mac_addr", "" ));
-myMenu18.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Cable Subscribers", null, "Cable Subscribers", myMenu18 ));
-var myMenu19 = new WebFXMenu;
-myMenu19.emptyText = '';
-myMenu19.add(new WebFXMenuItem("All DSLs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_dsl;magic=all;sortby=phonenum", "" ));
-myMenu19.add(new WebFXMenuItem("Qualifications", "http://localhost/freeside/search/qual.cgi", "" ));
-myMenu19.width = 256;
-
-myMenu10.add(new WebFXMenuItem("DSLs", null, "DSLs", myMenu19 ));
-var myMenu20 = new WebFXMenu;
-myMenu20.emptyText = '';
-myMenu20.add(new WebFXMenuItem("All dish services", "http://localhost/freeside/search/svc_dish.cgi?magic=all;sortby=svcnum", "" ));
-myMenu20.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Dish services", null, "Dish services", myMenu20 ));
-var myMenu21 = new WebFXMenu;
-myMenu21.emptyText = '';
-myMenu21.add(new WebFXMenuItem("All hardware", "http://localhost/freeside/search/svc_hardware.cgi?magic=all;sortby=svcnum", "" ));
-myMenu21.add(new WebFXMenuItem("Advanced hardware reports", "http://localhost/freeside/search/report_svc_hardware.html", "" ));
-myMenu21.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Hardware", null, "Hardware", myMenu21 ));
-var myMenu22 = new WebFXMenu;
-myMenu22.emptyText = '';
-myMenu22.add(new WebFXMenuItem("All phone numbers", "http://localhost/freeside/search/svc_phone.cgi?magic=all;sortby=phonenum", "" ));
-myMenu22.add(new WebFXMenuItem("Phone numbers' total usage by time period", "http://localhost/freeside/search/report_svc_phone_usage.html", "Total usage (minutes, and amount billed) for the specified time period, per phone number." ));
-myMenu22.add(new WebFXMenuItem("Phone numbers by state", "http://localhost/freeside/search/phone_state.html", "Current or historical phone services broken down by state." ));
-myMenu22.add(new WebFXMenuItem("Advanced phone number reports", "http://localhost/freeside/search/report_svc_phone.html", "" ));
-myMenu22.add(new WebFXMenuItem("Phone number (DID) availability", "http://localhost/freeside/search/report_phone_avail.html", "" ));
-myMenu22.add(new WebFXMenuItem("Inventory/Provisioning Status", "http://localhost/freeside/search/phone_inventory_provisioned.html", "" ));
-myMenu22.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Phone numbers", null, "Phone numbers", myMenu22 ));
-var myMenu23 = new WebFXMenu;
-myMenu23.emptyText = '';
-myMenu23.add(new WebFXMenuItem("All PBXs", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_pbx;magic=all;sortby=svcnum", "" ));
-myMenu23.width = 256;
-
-myMenu10.add(new WebFXMenuItem("PBXs", null, "PBXs", myMenu23 ));
-var myMenu24 = new WebFXMenu;
-myMenu24.emptyText = '';
-myMenu24.add(new WebFXMenuItem("All circuits", "http://localhost/freeside/search/svc_circuit.cgi?magic=all;sortby=svcnum", "" ));
-myMenu24.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Circuits", null, "Voice and data circuit services", myMenu24 ));
-var myMenu25 = new WebFXMenu;
-myMenu25.emptyText = '';
-myMenu25.add(new WebFXMenuItem("All ports", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_port;magic=all;sortby=serviceid", "" ));
-myMenu25.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Ports", null, "Ports", myMenu25 ));
-var myMenu26 = new WebFXMenu;
-myMenu26.emptyText = '';
-myMenu26.add(new WebFXMenuItem("All alarm services", "http://localhost/freeside/search/cust_svc.html?svcdb=svc_alarm;magic=all;sortby=acctnum", "" ));
-myMenu26.width = 256;
-
-myMenu10.add(new WebFXMenuItem("Alarm services", null, "Alarm services", myMenu26 ));
-var myMenu27 = new WebFXMenu;
-myMenu27.emptyText = '';
-myMenu27.add(new WebFXMenuItem("All external services", "http://localhost/freeside/search/svc_external.cgi?magic=all;sortby=id", "" ));
-myMenu27.width = 256;
-
-myMenu10.add(new WebFXMenuItem("External services", null, "External services", myMenu27 ));
-myMenu10.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Services", null, "Services reports", myMenu10 ));
-var myMenu28 = new WebFXMenu;
-myMenu28.emptyText = '';
-myMenu28.add(new WebFXMenuItem("Inventory by agent", "http://localhost/freeside/search/report_agent_inventory.html", "" ));
-myMenu28.add(new WebFXMenuItem("Inventory activity", "http://localhost/freeside/search/report_h_inventory_item.html", "" ));
-myMenu28.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Inventory", null, "Inventory reports", myMenu28 ));
-var myMenu29 = new WebFXMenu;
-myMenu29.emptyText = '';
-myMenu29.add(new WebFXMenuItem("RADIUS sessions", "http://localhost/freeside/search/sqlradius.html", "" ));
-myMenu29.add(new WebFXMenuItem("RADIUS data usage", "http://localhost/freeside/search/report_sqlradius_usage.html", "" ));
-myMenu29.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/search/report_cdr.html", "" ));
-myMenu29.add(new WebFXMenuItem("Unrateable CDRs", "http://localhost/freeside/search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_", "" ));
-myMenu29.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Usage", null, "Usage reports", myMenu29 ));
-var myMenu30 = new WebFXMenu;
-myMenu30.emptyText = '';
-var myMenu31 = new WebFXMenu;
-myMenu31.emptyText = '';
-myMenu31.add(new WebFXMenuItem("Tickets per day per Queue", "http://localhost/freeside/rt/RTx/Statistics/CallsQueueDay", "View the number of tickets created, resolved or deleted in a specific Queue, over the requested period of days" ));
-myMenu31.add(new WebFXMenuItem("Ticket status by Queue", "http://localhost/freeside/rt/RTx/Statistics/OpenStalled", "View numbers of new, open and stalled tickets in a selected Queue" ));
-myMenu31.add(new WebFXMenuItem("Tickets per day (multiple Queues)", "http://localhost/freeside/rt/RTx/Statistics/CallsMultiQueue", "View tickets created, resolved or deleted on in one or more Queues over a specified time period" ));
-myMenu31.add(new WebFXMenuItem("Tickets per Day of Week", "http://localhost/freeside/rt/RTx/Statistics/DayOfWeek", "View trends showing when tickets are created, resolved or deleted" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve", "http://localhost/freeside/rt/RTx/Statistics/Resolution", "View how long tickets take to be resolved by Queue" ));
-myMenu31.add(new WebFXMenuItem("Time to resolve (scatter graph)", "http://localhost/freeside/rt/RTx/Statistics/TimeToResolve", "View a detailed scatter graph of time to resolve tickets by Queue" ));
-myMenu31.width = 256;
-
-myMenu30.add(new WebFXMenuItem("Statistics", null, "", myMenu31 ));
-myMenu30.add(new WebFXMenuSeparator());
-myMenu30.add(new WebFXMenuItem("Advanced ticket reports", "http://localhost/freeside/rt/Search/Build.html?NewQuery=1", "List tickets by any criteria" ));
-myMenu30.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Tickets", null, "Ticket reports", myMenu30 ));
-var myMenu32 = new WebFXMenu;
-myMenu32.emptyText = '';
-var myMenu33 = new WebFXMenu;
-myMenu33.emptyText = '';
-myMenu33.add(new WebFXMenuItem("Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time.html", "Sales, credits and receipts summary graph" ));
-myMenu33.add(new WebFXMenuItem("Daily Sales, Credits and Receipts", "http://localhost/freeside/graph/report_money_time_daily.html", "Sales, credits and receipts (broken down by day) summary graph" ));
-myMenu33.add(new WebFXMenuItem("Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg.html", "Sales report and graph (by agent, package class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Rated Call Sales Report", "http://localhost/freeside/graph/report_cust_bill_pkg_detail.html", "Sales report and graph (by agent, package class, usage class and/or date range)" ));
-myMenu33.add(new WebFXMenuItem("Sales with Advertising Source", "http://localhost/freeside/search/report_cust_bill_pkg_referral.html", "" ));
-myMenu33.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Sales", null, "Sales reports", myMenu33 ));
-var myMenu34 = new WebFXMenu;
-myMenu34.emptyText = '';
-myMenu34.add(new WebFXMenuItem("Agent", "http://localhost/freeside/search/report_agent_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Agent per package", "http://localhost/freeside/search/report_agent_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person", "http://localhost/freeside/search/report_sales_commission.html", "" ));
-myMenu34.add(new WebFXMenuItem("Sales Person per package", "http://localhost/freeside/search/report_sales_commission_pkg.html", "" ));
-myMenu34.add(new WebFXMenuItem("Employee", "http://localhost/freeside/search/report_employee_commission.html", "" ));
-myMenu34.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Commissions", null, "Commission reports", myMenu34 ));
-var myMenu35 = new WebFXMenu;
-myMenu35.emptyText = '';
-myMenu35.add(new WebFXMenuItem("Credit Report", "http://localhost/freeside/search/report_cust_credit.html", "Credit report (by employee and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Credit package source detail", "http://localhost/freeside/search/report_cust_credit_source_bill_pkg.html", "Line-item detail for triggered package credits" ));
-myMenu35.add(new WebFXMenuItem("Credit application detail", "http://localhost/freeside/search/report_cust_credit_bill_pkg.html", "Line item application detail" ));
-myMenu35.add(new WebFXMenuItem("Unapplied Credits", "http://localhost/freeside/search/report_cust_credit.html?unapplied=1", "Unapplied credit report (by type and/or date range)" ));
-myMenu35.add(new WebFXMenuItem("Voided Credits", "http://localhost/freeside/search/report_cust_credit_void.html", "Voided credit report (by employee and/or date range)" ));
-myMenu35.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Credits", null, "Credit reports", myMenu35 ));
-var myMenu36 = new WebFXMenu;
-myMenu36.emptyText = '';
-myMenu36.add(new WebFXMenuItem("Refund Report", "http://localhost/freeside/search/report_cust_refund.html", "Refund report (by type and/or date range)" ));
-myMenu36.add(new WebFXMenuItem("Unapplied Refunds", "http://localhost/freeside/search/report_cust_refund.html?unapplied=1", "Unapplied refund report (by type and/or date range)" ));
-myMenu36.width = 256;
-
-myMenu32.add(new WebFXMenuItem("Refunds", null, "Refund reports", myMenu36 ));
-myMenu32.add(new WebFXMenuItem("A/R Aging", "http://localhost/freeside/search/report_receivables.html", "Accounts Receivable Aging report" ));
-myMenu32.add(new WebFXMenuItem("Prepaid Income", "http://localhost/freeside/search/report_prepaid_income.html", "Prepaid income (unearned revenue)  report" ));
-myMenu32.add(new WebFXMenuItem("Tax Liability", "http://localhost/freeside/search/report_tax.html", "Tax liability report (internal tax data)" ));
-myMenu32.add(new WebFXMenuItem("E911 Fee Summary", "http://localhost/freeside/search/report_e911.html", "E911 fee summary" ));
-myMenu32.add(new WebFXMenuItem("Customer Accounting Summary", "http://localhost/freeside/search/report_customer_accounting_summary.html", "Customer accounting summary report" ));
-myMenu32.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Receivables)", null, "Financial reports (Receivables)", myMenu32 ));
-var myMenu37 = new WebFXMenu;
-myMenu37.emptyText = '';
-myMenu37.add(new WebFXMenuItem("Payables summary", "http://localhost/freeside/search/report_vend_main.html", "Payables summary by vendor" ));
-myMenu37.add(new WebFXMenuItem("Payables detail", "http://localhost/freeside/search/report_vend_bill.html", "" ));
-myMenu37.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Financial (Payables)", null, "Financial reports (Payables)", myMenu37 ));
-var myMenu38 = new WebFXMenu;
-myMenu38.emptyText = '';
-var myMenu39 = new WebFXMenu;
-myMenu39.emptyText = '';
-myMenu39.add(new WebFXMenuItem("All billing events", "http://localhost/freeside/search/report_cust_event.html", "All billing events for a date range" ));
-myMenu39.add(new WebFXMenuItem("Billing event errors", "http://localhost/freeside/search/report_cust_event.html?failed=1", "Failed credit cards, processor or printer problems, etc." ));
-myMenu39.width = 256;
-
-myMenu38.add(new WebFXMenuItem("Billing events", null, "Billing events", myMenu39 ));
-myMenu38.add(new WebFXMenuItem("Credit limit incidents", "http://localhost/freeside/search/report_cust_main_credit_limit.html", "" ));
-myMenu38.add(new WebFXMenuItem("Employee activity", "http://localhost/freeside/search/report_employee_audit.html", "" ));
-myMenu38.add(new WebFXMenuItem("System log", "http://localhost/freeside/search/log.html", "View system events and debugging information." ));
-myMenu38.add(new WebFXMenuItem("Outgoing messages", "http://localhost/freeside/search/cust_msg.html", "View outgoing message log" ));
-myMenu38.width = 256;
-
-myMenu0.add(new WebFXMenuItem("Logs", null, "System and email logs", myMenu38 ));
-myMenu0.width = 256;
-
-          myBar.add(new WebFXMenuButton('Reports', null, 'Lists, reporting and graphing', myMenu0 ));
-
-
-          var myMenu40 = new WebFXMenu;
-myMenu40.emptyText = '';
-var myMenu41 = new WebFXMenu;
-myMenu41.emptyText = '';
-myMenu41.add(new WebFXMenuItem("Appointments", "http://localhost/freeside/rt/Search/Schedule.html?LengthMin=0", "View appointment schedule" ));
-myMenu41.add(new WebFXMenuItem("Attachments", "http://localhost/freeside/browse/cust_attachment.html", "View customer attachments" ));
-myMenu41.add(new WebFXMenuItem("Customer email settings", "http://localhost/freeside/misc/manage_cust_email.html", "" ));
-myMenu41.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Customers", null, "Customer tools", myMenu41 ));
-var myMenu42 = new WebFXMenu;
-myMenu42.emptyText = '';
-myMenu42.add(new WebFXMenuItem("Quick payment entry", "http://localhost/freeside/misc/batch-cust_pay.html", "Enter multiple payments in a batch" ));
-myMenu42.add(new WebFXMenuItem("Download invoice batches", "http://localhost/freeside/search/bill_batch.cgi", "" ));
-myMenu42.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Billing", null, "Payment and invoice tools", myMenu42 ));
-var myMenu43 = new WebFXMenu;
-myMenu43.emptyText = '';
-var myMenu44 = new WebFXMenu;
-myMenu44.emptyText = '';
-myMenu44.add(new WebFXMenuItem("Overview", "http://localhost/freeside/rt/Articles/index.html", "" ));
-myMenu44.add(new WebFXMenuItem("Search", "http://localhost/freeside/rt/Articles/Article/Search.html", "" ));
-myMenu44.add(new WebFXMenuItem("Topics", "http://localhost/freeside/rt/Articles/Topics.html", "" ));
-myMenu44.width = 256;
-
-myMenu43.add(new WebFXMenuItem("Articles", null, "", myMenu44 ));
-myMenu43.add(new WebFXMenuItem("My Day", "http://localhost/freeside/rt/Tools/MyDay.html", "" ));
-myMenu43.add(new WebFXMenuItem("My Reminders", "http://localhost/freeside/rt/Tools/MyReminders.html", "" ));
-myMenu43.add(new WebFXMenuItem("Offline", "http://localhost/freeside/rt/Tools/Offline.html", "" ));
-myMenu43.add(new WebFXMenuItem("Approval", "http://localhost/freeside/rt/Approvals/", "" ));
-myMenu43.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Ticketing", null, "Ticketing tools", myMenu43 ));
-var myMenu45 = new WebFXMenu;
-myMenu45.emptyText = '';
-myMenu45.add(new WebFXMenuItem("Bulk DID Orders", "http://localhost/freeside/browse/did_order.html", "View/manage bulk DID orders" ));
-myMenu45.add(new WebFXMenuItem("Business card scan", "http://localhost/freeside/edit/prospect_main-upload.html", "" ));
-myMenu45.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu45 ));
-var myMenu46 = new WebFXMenu;
-myMenu46.emptyText = '';
-myMenu46.add(new WebFXMenuItem("Customers", "http://localhost/freeside/misc/cust_main-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/misc/part_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer packages", "http://localhost/freeside/misc/cust_pkg-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Customer comments", "http://localhost/freeside/misc/cust_main_note-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("One-time charges", "http://localhost/freeside/misc/cust_main-import_charges.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Payments", "http://localhost/freeside/misc/cust_pay-import.cgi", "" ));
-myMenu46.add(new WebFXMenuItem("Credits", "http://localhost/freeside/misc/cust_credit-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Phone numbers (DIDs)", "http://localhost/freeside/misc/phone_avail-import.html", "" ));
-myMenu46.add(new WebFXMenuItem("Call Detail Records (CDRs)", "http://localhost/freeside/misc/cdr-import.html", "" ));
-myMenu46.width = 256;
-
-myMenu40.add(new WebFXMenuItem("Importing", null, "Import tools", myMenu46 ));
-var myMenu47 = new WebFXMenu;
-myMenu47.emptyText = '';
-myMenu47.add(new WebFXMenuItem("Status", "http://localhost/freeside/view/Status.html", "System status" ));
-myMenu47.add(new WebFXMenuItem("Job Queue", "http://localhost/freeside/search/queue.html", "View pending job queue" ));
-myMenu47.width = 256;
-
-myMenu40.add(new WebFXMenuItem("System", null, "System tools", myMenu47 ));
-myMenu40.width = 256;
-
-          myBar.add(new WebFXMenuButton('Tools', null, 'Tools', myMenu40 ));
-
-
-          var myMenu48 = new WebFXMenu;
-myMenu48.emptyText = '';
-myMenu48.add(new WebFXMenuItem("Settings", "http://localhost/freeside/config/config-view.cgi", "" ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu49 = new WebFXMenu;
-myMenu49.emptyText = '';
-myMenu49.add(new WebFXMenuItem("Agent types", "http://localhost/freeside/browse/agent_type.cgi", "Agent types define groups of package definitions that you can then assign to particular agents" ));
-myMenu49.add(new WebFXMenuItem("Agents", "http://localhost/freeside/browse/agent.cgi", "Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type)" ));
-myMenu49.add(new WebFXMenuItem("Agent payment gateways", "http://localhost/freeside/browse/payment_gateway.html", "Credit card and electronic check processors for agent overrides" ));
-myMenu49.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Companies", null, "", myMenu49 ));
-var myMenu50 = new WebFXMenu;
-myMenu50.emptyText = '';
-myMenu50.add(new WebFXMenuItem("Sales People", "http://localhost/freeside/browse/sales.html", "Sales people bring in new business." ));
-myMenu50.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Sales People", null, "", myMenu50 ));
-var myMenu51 = new WebFXMenu;
-myMenu51.emptyText = '';
-myMenu51.add(new WebFXMenuItem("Employees", "http://localhost/freeside/browse/access_user.html", "Setup internal users" ));
-myMenu51.add(new WebFXMenuItem("Employee groups", "http://localhost/freeside/browse/access_group.html", "Employee groups allow you to control access to the backend" ));
-myMenu51.add(new WebFXMenuItem("Installer availability", "http://localhost/freeside/browse/sched_item.html", "Installer availability" ));
-myMenu51.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Employees", null, "", myMenu51 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu52 = new WebFXMenu;
-myMenu52.emptyText = '';
-myMenu52.add(new WebFXMenuItem("Customer tags", "http://localhost/freeside/browse/part_tag.html", "" ));
-myMenu52.add(new WebFXMenuItem("Customer classes", "http://localhost/freeside/browse/cust_class.html", "Customer classes define groups of customers for reporting." ));
-myMenu52.add(new WebFXMenuItem("Customer categories", "http://localhost/freeside/browse/cust_category.html", "Customer categories define groups of customer classes." ));
-myMenu52.add(new WebFXMenuSeparator());
-myMenu52.add(new WebFXMenuItem("Contact types", "http://localhost/freeside/browse/contact_class.html", "" ));
-myMenu52.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Customers", null, "", myMenu52 ));
-var myMenu53 = new WebFXMenu;
-myMenu53.emptyText = '';
-myMenu53.add(new WebFXMenuItem("Package definitions", "http://localhost/freeside/browse/part_pkg.cgi", "One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services" ));
-myMenu53.add(new WebFXMenuItem("Package classes", "http://localhost/freeside/browse/pkg_class.html", "Package classes define groups of packages, for taxation, ordering convenience and reporting." ));
-myMenu53.add(new WebFXMenuItem("Package categories", "http://localhost/freeside/browse/pkg_category.html", "Package categories define groups of package classes, for invoice sections." ));
-myMenu53.add(new WebFXMenuItem("Package report classes", "http://localhost/freeside/browse/part_pkg_report_option.html", "Package classes define optional groups of packages for reporting only." ));
-myMenu53.add(new WebFXMenuItem("Fees", "http://localhost/freeside/browse/part_fee.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discounts", "http://localhost/freeside/browse/discount.html", "" ));
-myMenu53.add(new WebFXMenuItem("Discount classes", "http://localhost/freeside/browse/discount_class.html", "" ));
-var myMenu54 = new WebFXMenu;
-myMenu54.emptyText = '';
-myMenu54.add(new WebFXMenuItem("Cancel reasons", "http://localhost/freeside/browse/reason.html?class=C", "Cancel reasons explain why a service was cancelled." ));
-myMenu54.add(new WebFXMenuItem("Cancel reason types", "http://localhost/freeside/browse/reason_type.html?class=C", "Cancel reason types define groups of reasons." ));
-myMenu54.add(new WebFXMenuItem("Suspend reasons", "http://localhost/freeside/browse/reason.html?class=S", "Suspend reasons explain why a service was suspended." ));
-myMenu54.add(new WebFXMenuItem("Suspend reason types", "http://localhost/freeside/browse/reason_type.html?class=S", "Suspend reason types define groups of reasons." ));
-myMenu54.width = 256;
-
-myMenu53.add(new WebFXMenuItem("Cancel/Suspend Reasons", null, "", myMenu54 ));
-myMenu53.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Packages", null, "", myMenu53 ));
-var myMenu55 = new WebFXMenu;
-myMenu55.emptyText = '';
-myMenu55.add(new WebFXMenuItem("Service definitions", "http://localhost/freeside/browse/part_svc.cgi", "Services are items you offer to your customers" ));
-myMenu55.add(new WebFXMenuItem("Service classes", "http://localhost/freeside/browse/part_svc_class.html", "Services classes are user-defined, informational types for services" ));
-myMenu55.add(new WebFXMenuItem("Service dependencies", "http://localhost/freeside/browse/part_svc_link.html", "Services depencies define rules between service definitions" ));
-myMenu55.add(new WebFXMenuItem("Provisioning exports", "http://localhost/freeside/browse/part_export.cgi", "Provisioning services to external machines, databases and APIs" ));
-var myMenu56 = new WebFXMenu;
-myMenu56.emptyText = '';
-myMenu56.add(new WebFXMenuItem("Access numbers", "http://localhost/freeside/browse/svc_acct_pop.cgi", "Points of Presence" ));
-myMenu56.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Dialup", null, "", myMenu56 ));
-var myMenu57 = new WebFXMenu;
-myMenu57.emptyText = '';
-myMenu57.add(new WebFXMenuItem("Towers", "http://localhost/freeside/browse/tower.html", "Towers and sectors" ));
-myMenu57.add(new WebFXMenuItem("Routers", "http://localhost/freeside/browse/router.cgi", "Broadband access routers" ));
-myMenu57.add(new WebFXMenuItem("Address blocks", "http://localhost/freeside/browse/addr_block.cgi", "Manage address blocks and block assignments to broadband routers" ));
-myMenu57.add(new WebFXMenuItem("Address ranges", "http://localhost/freeside/browse/addr_range.html", "Designate special address ranges" ));
-myMenu57.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Wireless broadband", null, "", myMenu57 ));
-var myMenu58 = new WebFXMenu;
-myMenu58.emptyText = '';
-myMenu58.add(new WebFXMenuItem("View/Edit phone device types", "http://localhost/freeside/browse/part_device.html", "Phone device types" ));
-myMenu58.add(new WebFXMenuItem("View/Edit bulk DID vendors", "http://localhost/freeside/browse/did_vendor.html", "Bulk DID vendors" ));
-myMenu58.add(new WebFXMenuItem("View/Edit Carriers", "http://localhost/freeside/browse/cdr_carrier.html", "Carriers" ));
-myMenu58.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Phone", null, "", myMenu58 ));
-var myMenu59 = new WebFXMenu;
-myMenu59.emptyText = '';
-myMenu59.add(new WebFXMenuItem("RADIUS Groups", "http://localhost/freeside/browse/radius_group.html", "Manage RADIUS groups" ));
-myMenu59.add(new WebFXMenuItem("RADIUS Clients", "http://localhost/freeside/browse/nas.html", "Manage RADIUS clients" ));
-myMenu59.width = 256;
-
-myMenu55.add(new WebFXMenuItem("RADIUS", null, "", myMenu59 ));
-var myMenu60 = new WebFXMenu;
-myMenu60.emptyText = '';
-myMenu60.add(new WebFXMenuItem("Cable providers", "http://localhost/freeside/browse/cable_provider.html", "" ));
-myMenu60.add(new WebFXMenuItem("Cable modem models", "http://localhost/freeside/browse/cable_model.html", "" ));
-myMenu60.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Cable", null, "", myMenu60 ));
-var myMenu61 = new WebFXMenu;
-myMenu61.emptyText = '';
-myMenu61.add(new WebFXMenuItem("Conferencing types", "http://localhost/freeside/browse/conferencing_type.html", "" ));
-myMenu61.add(new WebFXMenuItem("Quality levels", "http://localhost/freeside/browse/conferencing_quality.html", "" ));
-myMenu61.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Conferencing", null, "", myMenu61 ));
-var myMenu62 = new WebFXMenu;
-myMenu62.emptyText = '';
-myMenu62.add(new WebFXMenuItem("Alarm system vendors", "http://localhost/freeside/browse/alarm_system.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm system types", "http://localhost/freeside/browse/alarm_type.html", "" ));
-myMenu62.add(new WebFXMenuItem("Alarm central stations", "http://localhost/freeside/browse/alarm_station.html", "" ));
-myMenu62.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Alarm", null, "", myMenu62 ));
-var myMenu63 = new WebFXMenu;
-myMenu63.emptyText = '';
-myMenu63.add(new WebFXMenuItem("Circuit types", "http://localhost/freeside/browse/circuit_type.html", "" ));
-myMenu63.add(new WebFXMenuItem("Circuit providers", "http://localhost/freeside/browse/circuit_provider.html", "" ));
-myMenu63.add(new WebFXMenuItem("Termination types", "http://localhost/freeside/browse/circuit_termination.html", "" ));
-myMenu63.width = 256;
-
-myMenu55.add(new WebFXMenuItem("Circuits", null, "", myMenu63 ));
-myMenu55.add(new WebFXMenuItem("Hardware types", "http://localhost/freeside/browse/hardware_class.html", "Set up hardware type catalog" ));
-myMenu55.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Services", null, "", myMenu55 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu64 = new WebFXMenu;
-myMenu64.emptyText = '';
-myMenu64.add(new WebFXMenuItem("Vendor classes", "http://localhost/freeside/browse/vend_class.html", "" ));
-myMenu64.add(new WebFXMenuItem("Vendors", "http://localhost/freeside/browse/vend_main.html", "" ));
-myMenu64.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Vendors", null, "", myMenu64 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu65 = new WebFXMenu;
-myMenu65.emptyText = '';
-myMenu65.add(new WebFXMenuItem("Billing events", "http://localhost/freeside/browse/part_event.html", "Billing actions for customers, invoices and packages" ));
-myMenu65.add(new WebFXMenuItem("Invoice configurations", "http://localhost/freeside/browse/invoice_conf.html", "Adjust invoice settings for special-purpose notices" ));
-myMenu65.add(new WebFXMenuItem("Invoice templates", "http://localhost/freeside/browse/invoice_template.html", "Edit templates for HTML, plaintext and typeset invoices" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Prepaid cards", "http://localhost/freeside/search/prepay_credit.html", "View outstanding cards, generate new cards" ));
-var myMenu66 = new WebFXMenu;
-myMenu66.emptyText = '';
-myMenu66.add(new WebFXMenuItem("Rate plans", "http://localhost/freeside/browse/rate.cgi", "Manage rate plans" ));
-myMenu66.add(new WebFXMenuItem("Regions and prefixes", "http://localhost/freeside/browse/rate_region.html", "Manage regions and prefixes" ));
-myMenu66.add(new WebFXMenuItem("Usage classes", "http://localhost/freeside/browse/usage_class.html", "Usage classes define groups of usage for taxation." ));
-myMenu66.add(new WebFXMenuItem("Time periods", "http://localhost/freeside/browse/rate_time.html", "Time periods define days and hours for rate plans" ));
-myMenu66.add(new WebFXMenuItem("Edit rates with Excel", "http://localhost/freeside/misc/rate_edit_excel.html", "Download and edit rates with Excel, then upload changes." ));
-myMenu66.add(new WebFXMenuSeparator());
-myMenu66.add(new WebFXMenuItem("Tiering plans", "http://localhost/freeside/browse/rate_tier.html", "Rating tiers" ));
-myMenu66.width = 256;
-
-myMenu65.add(new WebFXMenuItem("Call rates and regions", null, "Manage rate plans, regions and prefixes for VoIP and call billing", myMenu66 ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Locales and tax rates", "http://localhost/freeside/browse/cust_main_county.cgi", "Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each" ));
-myMenu65.add(new WebFXMenuItem("Tax classes", "http://localhost/freeside/browse/part_pkg_taxclass.html", "Tax classes" ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Credit reasons", "http://localhost/freeside/browse/reason.html?class=R", "Credit reasons explain why a credit was issued." ));
-myMenu65.add(new WebFXMenuItem("Credit reason types", "http://localhost/freeside/browse/reason_type.html?class=R", "Credit reason types define groups of reasons." ));
-myMenu65.add(new WebFXMenuSeparator());
-myMenu65.add(new WebFXMenuItem("Refund reasons", "http://localhost/freeside/browse/reason.html?class=F", "Refund reasons explain why a refund was issued." ));
-myMenu65.add(new WebFXMenuItem("Refund reason types", "http://localhost/freeside/browse/reason_type.html?class=F", "Refund reason types define groups of reasons." ));
-myMenu65.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
-myMenu48.add(new WebFXMenuSeparator());
-var myMenu67 = new WebFXMenu;
-myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
-myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
-myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
-myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
-myMenu67.add(new WebFXMenuItem("Inventory classes and inventory", "http://localhost/freeside/browse/inventory_class.html", "Setup inventory classes and stock inventory" ));
-myMenu67.add(new WebFXMenuItem("Upload targets", "http://localhost/freeside/browse/upload_target.html", "Billing and payment upload destinations" ));
-myMenu67.width = 256;
-
-myMenu48.add(new WebFXMenuItem("Miscellaneous", null, "", myMenu67 ));
-myMenu48.width = 256;
-
-          myBar.add(new WebFXMenuButton('Configuration', null, 'Configuration and setup', myMenu48 ));
-
-
-          var myMenu68 = new WebFXMenu;
-myMenu68.emptyText = '';
-myMenu68.add(new WebFXMenuItem("Billing documentation", "http://www.freeside.biz/mediawiki/index.php/Freeside:4:Documentation", "Freeside documentation" ));
-myMenu68.add(new WebFXMenuItem("Ticketing documentation", "http://wiki.bestpractical.com/", "Request Tracker Wiki" ));
-myMenu68.add(new WebFXMenuSeparator());
-myMenu68.add(new WebFXMenuItem("About Freeside v5.0git", "javascript:about_freeside()", "" ));
-myMenu68.add(new WebFXMenuItem("About RT v4.2.11", "http://www.bestpractical.com/rt", "Request Tracker Homepage" ));
-myMenu68.width = 256;
-
-          myBar.add(new WebFXMenuButton('Help', null, '', myMenu68 ));
-
-
-  myBar.show( null, 'vertical' );
-  myBar.width = 154;
-
-</SCRIPT>
-
-
-
-
-      <link rel="stylesheet" href="http://localhost/freeside/elements/jquery-ui.min.css">
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
-      <SCRIPT SRC="http://localhost/freeside/elements/jquery-ui.min.js"></SCRIPT>
-      <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_iframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_draggable.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/overlibmws_crossframe.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/iframecontentmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/ajaxcontentmws.js"></SCRIPT>
-
-    <SCRIPT TYPE="text/javascript">
-
-  function rs_init_object() {
-    var A;
-    try {
-      A=new ActiveXObject("Msxml2.XMLHTTP");
-    } catch (e) {
-      try {
-        A=new ActiveXObject("Microsoft.XMLHTTP");
-      } catch (oc) {
-        A=null;
-      }
-    }
-    if(!A && typeof XMLHttpRequest != "undefined")
-      A = new XMLHttpRequest();
-    if (!A)
-      alert("Can't create XMLHttpRequest object");
-    return A;
-
-  }
-
-</SCRIPT>
-
-
-    
-
-  </HEAD>
-  <BODY BGCOLOR="#f8f8f8"  STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px">
-    <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead">
-      <tr>
-        <td BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="http://localhost/freeside/view/REAL_logo.cgi"></td>
-        <td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
-          <font size=6>Freeside Test 5.0.1</font>
-        </td>
-        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b>test&nbsp;</b> <FONT SIZE="-2"><a href="http://localhost/freeside/loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="http://localhost/freeside/pref/pref.html" STYLE="color: #000000">Preferences</a>
-          <BR></FONT>
-        </td>
-      </tr>
-    </table>
-
-    <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
-
-<link href="http://localhost/freeside/elements/freeside-menu.css" type="text/css" rel="stylesheet">
-
-
-      <TR CLASS="fsmenubar">
-
-
-        <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd">
-          <SCRIPT TYPE="text/javascript">
-            document.write(myBar);
-          </SCRIPT>
-        </TD>
-
-      </TR>
-
-      <TR CLASS="fssearchbar">
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/prospect_main.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_prospect" TYPE="text" VALUE="(name, company or phone)" STYLE="width:155px" onFocus="clearhint_search_prospect(this);" onClick="clearhint_search_prospect(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_prospect_main.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>
-    <INPUT TYPE="submit" VALUE="Search prospects" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_prospect (what) {
-    if ( what.value == '(name, company or phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_main.cgi" METHOD="POST" STYLE="margin:0">
-    <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or contact phone)" STYLE="width:246px" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside/search/report_cust_main.html" CLASS="fslink" STYLE="font-size: 11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_cust (what) {
-    if ( what.value == '(cust #, name, company or contact phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center">
-          
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_address2 (what) {
-    if ( what.value == '(Unit #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline">
-    <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" STYLE="width:56px" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" CLASS="fstext">
-    <A HREF="http://localhost/freeside/search/report_cust_bill.html" CLASS="fslink" STYLE="font-size: 11px">Adv</A>    <BR>
-    <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px;padding-left:1px;padding-right:1px;margin-top:3px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_invoice (what) {
-    if ( what.value == '(inv #)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px">
-          
-  <FORM ACTION="http://localhost/freeside/search/cust_svc.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="search_svc" TYPE="text" VALUE="(user, email, ip, mac, domain or service phone)" STYLE="width:271px" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" CLASS="fstext"><BR>
-    <A NOTYET="http://localhost/freeside/search/svc_Smarter.html" STYLE="color: #cccccc; font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_svc (what) {
-    if ( what.value == '(user, email, ip, mac, domain or service phone)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-        <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px">
-          
-  <FORM ACTION="http://localhost/freeside//rt/index.html" METHOD="GET" STYLE="margin:0">
-    <INPUT NAME="q" TYPE="text" VALUE="(ticket #, subject, email or fulltext:text)" STYLE="width:223px" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" CLASS="fstext"><BR>
-    <A HREF="http://localhost/freeside//rt/Search/Build.html?NewQuery=1" CLASS="fslink" STYLE="font-size:11px">Advanced</A>
-    <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:11px">
-  </FORM>
-  
-
-
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_search_ticket (what) {
-    if ( what.value == '(ticket #, subject, email or fulltext:text)' )
-      what.value = '';
-  }
-
-</SCRIPT>
-
-        </TD>
-
-      </TR>
-    </TABLE>
-
-
-
-    <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4>
-
-      <TR HEIGHT="100%">
-
-    <BR>
-        <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> -->
-
-          <H1>
-            Package Search Results
-          </H1>
-
-          <BR>
-
-          
-
-
-
-
-        <A HREF="javascript:void(0);"
-   onClick="overlib( OLiframeContent('http://localhost/freeside/misc/bulk_change_pkg.cgi?', 569, 210, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Change Packages', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
-   
-   
-   
->Change&nbsp;these&nbsp;packages</A><BR><A HREF="http://localhost/freeside/misc/email-customers.html?table=cust_pkg&agent_virt_agentnum=&query=1">Email a notice to these customers</A>
-
-<BR><BR>
-
-
-
-        <TABLE>
-          <TR>
-
-            <TD VALIGN="bottom">
-
-              <FORM>
-
-                  601 total packages
-
-
-                  ( show <SELECT NAME="maxrecords" onChange="window.location = 'http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=' + this.options[this.selectedIndex].value;">
-
-                  <OPTION VALUE="100" SELECTED>100</OPTION>
-                  <OPTION VALUE="500" >500</OPTION>
-                  <OPTION VALUE="1000" >1000</OPTION>
-                  <OPTION VALUE="2500" >2500</OPTION>
-
-                 </SELECT> per page )
-
-
-                <BR>
-
-              </FORM>
-
-            </TD>
-
-
-              <TD ALIGN="right" CLASS="noprint">
-
-                Download full results<BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=packages.xls">Excel spreadsheet</A><BR>
-
-                as <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=csv">CSV file</A><BR>
-
-
-                as <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html-print">printable copy</A>
-
-              </TD>
-
-          </TR>
-          <TR>
-            <TD COLSPAN=2>
-
-
-                
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=600">7</A>
-
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-
-                
-
-
-              
-<TABLE CLASS="grid" CELLSPACING=0 CELLPADDING=0 >
-
-
-
-
-<THEAD>
-
-  <TR>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "2"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=pkgnum">#</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=quantity">Quan.</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Package
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=classname">Class</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Status
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=salesperson">Sales Person</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=0;order_by=otaker">Ordered by</A>
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Setup
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Base Recur
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Freq.
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Setup
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Last bill
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Next bill
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Adjourn
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Susp.
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Susp. delay
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Expire
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Contract end
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Changed
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Cancel
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Reason
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Cust. Status
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Customer
-    </TH>
-    <TH CLASS   = "grid"
-        BGCOLOR = "#cccccc"
-        ROWSPAN = "1"
-        
-        
-
-    >
-      Services
-    </TH>
-  </TR>
-
-
-</THEAD>
-
-<TBODY>
-
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=168;show=packages;fragment=cust_pkg501#cust_pkg501">501</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=168;show=packages;fragment=cust_pkg501#cust_pkg501">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=168;show=packages;fragment=cust_pkg501#cust_pkg501">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?168">Cole, Albertha</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?501">24465928708548</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=161;show=packages;fragment=cust_pkg479#cust_pkg479">479</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=161;show=packages;fragment=cust_pkg479#cust_pkg479">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=161;show=packages;fragment=cust_pkg479#cust_pkg479">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?161">Haley, Schaden and Ebert (Prosacco, Clementina)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?479">7422901680427</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=99;show=packages;fragment=cust_pkg295#cust_pkg295">295</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=99;show=packages;fragment=cust_pkg295#cust_pkg295">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=99;show=packages;fragment=cust_pkg295#cust_pkg295">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?99">Luettgen-Jacobs (Hintz, Junior)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?295">14991580189167</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=61;show=packages;fragment=cust_pkg179#cust_pkg179">179</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=61;show=packages;fragment=cust_pkg179#cust_pkg179">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=61;show=packages;fragment=cust_pkg179#cust_pkg179">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?61">Leuschke-Stamm (Dibbert, Betsy)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?179">2189396399</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=88;show=packages;fragment=cust_pkg261#cust_pkg261">261</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=88;show=packages;fragment=cust_pkg261#cust_pkg261">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=88;show=packages;fragment=cust_pkg261#cust_pkg261">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?88">Moore, Lina</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?261">5717780937</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=171;show=packages;fragment=cust_pkg511#cust_pkg511">511</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=171;show=packages;fragment=cust_pkg511#cust_pkg511">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=171;show=packages;fragment=cust_pkg511#cust_pkg511">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?171">Mante LLC (Kessler, Enid)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?511">9686105497</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=69;show=packages;fragment=cust_pkg203#cust_pkg203">203</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=69;show=packages;fragment=cust_pkg203#cust_pkg203">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=69;show=packages;fragment=cust_pkg203#cust_pkg203">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?69">Moore-Cummerata (DuBuque, Russ)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?203">8632406717</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=185;show=packages;fragment=cust_pkg551#cust_pkg551">551</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=185;show=packages;fragment=cust_pkg551#cust_pkg551">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=185;show=packages;fragment=cust_pkg551#cust_pkg551">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 02 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 02 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?185">Christiansen LLC (Howe, Luis)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?551">5191928764</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=131;show=packages;fragment=cust_pkg391#cust_pkg391">391</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=131;show=packages;fragment=cust_pkg391#cust_pkg391">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=131;show=packages;fragment=cust_pkg391#cust_pkg391">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?131">Wolff and Sons (Heller, Dagmar)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?391">16892538421</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=105;show=packages;fragment=cust_pkg311#cust_pkg311">311</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=105;show=packages;fragment=cust_pkg311#cust_pkg311">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=105;show=packages;fragment=cust_pkg311#cust_pkg311">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?105">Barton-Goodwin (Schroeder, Brian)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?311">8239761006014</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=27;show=packages;fragment=cust_pkg79#cust_pkg79">79</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=27;show=packages;fragment=cust_pkg79#cust_pkg79">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=27;show=packages;fragment=cust_pkg79#cust_pkg79">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?27">Haag-Schumm (Ullrich, Shemar)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?79">8935173249</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=75;show=packages;fragment=cust_pkg223#cust_pkg223">223</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=75;show=packages;fragment=cust_pkg223#cust_pkg223">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=75;show=packages;fragment=cust_pkg223#cust_pkg223">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?75">Hoeger-Brown (Shields, Serenity)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?223">68981950057600</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=72;show=packages;fragment=cust_pkg213#cust_pkg213">213</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=72;show=packages;fragment=cust_pkg213#cust_pkg213">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=72;show=packages;fragment=cust_pkg213#cust_pkg213">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?72">Lehner, Ryann</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?213">2636239939</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=111;show=packages;fragment=cust_pkg331#cust_pkg331">331</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=111;show=packages;fragment=cust_pkg331#cust_pkg331">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=111;show=packages;fragment=cust_pkg331#cust_pkg331">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?111">Treutel, Kuhn and Sipes (Wintheiser, Elyse)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?331">17840460291257</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=15;show=packages;fragment=cust_pkg43#cust_pkg43">43</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=15;show=packages;fragment=cust_pkg43#cust_pkg43">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=15;show=packages;fragment=cust_pkg43#cust_pkg43">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 03 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 03 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?15">Stracke Inc (Kuhlman, Kaya)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?43">7315522562</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=84;show=packages;fragment=cust_pkg249#cust_pkg249">249</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=84;show=packages;fragment=cust_pkg249#cust_pkg249">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=84;show=packages;fragment=cust_pkg249#cust_pkg249">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 04 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?84">Pacocha, Matilde</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?249">18235477397</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=120;show=packages;fragment=cust_pkg357#cust_pkg357">357</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=120;show=packages;fragment=cust_pkg357#cust_pkg357">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=120;show=packages;fragment=cust_pkg357#cust_pkg357">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 04 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?120">Mante, Demond</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?357">751008639787292</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=39;show=packages;fragment=cust_pkg115#cust_pkg115">115</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=39;show=packages;fragment=cust_pkg115#cust_pkg115">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=39;show=packages;fragment=cust_pkg115#cust_pkg115">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 04 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?39">Kunze, Ryan and Dare (Schultz, Jasper)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?115">495453230818559</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=109;show=packages;fragment=cust_pkg323#cust_pkg323">323</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=109;show=packages;fragment=cust_pkg323#cust_pkg323">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=109;show=packages;fragment=cust_pkg323#cust_pkg323">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 04 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 04 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?109">Lind-Bahringer (Ratke, Roma)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?323">4989851645</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=184;show=packages;fragment=cust_pkg549#cust_pkg549">549</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=184;show=packages;fragment=cust_pkg549#cust_pkg549">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=184;show=packages;fragment=cust_pkg549#cust_pkg549">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 05 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 05 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 05 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?184">Hudson, Stephanie</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?549">87252993767044</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=45;show=packages;fragment=cust_pkg131#cust_pkg131">131</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=45;show=packages;fragment=cust_pkg131#cust_pkg131">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=45;show=packages;fragment=cust_pkg131#cust_pkg131">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 05 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 05 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 05 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?45">Shanahan LLC (Brown, Ceasar)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?131">4508409161</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=125;show=packages;fragment=cust_pkg371#cust_pkg371">371</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=125;show=packages;fragment=cust_pkg371#cust_pkg371">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=125;show=packages;fragment=cust_pkg371#cust_pkg371">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?125">Kuhlman, Quitzon and Greenholt (Quitzon, Ophelia)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?371">15363386908</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=93;show=packages;fragment=cust_pkg275#cust_pkg275">275</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=93;show=packages;fragment=cust_pkg275#cust_pkg275">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=93;show=packages;fragment=cust_pkg275#cust_pkg275">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 06 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?93">Dach, Lueilwitz and Koepp (Kovacek, Frank)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?275">1732869050</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=79;show=packages;fragment=cust_pkg235#cust_pkg235">235</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=79;show=packages;fragment=cust_pkg235#cust_pkg235">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=79;show=packages;fragment=cust_pkg235#cust_pkg235">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 06 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?79">Corkery-D&#39;Amore (Wyman, Bethel)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?235">9464935873</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=160;show=packages;fragment=cust_pkg477#cust_pkg477">477</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=160;show=packages;fragment=cust_pkg477#cust_pkg477">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=160;show=packages;fragment=cust_pkg477#cust_pkg477">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 06 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?160">Lakin, Lindsay</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?477">8078845348</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=147;show=packages;fragment=cust_pkg439#cust_pkg439">439</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=147;show=packages;fragment=cust_pkg439#cust_pkg439">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=147;show=packages;fragment=cust_pkg439#cust_pkg439">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 06 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?147">Pfeffer, Shanahan and Cruickshank (Kutch, Rosario)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?439">1214016847277551</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=201;show=packages;fragment=cust_pkg599#cust_pkg599">599</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=201;show=packages;fragment=cust_pkg599#cust_pkg599">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=201;show=packages;fragment=cust_pkg599#cust_pkg599">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 06 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?201">Mills, Ziemann and Satterfield (Lang, Cathy)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?599">0806183894522</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=117;show=packages;fragment=cust_pkg347#cust_pkg347">347</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=117;show=packages;fragment=cust_pkg347#cust_pkg347">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=117;show=packages;fragment=cust_pkg347#cust_pkg347">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 07 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?117">Bernier-Nader (Hane, Floy)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?347">1894866195856273</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=92;show=packages;fragment=cust_pkg273#cust_pkg273">273</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=92;show=packages;fragment=cust_pkg273#cust_pkg273">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=92;show=packages;fragment=cust_pkg273#cust_pkg273">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 07 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?92">Ruecker, Lucious</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?273">16095013569</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=107;show=packages;fragment=cust_pkg319#cust_pkg319">319</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=107;show=packages;fragment=cust_pkg319#cust_pkg319">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=107;show=packages;fragment=cust_pkg319#cust_pkg319">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 07 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 07 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?107">Hessel and Sons (Zemlak, Kaya)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?319">13810128409238</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=103;show=packages;fragment=cust_pkg307#cust_pkg307">307</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=103;show=packages;fragment=cust_pkg307#cust_pkg307">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=103;show=packages;fragment=cust_pkg307#cust_pkg307">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?103">Roberts-Schinner (Flatley, Amelia)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?307">4593519604</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=108;show=packages;fragment=cust_pkg321#cust_pkg321">321</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=108;show=packages;fragment=cust_pkg321#cust_pkg321">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=108;show=packages;fragment=cust_pkg321#cust_pkg321">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?108">Emmerich, Neil</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?321">25963062543138</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=128;show=packages;fragment=cust_pkg381#cust_pkg381">381</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=128;show=packages;fragment=cust_pkg381#cust_pkg381">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=128;show=packages;fragment=cust_pkg381#cust_pkg381">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?128">Powlowski, Veda</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?381">3911632965</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=144;show=packages;fragment=cust_pkg429#cust_pkg429">429</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=144;show=packages;fragment=cust_pkg429#cust_pkg429">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=144;show=packages;fragment=cust_pkg429#cust_pkg429">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?144">Frami, Miller</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?429">33762771108367</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=173;show=packages;fragment=cust_pkg515#cust_pkg515">515</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=173;show=packages;fragment=cust_pkg515#cust_pkg515">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=173;show=packages;fragment=cust_pkg515#cust_pkg515">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?173">Mraz LLC (Labadie, Trisha)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?515">14527731997</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=65;show=packages;fragment=cust_pkg191#cust_pkg191">191</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=65;show=packages;fragment=cust_pkg191#cust_pkg191">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=65;show=packages;fragment=cust_pkg191#cust_pkg191">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?65">O&#39;Reilly-Mraz (Pagac, Kennedi)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?191">078151255309299</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=156;show=packages;fragment=cust_pkg465#cust_pkg465">465</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=156;show=packages;fragment=cust_pkg465#cust_pkg465">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=156;show=packages;fragment=cust_pkg465#cust_pkg465">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?156">Upton, Otho</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?465">2646555583</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=49;show=packages;fragment=cust_pkg143#cust_pkg143">143</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=49;show=packages;fragment=cust_pkg143#cust_pkg143">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=49;show=packages;fragment=cust_pkg143#cust_pkg143">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?49">Bernhard LLC (Hintz, Winston)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?143">95994707748468</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=96;show=packages;fragment=cust_pkg285#cust_pkg285">285</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=96;show=packages;fragment=cust_pkg285#cust_pkg285">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=96;show=packages;fragment=cust_pkg285#cust_pkg285">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 08 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 08 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?96">Muller, Kenyatta</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?285">3521080416</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=31;show=packages;fragment=cust_pkg91#cust_pkg91">91</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=31;show=packages;fragment=cust_pkg91#cust_pkg91">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=31;show=packages;fragment=cust_pkg91#cust_pkg91">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 09 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 09 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 09 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?31">Kuhn-Ruecker (Nienow, Kacie)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?91">1535633738761521</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=119;show=packages;fragment=cust_pkg355#cust_pkg355">355</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=119;show=packages;fragment=cust_pkg355#cust_pkg355">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=119;show=packages;fragment=cust_pkg355#cust_pkg355">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 09 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 09 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 09 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?119">Runolfsson, Roob and Hoppe (Bergstrom, Esteban)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?355">15790441533145</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=24;show=packages;fragment=cust_pkg69#cust_pkg69">69</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=24;show=packages;fragment=cust_pkg69#cust_pkg69">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=24;show=packages;fragment=cust_pkg69#cust_pkg69">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 10 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?24">Conn, Marisol</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?69">19732087174151</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=197;show=packages;fragment=cust_pkg587#cust_pkg587">587</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=197;show=packages;fragment=cust_pkg587#cust_pkg587">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=197;show=packages;fragment=cust_pkg587#cust_pkg587">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 10 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?197">Ryan and Sons (Bashirian, Bert)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?587">6566177741620</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=3;show=packages;fragment=cust_pkg7#cust_pkg7">7</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=3;show=packages;fragment=cust_pkg7#cust_pkg7">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=3;show=packages;fragment=cust_pkg7#cust_pkg7">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 10 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?3">Flatley-Hagenes (Donnelly, Odessa)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?7">19671718037</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=67;show=packages;fragment=cust_pkg199#cust_pkg199">199</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=67;show=packages;fragment=cust_pkg199#cust_pkg199">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=67;show=packages;fragment=cust_pkg199#cust_pkg199">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 10 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?67">Schultz, Hyatt and Ruecker (Yundt, Berta)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?199">14559187832</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=191;show=packages;fragment=cust_pkg571#cust_pkg571">571</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=191;show=packages;fragment=cust_pkg571#cust_pkg571">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=191;show=packages;fragment=cust_pkg571#cust_pkg571">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 10 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 10 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?191">Walker Inc (Block, Felix)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?571">9749671732</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=33;show=packages;fragment=cust_pkg95#cust_pkg95">95</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=33;show=packages;fragment=cust_pkg95#cust_pkg95">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=33;show=packages;fragment=cust_pkg95#cust_pkg95">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 11 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 11 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 11 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?33">Buckridge, Spinka and Gerlach (Larkin, Lue)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?95">1076194311</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=140;show=packages;fragment=cust_pkg417#cust_pkg417">417</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=140;show=packages;fragment=cust_pkg417#cust_pkg417">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=140;show=packages;fragment=cust_pkg417#cust_pkg417">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 11 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 11 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 11 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?140">Cremin, Aliya</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?417">67497022590689</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=100;show=packages;fragment=cust_pkg297#cust_pkg297">297</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=100;show=packages;fragment=cust_pkg297#cust_pkg297">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=100;show=packages;fragment=cust_pkg297#cust_pkg297">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?100">Dibbert, Roman</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?297">7801192536</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=113;show=packages;fragment=cust_pkg335#cust_pkg335">335</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=113;show=packages;fragment=cust_pkg335#cust_pkg335">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=113;show=packages;fragment=cust_pkg335#cust_pkg335">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?113">Paucek, Swaniawski and Carter (DuBuque, Freda)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?335">17561074962584</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=13;show=packages;fragment=cust_pkg35#cust_pkg35">35</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=13;show=packages;fragment=cust_pkg35#cust_pkg35">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=13;show=packages;fragment=cust_pkg35#cust_pkg35">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?13">Feest, Bechtelar and Harber (Douglas, Geovany)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?35">4609716945803</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=59;show=packages;fragment=cust_pkg175#cust_pkg175">175</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=59;show=packages;fragment=cust_pkg175#cust_pkg175">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=59;show=packages;fragment=cust_pkg175#cust_pkg175">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?59">Simonis Inc (Runolfsson, Kareem)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?175">6741985321</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=55;show=packages;fragment=cust_pkg163#cust_pkg163">163</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=55;show=packages;fragment=cust_pkg163#cust_pkg163">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=55;show=packages;fragment=cust_pkg163#cust_pkg163">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?55">Wiegand-Kohler (Murray, Amparo)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?163">85524284918759</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=132;show=packages;fragment=cust_pkg393#cust_pkg393">393</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=132;show=packages;fragment=cust_pkg393#cust_pkg393">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=132;show=packages;fragment=cust_pkg393#cust_pkg393">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?132">Kris, Josie</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?393">6110246771</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=145;show=packages;fragment=cust_pkg431#cust_pkg431">431</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=145;show=packages;fragment=cust_pkg431#cust_pkg431">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=145;show=packages;fragment=cust_pkg431#cust_pkg431">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 12 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 12 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?145">Zboncak, Schmidt and Howell (Pouros, Robb)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?431">3839925171</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=5;show=packages;fragment=cust_pkg11#cust_pkg11">11</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=5;show=packages;fragment=cust_pkg11#cust_pkg11">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=5;show=packages;fragment=cust_pkg11#cust_pkg11">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?5">Watsica-Crooks (Will, Marguerite)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?11">7941182146</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=80;show=packages;fragment=cust_pkg237#cust_pkg237">237</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=80;show=packages;fragment=cust_pkg237#cust_pkg237">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=80;show=packages;fragment=cust_pkg237#cust_pkg237">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?80">Jakubowski, Jarrell</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?237">10163759294554</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=187;show=packages;fragment=cust_pkg559#cust_pkg559">559</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=187;show=packages;fragment=cust_pkg559#cust_pkg559">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=187;show=packages;fragment=cust_pkg559#cust_pkg559">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?187">Hegmann, Kessler and Gibson (Roob, Henderson)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?559">49053079571982</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=133;show=packages;fragment=cust_pkg395#cust_pkg395">395</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=133;show=packages;fragment=cust_pkg395#cust_pkg395">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=133;show=packages;fragment=cust_pkg395#cust_pkg395">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?133">Kirlin-Feest (Aufderhar, Trisha)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?395">34512365885294</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=40;show=packages;fragment=cust_pkg117#cust_pkg117">117</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=40;show=packages;fragment=cust_pkg117#cust_pkg117">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=40;show=packages;fragment=cust_pkg117#cust_pkg117">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?40">Brekke, Tillman</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?117">158607899401245</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=28;show=packages;fragment=cust_pkg81#cust_pkg81">81</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=28;show=packages;fragment=cust_pkg81#cust_pkg81">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=28;show=packages;fragment=cust_pkg81#cust_pkg81">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?28">Hackett, Garnet</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?81">152553597965486</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=153;show=packages;fragment=cust_pkg455#cust_pkg455">455</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=153;show=packages;fragment=cust_pkg455#cust_pkg455">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=153;show=packages;fragment=cust_pkg455#cust_pkg455">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?153">Lind Group (Padberg, Irving)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?455">7002098074566</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=179;show=packages;fragment=cust_pkg535#cust_pkg535">535</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=179;show=packages;fragment=cust_pkg535#cust_pkg535">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=179;show=packages;fragment=cust_pkg535#cust_pkg535">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 13 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 13 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?179">Conn-McLaughlin (O&#39;Connell, Gayle)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?535">6049664310378</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=16;show=packages;fragment=cust_pkg45#cust_pkg45">45</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=16;show=packages;fragment=cust_pkg45#cust_pkg45">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=16;show=packages;fragment=cust_pkg45#cust_pkg45">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 14 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?16">McDermott, Alejandra</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?45">5473351513</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=127;show=packages;fragment=cust_pkg379#cust_pkg379">379</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=127;show=packages;fragment=cust_pkg379#cust_pkg379">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=127;show=packages;fragment=cust_pkg379#cust_pkg379">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 14 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?127">Langosh, Shanahan and Huels (Morissette, Florence)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?379">5869395581</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=165;show=packages;fragment=cust_pkg491#cust_pkg491">491</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=165;show=packages;fragment=cust_pkg491#cust_pkg491">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=165;show=packages;fragment=cust_pkg491#cust_pkg491">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?165">DuBuque, Romaguera and Hagenes (Rempel, Levi)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?491">0970039499</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=149;show=packages;fragment=cust_pkg443#cust_pkg443">443</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=149;show=packages;fragment=cust_pkg443#cust_pkg443">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=149;show=packages;fragment=cust_pkg443#cust_pkg443">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 14 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?149">O&#39;Keefe Inc (Schamberger, Felix)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?443">8366310646</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=157;show=packages;fragment=cust_pkg467#cust_pkg467">467</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=157;show=packages;fragment=cust_pkg467#cust_pkg467">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=157;show=packages;fragment=cust_pkg467#cust_pkg467">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 14 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 14 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?157">Weimann Inc (Cartwright, Judah)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?467">5876977314592</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=87;show=packages;fragment=cust_pkg259#cust_pkg259">259</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=87;show=packages;fragment=cust_pkg259#cust_pkg259">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=87;show=packages;fragment=cust_pkg259#cust_pkg259">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 15 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?87">Kozey and Sons (Vandervort, Harmon)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?259">106766405260980</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=104;show=packages;fragment=cust_pkg309#cust_pkg309">309</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=104;show=packages;fragment=cust_pkg309#cust_pkg309">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=104;show=packages;fragment=cust_pkg309#cust_pkg309">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?104">Stanton, Christop</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?309">18561234265014</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=68;show=packages;fragment=cust_pkg201#cust_pkg201">201</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=68;show=packages;fragment=cust_pkg201#cust_pkg201">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=68;show=packages;fragment=cust_pkg201#cust_pkg201">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 15 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 15 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?68">Nikolaus, Katelyn</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?201">13116773370</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=12;show=packages;fragment=cust_pkg33#cust_pkg33">33</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=12;show=packages;fragment=cust_pkg33#cust_pkg33">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=12;show=packages;fragment=cust_pkg33#cust_pkg33">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?12">Kuhlman, Niko</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?33">14745441565</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=21;show=packages;fragment=cust_pkg59#cust_pkg59">59</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=21;show=packages;fragment=cust_pkg59#cust_pkg59">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=21;show=packages;fragment=cust_pkg59#cust_pkg59">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 16 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?21">Zemlak and Sons (Swift, Maximilian)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?59">5055483796977</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=35;show=packages;fragment=cust_pkg103#cust_pkg103">103</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=35;show=packages;fragment=cust_pkg103#cust_pkg103">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=35;show=packages;fragment=cust_pkg103#cust_pkg103">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 16 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 16 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?35">Bahringer LLC (Frami, Roslyn)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?103">19242934458</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=123;show=packages;fragment=cust_pkg367#cust_pkg367">367</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=123;show=packages;fragment=cust_pkg367#cust_pkg367">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=123;show=packages;fragment=cust_pkg367#cust_pkg367">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 17 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?123">Zulauf-Schiller (Jacobs, Angelina)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?367">4942001551</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=63;show=packages;fragment=cust_pkg187#cust_pkg187">187</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=63;show=packages;fragment=cust_pkg187#cust_pkg187">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=63;show=packages;fragment=cust_pkg187#cust_pkg187">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 17 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?63">Luettgen LLC (Grant, Grover)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?187">4415242593</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=151;show=packages;fragment=cust_pkg451#cust_pkg451">451</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=151;show=packages;fragment=cust_pkg451#cust_pkg451">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=151;show=packages;fragment=cust_pkg451#cust_pkg451">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 17 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?151">Leannon-Crona (Schuster, Cierra)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?451">3037362335</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=152;show=packages;fragment=cust_pkg453#cust_pkg453">453</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=152;show=packages;fragment=cust_pkg453#cust_pkg453">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=152;show=packages;fragment=cust_pkg453#cust_pkg453">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 17 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 17 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?152">Klocko, Fleta</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?453">5389770549</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=77;show=packages;fragment=cust_pkg227#cust_pkg227">227</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=77;show=packages;fragment=cust_pkg227#cust_pkg227">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=77;show=packages;fragment=cust_pkg227#cust_pkg227">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?77">Kunze Inc (Ernser, Coralie)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?227">2280817547</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=83;show=packages;fragment=cust_pkg247#cust_pkg247">247</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=83;show=packages;fragment=cust_pkg247#cust_pkg247">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=83;show=packages;fragment=cust_pkg247#cust_pkg247">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?83">Jacobson-Gorczany (Vandervort, Kiley)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?247">2749371736</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=183;show=packages;fragment=cust_pkg547#cust_pkg547">547</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=183;show=packages;fragment=cust_pkg547#cust_pkg547">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=183;show=packages;fragment=cust_pkg547#cust_pkg547">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?183">Dietrich, Keebler and Dach (Russel, Ivy)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?547">1116321423</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=97;show=packages;fragment=cust_pkg287#cust_pkg287">287</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=97;show=packages;fragment=cust_pkg287#cust_pkg287">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=97;show=packages;fragment=cust_pkg287#cust_pkg287">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?97">Braun, Rath and Gutkowski (Wilderman, Reyes)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?287">183790150181541</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=116;show=packages;fragment=cust_pkg345#cust_pkg345">345</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=116;show=packages;fragment=cust_pkg345#cust_pkg345">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=116;show=packages;fragment=cust_pkg345#cust_pkg345">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?116">Konopelski, Barry</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?345">0783009535773</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=163;show=packages;fragment=cust_pkg487#cust_pkg487">487</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=163;show=packages;fragment=cust_pkg487#cust_pkg487">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=163;show=packages;fragment=cust_pkg487#cust_pkg487">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?163">Fritsch LLC (Jones, Mandy)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?487">8192793749</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=37;show=packages;fragment=cust_pkg107#cust_pkg107">107</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=37;show=packages;fragment=cust_pkg107#cust_pkg107">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=37;show=packages;fragment=cust_pkg107#cust_pkg107">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 18 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 18 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?37">Hodkiewicz-Raynor (Macejkovic, Leann)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?107">6941312477183</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=91;show=packages;fragment=cust_pkg271#cust_pkg271">271</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=91;show=packages;fragment=cust_pkg271#cust_pkg271">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=91;show=packages;fragment=cust_pkg271#cust_pkg271">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?91">Fay and Sons (Gerhold, Thora)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?271">9519625792</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=89;show=packages;fragment=cust_pkg263#cust_pkg263">263</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=89;show=packages;fragment=cust_pkg263#cust_pkg263">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=89;show=packages;fragment=cust_pkg263#cust_pkg263">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?89">Legros Group (Reilly, Mabel)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?263">210371813834331</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=4;show=packages;fragment=cust_pkg9#cust_pkg9">9</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=4;show=packages;fragment=cust_pkg9#cust_pkg9">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=4;show=packages;fragment=cust_pkg9#cust_pkg9">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?4">Bartoletti, Theodora</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?9">337448915280026</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=25;show=packages;fragment=cust_pkg71#cust_pkg71">71</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=25;show=packages;fragment=cust_pkg71#cust_pkg71">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=25;show=packages;fragment=cust_pkg71#cust_pkg71">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?25">Kuhlman-Huels (Parisian, Cristopher)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?71">99158298078002</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=115;show=packages;fragment=cust_pkg343#cust_pkg343">343</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=115;show=packages;fragment=cust_pkg343#cust_pkg343">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=115;show=packages;fragment=cust_pkg343#cust_pkg343">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Dec 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?115">Kemmer-O&#39;Connell (Schuster, Alexander)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?343">4441731527</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=20;show=packages;fragment=cust_pkg57#cust_pkg57">57</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=20;show=packages;fragment=cust_pkg57#cust_pkg57">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=20;show=packages;fragment=cust_pkg57#cust_pkg57">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Oct 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?20">Weber, Aliza</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?57">215984572910627</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=196;show=packages;fragment=cust_pkg585#cust_pkg585">585</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=196;show=packages;fragment=cust_pkg585#cust_pkg585">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=196;show=packages;fragment=cust_pkg585#cust_pkg585">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?196">Turcotte, Janessa</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?585">10016834740</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=155;show=packages;fragment=cust_pkg463#cust_pkg463">463</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=155;show=packages;fragment=cust_pkg463#cust_pkg463">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=155;show=packages;fragment=cust_pkg463#cust_pkg463">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 19 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?155">Boyle-Schmeler (Maggio, Fay)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?463">1173141702400720</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=193;show=packages;fragment=cust_pkg575#cust_pkg575">575</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=193;show=packages;fragment=cust_pkg575#cust_pkg575">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=193;show=packages;fragment=cust_pkg575#cust_pkg575">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Jan 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 19 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?193">Johnston Group (Adams, Audreanne)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?575">2786062985022</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=43;show=packages;fragment=cust_pkg127#cust_pkg127">127</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=43;show=packages;fragment=cust_pkg127#cust_pkg127">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=43;show=packages;fragment=cust_pkg127#cust_pkg127">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Aug 20 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?43">Leannon-Pfannerstill (O&#39;Keefe, Bernie)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?127">5260896063</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=101;show=packages;fragment=cust_pkg299#cust_pkg299">299</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=101;show=packages;fragment=cust_pkg299#cust_pkg299">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=101;show=packages;fragment=cust_pkg299#cust_pkg299">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 20 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?101">Flatley, Yundt and Pacocha (Volkman, Tabitha)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?299">2964457155392</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=53;show=packages;fragment=cust_pkg155#cust_pkg155">155</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=53;show=packages;fragment=cust_pkg155#cust_pkg155">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=53;show=packages;fragment=cust_pkg155#cust_pkg155">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 20 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 20 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?53">Balistreri-Schoen (Schultz, Jaylan)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?155">261457560511658</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=48;show=packages;fragment=cust_pkg141#cust_pkg141">141</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=48;show=packages;fragment=cust_pkg141#cust_pkg141">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=48;show=packages;fragment=cust_pkg141#cust_pkg141">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 21 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?48">Mohr, Florine</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?141">5805430204</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row0">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=32;show=packages;fragment=cust_pkg93#cust_pkg93">93</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=32;show=packages;fragment=cust_pkg93#cust_pkg93">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=32;show=packages;fragment=cust_pkg93#cust_pkg93">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Sep 21 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?32">Swaniawski, Adrienne</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?93">7091741436337</A></td></tr></table></TD>
-
-
-    </TR>
-
-    <TR ID="" CLASS="row1">
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=17;show=packages;fragment=cust_pkg47#cust_pkg47">47</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=17;show=packages;fragment=cust_pkg47#cust_pkg47">1</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?custnum=17;show=packages;fragment=cust_pkg47#cust_pkg47">Monthly anniversary phone x4</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 SIZE="-1" ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center >test</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$0.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >$60.00</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left >monthly</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Nov 21 2015</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Feb 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right >Mar 21 2016</TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=center ><FONT COLOR=#00CC00 ><b>Active</b></FONT></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=left ><A HREF="http://localhost/freeside/view/cust_main.cgi?17">Leffler, Abshire and Orn (Hyatt, Reggie)</A></TD>
-
-
-
-        <TD CLASS="grid"  ALIGN=right ><TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%"><tr><TD ALIGN="right">Test svc_phone:</td><TD ALIGN="left"><A HREF="http://localhost/freeside/view/svc_phone.cgi?47">580124349433539</A></td></tr></table></TD>
-
-
-    </TR>
-
-
-</TBODY>
-
-</TABLE>
-
-
-              
-        <FONT SIZE="+2">1</FONT>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=100">2</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=200">3</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=300">4</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=400">5</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=500">6</A>
-
-
-        <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=600">7</A>
-
-      <A HREF="http://localhost/freeside/search/cust_pkg.cgi?keywords=pkgnum;_dummy=1;maxrecords=100;_type=html;offset=100"><B><FONT SIZE="+1">Next</FONT></B></A>
-
-
-  
-            </TD>
-          </TR>
-        </TABLE>
-
-
-        
-
-                </TD>
-      </TR>
-    </TABLE>
-  </BODY>
-</HTML>
-
-
-
-
-
-
index 92493ad..b9e53fa 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 5df716b..f003efd 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 404e26a..1a82641 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index dc51c88..413100a 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 88ac10d..64f89ba 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 896f720..22ffa22 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index b7df354..c385270 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 915073f..01ca7a5 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index e0c8d1d..af2ca4c 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 7d616f6..fc9294b 100644 (file)
@@ -81,7 +81,7 @@
 \begin{tabular}{ll}\r
 \returninset\r
 \begin{tabular}{ll}\r
-  \makebox{ \includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.aSksR2dX.eps}} & \r
+  \makebox{ \includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.XoeuvJBe.eps}} & \r
   \begin{minipage}[b]{5.5cm}\r
 Freeside Test 5.0.1\\*
 1234 Example Lane\\*
@@ -142,7 +142,7 @@ Freeside Test 5.0.1
     \returninset\r
     \makebox{\r
       \begin{tabular}{ll}\r
-        \includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.aSksR2dX.eps} & \r
+        \includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.XoeuvJBe.eps} & \r
         \begin{minipage}[b]{5.5cm}\r
 Freeside Test 5.0.1\\*
 1234 Example Lane\\*
@@ -152,7 +152,7 @@ Exampleton, CA~~54321\\*
     }\r
   }\r
   { % ... pages\r
-    %\includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.aSksR2dX.eps} % Uncomment if you want the logo on all pages.\r
+    %\includegraphics{/usr/local/etc/freeside/cache.DBI:Pg:dbname=freeside/cust_bill.681.XoeuvJBe.eps} % Uncomment if you want the logo on all pages.\r
   }\r
 }\r
 \r
index 3ffad46..53e4928 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 011c96f..5787fca 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 6d7fd40..0b800d6 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 132d5f6..20a969b 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 58e3b14..e1e75c5 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index ba57919..757aa17 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -2373,6 +2373,216 @@ function clearhint_search_cust_svc(obj, str) {
 
   </TR>
 
+    
+  <!--pkgnum: 602-->
+  <TR CLASS="row1">
+    <TD CLASS="inv package" BGCOLOR="" VALIGN="top">
+  
+  <TABLE CLASS="inv package"> 
+    <TR>
+      <TD COLSPAN=2>
+        
+        <A NAME="cust_pkg602"
+           ID  ="cust_pkg602"
+        ><B>Test one-time charge</B></A>
+         - 
+        $100.00 - $100.00 one-time
+      </TD>
+    </TR>
+
+
+    <TR>
+      <TD COLSPAN=2>
+        <FONT SIZE=-1>
+
+                (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/quick-charge.html?change_pkgnum=602;pkgnum=602', 690, 440, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Modify package 602', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Modify&nbsp;one-time&nbsp;charge</A>&nbsp;)
+              (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/cust_pkg_discount.html?pkgnum=602', 616, 336, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Discount package 602', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Discount</A>&nbsp;)
+          <BR>
+
+        </FONT>
+      </TD>
+    </TR>
+
+
+    <TR>
+      <TD COLSPAN=2>
+
+
+
+      </TD>
+    </TR>
+
+
+    <TR>
+      <TD COLSPAN=2>
+
+
+        <FONT SIZE="-1">
+          (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/cust_pkg_salesnum.html?;pkgnum=602', 390, 220, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Change package 602', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Change&nbsp;sales&nbsp;person</A>&nbsp;)
+        </FONT>
+
+      </TD>
+    </TR>
+
+
+
+      <TR>
+
+          <TD>
+              <FONT SIZE="-1">
+                (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/cust_pkg_detail.html?pkgnum=602;detailtype=I', 763, 336, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Add invoice details', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Add&nbsp;invoice&nbsp;details</A>&nbsp;)
+              </FONT>
+          </TD>
+
+          <TD>
+              <FONT SIZE="-1">
+                (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/cust_pkg_detail.html?pkgnum=602;detailtype=C', 763, 336, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Add comments', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Add&nbsp;comments</A>&nbsp;)
+              </FONT>
+          </TD>
+
+      </TR>
+
+
+  </TABLE>
+
+
+  
+</TD>
+
+
+    <TD CLASS="inv" BGCOLOR="" VALIGN="top">
+  <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
+
+
+    <TR><TD WIDTH="" ALIGN="right">Ordered&nbsp;</TD><TD align="left"><B>Mar</B></TD><TD align="right"><B>&nbsp;2nd,</B></TD><TD align="right"><B>&nbsp;2016</B></TD></TR>
+
+
+          <TR><TD COLSPAN=4 >One-time charge</TD></TR>
+
+          <TR><TD WIDTH="" ALIGN="right">Billed&nbsp;</TD><TD align="left"><B>Mar</B></TD><TD align="right"><B>&nbsp;2nd,</B></TD><TD align="right"><B>&nbsp;2016</B></TD></TR>
+
+          
+
+          
+
+          
+
+          
+
+
+      
+      
+      
+      
+      
+      
+      
+      
+      
+
+
+  </TABLE>
+</TD>
+
+    <TD CLASS="inv" BGCOLOR="" WIDTH="20%" VALIGN="top">
+          <FONT SIZE=-1>
+      (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/misc/change_pkg_contact.html?pkgnum=602', 616, 192, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Add contact package 602', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Add&nbsp;contact</A>&nbsp;)
+    </FONT>
+    <BR>
+
+              <DIV STYLE="font-style: italic; font-size: small">
+
+      Default service location<BR>24866 VonRueden Roads<BR>Floor 94 X<BR>Crown Point CT 59629-7714
+
+          <BR>
+          <FONT SIZE=-1>
+          38.5000000, -121.5000000
+          
+
+<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/view/map.html?name=Oswald%20Schowalter%3A%20Test%20one-time%20charge;lat=38.5000000;lon=-121.5000000', 763, 575, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Oswald Schowalter: Test one-time charge', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>map</A>
+
+  <A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/view/directions.html?origin=1234%20Example%20Lane%2CExampleton%2C%20CA%20%2054321;name=Oswald%20Schowalter%3A%20Test%20one-time%20charge;lat=38.5000000;lon=-121.5000000', 763, 575, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Oswald Schowalter: Test one-time charge', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>directions</A>
+
+<A HREF="http://localhost/freeside/view/kml.cgi?name=Oswald%20Schowalter%3A%20Test%20one-time%20charge;lat=38.5000000;lon=-121.5000000">earth</A>
+
+
+          </FONT>
+
+      </DIV>
+
+  <BR>
+  <FONT SIZE=-1>
+      (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/misc/change_pkg.cgi?locationnum=-1;pkgpart=6;address1=;address2=;city=;county=;state=;zip=;country=;pkgnum=602', 960, 490, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Change package 602', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Change&nbsp;location</A>&nbsp;)
+        (&nbsp;<A HREF="javascript:void(0);"
+   onClick="overlib( OLiframeContent('http://localhost/freeside/edit/cust_location.cgi?locationnum=3', 700, 355, 'popup-0000000000-0000-000000000.000000', 0, 'auto' ), CAPTION, 'Edit', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '#333399', CGCOLOR, '#333399', FGCOLOR, '#f8f8f8', CLOSETEXT, 'Close'); return false;"
+   
+   
+   
+>Edit&nbsp;location</A>&nbsp;)
+  </FONT>
+
+    </TD>
+    
+  <TD CLASS="inv" BGCOLOR="">
+    <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH="100%">
+    <SCRIPT TYPE="text/javascript">
+function clearhint_search_cust_svc(obj, str) {
+  if (obj.value == str) obj.value = '';
+}
+    </SCRIPT>
+
+
+    </TABLE>
+  </TD>
+
+
+  </TR>
+
 
         </TABLE>
 
index 36a01b0..8d15d41 100644 (file)
@@ -617,7 +617,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1620,6 +1620,35 @@ function areyousure(href, message) {
   </TR>
 
 
+  <TR >
+    <TD VALIGN="top" CLASS="grid" BGCOLOR="#eeeeee">
+
+      03/02/2016
+
+      </FONT>
+    </TD>
+    <TD CLASS="grid" BGCOLOR="#eeeeee">
+      <A HREF="http://localhost/freeside/view/cust_bill.cgi?1585"><B><FONT SIZE="+1" COLOR="#FF0000">Open Invoice #1585 (Balance 100.00)</FONT></B></A>
+
+    </TD>
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="#eeeeee">
+      $100.00
+    </TD>
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="#eeeeee">
+      
+    </TD>
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="#eeeeee">
+      
+    </TD>
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="#eeeeee">
+      
+    </TD>
+    <TD VALIGN="top" ALIGN="right" CLASS="grid" BGCOLOR="#eeeeee">
+      $874.03
+    </TD>
+  </TR>
+
+
 </TABLE>
     </TD>
   </TR>
index 32d9a56..60867f8 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1015,7 +1015,7 @@ function updateTicketLink() {
 }
 </SCRIPT>
 <A NAME="tickets"><FONT CLASS="fsinnerbox-title">Tickets</FONT></A>
-<A id="CreateTicketLink" HREF="http://localhost/freeside//rt/Ticket/Create.html?Requestors=&new-MemberOf=freeside%3A%2F%2Ffreeside%2Fcust_svc%2F406&Queue=1">Create new ticket</A>
+<A id="CreateTicketLink" HREF="http://localhost/freeside//rt/Ticket/Create.html?Requestors=&Queue=1&new-MemberOf=freeside%3A%2F%2Ffreeside%2Fcust_svc%2F406">Create new ticket</A>
  in queue
 <SELECT NAME="Queue" id="Queue" onchange="updateTicketLink()">
 </SELECT>
index 31877d8..8bf4026 100644 (file)
@@ -634,7 +634,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
index 71977b5..b930c3c 100644 (file)
@@ -618,7 +618,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -1025,11 +1025,11 @@ Service #<B>402</B>
 function updateTicketLink() {
   var link = document.getElementById('CreateTicketLink');
   var selector = document.getElementById('Queue')
-  link.href = "http://localhost/freeside//rt/Ticket/Create.html?new-MemberOf=freeside://freeside/cust_svc/402;Requestors=;Queue=" + selector.options[selector.selectedIndex].value;
+  link.href = "http://localhost/freeside//rt/Ticket/Create.html?Requestors=;new-MemberOf=freeside://freeside/cust_svc/402;Queue=" + selector.options[selector.selectedIndex].value;
 }
 </SCRIPT>
 <A NAME="tickets"><FONT CLASS="fsinnerbox-title">Tickets</FONT></A>
-<A id="CreateTicketLink" HREF="http://localhost/freeside//rt/Ticket/Create.html?Requestors=&Queue=1&new-MemberOf=freeside%3A%2F%2Ffreeside%2Fcust_svc%2F402">Create new ticket</A>
+<A id="CreateTicketLink" HREF="http://localhost/freeside//rt/Ticket/Create.html?Requestors=&new-MemberOf=freeside%3A%2F%2Ffreeside%2Fcust_svc%2F402&Queue=1">Create new ticket</A>
  in queue
 <SELECT NAME="Queue" id="Queue" onchange="updateTicketLink()">
 </SELECT>
index 8d53bc1..1389fd7 100644 (file)
@@ -634,7 +634,7 @@ myMenu48.add(new WebFXMenuItem("Billing", null, "", myMenu65 ));
 myMenu48.add(new WebFXMenuSeparator());
 var myMenu67 = new WebFXMenu;
 myMenu67.emptyText = '';
-myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template.html", "Templates for customer notices" ));
+myMenu67.add(new WebFXMenuItem("Message templates", "http://localhost/freeside/browse/msg_template/email.html", "Templates for customer notices" ));
 myMenu67.add(new WebFXMenuItem("Advertising sources", "http://localhost/freeside/browse/part_referral.html", "Where a customer heard about your service." ));
 myMenu67.add(new WebFXMenuItem("Custom fields", "http://localhost/freeside/browse/part_virtual_field.html", "Locally defined fields" ));
 myMenu67.add(new WebFXMenuItem("Translation strings", "http://localhost/freeside/browse/msgcat.html", "Translations and other customizable labels for each locale" ));
@@ -954,7 +954,7 @@ function areyousure_delete() {
         </TD>
 
         <TD CLASS="content">
-          <A HREF="http://localhost/freeside/view/svc_circuit.html?"></A>
+          <A HREF="http://localhost/freeside/view/svc_circuit.cgi?"></A>
         </TD>
       </TR>
 
@@ -977,7 +977,7 @@ function areyousure_delete() {
 function updateTicketLink() {
   var link = document.getElementById('CreateTicketLink');
   var selector = document.getElementById('Queue')
-  link.href = "http://localhost/freeside//rt/Ticket/Create.html?new-MemberOf=freeside://freeside/cust_svc/403;Requestors=;Queue=" + selector.options[selector.selectedIndex].value;
+  link.href = "http://localhost/freeside//rt/Ticket/Create.html?Requestors=;new-MemberOf=freeside://freeside/cust_svc/403;Queue=" + selector.options[selector.selectedIndex].value;
 }
 </SCRIPT>
 <A NAME="tickets"><FONT CLASS="fsinnerbox-title">Tickets</FONT></A>
index 8292ae5..2370a1d 100644 (file)
@@ -1,7 +1,7 @@
 # reports menu items
 search/cust_main.cgi?browse=last
-search/cust_bill.html?OPEN90_date
-search/cust_bill.html?date
+search/cust_bill.html?keywords=OPEN90_date:order_by=invnum
+search/cust_bill.html?keywords=date:order_by=invnum
 search/cust_bill.html?magic=_date&agentnum=1&beginning=&ending=10%2F01%2F2015&charged_lt=&charged_gt=200.00&owed_lt=&owed_gt=&open=1
 search/cust_bill_pkg.cgi?agentnum=1&status=&cust_classnum=&beginning=01%2F01%2F2016&ending=01%2F31%2F2016
 search/cust_pay.html?magic=_date&unapplied=0&beginning=01%2F01%2F2016&agentnum=1&order_by=paynum
index f848361..9dbbc3c 100644 (file)
@@ -24,7 +24,9 @@ This module implements a backend API for advanced back-office integration.
 In contrast to the self-service API, which authenticates an end-user and offers
 functionality to that end user, the backend API performs a simple shared-secret
 authentication and offers full, administrator functionality, enabling
-integration with other back-office systems.
+integration with other back-office systems.  Only access this API from a secure 
+network from other backoffice machines. DON'T use this API to create customer 
+portal functionality.
 
 If accessing this API remotely with XML-RPC or JSON-RPC, be careful to block
 the port by default, only allow access from back-office servers with the same
index 9274ad8..95cf29a 100644 (file)
@@ -209,7 +209,6 @@ tie my %rights, 'Tie::IxHash',
     { rightname=>'Process payment', desc=>'Process credit card or e-check payments' },
     'Process credit card payment',
     'Process Echeck payment',
-    { rightname=>'Delete payment', desc=>'Enable deletion of unclosed payments. Be very careful!  Only delete payments that were data-entry errors, not adjustments.' }, #aka. deletepayments Optionally specify one or more comma-separated email addresses to be notified when a payment is deleted.
   ],
   
   ###
@@ -223,7 +222,6 @@ tie my %rights, 'Tie::IxHash',
     'Void credit', #NEWER than things marked NEWNEWNEW
     'Unvoid credit', #NEWER than things marked NEWNEWNEW
     { rightname=>'Unapply credit', desc=>'Enable "unapplication" of unclosed credits.' }, #aka unapplycredits
-    { rightname=>'Delete credit', desc=>'Enable deletion of unclosed credits. Be very careful!  Only delete credits that were data-entry errors, not adjustments.' }, #aka. deletecredits Optionally specify one or more comma-separated email addresses to be notified when a credit is deleted.
     'View refunds',
     { rightname=>'Post refund', desc=>'Enable posting of check and cash refunds.' },
     'Post check refund',
@@ -288,6 +286,7 @@ tie my %rights, 'Tie::IxHash',
     'Billing event reports',
     'Receivables report',
     'Financial reports',
+    { rightname=>'Send reports to customers', global=>1 },
     { rightname=> 'List inventory', global=>1 },
     { rightname=>'View email logs', global=>1 },
     { rightname=>'View system logs' },
@@ -440,8 +439,6 @@ Most (but not all) right names.
 sub default_superuser_rights {
   my $class = shift;
   my %omit = map { $_=>1 } (
-    'Delete payment',
-    'Delete credit', #?
     'Delete refund', #?
     'Edit customer package dates',
     'Time queue',
index 824ff67..98b87ad 100644 (file)
@@ -1142,37 +1142,6 @@ sub do_process_payment {
 
   my $payby = delete $validate->{'payby'};
 
-  my $error = $cust_main->realtime_bop( $FS::payby::payby2bop{$payby}, $amount,
-    'quiet'       => 1,
-    'manual'      => 1,
-    'selfservice' => 1,
-    'paynum_ref'  => \$paynum,
-    %$validate,
-  );
-  return { 'error' => $error } if $error;
-
-  #no error, so order the fee package if applicable...
-  my $conf = new FS::Conf;
-  my $fee_pkgpart = $conf->config('selfservice_process-pkgpart', $cust_main->agentnum);
-  my $fee_skip_first = $conf->exists('selfservice_process-skip_first');
-  
-  if ( $fee_pkgpart and ! $fee_skip_first || scalar($cust_main->cust_pay) ) {
-
-    my $cust_pkg = new FS::cust_pkg { 'pkgpart' => $fee_pkgpart };
-
-    $error = $cust_main->order_pkg( 'cust_pkg' => $cust_pkg );
-    return { 'error' => "payment processed successfully, but error ordering fee: $error" }
-      if $error;
-
-    #and generate an invoice for it now too
-    $error = $cust_main->bill( 'pkg_list' => [ $cust_pkg ] );
-    return { 'error' => "payment processed and fee ordered sucessfully, but error billing fee: $error" }
-      if $error;
-
-  }
-
-  $cust_main->apply_payments;
-
   if ( $validate->{'save'} ) {
     my $new = new FS::cust_main { $cust_main->hash };
     if ($payby eq 'CARD' || $payby eq 'DCRD') {
@@ -1193,7 +1162,7 @@ sub do_process_payment {
                     stateid stateid_state );
       $new->set( 'payby' => $validate->{'auto'} ? 'CHEK' : 'DCHK' );
     }
-    $new->set( 'payinfo' => $cust_main->card_token || $validate->{'payinfo'} );
+    $new->payinfo( $validate->{'payinfo'} ); #to properly set paymask
     $new->set( 'paydate' => $validate->{'paydate'} );
     my $error = $new->replace($cust_main);
     if ( $error ) {
@@ -1201,18 +1170,48 @@ sub do_process_payment {
       #return { 'error' => $error };
       #XXX just warn verosely for now so i can figure out how these happen in
       # the first place, eventually should redirect them to the "change
-      #address" page but indicate the payment did process??
+      #address" page but indicate if the payment processed?
       delete($validate->{'payinfo'}); #don't want to log this!
       warn "WARNING: error changing customer info when processing payment (not returning to customer as a processing error): $error\n".
            "NEW: ". Dumper($new)."\n".
            "OLD: ". Dumper($cust_main)."\n".
            "PACKET: ". Dumper($validate)."\n";
-    #} else {
-      #not needed...
-      #$cust_main = $new;
+    } else {
+      $cust_main = $new;
     }
   }
 
+  my $error = $cust_main->realtime_bop( $FS::payby::payby2bop{$payby}, $amount,
+    'quiet'       => 1,
+    'manual'      => 1,
+    'selfservice' => 1,
+    'paynum_ref'  => \$paynum,
+    %$validate,
+  );
+  return { 'error' => $error } if $error;
+
+  #no error, so order the fee package if applicable...
+  my $conf = new FS::Conf;
+  my $fee_pkgpart = $conf->config('selfservice_process-pkgpart', $cust_main->agentnum);
+  my $fee_skip_first = $conf->exists('selfservice_process-skip_first');
+  
+  if ( $fee_pkgpart and ! $fee_skip_first || scalar($cust_main->cust_pay) ) {
+
+    my $cust_pkg = new FS::cust_pkg { 'pkgpart' => $fee_pkgpart };
+
+    $error = $cust_main->order_pkg( 'cust_pkg' => $cust_pkg );
+    return { 'error' => "payment processed successfully, but error ordering fee: $error" }
+      if $error;
+
+    #and generate an invoice for it now too
+    $error = $cust_main->bill( 'pkg_list' => [ $cust_pkg ] );
+    return { 'error' => "payment processed and fee ordered sucessfully, but error billing fee: $error" }
+      if $error;
+
+  }
+
+  $cust_main->apply_payments;
+
   my $cust_pay = '';
   my $receipt_html = '';
   if ($paynum) {
@@ -3032,7 +3031,7 @@ sub reset_passwd {
     my($username, $domain) = split('@', $p->{'email'});
     my $svc_domain = qsearchs('svc_domain', { 'domain' => $domain } );
     if ( $svc_domain ) {
-      $svc_acct = qsearchs('svc_acct', { 'username' => $p->{'username'},
+      $svc_acct = qsearchs('svc_acct', { 'username' => $username,
                                          'domsvc'   => $svc_domain->svcnum  }
                           );
       if ( $svc_acct ) {
@@ -3120,7 +3119,7 @@ sub reset_passwd {
 
     my $reset_session = {
       'svcnum'   => $svc_acct->svcnum,
-      'agentnum' =>
+      'agentnum' => $svc_acct->cust_main->agentnum,
     };
 
     my $timeout = '1 hour'; #?
index 435ee98..dbcb565 100644 (file)
@@ -30,6 +30,7 @@ L<FS::SelfService::XMLRPC>, L<FS::SelfService>
 use strict;
 
 use vars qw($DEBUG $AUTOLOAD);
+use Encode;
 use FS::XMLRPC_Lite; #XMLRPC::Lite, for XMLRPC::Data
 use FS::ClientAPI;
 
@@ -67,12 +68,17 @@ sub AUTOLOAD {
 
     shift; #discard package name;
 
+
     #$call = "FS::SelfService::$call";
     #no strict 'refs';
     #&{$call}(@_);
     #FS::ClientAPI->dispatch($autoload->{$call}, @_);
 
-    my $return = FS::ClientAPI->dispatch($autoload->{$call}, { @_ } );
+    my %hash = @_;
+    #XXX doesn't handle multi-level data structs
+    $hash{$_} = decode(utf8=>$hash{$_}) foreach keys %hash;
+
+    my $return = FS::ClientAPI->dispatch($autoload->{$call}, \%hash );
 
     if ( exists($typefix{$call}) ) {
       my $typefix = $typefix{$call};
@@ -85,7 +91,7 @@ sub AUTOLOAD {
 
     $return;
 
-  }else{
+  } else {
     die "No such procedure: $call";
   }
 }
index a22e236..647ae0b 100644 (file)
@@ -1039,16 +1039,6 @@ my $validate_email = sub { $_[0] =~
   },
 
   {
-    'key'         => 'deletecredits',
-    #not actually deprecated yet
-    #'section'     => 'deprecated',
-    #'description' => '<B>DEPRECATED</B>, now controlled by ACLs.  Used to enable deletion of unclosed credits.  Be very careful!  Only delete credits that were data-entry errors, not adjustments.  Optionally specify one or more comma-separated email addresses to be notified when a credit is deleted.',
-    'section'     => '',
-    'description' => 'One or more comma-separated email addresses to be notified when a credit is deleted.',
-    'type'        => [qw( checkbox text )],
-  },
-
-  {
     'key'         => 'deleterefunds',
     'section'     => 'billing',
     'description' => 'Enable deletion of unclosed refunds.  Be very careful!  Only delete refunds that were data-entry errors, not adjustments.',
@@ -1547,7 +1537,7 @@ and customer address. Include units.',
     'type'        => 'select',
     'per_agent'   => 1,
     'select_enum' => [ 
-      '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 5', 'Net 9', 'Net 10', 'Net 14', 
+      '', 'Payable upon receipt', 'Net 0', 'Net 3', 'Net 5', 'Net 7', 'Net 9', 'Net 10', 'Net 14', 
       'Net 15', 'Net 18', 'Net 20', 'Net 21', 'Net 25', 'Net 30', 'Net 45', 
       'Net 60', 'Net 90'
     ], },
@@ -1673,13 +1663,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'payment_receipt_email',
-    'section'     => 'deprecated',
-    'description' => 'Template file for payment receipts.  Payment receipts are sent to the customer email invoice destination(s) when a payment is received.',
-    'type'        => [qw( checkbox textarea )],
-  },
-
-  {
     'key'         => 'payment_receipt-trigger',
     'section'     => 'notification',
     'description' => 'When payment receipts are triggered.  Defaults to when payment is made.',
@@ -2365,13 +2348,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'declinetemplate',
-    'section'     => 'deprecated',
-    'description' => 'Template file for credit card and electronic check decline emails.',
-    'type'        => 'textarea',
-  },
-
-  {
     'key'         => 'emaildecline',
     'section'     => 'notification',
     'description' => 'Enable emailing of credit card and electronic check decline notices.',
@@ -2395,20 +2371,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'cancelmessage',
-    'section'     => 'deprecated',
-    'description' => 'Template file for cancellation emails.',
-    'type'        => 'textarea',
-  },
-
-  {
-    'key'         => 'cancelsubject',
-    'section'     => 'deprecated',
-    'description' => 'Subject line for cancellation emails.',
-    'type'        => 'text',
-  },
-
-  {
     'key'         => 'emailcancel',
     'section'     => 'notification',
     'description' => 'Enable emailing of cancellation notices.  Make sure to select the template in the cancel_msgnum option.',
@@ -2532,86 +2494,17 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'welcome_email',
-    'section'     => 'deprecated',
-    'description' => 'Template file for welcome email.  Welcome emails are sent to the customer email invoice destination(s) each time a svc_acct record is created.',
-    'type'        => 'textarea',
-    'per_agent'   => 1,
-  },
-
-  {
-    'key'         => 'welcome_email-from',
-    'section'     => 'deprecated',
-    'description' => 'From: address header for welcome email',
-    'type'        => 'text',
-    'per_agent'   => 1,
-  },
-
-  {
-    'key'         => 'welcome_email-subject',
-    'section'     => 'deprecated',
-    'description' => 'Subject: header for welcome email',
-    'type'        => 'text',
-    'per_agent'   => 1,
-  },
-  
-  {
-    'key'         => 'welcome_email-mimetype',
-    'section'     => 'deprecated',
-    'description' => 'MIME type for welcome email',
-    'type'        => 'select',
-    'select_enum' => [ 'text/plain', 'text/html' ],
-    'per_agent'   => 1,
-  },
-
-  {
     'key'         => 'welcome_letter',
     'section'     => '',
     'description' => 'Optional LaTex template file for a printed welcome letter.  A welcome letter is printed the first time a cust_pkg record is created.  See the <a href="http://search.cpan.org/dist/Text-Template/lib/Text/Template.pm">Text::Template</a> documentation and the billing documentation for details on the template substitution language.  A variable exists for each fieldname in the customer record (<code>$first, $last, etc</code>).  The following additional variables are available<ul><li><code>$payby</code> - a friendler represenation of the field<li><code>$payinfo</code> - the masked payment information<li><code>$expdate</code> - the time at which the payment method expires (a UNIX timestamp)<li><code>$returnaddress</code> - the invoice return address for this customer\'s agent</ul>',
     'type'        => 'textarea',
   },
 
-#  {
-#    'key'         => 'warning_msgnum',
-#    'section'     => 'notification',
-#    'description' => 'Template to use for warning messages, sent to the customer email invoice destination(s) when a svc_acct record has its usage drop below a threshold.',
-#    %msg_template_options,
-#  },
-
-  {
-    'key'         => 'warning_email',
-    'section'     => 'notification',
-    'description' => 'Template file for warning email.  Warning emails are sent to the customer email invoice destination(s) each time a svc_acct record has its usage drop below a threshold or 0.  See the <a href="http://search.cpan.org/dist/Text-Template/lib/Text/Template.pm">Text::Template</a> documentation for details on the template substitution language.  The following variables are available<ul><li><code>$username</code> <li><code>$password</code> <li><code>$first</code> <li><code>$last</code> <li><code>$pkg</code> <li><code>$column</code> <li><code>$amount</code> <li><code>$threshold</code></ul>',
-    'type'        => 'textarea',
-  },
-
-  {
-    'key'         => 'warning_email-from',
-    'section'     => 'notification',
-    'description' => 'From: address header for warning email',
-    'type'        => 'text',
-  },
-
-  {
-    'key'         => 'warning_email-cc',
-    'section'     => 'notification',
-    'description' => 'Additional recipient(s) (comma separated) for warning email when remaining usage reaches zero.',
-    'type'        => 'text',
-  },
-
   {
-    'key'         => 'warning_email-subject',
+    'key'         => 'threshold_warning_msgnum',
     'section'     => 'notification',
-    'description' => 'Subject: header for warning email',
-    'type'        => 'text',
-  },
-  
-  {
-    'key'         => 'warning_email-mimetype',
-    'section'     => 'notification',
-    'description' => 'MIME type for warning email',
-    'type'        => 'select',
-    'select_enum' => [ 'text/plain', 'text/html' ],
+    'description' => 'Template to use for warning messages sent to the customer email invoice destination(s) when a svc_acct record has its usage drop below a threshold.  Extra substitutions available: $column, $amount, $threshold',
+    %msg_template_options,
   },
 
   {
@@ -2619,7 +2512,7 @@ and customer address. Include units.',
     'section'     => 'billing',
     'description' => 'Available payment types.',
     'type'        => 'selectmultiple',
-    'select_enum' => [ qw(CARD DCRD CHEK DCHK CASH WEST MCRD MCHK PPAL) ],
+    'select_enum' => [ qw(CARD DCRD CHEK DCHK BILL CASH WEST MCRD MCHK PPAL) ],
   },
 
   {
@@ -2711,14 +2604,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'dump-email_to',
-    'section'     => '',
-    'description' => "Optional email address to send success/failure message for database dumps.",
-    'type'        => 'text',
-    'validate'    => $validate_email,
-  },
-
-  {
     'key'         => 'credit_card-recurring_billing_flag',
     'section'     => 'billing',
     'description' => 'This controls when the system passes the "recurring_billing" flag on credit card transactions.  If supported by your processor (and the Business::OnlinePayment processor module), passing the flag indicates this is a recurring transaction and may turn off the CVV requirement. ',
@@ -3189,12 +3074,14 @@ and customer address. Include units.',
                            }
                          },
   },
+
   {
     'key'         => 'ticket_system-force_default_queueid',
     'section'     => 'ticketing',
     'description' => 'Disallow queue selection when creating new tickets from customer view.',
     'type'        => 'checkbox',
   },
+
   {
     'key'         => 'ticket_system-selfservice_queueid',
     'section'     => 'ticketing',
@@ -3273,6 +3160,41 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'ticket_system-appointment-queueid',
+    'section'     => 'ticketing',
+    'description' => 'Custom field from the ticketing system to use as an appointment classification.',
+    #false laziness w/above
+    'type'        => 'select-sub',
+    'options_sub' => sub {
+                           my $conf = new FS::Conf;
+                           if ( $conf->config('ticket_system') ) {
+                             eval "use FS::TicketSystem;";
+                             die $@ if $@;
+                             FS::TicketSystem->queues();
+                           } else {
+                             ();
+                           }
+                         },
+    'option_sub'  => sub { 
+                           my $conf = new FS::Conf;
+                           if ( $conf->config('ticket_system') ) {
+                             eval "use FS::TicketSystem;";
+                             die $@ if $@;
+                             FS::TicketSystem->queue(shift);
+                           } else {
+                             '';
+                           }
+                         },
+  },
+
+  {
+    'key'         => 'ticket_system-appointment-custom_field',
+    'section'     => 'ticketing',
+    'description' => 'Custom field from the ticketing system to use as an appointment classification.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'ticket_system-escalation',
     'section'     => 'ticketing',
     'description' => 'Enable priority escalation of tickets as part of daily batch processing.',
@@ -3778,11 +3700,12 @@ and customer address. Include units.',
     'select_enum' => [ 'approve', 'decline' ],
   },
 
+  # replaces batch-errors_to (sent email on error)
   {
-    'key'         => 'batch-errors_to',
+    'key'         => 'batch-errors_not_fatal',
     'section'     => 'billing',
-    'description' => 'Email errors when processing batches to this address.  If unspecified, batch processing will stop immediately on error.',
-    'type'        => 'text',
+    'description' => 'If checked, when importing batches from a gateway, item errors will be recorded in the system log without aborting processing.  If unchecked, batch processing will fail on error.',
+    'type'        => 'checkbox',
   },
 
   #lists could be auto-generated from pay_batch info
@@ -4082,14 +4005,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'impending_recur_template',
-    'section'     => 'deprecated',
-    'description' => 'Template file for alerts about looming first time recurrant billing.  See the <a href="http://search.cpan.org/dist/Text-Template/lib/Text/Template.pm">Text::Template</a> documentation for details on the template substitition language.  Also see packages with a <a href="../browse/part_pkg.cgi">flat price plan</a>  The following variables are available<ul><li><code>$packages</code> allowing <code>$packages->[0]</code> thru <code>$packages->[n]</code> <li><code>$package</code> the first package, same as <code>$packages->[0]</code> <li><code>$recurdates</code> allowing <code>$recurdates->[0]</code> thru <code>$recurdates->[n]</code> <li><code>$recurdate</code> the first recurdate, same as <code>$recurdate->[0]</code> <li><code>$first</code> <li><code>$last</code></ul>',
-# <li><code>$payby</code> <li><code>$expdate</code> most likely only confuse
-    'type'        => 'textarea',
-  },
-
-  {
     'key'         => 'logo.png',
     'section'     => 'UI',  #'invoicing' ?
     'description' => 'Company logo for HTML invoices and the backoffice interface, in PNG format.  Suggested size somewhere near 92x62.',
@@ -4300,7 +4215,7 @@ and customer address. Include units.',
   {
     'key'         => 'disable_previous_balance',
     'section'     => 'invoicing',
-    'description' => 'Disable inclusion of previous balance, payment, and credit lines on invoices.',
+    'description' => 'Show new charges only; do not list previous invoices, payments, or credits on the invoice.',
     'type'        => 'checkbox',
     'per_agent'   => 1,
   },
@@ -4648,13 +4563,6 @@ and customer address. Include units.',
   },
   
   {
-    'key'         => 'email_report-subject',
-    'section'     => '',
-    'description' => 'Subject for reports emailed by freeside-fetch.  Defaults to "Freeside report".',
-    'type'        => 'text',
-  },
-
-  {
     'key'         => 'selfservice-head',
     'section'     => 'self-service',
     'description' => 'HTML for the HEAD section of the self-service interface, typically used for LINK stylesheet tags',
@@ -5781,13 +5689,6 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'agent-email_day',
-    'section'     => '',
-    'description' => 'On this day of each month, agents with master customer records containing email addresses will be emailed a list of their customers and balances.',
-    'type'        => 'text',
-  },
-
-  {
     'key'         => 'report-cust_pay-select_time',
     'section'     => 'UI',
     'description' => 'Enable time selection on payment and refund reports.',
diff --git a/FS/FS/Cron/agent_email.pm b/FS/FS/Cron/agent_email.pm
deleted file mode 100644 (file)
index 6bc1cc6..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-package FS::Cron::agent_email;
-use base qw( Exporter );
-
-use strict;
-use vars qw( @EXPORT_OK $DEBUG );
-use Date::Simple qw(today);
-use URI::Escape;
-use FS::Mason qw( mason_interps );
-use FS::Conf;
-use FS::Misc qw(send_email);
-use FS::Record qw(qsearch);# qsearchs);
-use FS::agent;
-
-@EXPORT_OK = qw ( agent_email );
-$DEBUG = 0;
-
-sub agent_email {
-  my %opt = @_;
-
-  my $conf = new FS::Conf;
-
-  my $day = $conf->config('agent-email_day') or return;
-  return unless $day == today->day;
-
-  if ( 1 ) { #XXX if ( %%%RT_ENABLED%%% ) {
-    require RT;
-    RT::LoadConfig();
-    RT::Init();
-    RT::ConnectToDatabase();
-  }
-
-  my $from = $conf->invoice_from_full();
-
-  my $outbuf = '';;
-  my( $fs_interp, $rt_interp ) = mason_interps('standalone', 'outbuf'=>\$outbuf);
-
-  my $comp = '/search/cust_main.html';
-  my %args = (
-    'cust_fields' => 'Cust# | Cust. Status | Customer | Current Balance',
-    '_type'       => 'html-print',
-  );
-  my $query = join('&', map "$_=".uri_escape($args{$_}), keys %args );
-
-  my $extra_sql = $opt{a} ? " AND agentnum IN ( $opt{a} ) " : '';
-
-  foreach my $agent ( qsearch({
-                        'table'     => 'agent',
-                        'hashref'   => {
-                          'disabled'      => '',
-                          'agent_custnum' => { op=>'!=', value=>'' },
-                        },
-                        'extra_sql' => $extra_sql,
-                      })
-                    )
-  {
-
-    $FS::Mason::Request::QUERY_STRING = $query. '&agentnum='. $agent->agentnum;
-    $fs_interp->exec($comp);
-
-    my @email = $agent->agent_cust_main->invoicing_list or next;
-
-    warn "emailing ". join(',',@email). " for agent ". $agent->agent. "\n"
-      if $DEBUG;
-    send_email(
-      'from'         => $from,
-      'to'           => \@email,
-      'subject'      => 'Customer report',
-      'body'         => $outbuf,
-      'content-type' => 'text/html',
-      #'content-encoding'
-    ); 
-
-    $outbuf = '';
-
-  }
-
-}
-
-1;
index cfc8e36..a192ca9 100644 (file)
@@ -6,7 +6,7 @@ use Exporter;
 use File::Copy;
 use Date::Format;
 use FS::UID qw(driver_name datasrc);
-use FS::Misc qw( send_email );
+use FS::Log
 
 @ISA = qw( Exporter );
 @EXPORT_OK = qw( backup );
@@ -20,7 +20,7 @@ sub backup {
   my $filename = time2str('%Y%m%d%H%M%S',time);
 
   datasrc =~ /dbname=([\w\.]+)$/
-    or backup_email_and_die($conf,$filename,"unparsable datasrc ". datasrc);
+    or backup_log_and_die($filename,"unparsable datasrc ". datasrc);
   my $database = $1;
 
   my $ext;
@@ -31,70 +31,61 @@ sub backup {
     system("mysqldump $database >/var/tmp/$database.sql");
     $ext = 'sql';
   } else {
-    backup_email_and_die($conf,$filename,"database dumps not yet supported for ". driver_name);
+    backup_log_and_die($filename,"database dumps not yet supported for ". driver_name);
   }
   chmod 0600, "/var/tmp/$database.$ext";
 
   if ( $conf->config('dump-pgpid') ) {
     eval 'use GnuPG;';
-    backup_email_and_die($conf,$filename,$@) if $@;
+    backup_log_and_die($filename,$@) if $@;
     my $gpg = new GnuPG;
     $gpg->encrypt( plaintext => "/var/tmp/$database.$ext",
                    output    => "/var/tmp/$database.gpg",
                    recipient => $conf->config('dump-pgpid'),
                  );
     unlink "/var/tmp/$database.$ext"
-      or backup_email_and_die($conf,$filename,$!);
+      or backup_log_and_die($filename,$!);
     chmod 0600, "/var/tmp/$database.gpg";
     $ext = 'gpg';
   }
 
   if ( $localdest ) {
     copy("/var/tmp/$database.$ext", "$localdest/$filename.$ext")
-      or backup_email_and_die($conf,$filename,$!);
+      or backup_log_and_die($filename,$!);
     chmod 0600, "$localdest/$filename.$ext";
   }
 
   if ( $scpdest ) {
     eval "use Net::SCP qw(scp);";
-    backup_email_and_die($conf,$filename,$@) if $@;
+    backup_log_and_die($filename,$@) if $@;
     scp("/var/tmp/$database.$ext", "$scpdest/$filename.$ext");
   }
 
-  unlink "/var/tmp/$database.$ext" or backup_email_and_die($conf,$filename,$!); #or just warn?
+  unlink "/var/tmp/$database.$ext" or backup_log_and_die($filename,$!); #or just warn?
 
-  backup_email($conf,$filename);
+  backup_log($filename);
 
 }
 
-#runs backup_email and dies with same error message
-sub backup_email_and_die {
-  my ($conf,$filename,$error) = @_;
-  backup_email($conf,$filename,$error);
-  warn "backup_email_and_die called without error message" unless $error;
+#runs backup_log and dies with same error message
+sub backup_log_and_die {
+  my ($filename,$error) = @_;
+  $error = "backup_log_and_die called without error message" unless $error;
+  backup_log($filename,$error);
   die $error;
 }
 
-#checks if email should be sent, sends it
-sub backup_email {
-  my ($conf,$filename,$error) = @_;
-  my $to = $conf->config('dump-email_to');
-  return unless $to;
-  my $result = $error ? 'FAILED' : 'succeeded';
-  my $email_error = send_email(
-    'from'    => $conf->config('invoice_from'), #or whatever, don't think it matters
-    'to'      => $to,
-    'subject' => 'FREESIDE NOTIFICATION: Backup ' . $result,
-    'body'    => [ 
-      "This is an automatic message from your Freeside installation.\n",
-      "Freeside backup $filename $result",
-      ($error ? " with the following error:\n\n" : "\n"),
-      ($error || ''),      
-      "\n",
-    ],
-    'msgtype' => 'admin',
-  );
-  warn $email_error if $email_error;
+#logs result
+sub backup_log {
+  my ($filename,$error) = @_;
+  my $result = $error ? "FAILED: $error" : 'succeeded';
+  my $message = "backup $filename $result\n";
+  my $log = FS::Log->new('Cron::backup');
+  if ($error) {
+    $log->error($message);
+  } else {
+    $log->info($message);
+  }
   return;
 }
 
index 6d70654..34977c8 100644 (file)
@@ -111,15 +111,6 @@ END
       $error = $msg_template->send('cust_main' => $cust_main,
                                    'object'    => $cust_main);
     }
-    else {
-      $error = $cust_main->notify( 'impending_recur_template',
-                          'extra_fields' => { 'packages'   => \@packages,
-                                              'recurdates' => \@recurdates,
-                                              'package'    => $packages[0],
-                                              'recurdate'  => $recurdates[0],
-                                            },
-                        );
-    } #if $msgnum
     warn "Error notifying, custnum ". $cust_main->custnum. ": $error" if $error;
 
     unless ($error) { 
index ae4f07c..98a75c8 100644 (file)
@@ -405,6 +405,10 @@ if ( -e $addl_handler_use_file ) {
   use FS::cust_pkg_reason_fee;
   use FS::part_svc_link;
   use FS::access_user_log;
+  use FS::report_batch;
+  use FS::report_batch;
+  use FS::report_batch;
+  use FS::report_batch;
   # Sammath Naur
 
   if ( $FS::Mason::addl_handler_use ) {
index cbf4495..18cb275 100644 (file)
@@ -414,34 +414,6 @@ sub generate_email {
 
 }
 
-=item process_send_email OPTION => VALUE ...
-
-Takes arguments as per generate_email() and sends the message.  This 
-will die on any error and can be used in the job queue.
-
-=cut
-
-sub process_send_email {
-  my %message = @_;
-  my $error = send_email(generate_email(%message));
-  die "$error\n" if $error;
-  '';
-}
-
-=item process_send_generated_email OPTION => VALUE ...
-
-Takes arguments as per send_email() and sends the message.  This 
-will die on any error and can be used in the job queue.
-
-=cut
-
-sub process_send_generated_email {
-  my %args = @_;
-  my $error = send_email(%args);
-  die "$error\n" if $error;
-  '';
-}
-
 =item send_fax OPTION => VALUE ...
 
 Options:
index 2fff906..56baec3 100644 (file)
@@ -6,9 +6,10 @@ use Carp;
 use Time::Local;
 use Date::Parse;
 use DateTime::Format::Natural;
+use Date::Format;
 use FS::Conf;
 
-@EXPORT_OK = qw( parse_datetime day_end );
+@EXPORT_OK = qw( parse_datetime day_end iso8601 );
 
 =head1 NAME
 
@@ -65,11 +66,22 @@ same date but 23:59:59 for the time.
 =cut
 
 sub day_end {
-    my $time = shift;
+  my $time = shift;
 
-    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
-        localtime($time);
-    timelocal(59,59,23,$mday,$mon,$year);
+  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
+      localtime($time);
+  timelocal(59,59,23,$mday,$mon,$year);
+}
+
+=item iso8601 TIME
+
+Parses time as an integer UNIX timestamp and returns the ISO 8601 formatted
+date and time.
+
+=cut
+
+sub iso8601 {
+  time2str('%Y-%m-%dT%T', @_);
 }
 
 =back
index d6892a9..fafceac 100644 (file)
@@ -1300,8 +1300,7 @@ sub insert {
   my $table = $self->table;
   
   # Encrypt before the database
-  if (    defined(eval '@FS::'. $table . '::encrypted_fields')
-       && scalar( eval '@FS::'. $table . '::encrypted_fields')
+  if (    scalar( eval '@FS::'. $table . '::encrypted_fields')
        && $conf_encryption
   ) {
     foreach my $field (eval '@FS::'. $table . '::encrypted_fields') {
@@ -1543,9 +1542,8 @@ sub replace {
   
   # Encrypt for replace
   my $saved = {};
-  if (    $conf_encryption
-       && defined(eval '@FS::'. $new->table . '::encrypted_fields')
-       && scalar( eval '@FS::'. $new->table . '::encrypted_fields')
+  if (    scalar( eval '@FS::'. $new->table . '::encrypted_fields')
+       && $conf_encryption
   ) {
     foreach my $field (eval '@FS::'. $new->table . '::encrypted_fields') {
       next if $field eq 'payinfo' 
index 63e5318..eeb99ba 100644 (file)
@@ -485,9 +485,9 @@ sub cust_pkg_recur_cost {
 
 =item cust_bill_pkg: the total package charges on invoice line items.
 
-'charges': limit the type of charges included (setup, recur, usage, discount).
-Should be a string containing one or more of 'S', 'R', 'U', or 'D'; if 
-unspecified, defaults to all three.
+'charges': limit the type of charges included (setup, recur, usage, discount, taxes).
+Should be a string containing one or more of 'S', 'R', or 'U'; or 'D' or 'T' (discount
+and taxes should not be combined with the others.)  If unspecified, defaults to 'SRU'.
 
 'classnum': limit to this package class.
 
@@ -517,6 +517,7 @@ sub cust_bill_pkg {
   $sum += $self->cust_bill_pkg_recur(@_) if $charges{R};
   $sum += $self->cust_bill_pkg_detail(@_) if $charges{U};
   $sum += $self->cust_bill_pkg_discount(@_) if $charges{D};
+  $sum += $self->cust_bill_pkg_taxes(@_) if $charges{T};
 
   if ($opt{'average_per_cust_pkg'}) {
     my $count = $self->cust_bill_pkg_count_pkgnum(@_);
@@ -727,6 +728,58 @@ sub cust_bill_pkg_discount {
   $self->scalar_sql($total_sql);
 }
 
+sub cust_bill_pkg_taxes {
+  my $self = shift;
+  my ($speriod, $eperiod, $agentnum, %opt) = @_;
+
+  $agentnum ||= $opt{'agentnum'};
+
+  my @where = (
+    '(cust_bill_pkg.pkgnum != 0 OR feepart IS NOT NULL)',
+    $self->with_classnum($opt{'classnum'}, $opt{'use_override'}),
+    $self->with_report_option(%opt),
+    $self->in_time_period_and_agent($speriod, $eperiod, $agentnum),
+    $self->with_refnum(%opt),
+    $self->with_cust_classnum(%opt)
+  );
+
+  my $total_sql = "SELECT COALESCE(SUM(cust_bill_pkg_tax_location.amount),0)
+    FROM cust_bill_pkg
+    $cust_bill_pkg_join
+    LEFT JOIN cust_bill_pkg_tax_location 
+      ON (cust_bill_pkg.billpkgnum = cust_bill_pkg_tax_location.taxable_billpkgnum)
+    WHERE " . join(' AND ', grep $_, @where);
+
+  $self->scalar_sql($total_sql);
+}
+
+#all credits applied to matching pkg line items (ie not taxes)
+
+sub cust_bill_pkg_credits {
+  my $self = shift;
+  my ($speriod, $eperiod, $agentnum, %opt) = @_;
+
+  $agentnum ||= $opt{'agentnum'};
+
+  my @where = (
+    '(cust_bill_pkg.pkgnum != 0 OR feepart IS NOT NULL)',
+    $self->with_classnum($opt{'classnum'}, $opt{'use_override'}),
+    $self->with_report_option(%opt),
+    $self->in_time_period_and_agent($speriod, $eperiod, $agentnum),
+    $self->with_refnum(%opt),
+    $self->with_cust_classnum(%opt)
+  );
+
+  my $total_sql = "SELECT COALESCE(SUM(cust_credit_bill_pkg.amount),0)
+    FROM cust_bill_pkg
+    $cust_bill_pkg_join
+    LEFT JOIN cust_credit_bill_pkg 
+      USING ( billpkgnum )
+    WHERE " . join(' AND ', grep $_, @where);
+
+  $self->scalar_sql($total_sql);
+}
+
 ##### package churn report #####
 
 =item active_pkg: The number of packages that were active at the start of 
index 23c1645..a892a6b 100644 (file)
@@ -52,9 +52,10 @@ sub report_internal {
   }
 
   # %breakdown: short name => field identifier
+  # null classnum should remain null, not be converted to zero
   %breakdown = (
     'taxclass'  => 'cust_main_county.taxclass',
-    'pkgclass'  => 'part_pkg.classnum',
+    'pkgclass'  => 'COALESCE(part_fee.classnum,part_pkg.classnum)',
     'city'      => 'cust_main_county.city',
     'district'  => 'cust_main_county.district',
     'state'     => 'cust_main_county.state',
@@ -69,7 +70,8 @@ sub report_internal {
 
   my $join_cust_pkg = $join_cust.
                       ' LEFT JOIN cust_pkg      USING ( pkgnum  )
-                        LEFT JOIN part_pkg      USING ( pkgpart ) ';
+                        LEFT JOIN part_pkg      USING ( pkgpart )
+                        LEFT JOIN part_fee      USING ( feepart ) ';
 
   my $from_join_cust_pkg = " FROM cust_bill_pkg $join_cust_pkg "; 
 
@@ -180,26 +182,111 @@ sub report_internal {
   $all_sql{exempt_monthly} = $all_exempt;
   $all_sql{exempt_monthly} =~ s/EXEMPT_WHERE/exempt_monthly = 'Y'/;
 
+  # credits applied to taxable sales
+  # Note that negative exemptions (from exempt sales being credited) are NOT
+  # counted when calculating the exempt amount. (See above.) Therefore we need
+  # to NOT include any credits against exempt sales in this amount, either.
+  # These two subqueries implement that. They have joins to cust_credit_bill
+  # and cust_bill so that credits can be filtered by application date if
+  # requested.
+
+  # Each row here is the sum of credits applied to a line item.
+  my $sales_credit =
+    "SELECT billpkgnum, SUM(cust_credit_bill_pkg.amount) AS credited
+    FROM cust_credit_bill_pkg
+    JOIN cust_credit_bill USING (creditbillnum)
+    JOIN cust_bill USING (invnum)
+    WHERE cust_bill._date >= $beginning AND cust_bill._date <= $ending
+    GROUP BY billpkgnum
+    ";
+
+  # Each row here is the sum of negative exemptions applied to a combination
+  # of line item and tax definition.
+  my $exempt_credit =
+    "SELECT cust_credit_bill_pkg.billpkgnum, taxnum,
+      0 - SUM(cust_tax_exempt_pkg.amount) AS exempt_credited
+    FROM cust_credit_bill_pkg
+    LEFT JOIN cust_tax_exempt_pkg USING (creditbillpkgnum)
+    JOIN cust_credit_bill USING (creditbillnum)
+    JOIN cust_bill USING (invnum)
+    WHERE cust_bill._date >= $beginning AND cust_bill._date <= $ending
+    GROUP BY cust_credit_bill_pkg.billpkgnum, taxnum
+    ";
+  
+  if ( $opt{credit_date} eq 'cust_credit_bill' ) {
+    $sales_credit =~ s/cust_bill._date/cust_credit_bill._date/g;
+    $exempt_credit =~ s/cust_bill._date/cust_credit_bill._date/g;
+  }
+
+  $sql{sales_credited} = "$select
+    SUM(COALESCE(credited, 0) - COALESCE(exempt_credited, 0))
+    FROM cust_main_county
+    JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
+    JOIN cust_bill_pkg USING (billpkgnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
+    $join_cust_pkg $where AND $nottax
+    $group
+    ";
+
+  $all_sql{sales_credited} = "$select_all
+    SUM(COALESCE(credited, 0) - COALESCE(exempt_credited, 0))
+    FROM cust_main_county
+    JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
+    JOIN cust_bill_pkg USING (billpkgnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
+    $join_cust_pkg $where AND $nottax
+    $group
+    ";
+
+  # also include the exempt-sales credit amount, for the credit report
+  $sql{exempt_credited} = "$select
+    SUM(COALESCE(exempt_credited, 0))
+    FROM cust_main_county
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (taxnum)
+    JOIN cust_bill_pkg USING (billpkgnum)
+    $join_cust_pkg $where AND $nottax
+    $group
+    ";
+
+  $all_sql{exempt_credited} = "$select_all
+    SUM(COALESCE(exempt_credited, 0))
+    FROM cust_main_county
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (taxnum)
+    JOIN cust_bill_pkg USING (billpkgnum)
+    $join_cust_pkg $where AND $nottax
+    $group
+    ";
+
   # taxable sales
   $sql{taxable} = "$select
-    SUM(cust_bill_pkg.setup + cust_bill_pkg.recur - COALESCE(exempt_charged, 0))
+    SUM(cust_bill_pkg.setup + cust_bill_pkg.recur
+      - COALESCE(exempt_charged, 0)
+      - COALESCE(credited, 0)
+      + COALESCE(exempt_credited, 0)
+    )
     FROM cust_main_county
     JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
     JOIN cust_bill_pkg USING (billpkgnum)
-    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt
-      ON (pkg_tax_exempt.billpkgnum = cust_bill_pkg.billpkgnum 
-          AND pkg_tax_exempt.taxnum = cust_main_county.taxnum)
+    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt USING (billpkgnum, taxnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
     $join_cust_pkg $where AND $nottax 
     $group";
 
   $all_sql{taxable} = "$select_all
-    SUM(cust_bill_pkg.setup + cust_bill_pkg.recur - COALESCE(exempt_charged, 0))
+    SUM(cust_bill_pkg.setup + cust_bill_pkg.recur
+      - COALESCE(exempt_charged, 0)
+      - COALESCE(credited, 0)
+      + COALESCE(exempt_credited, 0)
+    )
     FROM cust_main_county
     JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
     JOIN cust_bill_pkg USING (billpkgnum)
-    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt
-      ON (pkg_tax_exempt.billpkgnum = cust_bill_pkg.billpkgnum 
-          AND pkg_tax_exempt.taxnum = cust_main_county.taxnum)
+    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt USING (billpkgnum, taxnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
     $join_cust_pkg $where AND $nottax 
     $group_all";
 
@@ -209,27 +296,35 @@ sub report_internal {
   # estimated tax (taxable * rate)
   $sql{estimated} = "$select
     SUM(cust_main_county.tax / 100 * 
-      (cust_bill_pkg.setup + cust_bill_pkg.recur - COALESCE(exempt_charged, 0))
+      (cust_bill_pkg.setup + cust_bill_pkg.recur
+      - COALESCE(exempt_charged, 0)
+      - COALESCE(credited, 0)
+      + COALESCE(exempt_credited, 0)
+      )
     )
     FROM cust_main_county
     JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
     JOIN cust_bill_pkg USING (billpkgnum)
-    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt
-      ON (pkg_tax_exempt.billpkgnum = cust_bill_pkg.billpkgnum 
-          AND pkg_tax_exempt.taxnum = cust_main_county.taxnum)
+    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt USING (billpkgnum, taxnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
     $join_cust_pkg $where AND $nottax 
     $group";
 
   $all_sql{estimated} = "$select_all
     SUM(cust_main_county.tax / 100 * 
-      (cust_bill_pkg.setup + cust_bill_pkg.recur - COALESCE(exempt_charged, 0))
+      (cust_bill_pkg.setup + cust_bill_pkg.recur
+      - COALESCE(exempt_charged, 0)
+      - COALESCE(credited, 0)
+      + COALESCE(exempt_credited, 0)
+      )
     )
     FROM cust_main_county
     JOIN ($pkg_tax) AS pkg_tax USING (taxnum)
     JOIN cust_bill_pkg USING (billpkgnum)
-    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt
-      ON (pkg_tax_exempt.billpkgnum = cust_bill_pkg.billpkgnum 
-          AND pkg_tax_exempt.taxnum = cust_main_county.taxnum)
+    LEFT JOIN ($pkg_tax_exempt) AS pkg_tax_exempt USING (billpkgnum, taxnum)
+    LEFT JOIN ($sales_credit) AS sales_credit USING (billpkgnum)
+    LEFT JOIN ($exempt_credit) AS exempt_credit USING (billpkgnum, taxnum)
     $join_cust_pkg $where AND $nottax 
     $group_all";
 
@@ -239,7 +334,7 @@ sub report_internal {
   # there isn't one for 'sales', because we calculate sales by adding up 
   # the taxable and exempt columns.
   
-  # TAX QUERIES (billed tax, credited tax)
+  # TAX QUERIES (billed tax, credited tax, collected tax)
   # -----------
 
   # sum of billed tax:
@@ -252,28 +347,30 @@ sub report_internal {
   if ( $breakdown{pkgclass} ) {
     # If we're not grouping by package class, this is unnecessary, and
     # probably really expensive.
+    # Remember that fees also have package classes.
     $taxfrom .= "
                   LEFT JOIN cust_bill_pkg AS taxable
                     ON (cust_bill_pkg_tax_location.taxable_billpkgnum = taxable.billpkgnum)
                   LEFT JOIN cust_pkg ON (taxable.pkgnum = cust_pkg.pkgnum)
-                  LEFT JOIN part_pkg USING (pkgpart)";
+                  LEFT JOIN part_pkg USING (pkgpart)
+                  LEFT JOIN part_fee ON (taxable.feepart = part_fee.feepart) ";
   }
 
-  my $istax = "cust_bill_pkg.pkgnum = 0";
+  my $istax = "cust_bill_pkg.pkgnum = 0 and cust_bill_pkg.feepart is null";
 
-  $sql{tax} = "$select SUM(cust_bill_pkg_tax_location.amount)
+  $sql{tax} = "$select COALESCE(SUM(cust_bill_pkg_tax_location.amount),0)
                $taxfrom
                $where AND $istax
                $group";
 
-  $all_sql{tax} = "$select_all SUM(cust_bill_pkg_tax_location.amount)
+  $all_sql{tax} = "$select_all COALESCE(SUM(cust_bill_pkg_tax_location.amount),0)
                $taxfrom
                $where AND $istax
                $group_all";
 
   # sum of credits applied against billed tax
-  # ($creditfrom includes join of taxable item to part_pkg if with_pkgclass
-  # is on)
+  # ($creditfrom includes join of taxable item to part_pkg/part_fee if 
+  # with_pkgclass is on)
   my $creditfrom = $taxfrom .
     ' JOIN cust_credit_bill_pkg USING (billpkgtaxlocationnum)' .
     ' JOIN cust_credit_bill     USING (creditbillnum)';
@@ -286,16 +383,37 @@ sub report_internal {
     $creditwhere     =~ s/cust_bill._date/cust_credit_bill._date/g;
   }
 
-  $sql{credit} = "$select SUM(cust_credit_bill_pkg.amount)
+  $sql{tax_credited} = "$select COALESCE(SUM(cust_credit_bill_pkg.amount),0)
                   $creditfrom
                   $creditwhere AND $istax
                   $group";
 
-  $all_sql{credit} = "$select_all SUM(cust_credit_bill_pkg.amount)
+  $all_sql{tax_credited} = "$select_all COALESCE(SUM(cust_credit_bill_pkg.amount),0)
                   $creditfrom
                   $creditwhere AND $istax
                   $group_all";
 
+  # sum of tax paid
+  # this suffers from the same ambiguity as anything else that applies 
+  # received payments to specific packages, but in reality the discrepancy
+  # should be minimal since people either pay their bill or don't.
+  # the join is on billpkgtaxlocationnum to avoid cross-producting.
+  my $paidfrom = $taxfrom .
+    ' JOIN cust_bill_pay_pkg'.
+    ' ON (cust_bill_pay_pkg.billpkgtaxlocationnum ='.
+    ' cust_bill_pkg_tax_location.billpkgtaxlocationnum)';
+
+  $sql{tax_paid} = "$select COALESCE(SUM(cust_bill_pay_pkg.amount),0)
+                    $paidfrom
+                    $where AND $istax
+                    $group";
+
+  $all_sql{tax_paid} = "$select_all COALESCE(SUM(cust_bill_pay_pkg.amount),0)
+                    $paidfrom
+                    $where AND $istax
+                    $group_all";
+
   my %data;
   my %total;
   # note that we use keys(%sql) here and keys(%all_sql) later. nothing
@@ -303,7 +421,7 @@ sub report_internal {
   # as for the individual category queries
   foreach my $k (keys(%sql)) {
     my $stmt = $sql{$k};
-    warn "\n".uc($k).":\n".$stmt."\n" if $DEBUG;
+    warn "\n".uc($k).":\n".$stmt."\n" if $DEBUG > 1;
     my $sth = dbh->prepare($stmt);
     # eight columns: pkgclass, taxclass, state, county, city, district
     # taxnums (comma separated), value
@@ -322,7 +440,7 @@ sub report_internal {
       push @$bin, [ $k, $row->[6], $row->[7] ];
     }
   }
-  warn "DATA:\n".Dumper(\%data) if $DEBUG > 1;
+  warn "DATA:\n".Dumper(\%data) if $DEBUG;
 
   foreach my $k (keys %all_sql) {
     warn "\nTOTAL ".uc($k).":\n".$all_sql{$k}."\n" if $DEBUG;
@@ -458,10 +576,16 @@ sub table {
       # and calculate row totals
       $this_row{sales} = sprintf('%.2f',
                           $this_row{taxable} +
+                          $this_row{sales_credited} +
                           $this_row{exempt_cust} +
                           $this_row{exempt_pkg} + 
                           $this_row{exempt_monthly}
                         );
+      $this_row{credits} = sprintf('%.2f',
+                          $this_row{sales_credited} +
+                          $this_row{exempt_credited} +
+                          $this_row{tax_credited}
+                        );
       # and give it a label
       if ( $this_row{total} ) {
         $this_row{label} = 'Total';
index 184c6c9..486860f 100644 (file)
@@ -204,6 +204,7 @@ sub dbdef_dist {
            && ( ! /^queue(_arg|_depend|_stat)?$/ || ! $opt->{'queue-no_history'} )
            && ! $tables_hashref_torrus->{$_}
            && ! /^cacti_page$/
+           && ! /^template_image$/
          }
       $dbdef->tables
   ) {
@@ -4332,6 +4333,7 @@ sub tables_hashref {
         'custnum',        'int', 'NULL',      '', '', '',
         'secure',        'char', 'NULL',       1, '', '',
         'priority',       'int', 'NULL',      '', '', '',
+        'usernum',        'int', 'NULL',      '', '', '',
       ],
       'primary_key'  => 'jobnum',
       'unique'       => [],
@@ -4345,6 +4347,9 @@ sub tables_hashref {
                           { columns    => [ 'custnum' ],
                             table      => 'cust_main',
                           },
+                          { columns    => [ 'usernum' ],
+                            table      => 'access_user',
+                          },
                         ],
     },
 
@@ -6315,8 +6320,11 @@ sub tables_hashref {
         'mime_type', 'varchar',     '', $char_d, '', '',
         'body',         'blob', 'NULL',      '', '', '',
         'disabled',     'char', 'NULL',       1, '', '', 
+          # migrate these to msg_template_email
         'from_addr', 'varchar', 'NULL',     255, '', '',
         'bcc_addr',  'varchar', 'NULL',     255, '', '',
+          # change to not null on v5
+        'msgclass',  'varchar', 'NULL',      16, '', '',
       ],
       'primary_key'  => 'msgnum',
       'unique'       => [ ],
@@ -6328,6 +6336,26 @@ sub tables_hashref {
                         ],
     },
 
+    'msg_template_http' => {
+      'columns' => [
+        'num',          'serial',     '',      '', '', '',
+        'msgnum',          'int',     '',      '', '', '',
+        'prepare_url', 'varchar', 'NULL',     255, '', '',
+        'send_url',    'varchar', 'NULL',     255, '', '',
+        'username',    'varchar', 'NULL', $char_d, '', '',
+        'password',    'varchar', 'NULL', $char_d, '', '',
+        'content',        'text', 'NULL',      '', '', '',
+      ],
+      'primary_key'  => 'num',
+      'unique'       => [ [ 'msgnum' ], ],
+      'index'        => [ ],
+      'foreign_keys' => [
+                          { columns    => [ 'msgnum' ],
+                            table      => 'msg_template',
+                          },
+                        ],
+    },
+
     'template_content' => {
       'columns' => [
         'contentnum', 'serial',     '',      '', '', '',
@@ -6346,6 +6374,19 @@ sub tables_hashref {
                         ],
     },
 
+    'template_image' => {
+      'columns' => [
+        'imgnum',     'serial',     '',      '', '', '',
+        'name',      'varchar',     '', $char_d, '', '',
+        'agentnum',      'int', 'NULL',      '', '', '',
+        'mime_type', 'varchar',     '', $char_d, '', '',
+        'base64',       'text',     '',      '', '', '',
+      ],
+      'primary_key'  => 'imgnum',
+      'unique'       => [ ],
+      'index'        => [ ['name'], ['agentnum'] ],
+    },
+
     'cust_msg' => {
       'columns' => [
         'custmsgnum', 'serial',     '',     '', '', '',
@@ -6359,6 +6400,7 @@ sub tables_hashref {
         'error',     'varchar', 'NULL',    255, '', '',
         'status',    'varchar',     '',$char_d, '', '',
         'msgtype',   'varchar', 'NULL',     16, '', '',
+        'preview',      'text', 'NULL',     '', '', '',
       ],
       'primary_key'  => 'custmsgnum',
       'unique'       => [ ],
@@ -6996,6 +7038,7 @@ sub tables_hashref {
         'zonenum',        'serial',  '',     '',      '', '',
         'description',    'char',    'NULL', $char_d, '', '',
         'agentnum',       'int',     '',     '',      '', '',
+        'censusyear',     'char',    'NULL', 4,      '', '',
         'dbaname',        'char',    'NULL', $char_d, '', '',
         'zonetype',       'char',    '',     1,       '', '',
         'technology',     'int',     '',     '',      '', '',
@@ -7027,7 +7070,7 @@ sub tables_hashref {
         'blocknum',       'serial',  '',     '',      '', '',
         'zonenum',        'int',     '',     '',      '', '',
         'censusblock',    'char',    '',     15,      '', '',
-        'censusyear',     'char',    '',      4,      '', '',
+        'censusyear',     'char','NULL',      4,      '', '',
       ],
       'primary_key' => 'blocknum',
       'unique' => [],
@@ -7082,6 +7125,37 @@ sub tables_hashref {
                         ],
     },
 
+    'report_batch' => {
+      'columns' => [
+        'reportbatchnum', 'serial',      '',  '', '', '',
+        'reportname',     'varchar',     '', 255, '', '',
+        'agentnum',           'int', 'NULL',  '', '', '',
+        'send_date',     @date_type,              '', '',
+        'sdate',         @date_type,              '', '',
+        'edate',         @date_type,              '', '',
+        'usernum',            'int', 'NULL',  '', '', '',
+        'msgnum',             'int', 'NULL',  '', '', '',
+        # add report params here as necessary
+      ],
+      'primary_key' => 'reportbatchnum',
+      'unique' => [],
+      'index'  => [],
+      'foreign_keys' => [
+                          { columns    => [ 'agentnum' ],
+                            table      => 'agent',
+                            references => [ 'agentnum' ],
+                          },
+                          { columns    => [ 'usernum' ],
+                            table      => 'access_user',
+                            references => [ 'usernum' ],
+                          },
+                          { columns    => [ 'msgnum' ],
+                            table      => 'msg_template',
+                            references => [ 'msgnum' ],
+                          },
+                        ],
+    },
+
     # name type nullability length default local
 
     #'new_table' => {
index 757701a..1a3217c 100644 (file)
@@ -684,7 +684,12 @@ sub print_generic {
   my( $pr_total, @pr_cust_bill ) = $self->previous; #previous balance
 #  my( $cr_total, @cr_cust_credit ) = $self->cust_credit; #credits
   #my $balance_due = $self->owed + $pr_total - $cr_total;
-  my $balance_due = $self->owed + $pr_total;
+  my $balance_due = $self->owed;
+  if ( $self->enable_previous ) {
+    $balance_due += $pr_total;
+  }
+  # otherwise the previous balance is not shown, so including it in the
+  # balance due is just confusing
 
   # the sum of amount owed on all invoices
   # (this is used in the summary & on the payment coupon)
@@ -1519,7 +1524,7 @@ sub print_generic {
   # usage subtotals
   if ( $conf->exists('usage_class_summary')
        and $self->can('_items_usage_class_summary') ) {
-    my @usage_subtotals = $self->_items_usage_class_summary(escape => $escape_function);
+    my @usage_subtotals = $self->_items_usage_class_summary(escape => $escape_function, 'money_char' => $other_money_char);
     if ( @usage_subtotals ) {
       unshift @sections, $usage_subtotals[0]->{section}; # do not summarize
       unshift @detail_items, @usage_subtotals;
@@ -3010,7 +3015,9 @@ sub _items_cust_bill_pkg {
   }
   my $summary_page = $opt{summary_page} || ''; #unused
   my $multisection = defined($category) || defined($locationnum);
-  my $discount_show_always = 0;
+  # this variable is the value of the config setting, not whether it applies
+  # to this particular line item.
+  my $discount_show_always = $conf->exists('discount-show-always');
 
   my $maxlength = $conf->config('cust_bill-latex_lineitem_maxlength') || 40;
 
@@ -3050,11 +3057,13 @@ sub _items_cust_bill_pkg {
         if (exists($_->{unit_amount})) {
           $_->{unit_amount} = sprintf( "%.2f", $_->{unit_amount} );
         }
-        push @b, { %$_ }
-          if $_->{amount} != 0
-          || $discount_show_always
-          || ( ! $_->{_is_setup} && $_->{recur_show_zero} )
-          || (   $_->{_is_setup} && $_->{setup_show_zero} )
+        push @b, { %$_ };
+        # we already decided to create this display line; don't reconsider it
+        # now.
+        #  if $_->{amount} != 0
+        #  || $discount_show_always
+        #  || ( ! $_->{_is_setup} && $_->{recur_show_zero} )
+        #  || (   $_->{_is_setup} && $_->{setup_show_zero} )
         ;
         $_ = undef;
       }
@@ -3181,6 +3190,7 @@ sub _items_cust_bill_pkg {
         if (    (!$type || $type eq 'S')
              && (    $cust_bill_pkg->setup != 0
                   || $cust_bill_pkg->setup_show_zero
+                  || ($discount_show_always and $cust_bill_pkg->unitsetup > 0)
                 )
            )
          {
@@ -3188,10 +3198,12 @@ sub _items_cust_bill_pkg {
           warn "$me _items_cust_bill_pkg adding setup\n"
             if $DEBUG > 1;
 
+          # append the word 'Setup' to the setup line if there's going to be
+          # a recur line for the same package (i.e. not a one-time charge) 
           my $description = $desc;
           $description .= ' Setup'
             if $cust_bill_pkg->recur != 0
-            || $discount_show_always
+            || ($discount_show_always and $cust_bill_pkg->unitrecur > 0)
             || $cust_bill_pkg->recur_show_zero;
 
           $description .= $cust_bill_pkg->time_period_pretty( $part_pkg,
@@ -3255,11 +3267,18 @@ sub _items_cust_bill_pkg {
 
         }
 
+        # should we show a recur line?
+        # if type eq 'S', then NO, because we've been told not to.
+        # otherwise, show the recur line if:
+        # - there's a recurring charge
+        # - or recur_show_zero is on
+        # - or there's a positive unitrecur (so it's been discounted to zero)
+        #   and discount-show-always is on
         if (    ( !$type || $type eq 'R' || $type eq 'U' )
              && (
                      $cust_bill_pkg->recur != 0
-                  || $cust_bill_pkg->setup == 0
-                  || $discount_show_always
+                  || !defined($s)
+                  || ($discount_show_always and $cust_bill_pkg->unitrecur > 0)
                   || $cust_bill_pkg->recur_show_zero
                 )
            )
@@ -3501,9 +3520,6 @@ sub _items_cust_bill_pkg {
 
     } # foreach $display
 
-    $discount_show_always = ($cust_bill_pkg->cust_bill_pkg_discount
-                                && $conf->exists('discount-show-always'));
-
   }
 
   foreach ( $s, $r, ($opt{skip_usage} ? () : $u ), $d ) {
@@ -3515,11 +3531,11 @@ sub _items_cust_bill_pkg {
         $_->{unit_amount} = sprintf( "%.2f", $_->{unit_amount} );
       }
 
-      push @b, { %$_ }
-        if $_->{amount} != 0
-        || $discount_show_always
-        || ( ! $_->{_is_setup} && $_->{recur_show_zero} )
-        || (   $_->{_is_setup} && $_->{setup_show_zero} )
+      push @b, { %$_ };
+      #if $_->{amount} != 0
+      #  || $discount_show_always
+      #  || ( ! $_->{_is_setup} && $_->{recur_show_zero} )
+      #  || (   $_->{_is_setup} && $_->{setup_show_zero} )
     }
   }
 
index 9f07732..b5414b9 100644 (file)
@@ -315,22 +315,22 @@ sub href_params_new_ticket {
   my $subtype = $object->table;
   my $pkey = $object->get($object->primary_key);
 
-  my %param = (
+  my @param = (
     'Queue'       => ($cust_main->agent->ticketing_queueid || $default_queueid),
     'new-MemberOf'=> "freeside://freeside/$subtype/$pkey",
     'Requestors'  => $requestors,
   );
 
-  ( $self->baseurl.'Ticket/Create.html', %param );
+  ( $self->baseurl.'Ticket/Create.html', @param );
 }
 
 sub href_new_ticket {
   my $self = shift;
 
-  my( $base, %param ) = $self->href_params_new_ticket(@_);
+  my( $base, @param ) = $self->href_params_new_ticket(@_);
 
   my $uri = new URI $base;
-  $uri->query_form(%param);
+  $uri->query_form(@param);
   $uri;
 
 }
index 6fb2c18..b70ac53 100644 (file)
@@ -111,7 +111,7 @@ properly.
 # create an RT::Tickets object for a specified custnum or svcnum
 
 sub _tickets_search {
-  my( $self, $type, $number, $limit, $priority, $status ) = @_;
+  my( $self, $type, $number, $limit, $priority, $status, $queueid ) = @_;
 
   $type =~ /^Customer|Service$/ or die "invalid type: $type";
   $number =~ /^\d+$/ or die "invalid custnum/svcnum: $number";
@@ -159,6 +159,8 @@ sub _tickets_search {
                       join(' OR ', map { "Status = '$_'" } @statuses).
                ' ) ';
 
+  $rtql .= " AND Queue = $queueid " if $queueid;
+
   warn "$me _customer_tickets_search:\n$rtql\n" if $DEBUG;
   $Tickets->FromSQL($rtql);
 
index 13b2e2d..0e54aa2 100644 (file)
@@ -623,6 +623,7 @@ sub random_id {
   if (!defined $NO_RANDOM_IDS) {
     my $conf = FS::Conf->new;
     $NO_RANDOM_IDS = $conf->exists('no_random_ids') ? 1 : 0;
+    warn "TEST MODE--RANDOM ID NUMBERS DISABLED\n" if $NO_RANDOM_IDS;
   }
   if ( $NO_RANDOM_IDS ) {
     if ( $digits > 0 ) {
index ffc04ba..263230b 100644 (file)
@@ -154,6 +154,12 @@ If you need to continue using the old Form 477 report, turn on the
     $conf->set('previous_balance-exclude_from_total', '');
   }
 
+  # switch from specifying an email address to boolean check
+  if ( $conf->exists('batch-errors_to') ) {
+    $conf->touch('batch-errors_not_fatal');
+    $conf->delete('batch-errors_to');
+  }
+
   enable_banned_pay_pad() unless length($conf->config('banned_pay-pad'));
 
 }
index a3f55bc..ecab32d 100644 (file)
@@ -587,6 +587,43 @@ sub access_right {
 
 }
 
+=item refund_rights PAYBY
+
+Accepts payment $payby (BILL,CASH,MCRD,MCHK,CARD,CHEK) and returns a
+list of the refund rights associated with that $payby.
+
+Returns empty list if $payby wasn't recognized.
+
+=cut
+
+sub refund_rights {
+  my $self = shift;
+  my $payby = shift;
+  my @rights = ();
+  push @rights, 'Post refund'                if $payby =~ /^(BILL|CASH|MCRD|MCHK)$/;
+  push @rights, 'Post check refund'          if $payby eq 'BILL';
+  push @rights, 'Post cash refund '          if $payby eq 'CASH';
+  push @rights, 'Refund payment'             if $payby =~ /^(CARD|CHEK)$/;
+  push @rights, 'Refund credit card payment' if $payby eq 'CARD';
+  push @rights, 'Refund Echeck payment'      if $payby eq 'CHEK';
+  return @rights;
+}
+
+=item refund_access_right PAYBY
+
+Returns true if user has L</access_right> for any L</refund_rights>
+for the specified payby.
+
+=cut
+
+sub refund_access_right {
+  my $self = shift;
+  my $payby = shift;
+  my @rights = $self->refund_rights($payby);
+  return '' unless @rights;
+  return $self->access_right(\@rights);
+}
+
 =item default_customer_view
 
 Returns the default customer view for this user, from the 
index 1a36660..775c791 100644 (file)
@@ -1463,7 +1463,7 @@ as keys (for use with part_pkg::voip_cdr) and "pretty" format names as values.
 sub invoice_formats {
   map { ($_ => $export_names{$_}->{'name'}) }
     grep { $export_names{$_}->{'invoice_header'} }
-    keys %export_names;
+    sort keys %export_names;
 }
 
 =item invoice_header FORMAT
index 600a192..934608c 100644 (file)
@@ -77,7 +77,7 @@ my %UNIT_SCALE = ( #Table 2.1.4
     'calltypenum',          # usage ID (CUSG)
     sub {                   # ID type
       my ($cdr, $data, $conf, $param) = @_;
-      if ($data != 1) {
+      if ($data !~ /^(1|50)$/) {
         warn "AAPT: service ID type is not telephone number.\n";
         $param->{skiprow} = 1;
       }
index 36be8d8..43e6afd 100644 (file)
@@ -4,6 +4,8 @@ use strict;
 use base qw( FS::cdr );
 use vars qw( %info );
 use DateTime;
+use FS::Record qw( qsearchs );
+use FS::cdr_type;
 
 my ($tmp_mday, $tmp_mon, $tmp_year);
 
@@ -22,10 +24,21 @@ my ($tmp_mday, $tmp_mon, $tmp_year);
       my ($cdr, $field, $conf, $hashref) = @_;
       $hashref->{skiprow} = 1 unless $field eq 'DCR';
     },
-    '',           # 2. BWGroupID (centrex group)
-    '',           # 3. BWGroupNumber
+    'accountcode',# 2. BWGroupID (centrex group)
+    sub {         # 3. BWGroupNumber
+      my ($cdr, $field) = @_; #, $conf, $hashref) = @_;
+      $cdr->charged_party($field)
+        if $cdr->accountcode eq '' && $field =~ /^(1800|1300)/;
+    },
     'uniqueid',   # 4. Record ID
-    'dcontext',   # 5. Call Category (LOCAL, NATIONAL, FREECALL, MOBILE)
+    sub {         # 5. Call Category (LOCAL, NATIONAL, FREECALL, MOBILE)
+      my ($cdr, $data) = @_;
+      $data ||= 'none';
+
+      my $cdr_type = qsearchs('cdr_type', { 'cdrtypename' => $data } );
+      $cdr->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type;
+      $cdr->set('dcontext', $data);  
+    },
     sub {         # 6. Start Date (DDMMYYYY
       my ($cdr, $date) = @_;
       $date =~ /^(\d{2})(\d{2})(\d{4})$/
index 5042f6f..c6c4e15 100644 (file)
@@ -3,11 +3,13 @@ package FS::cdr::earthlink;
 use strict;
 use vars qw( @ISA %info $date);
 use Time::Local;
-use FS::cdr qw(_cdr_date_parser_maker _cdr_min_parser_maker);
+use FS::cdr qw(_cdr_min_parser_maker);
 use Date::Parse;
 
 @ISA = qw(FS::cdr);
 
+my ($tmp_mday, $tmp_mon, $tmp_year);
+
 %info = (
   'name'          => 'Earthlink',
   'weight'        => 120,
@@ -15,14 +17,30 @@ use Date::Parse;
   'import_fields' => [
 
         skip(3),                       #Account number/ SERVICE LOC / BILL NUMBER 
-       sub { my($cdr, $date) = @_;  
-       $date;  
-       },                              #date 
+        sub { my($cdr, $date) = @_;
+        $date =~ /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/
+        or die "unparseable date: $date";
+        ($tmp_mon, $tmp_mday, $tmp_year) = ($1, $2, $3);
+        },                             #date       
        sub { my($cdr, $time) = @_;
+                 $time =~ /^(\d{1,2}):(\d{1,2}):(\d{1,2}) (AM|PM)$/
+                 or die "unparsable time: $time"; #maybe we shouldn't die...
+         my $hour = $1;
+          $hour += 12 if $4 eq 'PM' && $hour != 12;
+          $hour = 0 if $4 eq 'AM' && $hour == 12;
+
+            my $dt = DateTime->new(
+               year    => $tmp_year,
+               month   => $tmp_mon,
+               day     => $tmp_mday,
+               hour    => $hour,
+               minute  => $2,
+               second  => $3,
+               time_zone => 'local',
+      );
+             $cdr->set('startdate', $dt->epoch);
 
-       my $datetime = $date. " ". $time;
-       $cdr->set('startdate', $datetime );
-        },                             #time
+        },
         skip(1),                        #TollFreeNumber
        sub { my($cdr, $src) = @_;      
        $src =~ s/\D//g;
index 38b7fd7..6120480 100644 (file)
@@ -837,6 +837,7 @@ sub send_reset_email {
   #die "selfservice-password_reset_msgnum unset" unless $msgnum;
   return { 'error' => "selfservice-password_reset_msgnum unset" } unless $msgnum;
   my $msg_template = qsearchs('msg_template', { msgnum => $msgnum } );
+  return { 'error' => "selfservice-password_reset_msgnum cannot be loaded" } unless $msg_template;
   my %msg_template = (
     'to'            => join(',', map $_->emailaddress, @contact_email ),
     'cust_main'     => $cust_main,
@@ -846,11 +847,14 @@ sub send_reset_email {
 
   if ( $opt{'queue'} ) { #or should queueing just be the default?
 
+    my $cust_msg = $msg_template->prepare( %msg_template );
+    my $error = $cust_msg->insert;
+    return { 'error' => $error } if $error;
     my $queue = new FS::queue {
-      'job'     => 'FS::Misc::process_send_email',
+      'job'     => 'FS::cust_msg::process_send',
       'custnum' => $cust_main ? $cust_main->custnum : '',
     };
-    $queue->insert( $msg_template->prepare( %msg_template ) );
+    $queue->insert( $cust_msg->custmsgnum );
 
   } else {
 
index 7ea586a..6546bfa 100644 (file)
@@ -297,13 +297,13 @@ sub _delete {
 
   foreach my $table (qw(
     cust_credit_bill
-    cust_bill_pay
-    cust_pay_batch
     cust_bill_pay_batch
+    cust_bill_pay
     cust_bill_batch
     cust_bill_pkg
   )) {
     #cust_event # problematic
+    #cust_pay_batch # unnecessary
 
     foreach my $linked ( $self->$table() ) {
       my $error = $linked->delete;
@@ -2661,10 +2661,12 @@ sub _items_usage_class_summary {
   my %opt = @_;
 
   my $escape = $opt{escape} || sub { $_[0] };
+  my $money_char = $opt{money_char};
   my $invnum = $self->invnum;
   my @classes = qsearch({
       'table'     => 'usage_class',
-      'select'    => 'classnum, classname, SUM(amount) AS amount',
+      'select'    => 'classnum, classname, SUM(amount) AS amount,'.
+                     ' COUNT(*) AS calls, SUM(duration) AS duration',
       'addl_from' => ' LEFT JOIN cust_bill_pkg_detail USING (classnum)' .
                      ' LEFT JOIN cust_bill_pkg USING (billpkgnum)',
       'extra_sql' => " WHERE cust_bill_pkg.invnum = $invnum".
@@ -2675,17 +2677,21 @@ sub _items_usage_class_summary {
   my @l;
   my $section = {
     description   => &{$escape}($self->mt('Usage Summary')),
-    no_subtotal   => 1,
     usage_section => 1,
+    subtotal      => 0,
   };
   foreach my $class (@classes) {
+    $section->{subtotal} += $class->get('amount');
     push @l, {
       'description'     => &{$escape}($class->classname),
-      'amount'          => sprintf('%.2f', $class->amount),
+      'amount'          => $money_char.sprintf('%.2f', $class->get('amount')),
+      'quantity'        => $class->get('calls'),
+      'duration'        => $class->get('duration'),
       'usage_classnum'  => $class->classnum,
       'section'         => $section,
     };
   }
+  $section->{subtotal} = $money_char.sprintf('%.2f', $section->{subtotal});
   return @l;
 }
 
@@ -2830,8 +2836,7 @@ sub _items_total {
   my ($previous_charges_desc, $new_charges_desc, $new_charges_amount);
 
   if ( $conf->exists('previous_balance-exclude_from_total') ) {
-    # can we do some caching on this stuff? it's going to change infrequently
-    # in production
+    # if enabled, specifically add a line for the previous balance total
     $previous_charges_desc = $self->mt(
       $conf->config('previous_balance-text') || 'Previous Balance'
     );
@@ -2843,6 +2848,12 @@ sub _items_total {
           total_amount  => sprintf('%.2f',$pr_total)
         };
     }
+  }
+
+  if (   $conf->exists('previous_balance-exclude_from_total')
+      or !$self->enable_previous ) {
+    # show new charges only
+
     $new_charges_desc = $self->mt(
       $conf->config('previous_balance-text-total_new_charges')
        || 'Total New Charges'
@@ -2851,9 +2862,14 @@ sub _items_total {
     $new_charges_amount = $self->charged;
 
   } else {
+    # show new charges + previous invoice total
 
     $new_charges_desc = $self->mt('Total Charges');
-    $new_charges_amount = sprintf('%.2f',$self->charged + $pr_total);
+    if ( $self->enable_previous ) {
+      $new_charges_amount = sprintf('%.2f', $self->charged + $pr_total);
+    } else {
+      $new_charges_amount = sprintf('%.2f', $self->charged);
+    }
 
   }
 
@@ -2913,6 +2929,18 @@ sub call_details {
   ( $header, grep { $_ ne $header } @details );
 }
 
+=item cust_pay_batch
+
+Returns all L<FS::cust_pay_batch> records linked to this invoice. Deprecated,
+will be removed.
+
+=cut
+
+sub cust_pay_batch {
+  carp "FS::cust_bill->cust_pay_batch is deprecated";
+  my $self = shift;
+  qsearch('cust_pay_batch', { 'invnum' => $self->invnum });
+}
 
 =back
 
index 8233ce0..1780426 100644 (file)
@@ -1124,7 +1124,10 @@ sub tax_locationnum {
   if ( $self->pkgnum ) { # normal sales
     return $self->cust_pkg->tax_locationnum;
   } elsif ( $self->feepart ) { # fees
-    return $self->cust_bill->cust_main->ship_locationnum;
+    my $custnum = $self->fee_origin->custnum;
+    if ( $custnum ) {
+      return FS::cust_main->by_key($custnum)->ship_locationnum;
+    }
   } else { # taxes
     return '';
   }
@@ -1135,7 +1138,10 @@ sub tax_location {
   if ( $self->pkgnum ) { # normal sales
     return $self->cust_pkg->tax_location;
   } elsif ( $self->feepart ) { # fees
-    return $self->cust_bill->cust_main->ship_location;
+    my $custnum = $self->fee_origin->custnum;
+    if ( $custnum ) {
+      return FS::cust_main->by_key($custnum)->ship_location;
+    }
   } else { # taxes
     return;
   }
index 544a0e8..31adebe 100644 (file)
@@ -9,7 +9,6 @@ use vars qw( $conf $unsuspendauto $me $DEBUG
 use List::Util qw( min );
 use Date::Format;
 use FS::UID qw( dbh );
-use FS::Misc qw(send_email);
 use FS::Record qw( qsearch qsearchs dbdef );
 use FS::CurrentUser;
 use FS::cust_pkg;
@@ -277,35 +276,6 @@ sub delete {
     return $error;
   }
 
-  if ( !$opt{void} and $conf->config('deletecredits') ne '' ) {
-
-    my $cust_main = $self->cust_main;
-
-    my $error = send_email(
-      'from'    => $conf->invoice_from_full($self->cust_main->agentnum),
-                                 #invoice_from??? well as good as any
-      'to'      => $conf->config('deletecredits'),
-      'subject' => 'FREESIDE NOTIFICATION: Credit deleted',
-      'body'    => [
-        "This is an automatic message from your Freeside installation\n",
-        "informing you that the following credit has been deleted:\n",
-        "\n",
-        'crednum: '. $self->crednum. "\n",
-        'custnum: '. $self->custnum.
-          " (". $cust_main->last. ", ". $cust_main->first. ")\n",
-        'amount: $'. sprintf("%.2f", $self->amount). "\n",
-        'date: '. time2str("%a %b %e %T %Y", $self->_date). "\n",
-        'reason: '. $self->reason. "\n",
-      ],
-    );
-
-    if ( $error ) {
-      $dbh->rollback if $oldAutoCommit;
-      return "can't send credit deletion notification: $error";
-    }
-
-  }
-
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 
   '';
@@ -415,7 +385,7 @@ sub void {
     return $error;
   }
 
-  $error = $self->delete(void => 1); # suppress deletecredits warning
+  $error = $self->delete();
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
index f299f93..1d8af1e 100644 (file)
@@ -9,6 +9,7 @@ use FS::Record qw( qsearch qsearchs dbdef );
 use FS::cust_main;
 use FS::cust_pkg;
 use FS::cust_bill;
+use FS::cust_pay;
 use FS::svc_acct;
 
 $DEBUG = 0;
@@ -302,14 +303,16 @@ sub join_sql {
        JOIN part_event USING ( eventpart )
   LEFT JOIN cust_bill ON ( eventtable = 'cust_bill' AND tablenum = invnum  )
   LEFT JOIN cust_pkg  ON ( eventtable = 'cust_pkg'  AND tablenum = pkgnum  )
-
+  LEFT JOIN cust_pay  ON ( eventtable = 'cust_pay'  AND tablenum = paynum  )
   LEFT JOIN cust_svc  ON ( eventtable = 'svc_acct'  AND tablenum = svcnum  )
   LEFT JOIN cust_pkg AS cust_pkg_for_svc ON ( cust_svc.pkgnum = cust_pkg_for_svc.pkgnum )
-  LEFT JOIN cust_main ON (    ( eventtable = 'cust_main' AND tablenum = cust_main.custnum )
-                           OR ( eventtable = 'cust_bill' AND cust_bill.custnum = cust_main.custnum )
-                           OR ( eventtable = 'cust_pkg'  AND cust_pkg.custnum  = cust_main.custnum )
-                           OR ( eventtable = 'svc_acct'  AND cust_pkg_for_svc.custnum  = cust_main.custnum )
-                         )
+  LEFT JOIN cust_main ON (
+       ( eventtable = 'cust_main' AND tablenum = cust_main.custnum )
+    OR ( eventtable = 'cust_bill' AND cust_bill.custnum = cust_main.custnum )
+    OR ( eventtable = 'cust_pkg'  AND cust_pkg.custnum  = cust_main.custnum )
+    OR ( eventtable = 'cust_pay'  AND cust_pay.custnum  = cust_main.custnum )
+    OR ( eventtable = 'svc_acct'  AND cust_pkg_for_svc.custnum  = cust_main.custnum )
+  )
   ";
 
 }
@@ -389,6 +392,11 @@ sub search_sql_where {
                   "tablenum = '$1'";
   }
 
+  if ( $param->{'paynum'} =~ /^(\d+)$/ ) {
+    push @search, "part_event.eventtable = 'cust_pay'",
+                  "tablenum = '$1'";
+  }
+
   if ( $param->{'svcnum'} =~ /^(\d+)$/ ) {
     push @search, "part_event.eventtable = 'svc_acct'",
                   "tablenum = '$1'";
index c636408..2d6d459 100644 (file)
@@ -32,7 +32,7 @@ use Locale::Country;
 use FS::UID qw( dbh driver_name );
 use FS::Record qw( qsearchs qsearch dbdef regexp_sql );
 use FS::Cursor;
-use FS::Misc qw( generate_email send_email generate_ps do_print money_pretty );
+use FS::Misc qw( generate_ps do_print money_pretty );
 use FS::Msgcat qw(gettext);
 use FS::CurrentUser;
 use FS::TicketSystem;
@@ -4053,6 +4053,30 @@ sub tickets {
   (@tickets);
 }
 
+=item appointments [ STATUS ]
+
+Returns an array of hashes representing the customer's RT tickets which
+are appointments.
+
+=cut
+
+sub appointments {
+  my $self = shift;
+  my $status = ( @_ && $_[0] ) ? shift : '';
+
+  return () unless $conf->config('ticket_system');
+
+  my $queueid = $conf->config('ticket_system-appointment-queueid');
+
+  @{ FS::TicketSystem->customer_tickets( $self->custnum,
+                                         99,
+                                         undef,
+                                         $status,
+                                         $queueid,
+                                       )
+  };
+}
+
 # Return services representing svc_accts in customer support packages
 sub support_services {
   my $self = shift;
@@ -4574,102 +4598,102 @@ sub search {
 
 =over 4
 
-=item notify CUSTOMER_OBJECT TEMPLATE_NAME OPTIONS
+#=item notify CUSTOMER_OBJECT TEMPLATE_NAME OPTIONS
 
-Deprecated.  Use event notification and message templates 
-(L<FS::msg_template>) instead.
+#Deprecated.  Use event notification and message templates 
+#(L<FS::msg_template>) instead.
 
-Sends a templated email notification to the customer (see L<Text::Template>).
+#Sends a templated email notification to the customer (see L<Text::Template>).
 
-OPTIONS is a hash and may include
-
-I<from> - the email sender (default is invoice_from)
+#OPTIONS is a hash and may include
 
-I<to> - comma-separated scalar or arrayref of recipients 
-   (default is invoicing_list)
+#I<from> - the email sender (default is invoice_from)
 
-I<subject> - The subject line of the sent email notification
-   (default is "Notice from company_name")
+#I<to> - comma-separated scalar or arrayref of recipients 
+#   (default is invoicing_list)
 
-I<extra_fields> - a hashref of name/value pairs which will be substituted
-   into the template
+#I<subject> - The subject line of the sent email notification
+#   (default is "Notice from company_name")
 
-The following variables are vavailable in the template.
+#I<extra_fields> - a hashref of name/value pairs which will be substituted
+#   into the template
 
-I<$first> - the customer first name
-I<$last> - the customer last name
-I<$company> - the customer company
-I<$payby> - a description of the method of payment for the customer
-            # would be nice to use FS::payby::shortname
-I<$payinfo> - the account information used to collect for this customer
-I<$expdate> - the expiration of the customer payment in seconds from epoch
+#The following variables are vavailable in the template.
 
-=cut
+#I<$first> - the customer first name
+#I<$last> - the customer last name
+#I<$company> - the customer company
+#I<$payby> - a description of the method of payment for the customer
+#            # would be nice to use FS::payby::shortname
+#I<$payinfo> - the account information used to collect for this customer
+#I<$expdate> - the expiration of the customer payment in seconds from epoch
 
-sub notify {
-  my ($self, $template, %options) = @_;
-
-  return unless $conf->exists($template);
-
-  my $from = $conf->invoice_from_full($self->agentnum)
-    if $conf->exists('invoice_from', $self->agentnum);
-  $from = $options{from} if exists($options{from});
-
-  my $to = join(',', $self->invoicing_list_emailonly);
-  $to = $options{to} if exists($options{to});
-  
-  my $subject = "Notice from " . $conf->config('company_name', $self->agentnum)
-    if $conf->exists('company_name', $self->agentnum);
-  $subject = $options{subject} if exists($options{subject});
-
-  my $notify_template = new Text::Template (TYPE => 'ARRAY',
-                                            SOURCE => [ map "$_\n",
-                                              $conf->config($template)]
-                                           )
-    or die "can't create new Text::Template object: Text::Template::ERROR";
-  $notify_template->compile()
-    or die "can't compile template: Text::Template::ERROR";
-
-  $FS::notify_template::_template::company_name =
-    $conf->config('company_name', $self->agentnum);
-  $FS::notify_template::_template::company_address =
-    join("\n", $conf->config('company_address', $self->agentnum) ). "\n";
-
-  my $paydate = $self->paydate || '2037-12-31';
-  $FS::notify_template::_template::first = $self->first;
-  $FS::notify_template::_template::last = $self->last;
-  $FS::notify_template::_template::company = $self->company;
-  $FS::notify_template::_template::payinfo = $self->mask_payinfo;
-  my $payby = $self->payby;
-  my ($payyear,$paymonth,$payday) = split (/-/,$paydate);
-  my $expire_time = timelocal(0,0,0,$payday,--$paymonth,$payyear);
-
-  #credit cards expire at the end of the month/year of their exp date
-  if ($payby eq 'CARD' || $payby eq 'DCRD') {
-    $FS::notify_template::_template::payby = 'credit card';
-    ($paymonth < 11) ? $paymonth++ : ($paymonth=0, $payyear++);
-    $expire_time = timelocal(0,0,0,$payday,$paymonth,$payyear);
-    $expire_time--;
-  }elsif ($payby eq 'COMP') {
-    $FS::notify_template::_template::payby = 'complimentary account';
-  }else{
-    $FS::notify_template::_template::payby = 'current method';
-  }
-  $FS::notify_template::_template::expdate = $expire_time;
-
-  for (keys %{$options{extra_fields}}){
-    no strict "refs";
-    ${"FS::notify_template::_template::$_"} = $options{extra_fields}->{$_};
-  }
+#=cut
 
-  send_email(from => $from,
-             to => $to,
-             subject => $subject,
-             body => $notify_template->fill_in( PACKAGE =>
-                                                'FS::notify_template::_template'                                              ),
-            );
+#sub notify {
+#  my ($self, $template, %options) = @_;
+
+#  return unless $conf->exists($template);
+
+#  my $from = $conf->invoice_from_full($self->agentnum)
+#    if $conf->exists('invoice_from', $self->agentnum);
+#  $from = $options{from} if exists($options{from});
+
+#  my $to = join(',', $self->invoicing_list_emailonly);
+#  $to = $options{to} if exists($options{to});
+#  
+#  my $subject = "Notice from " . $conf->config('company_name', $self->agentnum)
+#    if $conf->exists('company_name', $self->agentnum);
+#  $subject = $options{subject} if exists($options{subject});
+
+#  my $notify_template = new Text::Template (TYPE => 'ARRAY',
+#                                            SOURCE => [ map "$_\n",
+#                                              $conf->config($template)]
+#                                           )
+#    or die "can't create new Text::Template object: Text::Template::ERROR";
+#  $notify_template->compile()
+#    or die "can't compile template: Text::Template::ERROR";
+
+#  $FS::notify_template::_template::company_name =
+#    $conf->config('company_name', $self->agentnum);
+#  $FS::notify_template::_template::company_address =
+#    join("\n", $conf->config('company_address', $self->agentnum) ). "\n";
+
+#  my $paydate = $self->paydate || '2037-12-31';
+#  $FS::notify_template::_template::first = $self->first;
+#  $FS::notify_template::_template::last = $self->last;
+#  $FS::notify_template::_template::company = $self->company;
+#  $FS::notify_template::_template::payinfo = $self->mask_payinfo;
+#  my $payby = $self->payby;
+#  my ($payyear,$paymonth,$payday) = split (/-/,$paydate);
+#  my $expire_time = timelocal(0,0,0,$payday,--$paymonth,$payyear);
+
+#  #credit cards expire at the end of the month/year of their exp date
+#  if ($payby eq 'CARD' || $payby eq 'DCRD') {
+#    $FS::notify_template::_template::payby = 'credit card';
+#    ($paymonth < 11) ? $paymonth++ : ($paymonth=0, $payyear++);
+#    $expire_time = timelocal(0,0,0,$payday,$paymonth,$payyear);
+#    $expire_time--;
+#  }elsif ($payby eq 'COMP') {
+#    $FS::notify_template::_template::payby = 'complimentary account';
+#  }else{
+#    $FS::notify_template::_template::payby = 'current method';
+#  }
+#  $FS::notify_template::_template::expdate = $expire_time;
+
+#  for (keys %{$options{extra_fields}}){
+#    no strict "refs";
+#    ${"FS::notify_template::_template::$_"} = $options{extra_fields}->{$_};
+#  }
+
+#  send_email(from => $from,
+#             to => $to,
+#             subject => $subject,
+#             body => $notify_template->fill_in( PACKAGE =>
+#                                                'FS::notify_template::_template'                                              ),
+#            );
 
-}
+#}
 
 =item generate_letter CUSTOMER_OBJECT TEMPLATE_NAME OPTIONS
 
index 0bc0fbd..eee0958 100644 (file)
@@ -880,56 +880,66 @@ sub bill {
 }
 
 #discard bundled packages of 0 value
+# XXX we should reconsider whether we even need this
 sub _omit_zero_value_bundles {
   my @in = @_;
 
-  my @cust_bill_pkg = ();
-  my @cust_bill_pkg_bundle = ();
-  my $sum = 0;
-  my $discount_show_always = 0;
-
+  my @out = ();
+  my @bundle = ();
+  my $discount_show_always = $conf->exists('discount-show-always');
+  my $show_this = 0;
+
+  # Sort @in the same way we do during invoice rendering, so we can identify
+  # bundles.  See FS::Template_Mixin::_items_nontax.
+  @in = sort { $a->pkgnum <=> $b->pkgnum        or
+               $a->sdate  <=> $b->sdate         or
+               ($a->pkgpart_override ? 0 : -1)  or
+               ($b->pkgpart_override ? 0 : 1)   or
+               $b->hidden cmp $a->hidden        or
+               $a->pkgpart_override <=> $b->pkgpart_override
+             } @in;
+
+  # this is a pack-and-deliver pattern. every time there's a cust_bill_pkg
+  # _without_ pkgpart_override, that's the start of the new bundle. if there's
+  # an existing bundle, and it contains a nonzero amount (or a zero amount 
+  # that's displayable anyway), push all line items in the bundle.
   foreach my $cust_bill_pkg ( @in ) {
 
-    $discount_show_always = ($cust_bill_pkg->get('discounts')
-                               && scalar(@{$cust_bill_pkg->get('discounts')})
-                               && $conf->exists('discount-show-always'));
-
-    warn "  pkgnum ". $cust_bill_pkg->pkgnum. " sum $sum, ".
-         "setup_show_zero ". $cust_bill_pkg->setup_show_zero.
-         "recur_show_zero ". $cust_bill_pkg->recur_show_zero. "\n"
-      if $DEBUG > 0;
-
-    if (scalar(@cust_bill_pkg_bundle) && !$cust_bill_pkg->pkgpart_override) {
-      push @cust_bill_pkg, @cust_bill_pkg_bundle 
-        if $sum > 0
-        || ($sum == 0 && (    $discount_show_always
-                           || grep {$_->recur_show_zero || $_->setup_show_zero}
-                                   @cust_bill_pkg_bundle
-                         )
-           );
-      @cust_bill_pkg_bundle = ();
-      $sum = 0;
+    if (scalar(@bundle) and !$cust_bill_pkg->pkgpart_override) {
+      # ship out this bundle and reset it
+      if ( $show_this ) {
+        push @out, @bundle;
+      }
+      @bundle = ();
+      $show_this = 0;
     }
 
-    $sum += $cust_bill_pkg->setup + $cust_bill_pkg->recur;
-    push @cust_bill_pkg_bundle, $cust_bill_pkg;
+    # add this item to the current bundle
+    push @bundle, $cust_bill_pkg;
 
+    # determine if it makes the bundle displayable
+    if (   $cust_bill_pkg->setup > 0
+        or $cust_bill_pkg->recur > 0
+        or $cust_bill_pkg->setup_show_zero
+        or $cust_bill_pkg->recur_show_zero
+        or ($discount_show_always 
+          and scalar(@{ $cust_bill_pkg->get('discounts')}) 
+          )
+    ) {
+      $show_this++;
+    }
   }
 
-  push @cust_bill_pkg, @cust_bill_pkg_bundle
-    if $sum > 0
-    || ($sum == 0 && (    $discount_show_always
-                       || grep {$_->recur_show_zero || $_->setup_show_zero}
-                               @cust_bill_pkg_bundle
-                     )
-       );
+  # last bundle
+  if ( $show_this) {
+    push @out, @bundle;
+  }
 
   warn "  _omit_zero_value_bundles: ". scalar(@in).
-       '->'. scalar(@cust_bill_pkg). "\n" #. Dumper(@cust_bill_pkg). "\n"
+       '->'. scalar(@out). "\n" #. Dumper(@out). "\n"
     if $DEBUG > 2;
 
-  (@cust_bill_pkg);
-
+  @out;
 }
 
 sub _make_lines {
@@ -1014,8 +1024,14 @@ sub _make_lines {
         return "$@ running calc_setup for $cust_pkg\n"
           if $@;
 
-        $unitsetup = $cust_pkg->base_setup()
-                       || $setup; #XXX uuh
+        # Only increment unitsetup here if there IS a setup fee.
+        # prorate_defer_bill may cause calc_setup on a setup-stage package
+        # to return zero, and the setup fee to be charged later. (This happens
+        # when it's first billed on the prorate cutoff day. RT#31276.)
+        if ( $setup ) {
+          $unitsetup = $cust_pkg->base_setup()
+                         || $setup; #XXX uuh
+        }
 
         if ( $setup_param{'billed_currency'} ) {
           $setup_billed_currency = delete $setup_param{'billed_currency'};
@@ -1186,7 +1202,7 @@ sub _make_lines {
       # Add an additional setup fee at the billing stage.
       # Used for prorate_defer_bill.
       $setup += $param{'setup_fee'};
-      $unitsetup += $param{'setup_fee'};
+      $unitsetup = $cust_pkg->base_setup();
       $lineitems++;
     }
 
index d973896..c2ce680 100644 (file)
@@ -8,7 +8,6 @@ use Data::Dumper;
 use Business::CreditCard 0.28;
 use FS::UID qw( dbh );
 use FS::Record qw( qsearch qsearchs );
-use FS::Misc qw( send_email );
 use FS::payby;
 use FS::cust_pay;
 use FS::cust_pay_pending;
@@ -623,6 +622,7 @@ sub realtime_bop {
     '_date'             => '',
     'payby'             => $bop_method2payby{$options{method}},
     'payinfo'           => $options{payinfo},
+    'paymask'           => $options{paymask},
     'paydate'           => $paydate,
     'recurring_billing' => $content{recurring_billing},
     'pkgnum'            => $options{'pkgnum'},
@@ -766,8 +766,6 @@ sub realtime_bop {
 
   if ( $transaction->can('card_token') && $transaction->card_token ) {
 
-    $self->card_token($transaction->card_token);
-
     if ( $options{'payinfo'} eq $self->payinfo ) {
       $self->payinfo($transaction->card_token);
       my $error = $self->replace;
@@ -890,6 +888,7 @@ sub _realtime_bop_result {
        '_date'    => '',
        'payby'    => $cust_pay_pending->payby,
        'payinfo'  => $options{'payinfo'},
+       'paymask'  => $options{'paymask'},
        'paydate'  => $cust_pay_pending->paydate,
        'pkgnum'   => $cust_pay_pending->pkgnum,
        'discount_term'  => $options{'discount_term'},
@@ -1121,31 +1120,7 @@ sub _realtime_bop_result {
         $error = $msg_template->send( 'cust_main' => $self,
                                       'object'    => $cust_pay_pending );
       }
-      else { #!$msgnum
-
-        my @templ = $conf->config('declinetemplate');
-        my $template = new Text::Template (
-          TYPE   => 'ARRAY',
-          SOURCE => [ map "$_\n", @templ ],
-        ) or return "($perror) can't create template: $Text::Template::ERROR";
-        $template->compile()
-          or return "($perror) can't compile template: $Text::Template::ERROR";
-
-        my $templ_hash = {
-          'company_name'    =>
-            scalar( $conf->config('company_name', $self->agentnum ) ),
-          'company_address' =>
-            join("\n", $conf->config('company_address', $self->agentnum ) ),
-          'error'           => $transaction->error_message,
-        };
-
-        my $error = send_email(
-          'from'    => $conf->invoice_from_full( $self->agentnum ),
-          'to'      => [ grep { $_ ne 'POST' } $self->invoicing_list ],
-          'subject' => 'Your payment could not be processed',
-          'body'    => [ $template->fill_in(HASH => $templ_hash) ],
-        );
-      }
+
 
       $perror .= " (also received error sending decline notification: $error)"
         if $error;
@@ -1649,6 +1624,7 @@ sub realtime_refund_bop {
 
   $order_number = $refund->order_number if $refund->can('order_number');
 
+  # change this to just use $cust_pay->delete_cust_bill_pay?
   while ( $cust_pay && $cust_pay->unapplied < $amount ) {
     my @cust_bill_pay = $cust_pay->cust_bill_pay;
     last unless @cust_bill_pay;
index bdad511..867d43e 100644 (file)
@@ -426,6 +426,18 @@ sub email_search_result {
   if ( $msgnum ) {
     $msg_template = qsearchs('msg_template', { msgnum => $msgnum } )
       or die "msgnum $msgnum not found\n";
+  } else {
+    $msg_template = FS::msg_template->new({
+        from_addr => $from,
+        msgname   => $subject, # maybe a timestamp also?
+        disabled  => 'D', # 'D'raft
+        # msgclass, maybe
+    });
+    $error = $msg_template->insert(
+      subject => $subject,
+      body    => $html_body,
+    );
+    return "$error (when creating draft template)" if $error;
   }
 
   my $sql_query = $class->search($param->{'search'});
@@ -445,6 +457,10 @@ sub email_search_result {
   my $success = 0;
   my %sent_to = ();
 
+  if ( !$msg_template ) {
+    die "email_search_result now requires a msg_template";
+  }
+
   #eventually order+limit magic to reduce memory use?
   foreach my $obj ( qsearch($sql_query) ) {
 
@@ -459,36 +475,19 @@ sub email_search_result {
     }
 
     my $cust_main = $obj->cust_main;
-    tie my %message, 'Tie::IxHash';
     if ( !$cust_main ) { 
       next; # unlinked object; nothing else we can do
     }
 
-    if ( $msg_template ) {
-      # Now supports other context objects.
-      %message = $msg_template->prepare(
-        'cust_main' => $cust_main,
-        'object'    => $obj,
-      );
-    }
-    else {
-      my @to = $cust_main->invoicing_list_emailonly;
-      next if !@to;
-
-      %message = (
-        'from'      => $from,
-        'to'        => \@to,
-        'subject'   => $subject,
-        'html_body' => $html_body,
-        'text_body' => $text_body,
-        'custnum'   => $cust_main->custnum,
-      );
-    } #if $msg_template
+    my $cust_msg = $msg_template->prepare(
+      'cust_main' => $cust_main,
+      'object'    => $obj,
+    );
 
     # For non-cust_main searches, we avoid duplicates based on message
-    # body text.  
+    # body text.
     my $unique = $cust_main->custnum;
-    $unique .= sha1($message{'text_body'}) if $class ne 'FS::cust_main';
+    $unique .= sha1($cust_msg->text_body) if $class ne 'FS::cust_main';
     if( $sent_to{$unique} ) {
       # avoid duplicates
       $dups++;
@@ -497,18 +496,20 @@ sub email_search_result {
 
     $sent_to{$unique} = 1;
     
-    $error = send_email( generate_email( %message ) );
+    $error = $cust_msg->send;
 
     if($error) {
       # queue the sending of this message so that the user can see what we
       # tried to do, and retry if desired
+      # (note the cust_msg itself also now has a status of 'failed'; that's 
+      # fine, as it will get its status reset if we retry the job)
       my $queue = new FS::queue {
-        'job'        => 'FS::Misc::process_send_email',
+        'job'        => 'FS::cust_msg::process_send',
         'custnum'    => $cust_main->custnum,
         'status'     => 'failed',
         'statustext' => $error,
       };
-      $queue->insert(%message);
+      $queue->insert($cust_msg->custmsgnum);
       push @retry_jobs, $queue;
     }
     else {
@@ -527,6 +528,14 @@ sub email_search_result {
     }
   } # foreach $obj
 
+  # if the message template was created as "draft", change its status to
+  # "completed"
+  if ($msg_template->disabled eq 'D') {
+    $msg_template->set('disabled' => 'C');
+    my $error = $msg_template->replace;
+    warn "$error (setting draft message template status)" if $error;
+  }
+
   if(@retry_jobs) {
     # fail the job, but with a status message that makes it clear
     # something was sent.
index 72f64b9..27272b8 100644 (file)
@@ -45,10 +45,14 @@ from FS::Record.  The following fields are currently supported:
 
 =item header - message header
 
-=item body - message body
+=item body - message body (as a complete MIME document)
+
+=item preview - HTML fragment to show as a preview of the message
 
 =item error - Email::Sender error message (or null for success)
 
+=item status - "prepared", "sent", or "failed"
+
 =back
 
 =head1 METHODS
@@ -137,12 +141,14 @@ sub check {
     || $self->ut_textn('env_to')
     || $self->ut_anything('header')
     || $self->ut_anything('body')
+    || $self->ut_anything('preview')
     || $self->ut_enum('status', \@statuses)
     || $self->ut_textn('error')
     || $self->ut_enum('msgtype', [  '',
                                     'invoice',
                                     'receipt',
                                     'admin',
+                                    'report',
                                  ])
   ;
   return $error if $error;
@@ -150,10 +156,28 @@ sub check {
   $self->SUPER::check;
 }
 
+=item send
+
+Sends the message through its parent L<FS::msg_template>. Returns an error
+message on error, or an empty string.
+
+=cut
+
+sub send {
+  my $self = shift;
+  # it's still allowed to have cust_msgs without message templates, but only 
+  # for email.
+  my $msg_template = $self->msg_template || 'FS::msg_template::email';
+  $msg_template->send_prepared($self);
+}
+
 =item entity
 
 Returns the complete message as a L<MIME::Entity>.
 
+XXX this only works if the message in fact contains a MIME entity. Messages
+created by external APIs may not look like that.
+
 =item parts
 
 Returns a list of the MIME parts contained in the message, as L<MIME::Entity>
@@ -182,6 +206,25 @@ sub parts {
 
 =back
 
+=head1 SUBROUTINES
+
+=over 4
+
+=item process_send CUSTMSGNUM
+
+Given a C<cust_msg.custmsgnum> value, sends the message. It must already
+have been prepared (via L<FS::msg_template/prepare>).
+
+=cut
+
+sub process_send {
+  my $custmsgnum = shift;
+  my $cust_msg = FS::cust_msg->by_key($custmsgnum)
+    or die "cust_msg #$custmsgnum not found";
+  my $error = $cust_msg->send;
+  die $error if $error;
+}
+
 =head1 SEE ALSO
 
 L<FS::msg_template>, L<FS::cust_main>, L<FS::Record>.
index 5d4f67f..d9ae0d3 100644 (file)
@@ -409,6 +409,22 @@ sub insert {
     warn "can't send payment receipt/statement: $error" if $error;
   }
 
+  #run payment events immediately
+  my $due_cust_event = $self->cust_main->due_cust_event(
+    'eventtable'  => 'cust_pay',
+    'objects'     => [ $self ],
+  );
+  if ( !ref($due_cust_event) ) {
+    warn "Error searching for cust_pay billing events: $due_cust_event\n";
+  } else {
+    foreach my $cust_event (@$due_cust_event) {
+      next unless $cust_event->test_conditions;
+      if ( my $error = $cust_event->do_event() ) {
+        warn "Error running cust_pay billing event: $error\n";
+      }
+    }
+  }
+
   '';
 
 }
@@ -645,72 +661,31 @@ sub send_receipt {
       my %substitutions = ();
       $substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
 
-      my $queue = new FS::queue {
-        'job'     => 'FS::Misc::process_send_email',
-        'paynum'  => $self->paynum,
-        'custnum' => $cust_main->custnum,
-      };
-      $error = $queue->insert(
-        FS::msg_template->by_key($msgnum)->prepare(
+      my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum});
+      unless ($msg_template) {
+        warn "send_receipt could not load msg_template";
+        return;
+      }
+
+      my $cust_msg = $msg_template->prepare(
           'cust_main'     => $cust_main,
           'object'        => $self,
           'from_config'   => 'payment_receipt_from',
           'substitutions' => \%substitutions,
-        ),
-        'msgtype' => 'receipt', # override msg_template's default
+          'msgtype'       => 'receipt',
       );
-
-    } elsif ( $conf->exists('payment_receipt_email') ) {
-
-      my $receipt_template = new Text::Template (
-        TYPE   => 'ARRAY',
-        SOURCE => [ map "$_\n", $conf->config('payment_receipt_email') ],
-      ) or do {
-        warn "can't create payment receipt template: $Text::Template::ERROR";
-        return '';
-      };
-
-      my $payby = $self->payby;
-      my $payinfo = $self->payinfo;
-      $payby =~ s/^BILL$/Check/ if $payinfo;
-      if ( $payby eq 'CARD' || $payby eq 'CHEK' ) {
-        $payinfo = $self->paymask
-      } else {
-        $payinfo = $self->decrypt($payinfo);
-      }
-      $payby =~ s/^CHEK$/Electronic check/;
-
-      my %fill_in = (
-        'date'         => time2str("%a %B %o, %Y", $self->_date),
-        'name'         => $cust_main->name,
-        'paynum'       => $self->paynum,
-        'paid'         => sprintf("%.2f", $self->paid),
-        'payby'        => ucfirst(lc($payby)),
-        'payinfo'      => $payinfo,
-        'balance'      => $cust_main->balance,
-        'company_name' => $conf->config('company_name', $cust_main->agentnum),
-      );
-
-      $fill_in{'invnum'} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
-
-      if ( $opt->{'cust_pkg'} ) {
-        $fill_in{'pkg'} = $opt->{'cust_pkg'}->part_pkg->pkg;
-        #setup date, other things?
+      $error = $cust_msg ? $cust_msg->insert : 'error preparing msg_template';
+      if ($error) {
+        warn "send_receipt: $error";
+        return;
       }
 
       my $queue = new FS::queue {
-        'job'     => 'FS::Misc::process_send_generated_email',
+        'job'     => 'FS::cust_msg::process_send',
         'paynum'  => $self->paynum,
         'custnum' => $cust_main->custnum,
-        'msgtype' => 'receipt',
       };
-      $error = $queue->insert(
-        'from'    => $conf->invoice_from_full( $cust_main->agentnum ),
-                                   #invoice_from??? well as good as any
-        'to'      => \@invoicing_list,
-        'subject' => 'Payment receipt',
-        'body'    => [ $receipt_template->fill_in( HASH => \%fill_in ) ],
-      );
+      $error = $queue->insert( $cust_msg->custmsgnum );
 
     } else {
 
@@ -821,6 +796,102 @@ sub amount {
   $self->paid();
 }
 
+=item delete_cust_bill_pay OPTIONS
+
+Deletes all associated cust_bill_pay records.
+
+If option 'unapplied' is a specified, only deletes until
+this object's 'unapplied' value is >= the specified amount.  
+(Deletes in order returned by L</cust_bill_pay>.)
+
+=cut
+
+sub delete_cust_bill_pay {
+  my $self = shift;
+  my %opt = @_;
+
+  local $SIG{HUP} = 'IGNORE';
+  local $SIG{INT} = 'IGNORE';
+  local $SIG{QUIT} = 'IGNORE';
+  local $SIG{TERM} = 'IGNORE';
+  local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  my $unapplied = $self->unapplied; #only need to look it up once
+
+  my $error = '';
+
+  # Maybe we should reverse the order these get deleted in?
+  # ie delete newest first?
+  # keeping consistent with how bop refunds work, for now...
+  foreach my $cust_bill_pay ( $self->cust_bill_pay ) {
+    last if $opt{'unapplied'} && ($unapplied > $opt{'unapplied'});
+    $unapplied += $cust_bill_pay->amount;
+    $error = $cust_bill_pay->delete;
+    last if $error;
+  }
+
+  if ($error) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+  return '';
+}
+
+=item refund HASHREF
+
+Accepts input for creating a new FS::cust_refund object.
+Unapplies payment from invoices up to the amount of the refund,
+creates the refund and applies payment to refund.  Allows entire
+process to be handled in one transaction.
+
+Causes a fatal error if called on CARD or CHEK payments.
+
+=cut
+
+sub refund {
+  my $self = shift;
+  my $hash = shift;
+  die "Cannot call cust_pay->refund on " . $self->payby
+    if grep { $_ eq $self->payby } qw(CARD CHEK);
+
+  local $SIG{HUP} = 'IGNORE';
+  local $SIG{INT} = 'IGNORE';
+  local $SIG{QUIT} = 'IGNORE';
+  local $SIG{TERM} = 'IGNORE';
+  local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  my $error = $self->delete_cust_bill_pay('amount' => $hash->{'amount'});
+
+  if ($error) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $hash->{'paynum'} = $self->paynum;
+  my $new = new FS::cust_refund ( $hash );
+  $error = $new->insert;
+
+  if ($error) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+  return '';
+}
+
 =back
 
 =head1 CLASS METHODS
@@ -889,7 +960,7 @@ sub batch_insert {
       }
 
     } elsif ( !$error ) { #normal case: apply payments as usual
-      $cust_pay->cust_main->apply_payments;
+      $cust_pay->cust_main->apply_payments( 'manual'=>1 );
     }
 
   }
@@ -1240,7 +1311,7 @@ sub process_batch_import {
       my $cust_pay = shift;
       my $cust_main = $cust_pay->cust_main
                         or return "can't find customer to which payments apply";
-      my $error = $cust_main->apply_payments_and_credits;
+      my $error = $cust_main->apply_payments_and_credits( 'manual'=>1 );
       return $error
                ? "can't apply payments to customer ".$cust_pay->custnum."$error"
                : '';
index a5fa89b..8dd6446 100644 (file)
@@ -3,7 +3,7 @@ use base qw( FS::payinfo_Mixin FS::cust_main_Mixin FS::Record );
 
 use strict;
 use vars qw( $DEBUG );
-use Carp qw( confess );
+use Carp qw( carp confess );
 use Business::CreditCard 0.28;
 use FS::Record qw(dbh qsearch qsearchs);
 
@@ -502,6 +502,19 @@ sub unbatch_and_delete {
 
 }
 
+=item cust_bill
+
+Returns the invoice linked to this batched payment. Deprecated, will be 
+removed.
+
+=cut
+
+sub cust_bill {
+  carp "FS::cust_pay_batch->cust_bill is deprecated";
+  my $self = shift;
+  $self->invnum ? qsearchs('cust_bill', { invnum => $self->invnum }) : '';
+}
+
 =back
 
 =head1 BUGS
index c5a3d2e..279205b 100644 (file)
@@ -13,7 +13,6 @@ use Tie::IxHash;
 use Time::Local qw( timelocal timelocal_nocheck );
 use MIME::Entity;
 use FS::UID qw( dbh driver_name );
-use FS::Misc qw( send_email );
 use FS::Record qw( qsearch qsearchs fields );
 use FS::CurrentUser;
 use FS::cust_svc;
@@ -1057,16 +1056,6 @@ sub cancel {
       $error = $msg_template->send( 'cust_main' => $self->cust_main,
                                     'object'    => $self );
     }
-    else {
-      $error = send_email(
-        'from'    => $conf->invoice_from_full( $self->cust_main->agentnum ),
-        'to'      => \@invoicing_list,
-        'subject' => ( $conf->config('cancelsubject') || 'Cancellation Notice' ),
-        'body'    => [ map "$_\n", $conf->config('cancelmessage') ],
-        'custnum' => $self->custnum,
-        'msgtype' => '', #admin?
-      );
-    }
     #should this do something on errors?
   }
 
@@ -2296,9 +2285,15 @@ sub change {
     }
   }
 
-  # transfer usage pricing add-ons, if we're not changing pkgpart
-  if ( $same_pkgpart ) {
-    foreach my $old_cust_pkg_usageprice ($self->cust_pkg_usageprice) {
+  # transfer usage pricing add-ons, if we're not changing pkgpart or if they were specified
+  if ( $same_pkgpart || $opt->{'cust_pkg_usageprice'}) {
+    my @old_cust_pkg_usageprice;
+    if ($opt->{'cust_pkg_usageprice'}) {
+      @old_cust_pkg_usageprice = @{ $opt->{'cust_pkg_usageprice'} };
+    } else {
+      @old_cust_pkg_usageprice = $self->cust_pkg_usageprice;
+    }
+    foreach my $old_cust_pkg_usageprice (@old_cust_pkg_usageprice) {
       my $new_cust_pkg_usageprice = new FS::cust_pkg_usageprice {
         'pkgnum'         => $cust_pkg->pkgnum,
         'usagepricepart' => $old_cust_pkg_usageprice->usagepricepart,
index 5b6b18c..29e6278 100644 (file)
@@ -163,6 +163,11 @@ sub apply {
   #this has no multiplication involved, its just a set only
   #} elsif ( $target eq 'svc_conferencing.confqualitynum' ) {
 
+  
+  } elsif ( $target eq 'sqlradacct_hour.recur_included_total' ) {
+
+    $error = "Cannot call apply on target $target";
+
   }
 
   if ( $error ) {
index b64ef51..5057781 100644 (file)
@@ -3,6 +3,7 @@ use base qw( FS::cust_main_Mixin FS::Record );
 
 use strict;
 use FS::UID qw(dbh);
+use FS::cust_main_county;
 use FS::upgrade_journal;
 
 # some kind of common ancestor with cust_bill_pkg_tax_location would make sense
@@ -176,6 +177,16 @@ Otherwise returns false.
 
 =cut
 
+# do not remove; this can't be autogenerated
+
+sub cust_main_county {
+  my $self = shift;
+  if ( $self->taxtype eq 'FS::cust_main_county' ) {
+    return FS::cust_main_county->by_key($self->taxnum);
+  }
+  '';
+}
+
 sub _upgrade_data {
   my $class = shift;
 
index 38dd7dc..71129cf 100644 (file)
@@ -6,6 +6,13 @@ use FS::Record qw( qsearch qsearchs dbh );
 use Storable qw(thaw);
 use MIME::Base64;
 
+use JSON qw(encode_json decode_json) ;
+use LWP::UserAgent;
+use HTTP::Request::Common;
+
+# update this in 2020, along with the URL for the TIGERweb service
+our $CENSUS_YEAR = 2010;
+
 =head1 NAME
 
 FS::deploy_zone - Object methods for deploy_zone records
@@ -48,6 +55,12 @@ Optional text describing the zone.
 
 The agent that serves this zone.
 
+=item censusyear
+
+The census map year for which this zone was last updated. May be null for
+zones that contain no census blocks (mobile zones, or fixed zones that haven't
+had their block lists filled in yet).
+
 =item dbaname
 
 The name under which service is marketed in this zone.  If null, will 
@@ -58,6 +71,8 @@ default to the agent name.
 The way the zone geography is defined: "B" for a list of census blocks
 (used by the FCC for fixed broadband service), "P" for a polygon (for 
 mobile services).  See L<FS::deploy_zone_block> and L<FS::deploy_zone_vertex>.
+Note that block-type zones are still allowed to have a vertex list, for
+use by the map editor.
 
 =item technology
 
@@ -147,12 +162,16 @@ sub delete {
   local $FS::UID::AutoCommit = 0;
   # clean up linked records
   my $self = shift;
-  my $error = $self->process_o2m(
-    'table'   => $self->element_table,
-    'num_col' => 'zonenum',
-    'fields'  => 'zonenum',
-    'params'  => {},
-  ) || $self->SUPER::delete(@_);
+  my $error;
+  foreach (qw(deploy_zone_block deploy_zone_vertex)) {
+    $error ||= $self->process_o2m(
+      'table'   => $_,
+      'num_col' => 'zonenum',
+      'fields'  => 'zonenum',
+      'params'  => {},
+    );
+  }
+  $error ||= $self->SUPER::delete(@_);
   
   if ($error) {
     dbh->rollback if $oldAutoCommit;
@@ -185,6 +204,7 @@ sub check {
     $self->ut_numbern('zonenum')
     || $self->ut_text('description')
     || $self->ut_number('agentnum')
+    || $self->ut_numbern('censusyear')
     || $self->ut_foreign_key('agentnum', 'agent', 'agentnum')
     || $self->ut_textn('dbaname')
     || $self->ut_enum('zonetype', [ 'B', 'P' ])
@@ -219,24 +239,6 @@ sub check {
   $self->SUPER::check;
 }
 
-=item element_table
-
-Returns the name of the table that contains the zone's elements (blocks or
-vertices).
-
-=cut
-
-sub element_table {
-  my $self = shift;
-  if ($self->zonetype eq 'B') {
-    return 'deploy_zone_block';
-  } elsif ( $self->zonetype eq 'P') {
-    return 'deploy_zone_vertex';
-  } else {
-    die 'unknown zonetype';
-  }
-}
-
 =item deploy_zone_block
 
 Returns the census block records in this zone, in order by census block
@@ -244,8 +246,7 @@ number.  Only appropriate to block-type zones.
 
 =item deploy_zone_vertex
 
-Returns the vertex records for this zone, in order by sequence number.  Only
-appropriate to polygon-type zones.
+Returns the vertex records for this zone, in order by sequence number.
 
 =cut
 
@@ -267,7 +268,19 @@ sub deploy_zone_vertex {
   });
 }
 
-=back
+=item vertices_json
+
+Returns the vertex list for this zone, as a JSON string of
+
+[ [ latitude0, longitude0 ], [ latitude1, longitude1 ] ... ]
+
+=cut
+
+sub vertices_json {
+  my $self = shift;
+  my @vertices = map { [ $_->latitude, $_->longitude ] } $self->deploy_zone_vertex;
+  encode_json(\@vertices);
+}
 
 =head2 SUBROUTINES
 
@@ -315,7 +328,125 @@ sub process_batch_import {
   FS::Record::process_batch_import( $job, $opt, $param );
 
 }
-        
+
+=item process_block_lookup JOB, ZONENUM
+
+Look up all the census blocks in the zone's footprint, and insert them.
+This will replace any existing block list.
+
+=cut
+
+sub process_block_lookup {
+  my $job = shift;
+  my $param = shift;
+  if (!ref($param)) {
+    $param = thaw(decode_base64($param));
+  }
+  my $zonenum = $param->{zonenum};
+  my $zone = FS::deploy_zone->by_key($zonenum)
+    or die "zone $zonenum not found\n";
+
+  # wipe the existing list of blocks
+  my $error = $zone->process_o2m(
+    'table'   => 'deploy_zone_block',
+    'num_col' => 'zonenum', 
+    'fields'  => 'zonenum',
+    'params'  => {},
+  );
+  die $error if $error;
+
+  $job->update_statustext('0,querying census database') if $job;
+
+  # negotiate the rugged jungle trails of the ArcGIS REST protocol:
+  # 1. unlike most places, longitude first.
+  my @zone_vertices = map { [ $_->longitude, $_->latitude ] }
+    $zone->deploy_zone_vertex;
+
+  return if scalar(@zone_vertices) < 3; # then don't bother
+
+  # 2. package this as "rings", inside a JSON geometry object
+  # 3. announce loudly and frequently that we are using spatial reference 
+  #    4326, "true GPS coordinates"
+  my $geometry = encode_json({
+      'rings' => [ \@zone_vertices ],
+      'wkid'  => 4326,
+  });
+
+  my %query = (
+    f               => 'json', # duh
+    geometry        => $geometry,
+    geometryType    => 'esriGeometryPolygon', # as opposed to a bounding box
+    inSR            => 4326,
+    outSR           => 4326,
+    spatialRel      => 'esriSpatialRelIntersects', # the test to perform
+    outFields       => 'OID,GEOID',
+    returnGeometry  => 'false',
+    orderByFields   => 'OID',
+  );
+  my $url = 'http://tigerweb.geo.census.gov/arcgis/rest/services/TIGERweb/Tracts_Blocks/MapServer/12/query';
+  my $ua = LWP::UserAgent->new;
+
+  # first find out how many of these we're dealing with
+  my $response = $ua->request(
+    POST $url, Content => [
+      %query,
+      returnCountOnly => 1,
+    ]
+  );
+  die $response->status_line unless $response->is_success;
+  my $data = decode_json($response->content);
+  # their error messages are mostly useless, but don't just blindly continue
+  die $data->{error}{message} if $data->{error};
+
+  my $count = $data->{count};
+  my $inserted = 0;
+
+  #warn "Census block lookup: $count\n";
+
+  # we have to do our own pagination on this, because the census bureau
+  # doesn't support resultOffset (maybe they don't have ArcGIS 10.3 yet).
+  # that's why we're ordering by OID, it's globally unique
+  my $last_oid = 0;
+  my $done = 0;
+  while (!$done) {
+    $response = $ua->request(
+      POST $url, Content => [
+        %query,
+        where => "OID>$last_oid",
+      ]
+    );
+    die $response->status_line unless $response->is_success;
+    $data = decode_json($response->content);
+    die $data->{error}{message} if $data->{error};
+
+    foreach my $feature (@{ $data->{features} }) {
+      my $geoid = $feature->{attributes}{GEOID}; # the prize
+      my $block = FS::deploy_zone_block->new({
+          zonenum     => $zonenum,
+          censusblock => $geoid
+      });
+      $error = $block->insert;
+      die "$error (inserting census block $geoid)" if $error;
+
+      $inserted++;
+      if ($job and $inserted % 100 == 0) {
+        my $percent = sprintf('%.0f', $inserted / $count * 100);
+        $job->update_statustext("$percent,creating block records");
+      }
+    }
+
+    #warn "Inserted $inserted records\n";
+    $last_oid = $data->{features}[-1]{attributes}{OID};
+    $done = 1 unless $data->{exceededTransferLimit};
+  }
+
+  $zone->set('censusyear', $CENSUS_YEAR);  
+  $error = $zone->replace;
+  warn "$error (updating zone census year)" if $error; # whatever, continue
+
+  return;
+}
+
 =head1 BUGS
 
 =head1 SEE ALSO
index 757af7e..2ac18e2 100644 (file)
@@ -43,10 +43,6 @@ L<FS::deploy_zone> foreign key for the zone.
 
 U.S. census block number (15 digits).
 
-=item censusyear
-
-The year of the census map where the block appeared or was last verified.
-
 =back
 
 =head1 METHODS
@@ -107,7 +103,6 @@ sub check {
     $self->ut_numbern('blocknum')
     || $self->ut_number('zonenum')
     || $self->ut_number('censusblock')
-    || $self->ut_number('censusyear')
   ;
   return $error if $error;
 
index 361e0b4..e113357 100644 (file)
@@ -196,7 +196,13 @@ sub description {
 
   ( my $months = $self->months ) =~ s/\.0+$//;
   $months =~ s/(\.\d*[1-9])0+$/$1/;
-  $desc .= " for $months months" if $months;
+  if ($months) {
+    if ($months == 1) {
+      $desc .= " for 1 month";
+    } else {
+      $desc .= " for $months months";
+    }
+  }
 
   $desc .= ', applies to setup' if $self->setup;
 
index 403829a..bd14247 100644 (file)
@@ -9,7 +9,9 @@ my @contexts = ( qw(
   bill_and_collect
   FS::cust_main::Billing::bill_and_collect
   FS::cust_main::Billing::bill
+  FS::pay_batch::import_from_gateway
   Cron::bill
+  Cron::backup
   Cron::upload
   spool_upload
   daily
index c52b633..d17fd41 100644 (file)
@@ -4,25 +4,14 @@ use base qw( FS::Record );
 use strict;
 use vars qw( $DEBUG $conf );
 
-use Date::Format qw( time2str );
-use File::Temp;
-use IPC::Run qw(run);
-use Text::Template;
-
-use HTML::Entities qw( decode_entities encode_entities ) ;
-use HTML::FormatText;
-use HTML::TreeBuilder;
-use Encode;
-
-use FS::Misc qw( generate_email send_email do_print );
 use FS::Conf;
-use FS::Record qw( qsearch qsearchs );
-use FS::UID qw( dbh );
+use FS::Record qw( qsearch qsearchs dbh );
 
-use FS::cust_main;
 use FS::cust_msg;
 use FS::template_content;
 
+use Date::Format qw(time2str);
+
 FS::UID->install_callback( sub { $conf = new FS::Conf; } );
 
 $DEBUG=0;
@@ -46,6 +35,12 @@ FS::msg_template - Object methods for msg_template records
 
   $error = $record->check;
 
+=head1 NOTE
+
+This uses a table-per-subclass ORM strategy, which is a somewhat cleaner
+version of what we do elsewhere with _option tables. We could easily extract 
+that functionality into a base class, or even into FS::Record itself.
+
 =head1 DESCRIPTION
 
 An FS::msg_template object represents a customer message template.
@@ -59,6 +54,9 @@ supported:
 =item msgname - Name of the template.  This will appear in the user interface;
 if it needs to be localized for some users, add it to the message catalog.
 
+=item msgclass - The L<FS::msg_template> subclass that this should belong to.
+Defaults to 'email'.
+
 =item agentnum - Agent associated with this template.  Can be NULL for a 
 global template.
 
@@ -66,7 +64,11 @@ global template.
 
 =item from_addr - Source email address.
 
-=item disabled - disabled ('Y' or NULL).
+=item bcc_addr - Bcc all mail to this address.
+
+=item disabled - disabled (NULL for not-disabled and selectable, 'D' for a
+draft of a one-time message, 'C' for a completed one-time message, 'Y' for a
+normal template disabled by user action).
 
 =back
 
@@ -87,40 +89,71 @@ points to.  You can ask the object for a copy with the I<hash> method.
 
 sub table { 'msg_template'; }
 
+sub extension_table { ''; } # subclasses don't HAVE to have extensions
+
+sub _rebless {
+  my $self = shift;
+  my $class = 'FS::msg_template::' . $self->msgclass;
+  eval "use $class;";
+  bless($self, $class) unless $@;
+  warn "Error loading msg_template msgclass: " . $@ if $@; #or die?
+
+  # merge in the extension fields (but let fields in $self override them)
+  # except don't ever override the extension's primary key, it's immutable
+  if ( $self->msgnum and $self->extension_table ) {
+    my $extension = $self->_extension;
+    if ( $extension ) {
+      my $ext_key = $extension->get($extension->primary_key);
+      $self->{Hash} = { $extension->hash,
+                        $self->hash,
+                        $extension->primary_key => $ext_key
+                      };
+    }
+  }
+
+  $self;
+}
+
+# Returns the subclass-specific extension record for this object. For internal
+# use only; everyone else is supposed to think of this as a single record.
+
+sub _extension {
+  my $self = shift;
+  if ( $self->extension_table and $self->msgnum ) {
+    local $FS::Record::nowarn_classload = 1;
+    return qsearchs($self->extension_table, { msgnum => $self->msgnum });
+  }
+  return;
+}
+
 =item insert [ CONTENT ]
 
 Adds this record to the database.  If there is an error, returns the error,
 otherwise returns false.
 
-A default (no locale) L<FS::template_content> object will be created.  CONTENT 
-is an optional hash containing 'subject' and 'body' for this object.
-
 =cut
 
 sub insert {
   my $self = shift;
-  my %content = @_;
+  $self->_rebless;
 
   my $oldAutoCommit = $FS::UID::AutoCommit;
   local $FS::UID::AutoCommit = 0;
-  my $dbh = dbh;
 
   my $error = $self->SUPER::insert;
-  if ( !$error ) {
-    $content{'msgnum'} = $self->msgnum;
-    $content{'subject'} ||= '';
-    $content{'body'} ||= '';
-    my $template_content = new FS::template_content (\%content);
-    $error = $template_content->insert;
+  # calling _extension at this point makes it copy the msgnum, so links work
+  if ( $self->extension_table ) {
+    local $FS::Record::nowarn_classload = 1;
+    my $extension = FS::Record->new($self->extension_table, { $self->hash });
+    $error ||= $extension->insert;
   }
 
   if ( $error ) {
-    $dbh->rollback if $oldAutoCommit;
-    return $error;
+    dbh->rollback if $oldAutoCommit;
+  } else {
+    dbh->commit if $oldAutoCommit;
   }
-
-  $dbh->commit if $oldAutoCommit;
-  return;
+  $error;
 }
 
 =item delete
@@ -129,61 +162,73 @@ Delete this record from the database.
 
 =cut
 
-# the delete method can be inherited from FS::Record
+sub delete {
+  my $self = shift;
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+
+  my $error;
+  my $extension = $self->_extension;
+  if ( $extension ) {
+    $error = $extension->delete;
+  }
+
+  $error ||= $self->SUPER::delete;
+
+  if ( $error ) {
+    dbh->rollback if $oldAutoCommit;
+  } else {
+    dbh->commit if $oldAutoCommit;
+  }
+  $error;
+}
 
-=item replace [ OLD_RECORD ] [ CONTENT ]
+=item replace [ OLD_RECORD ]
 
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
-CONTENT is an optional hash containing 'subject', 'body', and 'locale'.  If 
-supplied, an L<FS::template_content> object will be created (or modified, if 
-one already exists for this locale).
-
 =cut
 
 sub replace {
-  my $self = shift;
-  my $old = ( ref($_[0]) and $_[0]->isa('FS::Record') ) 
-              ? shift
-              : $self->replace_old;
-  my %content = @_;
-  
+  my $new = shift;
+  my $old = shift || $new->replace_old;
+
   my $oldAutoCommit = $FS::UID::AutoCommit;
   local $FS::UID::AutoCommit = 0;
-  my $dbh = dbh;
-
-  my $error = $self->SUPER::replace($old);
-
-  if ( !$error and %content ) {
-    $content{'locale'} ||= '';
-    my $new_content = qsearchs('template_content', {
-                        'msgnum' => $self->msgnum,
-                        'locale' => $content{'locale'},
-                      } );
-    if ( $new_content ) {
-      $new_content->subject($content{'subject'});
-      $new_content->body($content{'body'});
-      $error = $new_content->replace;
-    }
-    else {
-      $content{'msgnum'} = $self->msgnum;
-      $new_content = new FS::template_content \%content;
-      $error = $new_content->insert;
-    }
+
+  my $error = $new->SUPER::replace($old, @_);
+
+  my $extension = $new->_extension;
+  if ( $extension ) {
+    # merge changes into the extension record and replace it
+    $extension->{Hash} = { $extension->hash, $new->hash };
+    $error ||= $extension->replace;
   }
 
   if ( $error ) {
-    $dbh->rollback if $oldAutoCommit;
-    return $error;
+    dbh->rollback if $oldAutoCommit;
+  } else {
+    dbh->commit if $oldAutoCommit;
   }
-
-  warn "committing FS::msg_template->replace\n" if $DEBUG and $oldAutoCommit;
-  $dbh->commit if $oldAutoCommit;
-  return;
+  $error;
 }
-    
 
+sub replace_check {
+  my $self = shift;
+  my $old = $self->replace_old;
+  # don't allow changing msgclass, except null to not-null (for upgrade)
+  if ( $old->msgclass ) {
+    if ( !$self->msgclass ) {
+      $self->set('msgclass', $old->msgclass);
+    } elsif ( $old->msgclass ne $self->msgclass ) {
+      return "Can't change message template class from ".$old->msgclass.
+             " to ".$self->msgclass.".";
+    }
+  }
+  '';
+}
 
 =item check
 
@@ -204,8 +249,12 @@ sub check {
     || $self->ut_text('msgname')
     || $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum')
     || $self->ut_textn('mime_type')
-    || $self->ut_enum('disabled', [ '', 'Y' ] )
+    || $self->ut_enum('disabled', [ '', 'Y', 'D', 'S' ] )
     || $self->ut_textn('from_addr')
+    || $self->ut_textn('bcc_addr')
+    # fine for now, but change this to some kind of dynamic check if we
+    # ever have more than two msgclasses
+    || $self->ut_enum('msgclass', [ qw(email http) ]),
   ;
   return $error if $error;
 
@@ -214,25 +263,10 @@ sub check {
   $self->SUPER::check;
 }
 
-=item content_locales
-
-Returns a hashref of the L<FS::template_content> objects attached to 
-this template, with the locale as key.
-
-=cut
-
-sub content_locales {
-  my $self = shift;
-  return $self->{'_content_locales'} ||= +{
-    map { $_->locale , $_ } 
-    qsearch('template_content', { 'msgnum' => $self->msgnum })
-  };
-}
-
 =item prepare OPTION => VALUE
 
-Fills in the template and returns a hash of the 'from' address, 'to' 
-addresses, subject line, and body.
+Fills in the template and returns an L<FS::cust_msg> object, containing the
+message to be sent.  This method must be provided by the subclass.
 
 Options are passed as a list of name/value pairs:
 
@@ -276,18 +310,23 @@ A hash reference of additional substitutions
 =cut
 
 sub prepare {
+  die "unimplemented";
+}
+
+=item prepare_substitutions OPTION => VALUE ...
+
+Takes the same arguments as L</prepare>, and returns a hashref of the 
+substitution variables.
+
+=cut
+
+sub prepare_substitutions {
   my( $self, %opt ) = @_;
 
   my $cust_main = $opt{'cust_main'}; # or die 'cust_main required';
   my $object = $opt{'object'} or die 'object required';
 
-  # localization
-  my $locale = $cust_main && $cust_main->locale || '';
-  warn "no locale for cust#".$cust_main->custnum."; using default content\n"
-    if $DEBUG and $cust_main && !$locale;
-  my $content = $self->content($locale);
-
-  warn "preparing template '".$self->msgname."\n"
+  warn "preparing substitutions for '".$self->msgname."'\n"
     if $DEBUG;
 
   my $subs = $self->substitutions;
@@ -340,110 +379,19 @@ sub prepare {
     $hash{$_} = $opt{substitutions}->{$_} foreach keys %{$opt{substitutions}};
   }
 
-  $_ = encode_entities($_ || '') foreach values(%hash);
-
-  ###
-  # clean up template
-  ###
-  my $subject_tmpl = new Text::Template (
-    TYPE   => 'STRING',
-    SOURCE => $content->subject,
-  );
-  my $subject = $subject_tmpl->fill_in( HASH => \%hash );
-
-  my $body = $content->body;
-  my ($skin, $guts) = eviscerate($body);
-  @$guts = map { 
-    $_ = decode_entities($_); # turn all punctuation back into itself
-    s/\r//gs;           # remove \r's
-    s/<br[^>]*>/\n/gsi; # and <br /> tags
-    s/<p>/\n/gsi;       # and <p>
-    s/<\/p>//gsi;       # and </p>
-    s/\240/ /gs;        # and &nbsp;
-    $_
-  } @$guts;
-  
-  $body = '{ use Date::Format qw(time2str); "" }';
-  while(@$skin || @$guts) {
-    $body .= shift(@$skin) || '';
-    $body .= shift(@$guts) || '';
-  }
-
-  ###
-  # fill-in
-  ###
-
-  my $body_tmpl = new Text::Template (
-    TYPE          => 'STRING',
-    SOURCE        => $body,
-  );
-
-  $body = $body_tmpl->fill_in( HASH => \%hash );
-
-  ###
-  # and email
-  ###
-
-  my @to;
-  if ( exists($opt{'to'}) ) {
-    @to = split(/\s*,\s*/, $opt{'to'});
-  } elsif ( $cust_main ) {
-    @to = $cust_main->invoicing_list_emailonly;
-  } else {
-    die 'no To: address or cust_main object specified';
-  }
-
-  my $from_addr = $self->from_addr;
-
-  if ( !$from_addr ) {
-
-    my $agentnum = $cust_main ? $cust_main->agentnum : '';
-
-    if ( $opt{'from_config'} ) {
-      $from_addr = $conf->config($opt{'from_config'}, $agentnum);
-    }
-    $from_addr ||= $conf->invoice_from_full($agentnum);
-  }
-#  my @cust_msg = ();
-#  if ( $conf->exists('log_sent_mail') and !$opt{'preview'} ) {
-#    my $cust_msg = FS::cust_msg->new({
-#        'custnum' => $cust_main->custnum,
-#        'msgnum'  => $self->msgnum,
-#        'status'  => 'prepared',
-#      });
-#    $cust_msg->insert;
-#    @cust_msg = ('cust_msg' => $cust_msg);
-#  }
-
-  my $text_body = encode('UTF-8',
-                  HTML::FormatText->new(leftmargin => 0, rightmargin => 70)
-                      ->format( HTML::TreeBuilder->new_from_content($body) )
-                  );
-  (
-    'custnum'   => ( $cust_main ? $cust_main->custnum : ''),
-    'msgnum'    => $self->msgnum,
-    'from'      => $from_addr,
-    'to'        => \@to,
-    'bcc'       => $self->bcc_addr || undef,
-    'subject'   => $subject,
-    'html_body' => $body,
-    'text_body' => $text_body
-  );
-
+  return \%hash;
 }
 
-=item send OPTION => VALUE
+=item send OPTION => VALUE ...
 
-Fills in the template and sends it to the customer.  Options are as for 
-'prepare'.
+Creates a message with L</prepare> (taking all the same options) and sends it.
 
 =cut
 
-# broken out from prepare() in case we want to queue the sending,
-# preview it, etc.
 sub send {
   my $self = shift;
-  send_email(generate_email($self->prepare(@_)));
+  my $cust_msg = $self->prepare(@_);
+  $self->send_prepared($cust_msg);
 }
 
 =item render OPTION => VALUE ...
@@ -455,6 +403,9 @@ Options are as for 'prepare', but 'from' and 'to' are meaningless.
 
 =cut
 
+# XXX not sure where this ends up post-refactoring--a separate template
+# class? it doesn't use the same rendering OR output machinery as ::email
+
 # will also have options to set paper size, margins, etc.
 
 sub render {
@@ -507,8 +458,6 @@ my $usage_warning = sub {
   return ['', '', ''];
 };
 
-#my $conf = new FS::Conf;
-
 #return contexts and fill-in values
 # If you add anything, be sure to add a description in 
 # httemplate/edit/msg_template.html.
@@ -686,19 +635,11 @@ sub substitutions {
 
 =item content LOCALE
 
-Returns the L<FS::template_content> object appropriate to LOCALE, if there 
-is one.  If not, returns the one with a NULL locale.
+Stub, returns nothing.
 
 =cut
 
-sub content {
-  my $self = shift;
-  my $locale = shift;
-  qsearchs('template_content', 
-            { 'msgnum' => $self->msgnum, 'locale' => $locale }) || 
-  qsearchs('template_content',
-            { 'msgnum' => $self->msgnum, 'locale' => '' });
-}
+sub content {}
 
 =item agent
 
@@ -719,20 +660,22 @@ sub _upgrade_data {
     [ 'decline_msgnum',  'declinetemplate',    '',               '', '' ],
     [ 'impending_recur_msgnum', 'impending_recur_template', '',  '', 'impending_recur_bcc' ],
     [ 'payment_receipt_msgnum', 'payment_receipt_email', '',     '', '' ],
-    [ 'welcome_msgnum',  'welcome_email',      'welcome_email-subject', 'welcome_email-from', '' ],
-    [ 'warning_msgnum',  'warning_email',      'warning_email-subject', 'warning_email-from', '' ],
+    [ 'welcome_msgnum',  'welcome_email',      'welcome_email-subject', 'welcome_email-from', '', 'welcome_email-mimetype' ],
+    [ 'threshold_warning_msgnum',  'warning_email',      'warning_email-subject', 'warning_email-from', 'warning_email-cc', 'warning_email-mimetype' ],
   );
  
   my @agentnums = ('', map {$_->agentnum} qsearch('agent', {}));
   foreach my $agentnum (@agentnums) {
     foreach (@fixes) {
-      my ($newname, $oldname, $subject, $from, $bcc) = @$_;
+      my ($newname, $oldname, $subject, $from, $bcc, $mimetype) = @$_;
+      
       if ($conf->exists($oldname, $agentnum)) {
         my $new = new FS::msg_template({
+          'msgclass'  => 'email',
           'msgname'   => $oldname,
           'agentnum'  => $agentnum,
           'from_addr' => ($from && $conf->config($from, $agentnum)) || '',
-          'bcc_addr'  => ($bcc && $conf->config($from, $agentnum)) || '',
+          'bcc_addr'  => ($bcc && $conf->config($bcc, $agentnum)) || '',
           'subject'   => ($subject && $conf->config($subject, $agentnum)) || '',
           'mime_type' => 'text/html',
           'body'      => join('<BR>',$conf->config($oldname, $agentnum)),
@@ -743,6 +686,8 @@ sub _upgrade_data {
         $conf->delete($oldname, $agentnum);
         $conf->delete($from, $agentnum) if $from;
         $conf->delete($subject, $agentnum) if $subject;
+        $conf->delete($bcc, $agentnum) if $bcc;
+        $conf->delete($mimetype, $agentnum) if $mimetype;
       }
     }
 
@@ -827,10 +772,16 @@ sub _upgrade_data {
       }
       $content{body} = $body;
       $msg_template->set('body', '');
-
       my $error = $msg_template->replace(%content);
       die $error if $error;
     }
+
+    if ( !$msg_template->msgclass ) {
+      # set default message class
+      $msg_template->set('msgclass', 'email');
+      my $error = $msg_template->replace;
+      die $error if $error;
+    }
   }
 
   ###
@@ -863,56 +814,6 @@ sub _populate_initial_data { #class method
 
 }
 
-sub eviscerate {
-  # Every bit as pleasant as it sounds.
-  #
-  # We do this because Text::Template::Preprocess doesn't
-  # actually work.  It runs the entire template through 
-  # the preprocessor, instead of the code segments.  Which 
-  # is a shame, because Text::Template already contains
-  # the code to do this operation.
-  my $body = shift;
-  my (@outside, @inside);
-  my $depth = 0;
-  my $chunk = '';
-  while($body || $chunk) {
-    my ($first, $delim, $rest);
-    # put all leading non-delimiters into $first
-    ($first, $rest) =
-        ($body =~ /^((?:\\[{}]|[^{}])*)(.*)$/s);
-    $chunk .= $first;
-    # put a leading delimiter into $delim if there is one
-    ($delim, $rest) =
-      ($rest =~ /^([{}]?)(.*)$/s);
-
-    if( $delim eq '{' ) {
-      $chunk .= '{';
-      if( $depth == 0 ) {
-        push @outside, $chunk;
-        $chunk = '';
-      }
-      $depth++;
-    }
-    elsif( $delim eq '}' ) {
-      $depth--;
-      if( $depth == 0 ) {
-        push @inside, $chunk;
-        $chunk = '';
-      }
-      $chunk .= '}';
-    }
-    else {
-      # no more delimiters
-      if( $depth == 0 ) {
-        push @outside, $chunk . $rest;
-      } # else ? something wrong
-      last;
-    }
-    $body = $rest;
-  }
-  (\@outside, \@inside);
-}
-
 =back
 
 =head1 BUGS
index a4e27fd..dbb9f40 100644 (file)
@@ -3,6 +3,7 @@ package FS::msg_template::InitialData;
 sub _initial_data {
   [
     { msgname   => 'Password reset',
+      msgclass  => 'email',
       mime_type => 'text/html', #multipart/alternative with a text part?
                                   # cranky mutt/pine users like me are rare
 
diff --git a/FS/FS/msg_template/email.pm b/FS/FS/msg_template/email.pm
new file mode 100644 (file)
index 0000000..377dbb1
--- /dev/null
@@ -0,0 +1,592 @@
+package FS::msg_template::email;
+use base qw( FS::msg_template );
+
+use strict;
+use vars qw( $DEBUG $conf );
+
+# stuff needed for template generation
+use Date::Format qw( time2str );
+use File::Temp;
+use IPC::Run qw(run);
+use Text::Template;
+
+use HTML::Entities qw( decode_entities encode_entities ) ;
+use HTML::FormatText;
+use HTML::TreeBuilder;
+use Encode;
+
+# needed to send email
+use FS::Misc qw( generate_email );
+use FS::Conf;
+use Email::Sender::Simple qw( sendmail );
+
+use FS::Record qw( qsearch qsearchs );
+
+# needed to manage template_content objects
+use FS::template_content;
+use FS::UID qw( dbh );
+
+# needed to manage prepared messages
+use FS::cust_msg;
+
+FS::UID->install_callback( sub { $conf = new FS::Conf; } );
+
+our $DEBUG = 0;
+our $me = '[FS::msg_template::email]';
+
+=head1 NAME
+
+FS::msg_template::email - Construct email notices with Text::Template.
+
+=head1 DESCRIPTION
+
+FS::msg_template::email is a message processor in which the template contains 
+L<Text::Template> strings for the message subject line and body, and the 
+message is delivered by email.
+
+Currently the C<from_addr> and C<bcc_addr> fields used by this processor are
+in the main msg_template table.
+
+=head1 METHODS
+
+=over 4
+
+=item insert [ CONTENT ]
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+A default (no locale) L<FS::template_content> object will be created.  CONTENT 
+is an optional hash containing 'subject' and 'body' for this object.
+
+=cut
+
+sub insert {
+  my $self = shift;
+  my %content = @_;
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  my $error = $self->SUPER::insert;
+  if ( !$error ) {
+    $content{'msgnum'} = $self->msgnum;
+    $content{'subject'} ||= '';
+    $content{'body'} ||= '';
+    my $template_content = new FS::template_content (\%content);
+    $error = $template_content->insert;
+  }
+
+  if ( $error ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit if $oldAutoCommit;
+  return;
+}
+
+=item replace [ OLD_RECORD ] [ CONTENT ]
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+CONTENT is an optional hash containing 'subject', 'body', and 'locale'.  If 
+supplied, an L<FS::template_content> object will be created (or modified, if 
+one already exists for this locale).
+
+=cut
+
+sub replace {
+  my $self = shift;
+  my $old = ( ref($_[0]) and $_[0]->isa('FS::Record') ) 
+              ? shift
+              : $self->replace_old;
+  my %content = @_;
+  
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  my $error = $self->SUPER::replace($old);
+
+  if ( !$error and %content ) {
+    $content{'locale'} ||= '';
+    my $new_content = qsearchs('template_content', {
+                        'msgnum' => $self->msgnum,
+                        'locale' => $content{'locale'},
+                      } );
+    if ( $new_content ) {
+      $new_content->subject($content{'subject'});
+      $new_content->body($content{'body'});
+      $error = $new_content->replace;
+    }
+    else {
+      $content{'msgnum'} = $self->msgnum;
+      $new_content = new FS::template_content \%content;
+      $error = $new_content->insert;
+    }
+  }
+
+  if ( $error ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  warn "committing FS::msg_template->replace\n" if $DEBUG and $oldAutoCommit;
+  $dbh->commit if $oldAutoCommit;
+  return;
+}
+
+=item content_locales
+
+Returns a hashref of the L<FS::template_content> objects attached to 
+this template, with the locale as key.
+
+=cut
+
+sub content_locales {
+  my $self = shift;
+  return $self->{'_content_locales'} ||= +{
+    map { $_->locale , $_ } 
+    qsearch('template_content', { 'msgnum' => $self->msgnum })
+  };
+}
+
+=item prepare OPTION => VALUE
+
+Fills in the template and returns an L<FS::cust_msg> object.
+
+Options are passed as a list of name/value pairs:
+
+=over 4
+
+=item cust_main
+
+Customer object (required).
+
+=item object
+
+Additional context object (currently, can be a cust_main, cust_pkg, 
+cust_bill, cust_pay, cust_pay_pending, or svc_(acct, phone, broadband, 
+domain) ).  If the object is a svc_*, its cust_pkg will be fetched and 
+used for substitution.
+
+As a special case, this may be an arrayref of two objects.  Both 
+objects will be available for substitution, with their field names 
+prefixed with 'new_' and 'old_' respectively.  This is used in the 
+rt_ticket export when exporting "replace" events.
+
+=item from_config
+
+Configuration option to use as the source address, based on the customer's 
+agentnum.  If unspecified (or the named option is empty), 'invoice_from' 
+will be used.
+
+The I<from_addr> field in the template takes precedence over this.
+
+=item to
+
+Destination address.  The default is to use the customer's 
+invoicing_list addresses.  Multiple addresses may be comma-separated.
+
+=item substitutions
+
+A hash reference of additional substitutions
+
+=item msgtype
+
+A string identifying the kind of message this is. Currently can be "invoice", 
+"receipt", "admin", or null. Expand this list as necessary.
+
+=item override_content
+
+A string to use as the HTML body; if specified, replaces the entire
+body of the message. This should be used ONLY by L<FS::report_batch> and may
+go away in the future.
+
+=back
+
+=cut
+
+sub prepare {
+
+  my( $self, %opt ) = @_;
+
+  my $cust_main = $opt{'cust_main'}; # or die 'cust_main required';
+  my $object = $opt{'object'} or die 'object required';
+
+  my $hashref = $self->prepare_substitutions(%opt);
+
+  # localization
+  my $locale = $cust_main && $cust_main->locale || '';
+  warn "no locale for cust#".$cust_main->custnum."; using default content\n"
+    if $DEBUG and $cust_main && !$locale;
+  my $content = $self->content($locale);
+
+  warn "preparing template '".$self->msgname."\n"
+    if $DEBUG;
+
+  $_ = encode_entities($_ || '') foreach values(%$hashref);
+
+  ###
+  # clean up template
+  ###
+  my $subject_tmpl = new Text::Template (
+    TYPE   => 'STRING',
+    SOURCE => $content->subject,
+  );
+
+  warn "$me filling in subject template\n" if $DEBUG;
+  my $subject = $subject_tmpl->fill_in( HASH => $hashref );
+
+  my $body = $content->body;
+  my ($skin, $guts) = eviscerate($body);
+  @$guts = map { 
+    $_ = decode_entities($_); # turn all punctuation back into itself
+    s/\r//gs;           # remove \r's
+    s/<br[^>]*>/\n/gsi; # and <br /> tags
+    s/<p>/\n/gsi;       # and <p>
+    s/<\/p>//gsi;       # and </p>
+    s/\240/ /gs;        # and &nbsp;
+    $_
+  } @$guts;
+  
+  $body = '{ use Date::Format qw(time2str); "" }';
+  while(@$skin || @$guts) {
+    $body .= shift(@$skin) || '';
+    $body .= shift(@$guts) || '';
+  }
+
+  ###
+  # fill-in
+  ###
+
+  my $body_tmpl = new Text::Template (
+    TYPE          => 'STRING',
+    SOURCE        => $body,
+  );
+  
+  warn "$me filling in body template\n" if $DEBUG;
+  $body = $body_tmpl->fill_in( HASH => $hashref );
+
+  # override $body if requested
+  if ( $opt{'override_content'} ) {
+    warn "$me overriding template body with requested content" if $DEBUG;
+    $body = $opt{'override_content'};
+  }
+
+  ###
+  # and email
+  ###
+
+  my @to;
+  if ( exists($opt{'to'}) ) {
+    @to = split(/\s*,\s*/, $opt{'to'});
+  } elsif ( $cust_main ) {
+    @to = $cust_main->invoicing_list_emailonly;
+  } else {
+    die 'no To: address or cust_main object specified';
+  }
+
+  my $from_addr = $self->from_addr;
+
+  if ( !$from_addr ) {
+
+    my $agentnum = $cust_main ? $cust_main->agentnum : '';
+
+    if ( $opt{'from_config'} ) {
+      $from_addr = $conf->config($opt{'from_config'}, $agentnum);
+    }
+    $from_addr ||= $conf->invoice_from_full($agentnum);
+  }
+
+  my $text_body = encode('UTF-8',
+                  HTML::FormatText->new(leftmargin => 0, rightmargin => 70)
+                      ->format( HTML::TreeBuilder->new_from_content($body) )
+                  );
+
+  warn "$me constructing MIME entities\n" if $DEBUG;
+  my %email = generate_email(
+    'from'      => $from_addr,
+    'to'        => \@to,
+    'bcc'       => $self->bcc_addr || undef,
+    'subject'   => $subject,
+    'html_body' => $body,
+    'text_body' => $text_body,
+  );
+
+  warn "$me creating message headers\n" if $DEBUG;
+  my $env_from = $from_addr;
+  $env_from =~ s/^\s*//; $env_from =~ s/\s*$//;
+  if ( $env_from =~ /^(.*)\s*<(.*@.*)>$/ ) {
+    # a common idiom
+    $env_from = $2;
+  } 
+  
+  my $domain;
+  if ( $env_from =~ /\@([\w\.\-]+)/ ) {
+    $domain = $1;
+  } else {
+    warn 'no domain found in invoice from address '. $env_from .
+         '; constructing Message-ID (and saying HELO) @example.com'; 
+    $domain = 'example.com';
+  } 
+  my $message_id = join('.', rand()*(2**32), $$, time). "\@$domain";
+
+  my $time = time;
+  my $message = MIME::Entity->build(
+    'From'        => $from_addr,
+    'To'          => join(', ', @to),
+    'Sender'      => $from_addr,
+    'Reply-To'    => $from_addr,
+    'Date'        => time2str("%a, %d %b %Y %X %z", $time),
+    'Subject'     => Encode::encode('MIME-Header', $subject),
+    'Message-ID'  => "<$message_id>",
+    'Encoding'    => '7bit',
+    'Type'        => 'multipart/related',
+  );
+
+  #$message->head->replace('Content-type',
+  #  'multipart/related; '.
+  #  'boundary="' . $message->head->multipart_boundary . '"; ' .
+  #  'type=multipart/alternative'
+  #);
+  
+  # XXX a facility to attach additional parts is necessary at some point
+  foreach my $part (@{ $email{mimeparts} }) {
+    warn "$me appending part ".$part->mime_type."\n" if $DEBUG;
+    $message->add_part( $part );
+  }
+
+  # effective To: address (not in headers)
+  push @to, $self->bcc_addr if $self->bcc_addr;
+  my $env_to = join(', ', @to);
+
+  my $cust_msg = FS::cust_msg->new({
+      'custnum'   => $cust_main->custnum,
+      'msgnum'    => $self->msgnum,
+      '_date'     => $time,
+      'env_from'  => $env_from,
+      'env_to'    => $env_to,
+      'header'    => $message->header_as_string,
+      'body'      => $message->body_as_string,
+      'error'     => '',
+      'status'    => 'prepared',
+      'msgtype'   => ($opt{'msgtype'} || ''),
+      'preview'   => $body, # html content only
+  });
+
+  return $cust_msg;
+}
+
+=item render OPTION => VALUE ...
+
+Fills in the template and renders it to a PDF document.  Returns the 
+name of the PDF file.
+
+Options are as for 'prepare', but 'from' and 'to' are meaningless.
+
+=cut
+
+# will also have options to set paper size, margins, etc.
+
+sub render {
+  my $self = shift;
+  eval "use PDF::WebKit";
+  die $@ if $@;
+  my %opt = @_;
+  my %hash = $self->prepare(%opt);
+  my $html = $hash{'html_body'};
+
+  # Graphics/stylesheets should probably go in /var/www on the Freeside 
+  # machine.
+  my $script_path = `/usr/bin/which freeside-wkhtmltopdf`;
+  chomp $script_path;
+  my $kit = PDF::WebKit->new(\$html); #%options
+  # hack to use our wrapper script
+  $kit->configure(sub { shift->wkhtmltopdf($script_path) });
+
+  $kit->to_pdf;
+}
+
+=item print OPTIONS
+
+Render a PDF and send it to the printer.  OPTIONS are as for 'render'.
+
+=cut
+
+sub print {
+  my( $self, %opt ) = @_;
+  do_print( [ $self->render(%opt) ], agentnum=>$opt{cust_main}->agentnum );
+}
+
+# helper sub for package dates
+my $ymd = sub { $_[0] ? time2str('%Y-%m-%d', $_[0]) : '' };
+
+# helper sub for money amounts
+my $money = sub { ($conf->money_char || '$') . sprintf('%.2f', $_[0] || 0) };
+
+# helper sub for usage-related messages
+my $usage_warning = sub {
+  my $svc = shift;
+  foreach my $col (qw(seconds upbytes downbytes totalbytes)) {
+    my $amount = $svc->$col; next if $amount eq '';
+    my $method = $col.'_threshold';
+    my $threshold = $svc->$method; next if $threshold eq '';
+    return [$col, $amount, $threshold] if $amount <= $threshold;
+    # this only returns the first one that's below threshold, if there are 
+    # several.
+  }
+  return ['', '', ''];
+};
+
+=item content LOCALE
+
+Returns the L<FS::template_content> object appropriate to LOCALE, if there 
+is one.  If not, returns the one with a NULL locale.
+
+=cut
+
+sub content {
+  my $self = shift;
+  my $locale = shift;
+  qsearchs('template_content', 
+            { 'msgnum' => $self->msgnum, 'locale' => $locale }) || 
+  qsearchs('template_content',
+            { 'msgnum' => $self->msgnum, 'locale' => '' });
+}
+
+=cut
+
+=item send_prepared CUST_MSG
+
+Takes the CUST_MSG object and sends it to its recipient. The "smtpmachine"
+configuration option will be used to find the outgoing mail server.
+
+=cut
+
+sub send_prepared {
+  my $self = shift;
+  my $cust_msg = shift or die "cust_msg required";
+
+  my $domain = 'example.com';
+  if ( $cust_msg->env_from =~ /\@([\w\.\-]+)/ ) {
+    $domain = $1;
+  }
+
+  my @to = split(/\s*,\s*/, $cust_msg->env_to);
+
+  my %smtp_opt = ( 'host' => $conf->config('smtpmachine'),
+                   'helo' => $domain );
+
+  my($port, $enc) = split('-', ($conf->config('smtp-encryption') || '25') );
+  $smtp_opt{'port'} = $port;
+  
+  my $transport;
+  if ( defined($enc) && $enc eq 'starttls' ) {
+    $smtp_opt{$_} = $conf->config("smtp-$_") for qw(username password);
+    $transport = Email::Sender::Transport::SMTP::TLS->new( %smtp_opt );
+  } else {
+    if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) {
+      $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password);     
+    } 
+    $smtp_opt{'ssl'} = 1 if defined($enc) && $enc eq 'tls';
+    $transport = Email::Sender::Transport::SMTP->new( %smtp_opt );
+  }
+
+  warn "$me sending message\n" if $DEBUG;
+  my $message = join("\n", $cust_msg->header, $cust_msg->body);
+  local $@;
+  eval {
+    sendmail( $message, { transport => $transport,
+                          from      => $cust_msg->env_from,
+                          to        => \@to })
+  };
+  my $error = '';
+  if(ref($@) and $@->isa('Email::Sender::Failure')) {
+    $error = $@->code.' ' if $@->code;
+    $error .= $@->message;
+  }
+  else {
+    $error = $@;
+  }
+
+  $cust_msg->set('error', $error);
+  $cust_msg->set('status', $error ? 'failed' : 'sent');
+  if ( $cust_msg->custmsgnum ) {
+    $cust_msg->replace;
+  } else {
+    $cust_msg->insert;
+  }
+
+  $error;
+}
+
+=back
+
+=cut
+
+# internal use only
+
+sub eviscerate {
+  # Every bit as pleasant as it sounds.
+  #
+  # We do this because Text::Template::Preprocess doesn't
+  # actually work.  It runs the entire template through 
+  # the preprocessor, instead of the code segments.  Which 
+  # is a shame, because Text::Template already contains
+  # the code to do this operation.
+  my $body = shift;
+  my (@outside, @inside);
+  my $depth = 0;
+  my $chunk = '';
+  while($body || $chunk) {
+    my ($first, $delim, $rest);
+    # put all leading non-delimiters into $first
+    ($first, $rest) =
+        ($body =~ /^((?:\\[{}]|[^{}])*)(.*)$/s);
+    $chunk .= $first;
+    # put a leading delimiter into $delim if there is one
+    ($delim, $rest) =
+      ($rest =~ /^([{}]?)(.*)$/s);
+
+    if( $delim eq '{' ) {
+      $chunk .= '{';
+      if( $depth == 0 ) {
+        push @outside, $chunk;
+        $chunk = '';
+      }
+      $depth++;
+    }
+    elsif( $delim eq '}' ) {
+      $depth--;
+      if( $depth == 0 ) {
+        push @inside, $chunk;
+        $chunk = '';
+      }
+      $chunk .= '}';
+    }
+    else {
+      # no more delimiters
+      if( $depth == 0 ) {
+        push @outside, $chunk . $rest;
+      } # else ? something wrong
+      last;
+    }
+    $body = $rest;
+  }
+  (\@outside, \@inside);
+}
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::Record>, schema.html from the base documentation.
+
+=cut
+
+1;
+
diff --git a/FS/FS/msg_template/http.pm b/FS/FS/msg_template/http.pm
new file mode 100644 (file)
index 0000000..9c4e68b
--- /dev/null
@@ -0,0 +1,159 @@
+package FS::msg_template::http;
+use base qw( FS::msg_template );
+
+use strict;
+use vars qw( $DEBUG $conf );
+
+# needed to talk to the external service
+use LWP::UserAgent;
+use HTTP::Request::Common;
+use JSON;
+
+# needed to manage prepared messages
+use FS::cust_msg;
+
+our $DEBUG = 1;
+our $me = '[FS::msg_template::http]';
+
+sub extension_table { 'msg_template_http' }
+
+=head1 NAME
+
+FS::msg_template::http - Send messages via a web service.
+
+=head1 DESCRIPTION
+
+FS::msg_template::http is a message processor in which the message is exported
+to a web service, at both the prepare and send stages.
+
+=head1 METHODS
+
+=cut
+
+sub check {
+  my $self = shift;
+  return 
+       $self->ut_textn('prepare_url')
+    || $self->ut_textn('send_url')
+    || $self->ut_textn('username')
+    || $self->ut_textn('password')
+    || $self->ut_anything('content')
+    || $self->SUPER::check;
+}
+
+sub prepare {
+
+  my( $self, %opt ) = @_;
+
+  my $json = JSON->new->canonical(1);
+
+  my $cust_main = $opt{'cust_main'}; # or die 'cust_main required';
+  my $object = $opt{'object'} or die 'object required';
+
+  my $hashref = $self->prepare_substitutions(%opt);
+
+  my $document = $json->decode( $self->content || '{}' );
+  $document = {
+    'msgname' => $self->msgname,
+    'msgtype' => $opt{'msgtype'},
+    %$document,
+    %$hashref
+  };
+  # put override content _somewhere_ so it can be used
+  if ( $opt{'override_content'} ) {
+    $document->{'content'} = $opt{'override_content'};
+  }
+
+  my $request_content = $json->encode($document);
+  warn "$me ".$self->prepare_url."\n" if $DEBUG;
+  warn "$request_content\n\n" if $DEBUG > 1;
+  my $ua = LWP::UserAgent->new;
+  my $request = POST(
+    $self->prepare_url,
+    'Content-Type' => 'application/json',
+    'Content' => $request_content,
+  );
+  if ( $self->username ) {
+    $request->authorization_basic( $self->username, $self->password );
+  }
+  my $response = $ua->request($request);
+  warn "$me received:\n" . $response->as_string . "\n\n" if $DEBUG;
+
+  my $cust_msg = FS::cust_msg->new({
+      'custnum'   => $cust_main->custnum,
+      'msgnum'    => $self->msgnum,
+      '_date'     => time,
+      'msgtype'   => ($opt{'msgtype'} || ''),
+  });
+
+  if ( $response->is_success ) {
+    $cust_msg->set(body => $response->decoded_content);
+    $cust_msg->set(status => 'prepared');
+  } else {
+    $cust_msg->set(status => 'failed');
+    $cust_msg->set(error => $response->decoded_content);
+  }
+
+  $cust_msg;
+}
+
+=item send_prepared CUST_MSG
+
+Takes the CUST_MSG object and sends it to its recipient.
+
+=cut
+
+sub send_prepared {
+  my $self = shift;
+  my $cust_msg = shift or die "cust_msg required";
+  # don't just fail if called as a class method
+  if (!ref $self) {
+    $self = $cust_msg->msg_template;
+  }
+
+  # use cust_msg->header for anything? we _could_...
+  my $request_content = $cust_msg->body;
+
+  warn "$me ".$self->send_url."\n" if $DEBUG;
+  warn "$request_content\n\n" if $DEBUG > 1;
+  my $ua = LWP::UserAgent->new;
+  my $request = POST(
+    $self->send_url,
+    'Content-Type' => 'application/json',
+    'Content' => $request_content,
+  );
+  if ( $self->username ) {
+    $request->authorization_basic( $self->username, $self->password );
+  }
+  my $response = $ua->request($request);
+  warn "$me received:\n" . $response->as_string . "\n\n" if $DEBUG;
+
+  my $error;
+  if ( $response->is_success ) {
+    $cust_msg->set(status => 'sent');
+  } else {
+    $error = $response->decoded_content;
+    $cust_msg->set(error => $error);
+    $cust_msg->set(status => 'failed');
+  }
+
+  if ( $cust_msg->custmsgnum ) {
+    $cust_msg->replace;
+  } else {
+    $cust_msg->insert;
+  }
+
+  $error;
+}
+
+=back
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::Record>, schema.html from the base documentation.
+
+=cut
+
+1;
index 4f6d2e7..430f00b 100644 (file)
@@ -35,11 +35,19 @@ Available options:
 
 table (required) - Table into which the records are inserted.
 
-num_col (optional) - Column in table which links to the primary key of the base table.  If not specified, it is assumed this has the same name.
-
-params (required) - Hashref of keys and values, often passed as C<scalar($cgi->Vars)> from a form.
-
-fields (required) - Arrayref of field names for each record in table.  Pulled from params as "pkeyNN_field" where pkey is table's primary key and NN is the entry's numeric identifier.
+fields (required) - Arrayref of the field names in the "many" table.
+
+params (required) - Hashref of keys and values, often passed as
+C<scalar($cgi->Vars)> from a form. This will be scanned for keys of the form
+"pkeyNN" (where pkey is the primary key column name, and NN is an integer).
+Each of these designates one record in the "many" table. The contents of
+that record will be taken from other parameters with the names
+"pkeyNN_myfield" (where myfield is one of the fields in the 'fields'
+array).
+
+num_col (optional) - Name of the foreign key column in the "many" table, which
+links to the primary key of the base table. If not specified, it is assumed
+this has the same name as in the base table.
 
 =cut
 
index d15f35b..9a1144c 100644 (file)
@@ -369,6 +369,7 @@ sub eventtable_labels {
     'cust_pkg'       => 'Package',
     'cust_bill'      => 'Invoice',
     'cust_main'      => 'Customer',
+    'cust_pay'       => 'Payment',
     'cust_pay_batch' => 'Batch payment',
     'cust_statement' => 'Statement',  #too general a name here? "Invoice group"?
     'svc_acct'       => 'Login service',
@@ -408,6 +409,7 @@ sub eventtable_pkey {
     'cust_main'      => 'custnum',
     'cust_bill'      => 'invnum',
     'cust_pkg'       => 'pkgnum',
+    'cust_pay'       => 'paynum',
     'cust_pay_batch' => 'paybatchnum',
     'cust_statement' => 'statementnum',
     'svc_acct'       => 'svcnum',
diff --git a/FS/FS/part_event/Action/http.pm b/FS/FS/part_event/Action/http.pm
new file mode 100644 (file)
index 0000000..b8715a7
--- /dev/null
@@ -0,0 +1,85 @@
+package FS::part_event::Action::http;
+
+use strict;
+use base qw( FS::part_event::Action );
+use LWP::UserAgent;
+use HTTP::Request::Common;
+use JSON::XS;
+use FS::Misc::DateTime qw( iso8601 );
+
+#sub description { 'Send an HTTP or HTTPS GET or POST request'; }
+sub description { 'Send an HTTP or HTTPS POST request'; }
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1,
+    'cust_pay'  => 1,
+  },
+}
+
+sub option_fields {
+  (
+    'method'        => { label => 'Method',
+                         type  => 'select',
+                         options => [qw( POST )], #GET )],
+                       },
+    'url'           => { label => 'URL',
+                         type  => 'text',
+                         size  => 120,
+                       },
+    'ssl_no_verify' => { label => 'Skip SSL certificate validation',
+                         type  => 'checkbox',
+                       },
+    'encoding'      => { label => 'Encoding',
+                         type  => 'select',
+                         options => [qw( JSON )], #XML, Form, etc.
+                       },
+    'content'       => { label => 'Content', #nneed better inline docs on format
+                         type  => 'textarea',
+                       },
+    #'response_error_param' => 'Response error parameter',
+  );
+}
+
+sub default_weight { 57; }
+
+our %content_type = (
+  'JSON' => 'application/json',
+);
+
+sub do_action {
+  my( $self, $object ) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my %content =
+    map {
+      /^\s*(\S+)\s+(.*)$/ or /()()/;
+      my( $field, $value_expression ) = ( $1, $2 );
+      my $value = eval $value_expression;
+      die $@ if $@;
+      ( $field, $value );
+    } split(/\n/, $self->option('content') );
+
+  my $content = encode_json( \%content );
+
+  my @lwp_opts = ();
+  push @lwp_opts, 'ssl_opts'=>{ 'verify_hostname'=>0 }
+    if $self->option('ssl_no_verify');
+  my $ua = LWP::UserAgent->new(@lwp_opts);
+
+  my $req = HTTP::Request::Common::POST(
+    $self->option('url'),
+    Content_Type => $content_type{ $self->option('encoding') },
+    Content      => $content,
+  );
+
+  my $response = $ua->request($req);
+
+  die $response->status_line if $response->is_error;
+
+  my $response_json = decode_json( $response->content );
+  die $response_json->{error} if $response_json->{error}; #XXX response_error_param
+
+}
+
+1;
index 60697c1..36fbe9a 100644 (file)
@@ -52,6 +52,7 @@ sub eventtable_hashref {
     { 'cust_main'      => 1,
       'cust_bill'      => 1,
       'cust_pkg'       => 1,
+      'cust_pay'       => 1,
       'cust_pay_batch' => 1,
       'cust_statement' => 1,
       'svc_acct'       => 1,
index 09b7756..6df9e84 100644 (file)
@@ -183,7 +183,8 @@ sub check {
     $self->ut_numbern('optionnum')
     || $self->ut_foreign_key('eventpart', 'part_event', 'eventpart' )
     || $self->ut_text('optionname')
-    || $self->ut_textn('optionvalue')
+    #|| $self->ut_textn('optionvalue')
+    || $self->ut_anything('optionvalue') #http.pm content has \n
   ;
   return $error if $error;
 
index 3180275..5de7d8e 100644 (file)
@@ -28,11 +28,15 @@ sub calc_recur {
 
 =head METHODS
 
-=item calc_discount
+=item calc_discount CUST_PKG, SDATE, DETAILS_ARRAYREF, PARAM_HASHREF
 
-Takes all the arguments of calc_recur.  Calculates and returns  the amount 
-by which to reduce the recurring fee; also increments months used on the 
-discount.
+Takes all the arguments of calc_recur.  Calculates and returns the amount 
+by which to reduce the charge; also increments months used on the discount.
+
+If there is a setup fee, this will be called once with 'setup_charge' => the
+setup fee amount (and should return the discount to be applied to the setup
+charge, if any), and again without it (for the recurring fee discount). 
+PARAM_HASHREF carries over between the two invocations.
 
 =cut
 
@@ -40,9 +44,9 @@ sub calc_discount {
   my($self, $cust_pkg, $sdate, $details, $param ) = @_;
   my $conf = new FS::Conf;
 
-  my $br = $self->base_recur_permonth($cust_pkg, $sdate);
-  $br += $param->{'override_charges'} if $param->{'override_charges'};
+  my $br = $self->base_recur($cust_pkg, $sdate);
+  $br += $param->{'override_charges'} * ($cust_pkg->part_pkg->freq || 0) if $param->{'override_charges'};
+
   my $tot_discount = 0;
   #UI enforces just 1 for now, will need ordering when they can be stacked
 
@@ -80,52 +84,125 @@ sub calc_discount {
     my $discount_left;
     my $discount = $cust_pkg_discount->discount;
     #UI enforces one or the other (for now?  probably for good)
+    # $chg_months: the number of months we are charging recur for
+    # $months: $chg_months or the months left on the discount, whchever is less
+
+    my $chg_months = $cust_pkg->part_pkg->freq || 1;
+    if ( defined($param->{'months'}) ) { # then override
+      $chg_months = $param->{'months'};
+    }
+
+    my $months = $chg_months;
+    if ( $discount->months ) {
+      $months = min( $chg_months,
+                     $discount->months - $cust_pkg_discount->months_used );
+    }
+
+    # $amount is now the (estimated) discount amount on the recurring charge.
+    # if it's a percent discount, that's base recur * percentage.
+
     my $amount = 0;
-    $amount += $discount->amount
-        if $cust_pkg->pkgpart == $param->{'real_pkgpart'};
-    $amount += sprintf('%.2f', $discount->percent * $br / 100 );
-    my $chg_months = defined($param->{'months'}) ?
-                      $param->{'months'} :
-                      $cust_pkg->part_pkg->freq;
-
-    my $months = $discount->months
-    ? min( $chg_months,
-      $discount->months - $cust_pkg_discount->months_used )
-    : $chg_months;
 
     if (defined $param->{'setup_charge'}) {
+
+        # we are calculating the setup discount.
+        # if this discount doesn't apply to setup fees, skip it.
+        # if it's a percent discount, set $amount = percent * setup_charge.
+        # if it's a flat amount discount for one month:
+        # - if the discount amount > setup_charge, then set it to setup_charge,
+        #   and set 'discount_left_recur' to the difference.
+        # - otherwise set it to just the discount amount.
+        # if it's a flat amount discount for other than one month:
+        # - skip the discount. unsure, leaving it alone for now.
+
         next unless $discount->setup;
 
+        $months = 0; # never count a setup discount as a month of discount
+                     # (the recur discount in the same month should do it)
+
         if ( $discount->percent > 0 ) {
-            $amount = sprintf('%.2f', $discount->percent * $param->{'setup_charge'} / 100 );
-            $months = 1;
-        } elsif ( $discount->amount > 0 && $discount->months == 1) {
-            $discount_left = $param->{'setup_charge'} - $discount->amount;
-            $amount = $param->{'setup_charge'} if $discount_left < 0;
-            $amount = $discount->amount if $discount_left >= 0;
-            $months = 1;
-                
+            $amount = $discount->percent * $param->{'setup_charge'} / 100;
+        } elsif ( $discount->amount > 0 && ($discount->months || 0) == 1) {
+            # apply the discount amount, up to a maximum of the setup charge
+            $amount = min($discount->amount, $param->{'setup_charge'});
+            $discount_left = sprintf('%.2f', $discount->amount - $amount);
             # transfer remainder of discount, if any, to recur
-            $param->{'discount_left_recur'}{$discount->discountnum} = 
-                0 - $discount_left if $discount_left < 0;
+            $param->{'discount_left_recur'}{$discount->discountnum} = $discount_left;
         } else {
+          # I guess we don't allow multiple-month flat amount discounts to
+          # apply to setup?
             next; 
         }
-    } elsif ( defined $param->{'discount_left_recur'}{$discount->discountnum}
-              && $param->{'discount_left_recur'}{$discount->discountnum} > 0
-            ) {
-        # use up transferred remainder of discount from setup
+
+    } else {
+      
+      # we are calculating a recurring fee discount. estimate the recurring
+      # fee:
+      # XXX it would be more accurate for calc_recur to just _tell us_ what
+      # it's going to charge
+
+      my $recur_charge = $br * ($cust_pkg->quantity || 1) * $chg_months / $self->freq;
+      # round this, because the real recur charge is rounded
+      $recur_charge = sprintf('%.2f', $recur_charge);
+
+      # if it's a percentage discount, calculate it based on that estimate.
+      # otherwise use the flat amount.
+      
+      if ( $discount->percent > 0 ) {
+        $amount = $recur_charge * $discount->percent / 100;
+      } elsif ( $discount->amount > 0
+                and $cust_pkg->pkgpart == $param->{'real_pkgpart'} ) {
+        $amount = $discount->amount * $months;
+      }
+
+      if ( exists $param->{'discount_left_recur'}{$discount->discountnum} ) {
+        # there is a discount_left_recur entry for this discountnum, so this
+        # is the second (recur) pass on the discount.  use up transferred
+        # remainder of discount from setup.
+        #
+        # note that discount_left_recur can now be zero.
         $amount = $param->{'discount_left_recur'}{$discount->discountnum};
         $param->{'discount_left_recur'}{$discount->discountnum} = 0;
-        $months = 1;
-    } elsif (    $discount->setup
-              && $discount->months == 1
-              && $discount->amount > 0
-            ) {
-        next;
-    }
+        $months = 1; # XXX really? not $chg_months?
+      }
+      #elsif (    $discount->setup
+      #          && ($discount->months || 0) == 1
+      #          && $discount->amount > 0
+      #        ) {
+      #    next;
+      #
+      #    RT #11512: bugfix to prevent applying flat discount to both setup
+      #    and recur. The original implementation ignored discount_left_recur
+      #    if it was zero, so if the setup fee used up the entire flat 
+      #    discount, the recurring charge would get to use the entire flat
+      #    discount also. This bugfix was a kludge. Instead, we now allow
+      #    discount_left_recur to be zero in that case, and then the available
+      #    recur discount is zero. 
+      #}
+
+      # transfer remainder of discount, if any, to setup
+      # this is used when the recur phase wants to add a setup fee
+      # (prorate_defer_bill): the "discount_left_setup" amount will
+      # be subtracted in _make_lines.
+      if ( $discount->setup && $discount->amount > 0
+          && ($discount->months || 0) != 1
+         )
+      {
+        # $amount is no longer permonth at this point! correct. very good.
+        $discount_left = $amount - $recur_charge; # backward, as above
+        if ( $discount_left > 0 ) {
+          $amount = $recur_charge;
+          $param->{'discount_left_setup'}{$discount->discountnum} = 
+            0 - $discount_left;
+        }
+      }
 
-    if ( ! defined $param->{'setup_charge'} ) {
+      # cap the discount amount at the recur charge
+      $amount = min($amount, $recur_charge);
+
+      # if this is the base pkgpart, schedule increment_months_used to run at
+      # the end of billing. (addon packages haven't been calculated yet, so
+      # don't let the discount expire during the billing process. RT#17045.)
       if ( $cust_pkg->pkgpart == $param->{'real_pkgpart'} ) {
         push @{ $param->{precommit_hooks} }, sub {
           my $error = $cust_pkg_discount->increment_months_used($months);
@@ -133,63 +210,22 @@ sub calc_discount {
         };
       }
 
-      $amount = min($amount, $br);
-      $amount *= $months;
     }
 
     $amount = sprintf('%.2f', $amount + 0.00000001 ); #so 1.005 rounds to 1.01
 
     next unless $amount > 0;
 
-    # transfer remainder of discount, if any, to setup
-    if ( $discount->setup && $discount->amount > 0
-        && (!$discount->months || $discount->months != 1)
-        && !defined $param->{'setup_charge'}
-       )
-    {
-      $discount_left = $br - $amount;
-      if ( $discount_left < 0 ) {
-        $amount = $br;
-        $param->{'discount_left_setup'}{$discount->discountnum} = 
-          0 - $discount_left;
-      }
-    }
-
     #record details in cust_bill_pkg_discount
     my $cust_bill_pkg_discount = new FS::cust_bill_pkg_discount {
       'pkgdiscountnum' => $cust_pkg_discount->pkgdiscountnum,
       'amount'         => $amount,
       'months'         => $months,
+      # XXX should have a 'setuprecur'
     };
     push @{ $param->{'discounts'} }, $cust_bill_pkg_discount;
     $tot_discount += $amount;
 
-    #add details on discount to invoice
-    # no longer! this is now done during rendering based on the existence
-    # of the cust_bill_pkg_discount record
-    #
-    #my $money_char = $conf->config('money_char') || '$';
-    #$months = sprintf('%.2f', $months) if $months =~ /\./;
-
-    #my $d = 'Includes ';
-    #my $format;
-
-    #if ( $months eq '1' ) {
-    #  $d .= "discount of $money_char$amount";
-    #  $d .= " each" if $cust_pkg->quantity > 1;
-    #  $format = 'Undiscounted amount: %s%.2f';
-    #} else {
-    #  $d .= 'setup ' if defined $param->{'setup_charge'};
-    #  $d .= 'discount of '. $discount->description_short;
-    #  $d .= " for $months months"
-    #    unless defined $param->{'setup_charge'};
-    #  $d .= ": $money_char$amount" if $discount->percent;
-    #  $format = 'Undiscounted monthly amount: %s%.2f';
-    #}
-
-    #push @$details, $d;
-    #push @$details, sprintf( $format, $money_char, $br );
-
   }
 
   sprintf('%.2f', $tot_discount);
index 83a80f5..c50cae0 100644 (file)
@@ -36,7 +36,7 @@ use base 'FS::part_pkg::flat';
   },
   'fieldorder' => [ 'cutoff_day', 'prorate_defer_bill', 'prorate_round_day', 'prorate_verbose' ],
   'freq' => 'm',
-  'weight' => 20,
+  'weight' => 23,
 );
 
 my %freq_max_days = ( # the length of the shortest period of each cycle type
index 79e64fb..206bea0 100644 (file)
@@ -105,7 +105,18 @@ sub calc_recur {
                                                       'AcctOutputOctets' )
                / BU;
 
-  my $total = $input + $output - $self->option('recur_included_total');
+  my $included_total = $self->option('recur_included_total') || 0;
+  my $addoncharge = 0;
+  foreach my $cust_pkg_usageprice ($cust_pkg->cust_pkg_usageprice) {
+    my $part_pkg_usageprice = $cust_pkg_usageprice->part_pkg_usageprice;
+    $included_total += $cust_pkg_usageprice->quantity * $part_pkg_usageprice->amount;
+    $addoncharge += $cust_pkg_usageprice->price;
+  }
+  my $raw_total = $input + $output;
+  push(@$details,sprintf( "%.3f %ss included, %.3f %ss used", $included_total, BA, $raw_total, BA ))
+    if $included_total;
+
+  my $total = $input + $output - $included_total;
   $total = 0 if $total < 0;
   $input = $input - $self->option('recur_included_input');
   $input = 0 if $input < 0;
@@ -153,7 +164,7 @@ sub calc_recur {
                    sprintf('%.1f', $hours). " hours: $hourscharge";
   }
 
-  my $charges = $hourscharge + $inputcharge + $outputcharge + $totalcharge;
+  my $charges = $hourscharge + $inputcharge + $outputcharge + $totalcharge + $addoncharge;
   if ( $self->option('global_cap') && $charges > $self->option('global_cap') ) {
     $charges = $self->option('global_cap');
     push @$details, "Usage charges capped at: $charges";
index 5c78e5f..3d821f5 100644 (file)
@@ -148,7 +148,7 @@ tie our %spectrum_labels, 'Tie::IxHash', (
   95 => 'Wireless Communications Service (WCS) Band',
   96 => 'Broadband Radio Service/Educational Broadband Service Band',
   97 => 'Satellite (e.g. L-band, Big LEO, Little LEO)',
-  98 => 'Unlicensed (including broadcast television “white spaces”) Bands',
+  98 => 'Unlicensed (including broadcast television "white spaces") Bands',
   99 => '600 MHz',
   100 => 'H Block',
   101 => 'Advanced Wireless Services (AWS) 3 Band',
index 9c3b1be..b33904e 100644 (file)
@@ -111,13 +111,46 @@ sub check {
     || $self->ut_enum('action', [ 'increment', 'set' ])
     || $self->ut_enum('target', [ 'svc_acct.totalbytes', 'svc_acct.seconds',
                                   'svc_conferencing.participants',
-                                  'svc_conferencing.confqualitynum'
+#                                  'svc_conferencing.confqualitynum',
+                                  'sqlradacct_hour.recur_included_total'
                                 ]
                      )
     || $self->ut_text('amount')
   ;
   return $error if $error;
 
+  #Check target against package
+  #UI doesn't currently prevent these from happing,
+  #so keep error messages informative
+  my $part_pkg = $self->part_pkg;
+  my $target = $self->target;
+  my $label = $self->target_info->{'label'};
+  my ($needs_svcdb, $needs_plan);
+  if ( $target =~ /^svc_acct.(\w+)$/ ) {
+    $needs_svcdb = 'svc_acct';
+  } elsif ( $target eq 'svc_conferencing.participants' ) {
+    $needs_svcdb = 'svc_conferencing';
+  } elsif ( $target =~ /^sqlradacct_hour.(\w+)$/ ) {
+    $needs_plan = 'sqlradacct_hour';
+  }
+  if ($needs_svcdb) {
+    my $has_svcdb = 0;
+    foreach my $pkg_svc ($part_pkg->pkg_svc) {
+      next unless $pkg_svc->quantity;
+      my $svcdb = $pkg_svc->part_svc->svcdb;
+      $has_svcdb = 1
+        if $svcdb eq $needs_svcdb;
+      last if $has_svcdb;
+    }
+    return "Usage pricing add-on \'$label\' can only be used on packages with at least one $needs_svcdb service.\n"
+      unless $has_svcdb;
+  }
+  if ($needs_plan) {
+    return "Usage pricing add-on \'$label\' can only be used on packages with pricing plan \'" . 
+           FS::part_pkg->plan_info->{$needs_plan}->{'shortname'} . "\'\n"
+      unless ref($part_pkg) eq 'FS::part_pkg::' . $needs_plan;
+  }
+
   $self->SUPER::check;
 }
 
@@ -147,10 +180,10 @@ sub targets {
     #'svc_acct.totalbytes' => { label      => 'Megabytes',
     #                           multiplier => 1048576,
     #                         },
-    'svc_acct.totalbytes' => { label      => 'Gigabytes',
+    'svc_acct.totalbytes' => { label      => 'Total Gigabytes',
                                multiplier => 1073741824,
                              },
-    'svc_acct.seconds' => { label      => 'Hours',
+    'svc_acct.seconds' => { label      => 'Total Hours',
                             multiplier => 3600,
                           },
     'svc_conferencing.participants' => { label     => 'Conference Participants',
@@ -160,6 +193,11 @@ sub targets {
   #  and then value comes from a select, not a text field
   #  'svc_conferencing.confqualitynum' => { label => 'Conference Quality',
   #                                        },
+
+    # this bypasses usual apply methods, handled entirely in sqlradacct_hour
+    'sqlradacct_hour.recur_included_total' => { label => 'Included Gigabytes',
+                                                multiplier => 1 }, #recur_included_total is stored in GB
   ;
 
   \%targets;
index df969a0..d7dd7bb 100644 (file)
@@ -10,10 +10,10 @@ use Time::Local;
 use Text::CSV_XS;
 use Date::Parse qw(str2time);
 use Business::CreditCard qw(cardtype);
-use FS::Misc qw(send_email); # for error notification
 use FS::Record qw( dbh qsearch qsearchs );
 use FS::Conf;
 use FS::cust_pay;
+use FS::Log;
 
 =head1 NAME
 
@@ -222,6 +222,8 @@ I<format> - an L<FS::pay_batch> module
 I<gateway> - an L<FS::payment_gateway> object for a batch gateway.  This 
 takes precedence over I<format>.
 
+I<no_close> - do not try to close batches
+
 Supported format keys (defined in the specified FS::pay_batch module) are:
 
 I<filetype> - required, can be CSV, fixed, variable, XML
@@ -456,26 +458,28 @@ sub import_results {
   } # foreach (@all_values)
 
   # decide whether to close batches that had payments posted
-  foreach my $batchnum (keys %target_batches) {
-    my $pay_batch = FS::pay_batch->by_key($batchnum);
-    my $close = 1;
-    if ( defined($close_condition) ) {
-      # Allow the module to decide whether to close the batch.
-      # $close_condition can also die() to abort the whole import.
-      $close = eval { $close_condition->($pay_batch) };
-      if ( $@ ) {
-        $dbh->rollback;
-        die $@;
+  if ( !$param->{no_close} ) {
+    foreach my $batchnum (keys %target_batches) {
+      my $pay_batch = FS::pay_batch->by_key($batchnum);
+      my $close = 1;
+      if ( defined($close_condition) ) {
+        # Allow the module to decide whether to close the batch.
+        # $close_condition can also die() to abort the whole import.
+        $close = eval { $close_condition->($pay_batch) };
+        if ( $@ ) {
+          $dbh->rollback;
+          die $@;
+        }
       }
-    }
-    if ( $close ) {
-      my $error = $pay_batch->set_status('R');
-      if ( $error ) {
-        $dbh->rollback if $oldAutoCommit;
-        return $error;
+      if ( $close ) {
+        my $error = $pay_batch->set_status('R');
+        if ( $error ) {
+          $dbh->rollback if $oldAutoCommit;
+          return $error;
+        }
       }
-    }
-  }
+    } # foreach $batchnum
+  } # if (!$param->{no_close})
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
   '';
@@ -563,8 +567,8 @@ sub import_from_gateway {
   );
 
   my @item_errors;
-  my $mail_on_error = $conf->config('batch-errors_to');
-  if ( $mail_on_error ) {
+  my $errors_not_fatal = $conf->config('batch-errors_not_fatal');
+  if ( $errors_not_fatal ) {
     # construct error trap
     $proc_opt{'on_parse_error'} = sub {
       my ($self, $line, $error) = @_;
@@ -797,15 +801,10 @@ sub import_from_gateway {
       "Errors during batch import: ".scalar(@item_errors),
       @item_errors
     );
-    if ( $mail_on_error ) {
-      my $subject = "Batch import errors"; #?
-      my $body = "Import from gateway ".$gateway->label."\n".$error_text;
-      send_email(
-        to      => $mail_on_error,
-        from    => $conf->invoice_from_full(),
-        subject => $subject,
-        body    => $body,
-      );
+    if ( $errors_not_fatal ) {
+      my $message = "Import from gateway ".$gateway->label." errors: ".$error_text;
+      my $log = FS::Log->new('FS::pay_batch::import_from_gateway');
+      $log->error($message);
     } else {
       # Bail out.
       $dbh->rollback if $oldAutoCommit;
index 53f8108..b013678 100644 (file)
@@ -5,6 +5,7 @@ use vars qw(@ISA %import_info %export_info $name);
 use Date::Format 'time2str';
 use FS::Conf;
 use Encode 'encode';
+use feature 'state';
 
 my $conf;
 my ($client_num, $shortname, $longname, $trans_code, $testmode, $i, $declined, $totaloffset);
@@ -30,9 +31,10 @@ $name = 'RBC';
   'filetype'    => 'fixed',
   #this only really applies to Debit Detail, but we otherwise only need first char
   'formatre'    => 
-  '^(.).{18}(.{4}).{3}(.).{11}(.{19}).{6}(.{30}).{17}(.{9})(.{18}).{6}(.{14}).{23}(.).{9}\r?$',
+  '^(.).{3}(.{10}).{5}(.{4}).{3}(.).{11}(.{19}).{6}(.{30}).{17}(.{9})(.{18}).{6}(.{14}).{23}(.).{9}\r?$',
   'fields' => [ qw(
     recordtype
+    clientnum
     batchnum
     subtype
     paybatchnum
@@ -43,15 +45,28 @@ $name = 'RBC';
     status
     ) ],
   'hook' => sub {
-      my $hash = shift;
-      $hash->{'paid'} = sprintf("%.2f", $hash->{'paid'} / 100 );
-      $hash->{'_date'} = time;
-      $hash->{'payinfo'} =~ s/^(\S+).*/$1/; # these often have trailing spaces
-      $hash->{'payinfo'} = $hash->{'payinfo'} . '@' . $hash->{'bank'};
+    # pull client_num from config and check it against what's in the batch
+    state $clientnum ||= do {
+      my $conf = FS::Conf->new;
+      my @config = $conf->config("batchconfig-RBC");
+      $config[0];
+    };
+
+    my $hash = shift;
+    $hash->{'paid'} = sprintf("%.2f", $hash->{'paid'} / 100 );
+    $hash->{'_date'} = time;
+    $hash->{'payinfo'} =~ s/^(\S+).*/$1/; # these often have trailing spaces
+    $hash->{'payinfo'} = $hash->{'payinfo'} . '@' . $hash->{'bank'};
+
+    if ( $clientnum and $hash->{clientnum} ne $clientnum ) {
+      die "RBC client number in batch (".$hash->{clientnum}.") does not ".
+        "match configuration.\n";
+    }
+    '';
   },
   'approved'    => sub { 
       my $hash = shift;
-      $hash->{'status'} eq ' '
+      ($hash->{'status'} eq ' ') || ($hash->{'status'} eq 'W');
   },
   'declined'    => sub {
       my $hash = shift;
@@ -112,12 +127,6 @@ $name = 'RBC';
           if $hash->{'status'} eq ' '; #false laziness with 'approved' above
         return 1;
       }
-      #skipping W for now (maybe it should be declined?)
-      if ($hash->{'status'} eq 'W') {
-        #file counts this as part of total, but we skip
-        $totaloffset += sprintf("%.2f", $hash->{'paid'} / 100 );
-        return 1;
-      }
       return 
         ($hash->{'recordtype'} eq '3') || #Account Trailer Record, concludes returned items
         ($hash->{'subtype'} ne '0'); #error messages, etc, too late to apply to previous entry
index c66e3bc..6b96bbe 100644 (file)
@@ -239,7 +239,11 @@ sub payby_payinfo_pretty {
   my $locale = shift;
   my $lh = FS::L10N->get_handle($locale);
   if ( $self->payby eq 'CARD' ) {
-    $lh->maketext('Card #') . $self->paymask;
+    if ($self->paymask =~ /tokenized/) {
+      $lh->maketext('Tokenized Card');
+    } else {
+      $lh->maketext('Card #') . $self->paymask;
+    }
   } elsif ( $self->payby eq 'CHEK' ) {
 
     #false laziness w/view/cust_main/payment_history.html::translate_payinfo
index 1b52ac4..67d124d 100644 (file)
@@ -97,6 +97,10 @@ Optional link to customer (see L<FS::cust_main>).
 Secure flag, 'Y' indicates that when using encryption, the job needs to be
 run on a machine with the private key.
 
+=item usernum
+
+For access_user that created the job
+
 =cut
 
 =back
@@ -151,6 +155,8 @@ sub insert {
 
   $self->custnum( $args{'custnum'} ) if $args{'custnum'};
 
+  $self->usernum($FS::CurrentUser::CurrentUser->usernum) unless $self->usernum;
+
   my $error = $self->SUPER::insert;
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
@@ -235,6 +241,7 @@ sub check {
     || $self->ut_enum('status',['', qw( new locked failed done )])
     || $self->ut_anything('statustext')
     || $self->ut_numbern('svcnum')
+    || $self->ut_foreign_keyn('usernum', 'access_user', 'usernum')
   ;
   return $error if $error;
 
@@ -357,6 +364,21 @@ sub update_statustext {
   #'';
 }
 
+# not needed in 4
+#=item access_user
+#
+#Returns FS::access_user object (if any) associated with this user.
+#
+#Returns nothing if not found.
+#
+#=cut
+#
+#sub access_user {
+#  my $self = shift;
+#  my $usernum = $self->usernum || return ();
+#  return qsearchs('access_user',{ 'usernum' => $usernum }) || ();
+#}
+
 =back
 
 =head1 SUBROUTINES
index 8ee9a83..d26d116 100644 (file)
@@ -469,8 +469,8 @@ sub process {
     warn "$rate replacing $old (". $param->{'ratenum'}. ")\n" if $DEBUG;
 
     my @param = ( 'job'=>$job );
-    push @param, 'rate_detail'=>\@rate_detail
-      unless $param->{'preserve_rate_detail'};
+    
+    $rate->default_detailnum($old->default_detailnum);
 
     $error = $rate->replace( $old, @param );
 
diff --git a/FS/FS/report_batch.pm b/FS/FS/report_batch.pm
new file mode 100644 (file)
index 0000000..64412df
--- /dev/null
@@ -0,0 +1,321 @@
+package FS::report_batch;
+use base qw( FS::Record );
+
+use strict;
+use FS::Record qw( qsearch qsearchs dbdef );
+use FS::msg_template;
+use FS::cust_main;
+use FS::Misc::DateTime qw(parse_datetime);
+use FS::Mason qw(mason_interps);
+use URI::Escape;
+use HTML::Defang;
+
+our $DEBUG = 0;
+
+=head1 NAME
+
+FS::report_batch - Object methods for report_batch records
+
+=head1 SYNOPSIS
+
+  use FS::report_batch;
+
+  $record = new FS::report_batch \%hash;
+  $record = new FS::report_batch { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::report_batch object represents an order to send a batch of reports to
+their respective customers or other contacts.  FS::report_batch inherits from
+FS::Record.  The following fields are currently supported:
+
+=over 4
+
+=item reportbatchnum
+
+primary key
+
+=item reportname
+
+The name of the report, which will be the same as the file name (minus any
+directory names). There's an enumerated set of these; you can't use just any
+report.
+
+=item send_date
+
+The date the report was sent.
+
+=item agentnum
+
+The agentnum to limit the report to, if any.
+
+=item sdate
+
+The start date of the report period.
+
+=item edate
+
+The end date of the report period.
+
+=item usernum
+
+The user who ordered the report.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new report batch.  To add the record to the database, see L<"insert">.
+
+=cut
+
+sub table { 'report_batch'; }
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=item delete
+
+Deletes this record from the database.
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=item check
+
+Checks all fields to make sure this is a valid record.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('reportbatchnum')
+    || $self->ut_text('reportname')
+    || $self->ut_numbern('agentnum')
+    || $self->ut_numbern('sdate')
+    || $self->ut_numbern('edate')
+    || $self->ut_numbern('usernum')
+  ;
+  return $error if $error;
+
+  $self->set('send_date', time);
+
+  $self->SUPER::check;
+}
+
+=back
+
+=head1 SUBROUTINES
+
+=over 4
+
+=item process_send_report JOB, PARAMS
+
+Takes a hash of PARAMS, determines all contacts who need to receive a report,
+and sends it to them. On completion, creates and stores a report_batch record.
+JOB is a queue job to receive status messages.
+
+PARAMS can include:
+
+- reportname: the name of the report (listed in the C<%sendable_reports> hash).
+Required.
+- msgnum: the L<FS::msg_template> to use for this report. Currently the
+content of the template is ignored, but the subject line and From/Bcc addresses
+are still used. Required.
+- agentnum: the agent to limit the report to.
+- beginning, ending: the date range to run the report, as human-readable 
+dates (I<not> unix timestamps).
+
+=cut
+
+# trying to keep this data-driven, with parameters that tell how the report is
+# to be handled rather than callbacks.
+# - path: where under the document root the report is located
+# - domain: which table to query for objects on which the report is run.
+#   Each record in that table produces one report.
+# - cust_main: the method on that object that returns its linked customer (to
+#   which the report will be sent). If the table has a 'custnum' field, this
+#   can be omitted.
+our %sendable_reports = (
+  'sales_commission_pkg' => {
+    'name'      => 'Sales commission per package',
+    'path'      => '/search/sales_commission_pkg.html',
+    'domain'    => 'sales',
+    'cust_main' => 'sales_cust_main',
+  },
+);
+
+sub process_send_report {
+  my $job = shift;
+  my $param = shift;
+
+  my $msgnum = $param->{'msgnum'};
+  my $template = FS::msg_template->by_key($msgnum)
+    or die "msg_template $msgnum not found\n";
+
+  my $reportname = $param->{'reportname'};
+  my $info = $sendable_reports{$reportname}
+    or die "don't know how to send report '$reportname'\n";
+
+  # the most important thing: which report is it?
+  my $path = $info->{'path'};
+
+  # find all targets for the report:
+  # - those matching the agentnum if there is one.
+  # - those that aren't disabled.
+  my $domain = $info->{domain};
+  my $dbt = dbdef->table($domain);
+  my $hashref = {};
+  if ( $param->{'agentnum'} and $dbt->column('agentnum') ) {
+    $hashref->{'agentnum'} = $param->{'agentnum'};
+  }
+  if ( $dbt->column('disabled') ) {
+    $hashref->{'disabled'} = '';
+  }
+  my @records = qsearch($domain, $hashref);
+  my $num_targets = scalar(@records);
+  return if $num_targets == 0;
+  my $sent = 0;
+
+  my $outbuf;
+  my ($fs_interp) = mason_interps('standalone', 'outbuf' => \$outbuf);
+  # if generating the report fails, we want to capture the error and exit,
+  # not send it.
+  $fs_interp->error_mode('fatal');
+  $fs_interp->error_format('brief');
+
+  # we have to at least have an RT::Handle
+  require RT;
+  RT::LoadConfig();
+  RT::Init();
+
+  # hold onto all the reports until we're sure they generated correctly.
+  my %cust_main;
+  my %report_content;
+
+  # grab the stylesheet
+  ### note: if we need the ability to support different stylesheets, this
+  ### is the place to put it in
+  eval { $fs_interp->exec('/elements/freeside.css') };
+  die "couldn't load stylesheet via Mason: $@\n" if $@;
+  my $stylesheet = $outbuf;
+
+  my $pkey = $dbt->primary_key;
+  foreach my $rec (@records) {
+
+    $job->update_statustext(int( 100 * $sent / $num_targets ));
+    my $pkey_val = $rec->get($pkey); # e.g. sales.salesnum
+
+    # find the customer we're sending to, and their email
+    my $cust_main;
+    if ( $info->{'cust_main'} ) {
+      my $cust_method = $info->{'cust_main'};
+      $cust_main = $rec->$cust_method;
+    } elsif ( $rec->custnum ) {
+      $cust_main = FS::cust_main->by_key($rec->custnum);
+    } else {
+      warn "$pkey = $pkey_val has no custnum; not sending report\n";
+      next;
+    }
+    my @email = $cust_main->invoicing_list_emailonly;
+    if (!@email) {
+      warn "$pkey = $pkey_val has no email destinations\n" if $DEBUG;
+      next;
+    }
+
+    # params to send to the report (as if from the user's browser)
+    my @report_param = ( # maybe list these in $info
+      agentnum  => $param->{'agentnum'},
+      beginning => $param->{'beginning'},
+      ending    => $param->{'ending'},
+      $pkey     => $pkey_val,
+      _type     => 'html-print',
+    );
+
+    # build a query string
+    my $query_string = '';
+    while (@report_param) {
+      $query_string .= uri_escape(shift @report_param)
+                    .  '='
+                    .  uri_escape(shift @report_param);
+      $query_string .= ';' if @report_param;
+    }
+    warn "$path?$query_string\n\n" if $DEBUG;
+
+    # run the report!
+    $FS::Mason::Request::QUERY_STRING = $query_string;
+    $FS::Mason::Request::FSURL = '';
+    $outbuf = '';
+    eval { $fs_interp->exec($path) };
+    die "creating report for $pkey = $pkey_val: $@" if $@;
+
+    # make some adjustments to the report
+    my $html_defang;
+    $html_defang = HTML::Defang->new(
+      url_callback      => sub { 1 }, # strip all URLs (they're not accessible)
+      tags_to_callback  => [ 'body' ], # and after the BODY tag...
+      tags_callback     => sub {
+        my $isEndTag = $_[4];
+        $html_defang->add_to_output("\n<style>\n$stylesheet\n</style>\n")
+          unless $isEndTag;
+      },
+    );
+    $outbuf = $html_defang->defang($outbuf);
+
+    $cust_main{ $cust_main->custnum } = $cust_main;
+    $report_content{ $cust_main->custnum } = $outbuf;
+  } # foreach $rec
+
+  $job->update_statustext('Sending reports...');
+  foreach my $custnum (keys %cust_main) {
+    # create an email message with the report as body
+    # change this when backporting to 3.x
+    $template->send(
+      cust_main         => $cust_main{$custnum},
+      object            => $cust_main{$custnum},
+      msgtype           => 'report',
+      override_content  => $report_content{$custnum},
+    );
+  }
+
+  my $self = FS::report_batch->new({
+    reportname  => $param->{'reportname'},
+    agentnum    => $param->{'agentnum'},
+    sdate       => parse_datetime($param->{'beginning'}),
+    edate       => parse_datetime($param->{'ending'}),
+    usernum     => $job->usernum,
+    msgnum      => $param->{'msgnum'},
+  });
+  my $error = $self->insert;
+  warn "error recording completion of report: $error\n" if $error;
+
+}
+
+=head1 SEE ALSO
+
+L<FS::Record>
+
+=cut
+
+1;
+
index 2555b9e..d677679 100644 (file)
@@ -27,7 +27,13 @@ sub tower_sector_sql {
       my $in = join(',', map { /^(\d+)$/ ? $1 : () } @$value);
       my @orwhere;
       push @orwhere, "tower_sector.$field IN ($in)" if $in;
-      push @orwhere, "tower_sector.$field IS NULL" if grep /^none$/, @$value;
+      if ( grep /^none$/, @$value ) {
+        # then allow this field to be null
+        push @orwhere, "tower_sector.$field IS NULL";
+        # and if this field is the sector, also allow the default sector
+        # on the tower
+        push @orwhere, "sectorname = '_default'" if $field eq 'sectornum';
+      }
       push @where, '( '.join(' OR ', @orwhere).' )';
     }
     elsif ( $value =~ /^(\d+)$/ ) {
index 0181b1e..f307033 100644 (file)
@@ -17,8 +17,7 @@ use vars qw( $DEBUG $me $conf $skip_fuzzyfiles
              $username_slash $username_equals $username_pound
              $username_exclamation
              $password_noampersand $password_noexclamation
-             $warning_template $warning_from $warning_subject $warning_mimetype
-             $warning_cc
+             $warning_msgnum
              $smtpmachine
              $radius_password $radius_ip
              $dirhash
@@ -90,22 +89,7 @@ FS::UID->install_callback( sub {
   $password_noampersand = $conf->exists('password-noexclamation');
   $password_noexclamation = $conf->exists('password-noexclamation');
   $dirhash = $conf->config('dirhash') || 0;
-  if ( $conf->exists('warning_email') ) {
-    $warning_template = new Text::Template (
-      TYPE   => 'ARRAY',
-      SOURCE => [ map "$_\n", $conf->config('warning_email') ]
-    ) or warn "can't create warning email template: $Text::Template::ERROR";
-    $warning_from = $conf->config('warning_email-from'); # || 'your-isp-is-dum'
-    $warning_subject = $conf->config('warning_email-subject') || 'Warning';
-    $warning_mimetype = $conf->config('warning_email-mimetype') || 'text/plain';
-    $warning_cc = $conf->config('warning_email-cc');
-  } else {
-    $warning_template = '';
-    $warning_from = '';
-    $warning_subject = '';
-    $warning_mimetype = '';
-    $warning_cc = '';
-  }
+  $warning_msgnum = $conf->config('threshold_warning_msgnum');
   $smtpmachine = $conf->config('smtpmachine');
   $radius_password = $conf->config('radius-password') || 'Password';
   $radius_ip = $conf->config('radius-ip') || 'Framed-IP-Address';
@@ -737,83 +721,8 @@ sub insert {
           my $msg_template = qsearchs('msg_template', { msgnum => $msgnum });
           $error = $msg_template->send('cust_main' => $cust_main,
                                        'object'    => $self);
+          #should this do something on error?
         }
-        else { #!$msgnum
-          my ($to,$welcome_template,$welcome_from,$welcome_subject,$welcome_subject_template,$welcome_mimetype)
-            = ('','','','','','');
-
-          if ( $conf->exists('welcome_email', $agentnum) ) {
-            $welcome_template = new Text::Template (
-              TYPE   => 'ARRAY',
-              SOURCE => [ map "$_\n", $conf->config('welcome_email', $agentnum) ]
-            ) or warn "can't create welcome email template: $Text::Template::ERROR";
-            $welcome_from = $conf->config('welcome_email-from', $agentnum);
-              # || 'your-isp-is-dum'
-            $welcome_subject = $conf->config('welcome_email-subject', $agentnum)
-              || 'Welcome';
-            $welcome_subject_template = new Text::Template (
-              TYPE   => 'STRING',
-              SOURCE => $welcome_subject,
-            ) or warn "can't create welcome email subject template: $Text::Template::ERROR";
-            $welcome_mimetype = $conf->config('welcome_email-mimetype', $agentnum)
-              || 'text/plain';
-          }
-          if ( $welcome_template ) {
-            my $to = join(', ', grep { $_ !~ /^(POST|FAX)$/ } $cust_main->invoicing_list );
-            if ( $to ) {
-
-              my %hash = (
-                           'custnum'  => $self->custnum,
-                           'username' => $self->username,
-                           'password' => $self->_password,
-                           'first'    => $cust_main->first,
-                           'last'     => $cust_main->getfield('last'),
-                           'pkg'      => $cust_pkg->part_pkg->pkg,
-                         );
-              my $wqueue = new FS::queue {
-                'svcnum' => $self->svcnum,
-                'job'    => 'FS::svc_acct::send_email'
-              };
-              my $error = $wqueue->insert(
-                'to'       => $to,
-                'from'     => $welcome_from,
-                'subject'  => $welcome_subject_template->fill_in( HASH => \%hash, ),
-                'mimetype' => $welcome_mimetype,
-                'body'     => $welcome_template->fill_in( HASH => \%hash, ),
-              );
-              if ( $error ) {
-                $dbh->rollback if $oldAutoCommit;
-                return "error queuing welcome email: $error";
-              }
-
-              if ( $options{'depend_jobnum'} ) {
-                warn "$me depend_jobnum found; adding to welcome email dependancies"
-                  if $DEBUG;
-                if ( ref($options{'depend_jobnum'}) ) {
-                  warn "$me adding jobs ". join(', ', @{$options{'depend_jobnum'}} ).
-                       "to welcome email dependancies"
-                    if $DEBUG;
-                  push @jobnums, @{ $options{'depend_jobnum'} };
-                } else {
-                  warn "$me adding job $options{'depend_jobnum'} ".
-                       "to welcome email dependancies"
-                    if $DEBUG;
-                  push @jobnums, $options{'depend_jobnum'};
-                }
-              }
-
-              foreach my $jobnum ( @jobnums ) {
-                my $error = $wqueue->depend_insert($jobnum);
-                if ( $error ) {
-                  $dbh->rollback if $oldAutoCommit;
-                  return "error queuing welcome email job dependancy: $error";
-                }
-              }
-
-            }
-
-          } # if $welcome_template
-        } # if !$msgnum
     }
   } # if $cust_pkg
 
@@ -2119,23 +2028,17 @@ sub _op_usage {
     }
   }
 
-  if ($warning_template && &{$op2warncondition{$op}}($self, $column, $amount)) {
+  if ($warning_msgnum && &{$op2warncondition{$op}}($self, $column, $amount)) {
     my $wqueue = new FS::queue {
       'svcnum' => $self->svcnum,
       'job'    => 'FS::svc_acct::reached_threshold',
     };
 
-    my $to = '';
-    if ($op eq '-'){
-      $to = $warning_cc if &{$op2condition{$op}}($self, $column, $amount);
-    }
-
     # x_threshold race
     my $error = $wqueue->insert(
       'svcnum' => $self->svcnum,
       'op'     => $op,
-      'column' => $column,
-      'to'     => $to,
+      'column' => $column
     );
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
@@ -2834,32 +2737,6 @@ sub _search_svc {
 
 =over 4
 
-=item send_email
-
-This is the FS::svc_acct job-queue-able version.  It still uses
-FS::Misc::send_email under-the-hood.
-
-=cut
-
-sub send_email {
-  my %opt = @_;
-
-  eval "use FS::Misc qw(send_email)";
-  die $@ if $@;
-
-  $opt{mimetype} ||= 'text/plain';
-  $opt{mimetype} .= '; charset="iso-8859-1"' unless $opt{mimetype} =~ /charset/;
-
-  my $error = send_email(
-    'from'         => $opt{from},
-    'to'           => $opt{to},
-    'subject'      => $opt{subject},
-    'content-type' => $opt{mimetype},
-    'body'         => [ map "$_\n", split("\n", $opt{body}) ],
-  );
-  die $error if $error;
-}
-
 =item check_and_rebuild_fuzzyfiles
 
 =cut
@@ -2973,46 +2850,33 @@ sub reached_threshold {
     my $error = $svc_acct->replace;
     die $error if $error; # email next time, i guess
 
-    if ( $warning_template ) {
-      eval "use FS::Misc qw(send_email)";
-      die $@ if $@;
+    if ( $warning_msgnum ) {
 
-      my $cust_pkg  = $svc_acct->cust_svc->cust_pkg;
-      my $cust_main = $cust_pkg->cust_main;
+      my $msg_template = qsearchs('msg_template',{ msgnum => $warning_msgnum });
+      die "Could not load template for threshold_warning_msgnum ($warning_msgnum)" unless $msg_template;
 
-      my $to = join(', ', grep { $_ !~ /^(POST|FAX)$/ } 
-                               $cust_main->invoicing_list,
-                               ($opt{'to'} ? $opt{'to'} : ())
-                   );
-
-      my $mimetype = $warning_mimetype;
-      $mimetype .= '; charset="iso-8859-1"' unless $opt{mimetype} =~ /charset/;
-
-      my $body       =  $warning_template->fill_in( HASH => {
-                        'custnum'   => $cust_main->custnum,
-                        'username'  => $svc_acct->username,
-                        'password'  => $svc_acct->_password,
-                        'first'     => $cust_main->first,
-                        'last'      => $cust_main->getfield('last'),
-                        'pkg'       => $cust_pkg->part_pkg->pkg,
-                        'column'    => $opt{'column'},
-                        'amount'    => $opt{'column'} =~/bytes/
-                                       ? FS::UI::bytecount::display_bytecount($svc_acct->getfield($opt{'column'}))
-                                       : $svc_acct->getfield($opt{'column'}),
-                        'threshold' => $opt{'column'} =~/bytes/
-                                       ? FS::UI::bytecount::display_bytecount($threshold)
-                                       : $threshold,
-                      } );
-
-
-      my $error = send_email(
-        'from'         => $warning_from,
-        'to'           => $to,
-        'subject'      => $warning_subject,
-        'content-type' => $mimetype,
-        'body'         => [ map "$_\n", split("\n", $body) ],
+      my $cust_main = $svc_acct->cust_svc->cust_pkg->cust_main;
+
+      my $to = join(', ', $cust_main->invoicing_list_emailonly );
+
+      my $error = $msg_template->send(
+        cust_main     => $cust_main,
+        object        => $svc_acct,
+        to            => $to,
+        substitutions => {
+          # have to override these, because we changed threshold above
+          'column'    => $opt{'column'},
+          'amount'    => $opt{'column'} =~/bytes/
+                         ? FS::UI::bytecount::display_bytecount($svc_acct->getfield($opt{'column'}))
+                         : $svc_acct->getfield($opt{'column'}),
+          'threshold' => $opt{'column'} =~/bytes/
+                         ? FS::UI::bytecount::display_bytecount($threshold)
+                         : $threshold,
+        },
       );
-      die $error if $error;
+
+      die "Error sending threshold warning email: $error" if $error;
+
     }
   }else{
     die "unknown op: " . $opt{'op'};
index 1094968..c6fe243 100644 (file)
@@ -2328,7 +2328,7 @@ EOF
   my $dropstring = '%%%FREESIDE_CACHE%%%/cache.'. $FS::UID::datasrc. '/report.';
   $reportname =~ s/^$dropstring//;
 
-  my $reporturl = "%%%ROOTURL%%%/misc/queued_report?report=$reportname";
+  my $reporturl = "%%%ROOTURL%%%/misc/queued_report.html?report=$reportname";
   die "<a href=$reporturl>view</a>\n";
 
 }
diff --git a/FS/FS/template_image.pm b/FS/FS/template_image.pm
new file mode 100644 (file)
index 0000000..e7f4bab
--- /dev/null
@@ -0,0 +1,222 @@
+package FS::template_image;
+use base qw( FS::Agent_Mixin FS::Record );
+
+use strict;
+use FS::Record qw( qsearchs );
+use File::Slurp qw( slurp );
+use MIME::Base64 qw( encode_base64 );
+
+my %ext_to_type = (
+  'jpeg' => 'image/jpeg',
+  'jpg'  => 'image/jpeg',
+  'png'  => 'image/png',
+  'gif'  => 'image/gif',
+);
+
+=head1 NAME
+
+FS::template_image - Object methods for template_image records
+
+=head1 SYNOPSIS
+
+  use FS::template_image;
+
+  $record = new FS::template_image {
+              'name'      => 'logo',
+              'agentnum'  => $agentnum,
+              'base64'    => encode_base64($rawdata),
+              'mime_type' => 'image/jpg',
+  };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::template_image object represents an uploaded image for insertion into templates.
+FS::template_image inherits from FS::Record.  The following fields are currently supported:
+
+=over 4
+
+=item imgnum - primary key
+
+=item name - unique name, for selecting/editing images
+
+=item agentnum - image agent
+
+=item mime-type - image mime-type
+
+=item base64 - base64-encoded raw contents of image file
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new object.  To add the object to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'template_image'; }
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid example.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('imgnum','agentnum')
+    || $self->ut_text('name','mime-type')
+    || $self->ut_anything('base64')
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+=item src
+
+Returns a data url for this image, incorporating mime_type & base64
+
+=cut
+
+sub src {
+  my $self = shift;
+  'data:'
+  . $self->mime_type
+  . ';base64,'
+  . $self->base64;
+}
+
+=item html
+
+Returns html for a basic img tag for this image (no attributes)
+
+=cut
+
+sub html {
+  my $self = shift;
+  '<IMG SRC="'
+  . $self->src
+  . '">';
+}
+
+=item process_image_delete
+
+Process for deleting an image.  Run as a job using L<FS::queue>.
+
+=cut
+
+sub process_image_delete {
+  my $job = shift;
+  my $param = shift;
+  my $template_image = qsearchs('template_image',{ 'imgnum' => $param->{'imgnum'} })
+    or die "Could not load template_image";
+  my $error = $template_image->delete;
+  die $error if $error;
+  '';
+}
+
+=item process_image_upload
+
+Process for uploading an image.  Run as a job using L<FS::queue>.
+
+=cut
+
+sub process_image_upload {
+  my $job = shift;
+  my $param = shift;
+
+  my $files = $param->{'uploaded_files'}
+    or die "No files provided.\n";
+
+  my (%files) = map { /^(\w+):([\.\w]+)$/ ? ($1,$2):() } split /,/, $files;
+
+  my $dir = '%%%FREESIDE_CACHE%%%/cache.'. $FS::UID::datasrc. '/';
+  my $file = $dir. $files{'file'};
+
+  my $type;
+  if ( $file =~ /\.(\w+)$/i ) {
+    my $ext = lc($1);
+    die "Unrecognized file extension $ext"
+      unless $ext_to_type{$ext};
+    $type = $ext_to_type{$ext};
+  } else {
+    die "Cannot upload image file without extension"
+  }
+
+  my $template_image = new FS::template_image {
+    'name'   => $param->{'name'},
+    'mime_type' => $type,
+    'agentnum'  => $param->{'agentnum'},
+    'base64'    => encode_base64( slurp($file, binmode => ':raw'), '' ),
+  };
+  my $error = $template_image->insert();
+  die $error if $error;
+  unlink $file;
+  '';
+
+}
+
+=back
+
+=head1 BUGS
+
+Will be described here once found.
+
+=head1 SEE ALSO
+
+L<FS::Record>
+
+=cut
+
+1;
+
index 5b73b72..5041ccd 100644 (file)
@@ -850,3 +850,11 @@ FS/part_svc_link.pm
 t/part_svc_link.t
 FS/access_user_log.pm
 t/access_user_log.t
+FS/report_batch.pm
+t/report_batch.t
+FS/report_batch.pm
+t/report_batch.t
+FS/report_batch.pm
+t/report_batch.t
+FS/report_batch.pm
+t/report_batch.t
diff --git a/FS/bin/freeside-cdr-a2billing-import b/FS/bin/freeside-cdr-a2billing-import
new file mode 100755 (executable)
index 0000000..a8469e7
--- /dev/null
@@ -0,0 +1,209 @@
+#!/usr/bin/perl
+
+use strict;
+use vars qw( $DEBUG );
+use Date::Parse 'str2time';
+use Date::Format 'time2str';
+use FS::UID qw(adminsuidsetup dbh);
+use FS::cdr;
+use DBI;
+use Getopt::Std;
+
+my %opt;
+getopts('H:U:P:D:T:s:e:c:', \%opt);
+my $user = shift or die &usage;
+
+my $dsn = 'dbi:mysql';
+$dsn .= ":database=$opt{D}" if $opt{D};
+$dsn .= ":host=$opt{H}" if $opt{H};
+
+my $mysql = DBI->connect($dsn, $opt{U}, $opt{P}) 
+  or die $DBI::errstr;
+
+my ($start, $end) = ('', '');
+if ( $opt{s} ) {
+  $start = str2time($opt{s}) or die "can't parse start date $opt{s}\n";
+  $start = time2str('%Y-%m-%d', $start);
+}
+if ( $opt{e} ) {
+  $end = str2time($opt{e}) or die "can't parse end date $opt{e}\n";
+  $end = time2str('%Y-%m-%d', $end);
+}
+
+adminsuidsetup $user;
+
+my $fsdbh = FS::UID::dbh;
+
+# check for existence of freesidestatus
+my $table = $opt{T} || 'cc_call';
+my $status = $mysql->selectall_arrayref("SHOW COLUMNS FROM $table WHERE Field = 'freesidestatus'");
+if( ! @$status ) {
+  print "Adding freesidestatus column...\n";
+  $mysql->do("ALTER TABLE $table ADD COLUMN freesidestatus varchar(32)")
+    or die $mysql->errstr;
+}
+else {
+  print "freesidestatus column present\n";
+}
+
+# Fields:
+# id - primary key, sequential
+# session_id - Local/<digits>-<digits> or SIP/<digits>-<digits>
+# uniqueid - a decimal number, seems to be close to the unix timestamp
+# card_id - probably the equipment port, 1 - 10
+# nasipaddress - we don't care
+# starttime, stoptime - timestamps
+# sessiontime - duration, seconds
+# calledstation - dst
+# sessionbill - upstream_price
+# id_tariffgroup - null, 0, 1
+# id_tariffplan - null, 0, 3, 4, 5, 6, 7, 8, 9
+# id_ratecard - larger numbers
+# (all of the id_* fields are foreign keys: cc_tariffgroup, cc_ratecard, etc.)
+# id_trunk - we don't care
+# sipiax - probably don't care
+# src - src.  Usually a phone number, but not always.
+# id_did - always null
+# buycost - wholesale price? correlated with sessionbill
+# id_card_package_offer - no idea
+# real_sessiontime - close to sessiontime, except when it's null
+# (When sessiontime = 0, real_sessiontime is either 0 or null, and 
+# sessionbill is 0.  When sessiontime > 0, but real_sessiontime is null, 
+# sessionbill is 0.  So real_sessiontime seems to be the billable time, and 
+# is null when the call is non-billable.)
+# dnid - sometimes equals calledstation, or calledstation without the leading 
+# "1".  But not always.
+# terminatecauseid - integer, 0 - 7
+# destination - seems to be the NPA or NPA+NXX sometimes, or "0".
+
+# terminatecauseid values:
+my %disposition = (
+  0 => '',
+  1 => 'ANSWER', #the only one that's billable
+  2 => 'BUSY',
+  3 => 'NOANSWER',
+  4 => 'CANCEL',
+  5 => 'CONGESTION',
+  6 => 'CHANUNAVAIL',
+  7 => 'DONTCALL',
+  8 => 'TORTURE', #???
+  9 => 'INVALIDARGS',
+);
+
+my @cols = (
+  "$table.id as id", 'cc_card.username as username',
+  qw( sessionid
+      starttime stoptime sessiontime real_sessiontime
+      terminatecauseid
+      calledstation src
+      id_tariffplan id_ratecard sessionbill
+    )
+);
+
+my $sql = 'SELECT '.join(',', @cols). " FROM $table".
+  " LEFT JOIN cc_card ON ( $table.card_id = cc_card.id ) ".
+  ' WHERE freesidestatus IS NULL' .
+  ($start && " AND starttime >= '$start'") .
+  ($end   && " AND starttime <  '$end'") ;
+my $sth = $mysql->prepare($sql);
+$sth->execute;
+print "Importing ".$sth->rows." records...\n";
+
+my $cdr_batch = new FS::cdr_batch({ 
+    'cdrbatch' => 'mysql-import-'. time2str('%Y/%m/%d-%T',time),
+  });
+my $error = $cdr_batch->insert;
+die $error if $error;
+my $cdrbatchnum = $cdr_batch->cdrbatchnum;
+my $imports = 0;
+my $updates = 0;
+
+my $row;
+while ( $row = $sth->fetchrow_hashref ) {
+  $row->{calledstation} =~ s/^1//;
+  $row->{src} =~ s/^1//;
+  my $cdr = FS::cdr->new ({
+    uniqueid            => $row->{sessionid},
+    cdrbatchnum         => $cdrbatchnum,
+    startdate           => time2str($row->{starttime}),
+    enddate             => time2str($row->{stoptime}),
+    duration            => $row->{sessiontime},
+    billsec             => $row->{real_sessiontime},
+    dst                 => $row->{calledstation},
+    src                 => $row->{src},
+    charged_party       => $row->{username},
+    upstream_rateplanid => $row->{id_tariffplan},
+    upstream_rateid     => $row->{id_ratecard}, # I think?
+    upstream_price      => $row->{sessionbill},
+  });
+  $cdr->cdrtypenum($opt{c}) if $opt{c};
+
+  my $error = $cdr->insert;
+  if($error) {
+    print "failed import: $error\n";
+  } else {
+    $imports++;
+    my $updated = $mysql->do(
+                    "UPDATE $table SET freesidestatus = 'done' WHERE id = ?",
+                    undef,
+                    $row->{'id'}
+                  );
+    $updates += $updated;
+    print "failed to set status: ".$mysql->errstr."\n" unless $updated;
+  }
+}
+print "Done.\nImported $imports CDRs, marked $updates as done in source database.\n";
+$mysql->disconnect;
+
+sub usage {
+  "Usage: 
+  freeside-cdr-a2billing-import
+      [ -H host ]
+      -D database
+      -U user
+      -P password
+      [ -s start ] [ -e end ] [ -c cdrtypenum ]
+      freesideuser
+";
+}
+
+=head1 NAME
+
+freeside-cdr-a2billing-import - Download CDRs from an A2Billing MySQL database
+
+=head1 SYNOPSIS
+
+  freeside-cdr-a2billing-import [ -H host ] -D database -U user -P password
+    [ -T tablename ]
+    [ -s start ] [ -e end ] [ -c cdrtypenum ]
+    freesideuser
+
+-H: database hostname
+
+-D: database name
+
+-U: database username
+
+-P: database password
+
+-T: table to import, defaults to cc_call
+
+-s: start date, e.g. 4/20/2015
+
+-e: end date, e.g. 12/25/2015
+
+-c: cdrtypenum to set, defaults to none
+
+freesideuser: freeside username
+
+=head1 DESCRIPTION
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::cdr>
+
+=cut
+
+1;
index cb018d1..6a2daf9 100755 (executable)
@@ -79,10 +79,6 @@ pay_batch_receive(%opt);
 use FS::Cron::export_batch qw(export_batch_submit);
 export_batch_submit(%opt);
 
-#you can skip this by not having the config
-use FS::Cron::agent_email qw(agent_email);
-agent_email(%opt);
-
 #clears out cacti imports & deletes select database cache files
 use FS::Cron::cleanup qw( cleanup cleanup_before_backup );
 cleanup_before_backup();
diff --git a/FS/bin/freeside-fetch b/FS/bin/freeside-fetch
deleted file mode 100755 (executable)
index c1ab783..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use LWP::UserAgent;
-use FS::UID qw(adminsuidsetup);
-use FS::Record qw(qsearchs);
-use FS::Misc qw(send_email);
-
-my $user = shift or die &usage;
-my $employeelist = shift or die &usage;
-my $url = shift or die &usage;
-adminsuidsetup $user;
-
-my @employees = split ',', $employeelist;
-
-foreach my $employee (@employees) {
-
-  $employee =~ /^(\w+)$/;
-
-  my $access_user = qsearchs( 'access_user', { 'username' => $1 } );
-  unless ($access_user) {
-    warn "Can't find employee $employee... skipping";
-    next;
-  }
-
-  my $email_address = $access_user->option('email_address');
-  unless ($email_address) {
-    warn "No email address for $employee... skipping";
-    next;
-  }
-
-  no warnings 'redefine';
-  local *LWP::UserAgent::get_basic_credentials = sub {
-    return ($access_user->username, $access_user->_password);
-  };
-
-  my $ua = new LWP::UserAgent;
-  $ua->timeout(1800); #30m, some reports can take a while
-  $ua->agent("FreesideFetcher/0.1 " . $ua->agent);
-
-  my $req = new HTTP::Request GET => $url;
-  my $res = $ua->request($req);
-
-  my $conf = new FS::Conf;
-  my $subject = $conf->config('email_report-subject') || 'Freeside report';
-
-  my %options = ( 'from'             => $email_address,
-                  'to'               => $email_address,
-                  'subject'          => $subject,
-                  'body'             => $res->content,
-                );
-
-  $options{'content-type'} = $res->content_type
-    if $res->content_type;
-  $options{'content-encoding'} = $res->content_encoding
-    if $res->content_encoding;
-
-  if ($res->is_success) {
-    send_email %options;
-  }else{
-    warn "fetching $url failed for $employee: " . $res->status_line;
-  }
-}
-
-sub usage {
-  die "Usage:\n\n  freeside-fetch user employee[,employee ...] url\n\n";
-}
-
-=head1 NAME
-
-freeside-fetch - Send a freeside page to a list of employees.
-
-=head1 SYNOPSIS
-
-  freeside-fetch user employee[,employee ...] url
-
-=head1 DESCRIPTION
-
-  Fetches a web page specified by url as if employee and emails it to
-  employee.  Useful when run out of cron to send freeside web pages.
-
-  user: Freeside user
-
-  employee: the username of an employee to receive the emailed page.  May be a comma separated list
-
-  url: the web page to be received
-
-=head1 BUGS
-
-  Can leak employee usernames and passwords if requested to access inappropriate urls.
-
-=cut
-
index 7c4cf1b..36871b2 100644 (file)
@@ -219,7 +219,11 @@ while (1) {
       $log->info('starting job ('.$ljob->job.')');
       warn 'running "&'. $ljob->job. '('. join(', ', @args). ")\n" if $DEBUG;
       local $FS::UID::AutoCommit = 0; # so that we can clean up failures
-      eval $eval; #throw away return value?  suppose so
+      do {
+        # switch user only if a job user is available
+        local $FS::CurrentUser::CurrentUser = $ljob->access_user || $FS::CurrentUser::CurrentUser;
+        eval $eval; #throw away return value?  suppose so
+      };
       if ( $@ ) {
         dbh->rollback;
         my %hash = $ljob->hash;
index 376b839..3f692fa 100755 (executable)
@@ -10,13 +10,13 @@ use FS::Record qw(qsearch qsearchs);
 use FS::pay_batch;
 use FS::Conf;
 
-use vars qw( $opt_v $opt_a $opt_f );
-getopts('va:f:');
+use vars qw( $opt_v $opt_a $opt_f $opt_n );
+getopts('va:f:n');
 
 #$Net::SFTP::Foreign::debug = -1;
 sub usage { "
   Usage:
-      freeside-rbc-download [ -v ] [ -a archivedir ] [ -f filename ] user\n
+      freeside-rbc-download [ -v ] [ -n ] [ -a archivedir ] [ -f filename ] user\n
 " }
 
 sub debug {
@@ -102,6 +102,7 @@ for my $dir ( $ftp->nlst ) {
     my $error = FS::pay_batch->import_results(
       filehandle  => $fh,
       format      => 'RBC',
+      no_close    => ($opt_n ? 1 : 0),
     );
 
     if ( $error ) {
@@ -146,6 +147,8 @@ matching the pattern. This can be used to reprocess a specific file.
 
 -a directory: Archive the files in the specified directory.
 
+-n: Do not try to close batches after applying results.
+
 user: freeside username
 
 =head1 BUGS
index 54af9dd..6b68917 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use vars qw($opt_s $opt_u $opt_p);
+use vars qw($opt_s $opt_u $opt_p $opt_e);
 use Getopt::Std;
 use FS::UID qw(adminsuidsetup);
 use FS::Record qw(qsearch qsearchs);
@@ -22,7 +22,7 @@ if ( $export_x =~ /^(\d+)$/ ) {
     or die "no exports of type $export_x found\n";
 }
 
-getopts('s:u:p:');
+getopts('s:u:p:e:');
 
 my @svc_x = ();
 if ( $opt_s ) {
@@ -38,16 +38,20 @@ if ( $opt_s ) {
   die "no services with svcpart $opt_p found\n" unless @svc_x;
 }
 
+$opt_e ||= 'insert';
+die &usage unless grep { $_ eq $opt_e } qw( insert replace delete suspend unsuspend );
+my $method = 'export_' . $opt_e;
+
 foreach my $part_export ( @part_export ) {
   foreach my $svc_x ( @svc_x ) {
-    my $error = $part_export->export_insert($svc_x);
+    my $error = $part_export->$method($svc_x,$svc_x);
     die $error if $error;
   }
 }
 
 
 sub usage {
-  die "Usage:\n\n  freeside-reexport user exportnum|exporttype [ -s svcnum | -u username | -p svcpart ]\n";
+  return "Usage:\n\n  freeside-reexport user exportnum|exporttype [ -s svcnum | -u username | -p svcpart ] [ -e insert|replace|delete|suspend|unsuspend ]\n";
 }
 
 =head1 NAME
@@ -56,12 +60,13 @@ freeside-reexport - Command line tool to re-trigger export jobs for existing ser
 
 =head1 SYNOPSIS
 
-  freeside-reexport user exportnum|exporttype [ -s svcnum | -u username | -p svcpart ]
+  freeside-reexport user exportnum|exporttype [ -s svcnum | -u username | -p svcpart ] [ -e insert|replace|delete|suspend|unsuspend ]
 
 =head1 DESCRIPTION
 
   Re-queues the export job for the specified exportnum or exporttype(s) and
-  specified service (selected by svcnum or username).
+  specified service (selected by svcnum, username or svcpart).  Optionally 
+  specify the phase of export using the -e flag (default is insert.)
 
 =head1 SEE ALSO
 
diff --git a/FS/t/report_batch.t b/FS/t/report_batch.t
new file mode 100644 (file)
index 0000000..42fc893
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::report_batch;
+$loaded=1;
+print "ok 1\n";
diff --git a/bin/agent_email b/bin/agent_email
deleted file mode 100755 (executable)
index 2fe47c4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use Getopt::Std;
-use FS::UID qw(adminsuidsetup);
-
-&untaint_argv; #what it sounds like  (eww)
-use vars qw(%opt);
-getopts("a:", \%opt);
-
-my $user = shift or die &usage;
-adminsuidsetup $user;
-
-use FS::Cron::agent_email qw(agent_email);
-agent_email(%opt);
-
-###
-# subroutines
-###
-
-sub untaint_argv {
-  foreach $_ ( $[ .. $#ARGV ) { #untaint @ARGV
-    #$ARGV[$_] =~ /^([\w\-\/]*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
-    # Date::Parse
-    $ARGV[$_] =~ /^(.*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
-    $ARGV[$_]=$1;
-  }
-}
-
-1;
diff --git a/bin/cdr-a2billing.import b/bin/cdr-a2billing.import
deleted file mode 100755 (executable)
index 6677fa0..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use vars qw( $DEBUG );
-use Date::Parse 'str2time';
-use Date::Format 'time2str';
-use FS::UID qw(adminsuidsetup dbh);
-use FS::cdr;
-use DBI;
-use Getopt::Std;
-
-my %opt;
-getopts('H:U:P:D:T:s:e:c:', \%opt);
-my $user = shift or die &usage;
-
-my $dsn = 'dbi:mysql';
-$dsn .= ":database=$opt{D}" if $opt{D};
-$dsn .= ":host=$opt{H}" if $opt{H};
-
-my $mysql = DBI->connect($dsn, $opt{U}, $opt{P}) 
-  or die $DBI::errstr;
-
-my ($start, $end) = ('', '');
-if ( $opt{s} ) {
-  $start = str2time($opt{s}) or die "can't parse start date $opt{s}\n";
-  $start = time2str('%Y-%m-%d', $start);
-}
-if ( $opt{e} ) {
-  $end = str2time($opt{e}) or die "can't parse end date $opt{e}\n";
-  $end = time2str('%Y-%m-%d', $end);
-}
-
-adminsuidsetup $user;
-
-my $fsdbh = FS::UID::dbh;
-
-# check for existence of freesidestatus
-my $table = $opt{T} || 'cc_call';
-my $status = $mysql->selectall_arrayref("SHOW COLUMNS FROM $table WHERE Field = 'freesidestatus'");
-if( ! @$status ) {
-  print "Adding freesidestatus column...\n";
-  $mysql->do("ALTER TABLE $table ADD COLUMN freesidestatus varchar(32)")
-    or die $mysql->errstr;
-}
-else {
-  print "freesidestatus column present\n";
-}
-
-# Fields:
-# id - primary key, sequential
-# session_id - Local/<digits>-<digits> or SIP/<digits>-<digits>
-# uniqueid - a decimal number, seems to be close to the unix timestamp
-# card_id - probably the equipment port, 1 - 10
-# nasipaddress - we don't care
-# starttime, stoptime - timestamps
-# sessiontime - duration, seconds
-# calledstation - dst
-# sessionbill - upstream_price
-# id_tariffgroup - null, 0, 1
-# id_tariffplan - null, 0, 3, 4, 5, 6, 7, 8, 9
-# id_ratecard - larger numbers
-# (all of the id_* fields are foreign keys: cc_tariffgroup, cc_ratecard, etc.)
-# id_trunk - we don't care
-# sipiax - probably don't care
-# src - src.  Usually a phone number, but not always.
-# id_did - always null
-# buycost - wholesale price? correlated with sessionbill
-# id_card_package_offer - no idea
-# real_sessiontime - close to sessiontime, except when it's null
-# (When sessiontime = 0, real_sessiontime is either 0 or null, and 
-# sessionbill is 0.  When sessiontime > 0, but real_sessiontime is null, 
-# sessionbill is 0.  So real_sessiontime seems to be the billable time, and 
-# is null when the call is non-billable.)
-# dnid - sometimes equals calledstation, or calledstation without the leading 
-# "1".  But not always.
-# terminatecauseid - integer, 0 - 7
-# destination - seems to be the NPA or NPA+NXX sometimes, or "0".
-
-# terminatecauseid values:
-my %disposition = (
-  0 => '',
-  1 => 'ANSWER', #the only one that's billable
-  2 => 'BUSY',
-  3 => 'NOANSWER',
-  4 => 'CANCEL',
-  5 => 'CONGESTION',
-  6 => 'CHANUNAVAIL',
-  7 => 'DONTCALL',
-  8 => 'TORTURE', #???
-  9 => 'INVALIDARGS',
-);
-
-my @cols = ( qw(
-  id sessionid
-  starttime stoptime sessiontime real_sessiontime
-  terminatecauseid
-  calledstation src
-  id_tariffplan id_ratecard sessionbill
-) );
-
-my $sql = 'SELECT '.join(',', @cols). " FROM $table".
-  ' WHERE freesidestatus IS NULL' .
-  ($start && " AND starttime >= '$start'") .
-  ($end   && " AND starttime <  '$end'") ;
-my $sth = $mysql->prepare($sql);
-$sth->execute;
-print "Importing ".$sth->rows." records...\n";
-
-my $cdr_batch = new FS::cdr_batch({ 
-    'cdrbatch' => 'mysql-import-'. time2str('%Y/%m/%d-%T',time),
-  });
-my $error = $cdr_batch->insert;
-die $error if $error;
-my $cdrbatchnum = $cdr_batch->cdrbatchnum;
-my $imports = 0;
-my $updates = 0;
-
-my $row;
-while ( $row = $sth->fetchrow_hashref ) {
-  $row->{calledstation} =~ s/^1//;
-  $row->{src} =~ s/^1//;
-  my $cdr = FS::cdr->new ({
-    uniqueid            => $row->{sessionid},
-    cdrbatchnum         => $cdrbatchnum,
-    startdate           => time2str($row->{starttime}),
-    enddate             => time2str($row->{stoptime}),
-    duration            => $row->{sessiontime},
-    billsec             => $row->{real_sessiontime},
-    dst                 => $row->{calledstation},
-    src                 => $row->{src},
-    upstream_rateplanid => $row->{id_tariffplan},
-    upstream_rateid     => $row->{id_ratecard}, # I think?
-    upstream_price      => $row->{sessionbill},
-  });
-  $cdr->cdrtypenum($opt{c}) if $opt{c};
-
-  my $error = $cdr->insert;
-  if($error) {
-    print "failed import: $error\n";
-  } else {
-    $imports++;
-    my $updated = $mysql->do(
-                    "UPDATE $table SET freesidestatus = 'done' WHERE id = ?",
-                    undef,
-                    $row->{'id'}
-                  );
-    $updates += $updated;
-    print "failed to set status: ".$mysql->errstr."\n" unless $updated;
-  }
-}
-print "Done.\nImported $imports CDRs, marked $updates as done in source database.\n";
-$mysql->disconnect;
-
-sub usage {
-  "Usage: 
-  cdr-a2billing.import
-      [ -H host ]
-      -D database
-      -U user
-      -P password
-      [ -s start ] [ -e end ] [ -c cdrtypenum ]
-      freesideuser
-";
-}
index 32a6d7b..e039012 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 
 use strict;
-use vars qw( $opt_a $opt_p $opt_t $opt_k );
+use vars qw( $opt_a $opt_p $opt_t $opt_k $opt_c );
 use Getopt::Std;
 use FS::UID qw(adminsuidsetup);
 use FS::Record qw(qsearch qsearchs);
@@ -9,7 +9,7 @@ use FS::cust_main;
 use FS::cust_tag;
 use FS::cust_pkg;
 
-getopts('a:p:t:k:');
+getopts('a:p:t:k:c:');
 
 my $user = shift or &usage;
 adminsuidsetup $user;
@@ -64,6 +64,11 @@ while (<STDIN>) {
     }
   }
 
+  if ( $opt_c ) {
+    my @error = $cust_main->cancel( 'reason' => $opt_c );
+    die join(' / ', @error). "\n" if @error;
+  }
+
 }
 
 sub usage {
@@ -76,7 +81,7 @@ cust_main-bulk_change
 
 =head1 SYNOPSIS
 
-  cust_main-bulk_change [ -a agentnum ] [ -p NEW_PAYBY ] [ -t tagnum ] [ -k old_pkgpart:new_pkgpart,... ] username <custnums.txt
+  cust_main-bulk_change [ -a agentnum ] [ -p NEW_PAYBY ] [ -t tagnum ] [ -k old_pkgpart:new_pkgpart,... ] [ -c reasonnum ] username <custnums.txt
 
 =head1 DESCRIPTION
 
@@ -90,6 +95,8 @@ Command-line tool to make bulk changes to a group of customers.
 
 -k: old_pkgpart:new_pkgpart, for example, I<5:4>.  Multiple entries can be comma-separated.
 
+-c: Cancel customer
+
 user: Employee username
 
 =head1 BUGS
diff --git a/bin/msg_template_http-demo.pl b/bin/msg_template_http-demo.pl
new file mode 100755 (executable)
index 0000000..8d184fc
--- /dev/null
@@ -0,0 +1,76 @@
+=head1 NAME
+
+FS::msg_template::http example server.
+
+=head1 DESCRIPTION
+
+This is an incredibly crude Mojo web service for demonstrating how to talk 
+to the HTTP customer messaging interface in Freeside.
+
+It implements an endpoint for the "password reset" messaging case which 
+creates a simple password reset message using some template variables,
+and a "send" endpoint that just delivers the message by sendmail. The 
+configuration to use this as your password reset handler would be:
+
+prepare_url = 'http://localhost:3000/prepare/password_reset'
+send_url =    'http://localhost:3000/send'
+No username, no password, no additional content.
+
+=cut
+
+use Mojolicious::Lite;
+use Mojo::JSON qw(decode_json encode_json);
+use Email::Simple;
+use Email::Simple::Creator;
+use Email::Sender::Simple qw(sendmail);
+
+post '/prepare/password_reset' => sub {
+  my $self = shift;
+
+  my $json_data = $self->req->body;
+  #print STDERR $json_data;
+  my $input = decode_json($json_data);
+  if ( $input->{username} ) {
+    my $output = {
+      'to'      => $input->{invoicing_email},
+      'subject' => "Password reset for $input->{username}",
+      'body'    => "
+To complete your $input->{company_name} password reset, please go to 
+$input->{selfservice_server_base_url}/selfservice.cgi?action=process_forgot_password;session_id=$input->{session_id}
+
+This link will expire in 24 hours.",
+    };
+
+    return $self->render( json => $output );
+
+  } else {
+
+    return $self->render( text => 'Username required', status => 500 );
+
+  }
+};
+
+post '/send' => sub {
+  my $self = shift;
+
+  my $json_data = $self->req->body;
+  my $input = decode_json($json_data);
+  my $email = Email::Simple->create(
+    header => [
+      From    => $ENV{USER}.'@localhost',
+      To      => $input->{to},
+      Subject => $input->{subject},
+    ],
+    body => $input->{body},
+  );
+  local $@;
+  eval { sendmail($email) };
+  if ( $@ ) {
+    return $self->render( text => $@->message, status => 500 );
+  } else {
+    return $self->render( text => '' );
+  }
+};
+
+app->start;
+
index dfd87c7..e1af707 100644 (file)
             $OUT .= $header;
             $columncount = scalar(my @array = split /<\/th><th/i, $header);
           } else {
-            $OUT .=  '<th align="center"></th>'.
-                     '<th align="left">' . emt('Description') . '</th>'.
-                     ( $unitprices 
-                       ? '<th align="right">' . emt('Unit Price') . '</th>'.
-                         '<th align="right">' . emt('Quantity') . '</th>'
-                        : '' ).
-                     '<th align="right">' . emt('Amount') . '</th>';
+            my @headings = ( '', 'Description', 'Amount' );
+            my @aligns = ( 'center', 'left', 'right' );
+            if ( $unitprices ) {
+              splice @headings, 2, 0, 'Unit Price', 'Quantity';
+              splice @aligns,   2, 0, 'right', 'right';
+            }
+            if ( $section->{usage_section} ) {
+              @headings = ( '', 'Description', 'Calls', 'Duration', 'Amount' );
+              @aligns = ( '', 'left', 'right', 'right', 'right' );
+              $columncount = 5;
+            }
+
+            while ( @headings ) {
+              my $heading = shift @headings;
+              $heading = emt($heading) if $heading;
+              my $align = shift @aligns;
+              $OUT .= '
+                <th align="' . $align . '">' . $heading . '</th>';
+            }
           }
-            $OUT .= '</tr>';
+
+          $OUT .= '</tr>';
 
           my $lastref = 0;
           foreach my $line (
             if ( $section->{description_generator} ) {
               $OUT .= '<tr class="invoice_desc' .
                       &{$section->{description_generator}}($line);
+            } elsif ( $section->{usage_section} ) {
+              my $minutes = sprintf('%d', $line->{'duration'} / 60);
+              my $seconds = $line->{'duration'} % 60;
+              $OUT .= '
+                <tr class="invoice_desc_more">
+                  <td></td>
+                  <td align="left">' . $line->{'description'} . '</td>
+                  <td align="right">' . $line->{'quantity'} . '</td>
+                  <td align="right">' . $minutes . 'm ' . $seconds . 's' . '</td>
+                  <td align="right">' . $line->{'amount'} . '</td>
+                </tr>';
             } else {
               my $class = 'invoice_desc_more';
               if ( ($line->{'ref'} || 0) ne $lastref ) {
             }
             $OUT .= '</tr>';
           }
-        } 
+        } # if !$section->{summarized}
         if ($section->{'posttotal'}) {
           $OUT .= '<tr><td align="right" colspan='. $columncount. '>';
           $OUT .=
index c7c696b..ceff84b 100644 (file)
   \hline\r
 }\r
 \r
-% ...description...\r
+\newcommand{\FSusagehead}{\r
+  \hline\r
+  \rule{0pt}{2.5ex}\r
+  \makebox[1.4cm]{} &\r
+  \multicolumn{4}{l}{\r
+    \makebox[\FSdescriptionlength][l]{\textbf{[@-- emt('Description') --@]}}\r
+  } &\r
+  \textbf{~~[@-- emt('Calls') --@]} &\r
+  \textbf{~~[@-- emt('Duration') --@]} &\r
+  \textbf{~~[@-- emt('Amount') --@]} \\\r
+  \hline\r
+}\r
+\r
+}% ...description...\r
 \newcommand{\FSdesc}[5]{\r
   \multicolumn{1}{c}{\rule{0pt}{2.5ex}\textbf{#1}} &\r
   \multicolumn{[@-- $unitprices ? '4' : '6' --@]}{l}{\textbf{#2}} &\r
   & \multicolumn{6}{l}{#1} & #2\\\r
 }\r
 \r
+% ...usage class summary\r
+\newcommand{\FSusagedesc}[4]{\r
+  \multicolumn{1}{c}{\rule{0pt}{2.5ex}} &\r
+  \multicolumn{4}{l}{\textbf{#1}} &\r
+  \multicolumn{1}{r}{\textbf{#2}} &\r
+  \multicolumn{1}{r}{\textbf{#3}} &\r
+  \multicolumn{1}{r}{\textbf{#4}}\r
+  \\\r
+}\r
 \r
 \begin{document}\r
 %      Headers and footers defined for the first page\r
       $OUT .= '}\\\\';\r
       if ($section->{header_generator}) {\r
         $OUT .= &{$section->{header_generator}}();\r
+      } elsif ( $section->{usage_section} ) {\r
+        $OUT .= '\FSusagehead';\r
       } else {\r
         $OUT .= '\FShead';\r
       }\r
       $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}'.emt('Continued from previous page').'}\\\\';\r
       if ($section->{header_generator}) {\r
         $OUT .= &{$section->{header_generator}}();\r
+      } elsif ( $section->{usage_section} ) {\r
+        $OUT .= '\FSusagehead';\r
       } else {\r
         $OUT .= '\FShead';\r
       }\r
         $OUT .= "\\hline\n" if (($line->{'ref'} || 0) ne $lastref);\r
         if ($section->{description_generator}) {\r
           $OUT .= &{$section->{description_generator}}($line);\r
+        } elsif ($section->{usage_section}) {\r
+          my $minutes = sprintf('%d', $line->{'duration'} / 60);\r
+          my $seconds = $line->{'duration'} % 60;\r
+          $OUT .= '\FSusagedesc\r
+            {' . $line->{'description'} . '}\r
+            {' . $line->{'quantity'} . '}\r
+            {' . $minutes . 'm ' . $seconds . 's' . '}\r
+            {' . $line->{'amount'} . '}';\r
         } else {\r
           $OUT .= '\FSdesc'.\r
                   '{}'.\r
index 3bd9d07..a1bd57f 100644 (file)
@@ -17,6 +17,7 @@
                         'Market',
                         'Advertised Mbps',
                         'Contractual Mbps',
+                        'Vertices',
                         'Census blocks',
                      ],
   fields          => [  'zonenum',
@@ -42,6 +43,9 @@
                               )
                             },
                         sub { my $self = shift;
+                              FS::deploy_zone_vertex->count('zonenum = '.$self->zonenum)
+                            },
+                        sub { my $self = shift;
                               FS::deploy_zone_block->count('zonenum = '.$self->zonenum)
                             },
                      ],
@@ -53,7 +57,7 @@
                        '(cir_speed_down, cir_speed_up)',
                      ],
   links           => [  $link_fixed, $link_fixed, ],
-  align           => 'clllllr',
+  align           => 'cllllrrr',
   nohtmlheader    => 1,
   disable_maxselect => 1,
   disable_total     => 1,
diff --git a/httemplate/browse/msg_template.html b/httemplate/browse/msg_template.html
deleted file mode 100644 (file)
index ef0b2da..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<% include( 'elements/browse.html',
-              'title'         => 'Message templates',
-              'name_singular' => 'template',
-              'menubar'       => \@menubar,
-              'query'         => { 'table' => 'msg_template', },
-              'count_query'   => 'SELECT COUNT(*) FROM msg_template',
-              'disableable'   => 1,
-              'disabled_statuspos' => (scalar(@locales) + 3),
-              'agent_virt'         => 1,
-              'agent_null_right'   => ['View global templates','Edit global templates'],
-              'agent_pos'          => 1,
-              'header'      => [ 'Name', '', map ('', @locales), '' ],
-              'fields'      => [ 'msgname', @locales, $disable_link_label ],
-              'links'       => [ $link, @locale_links, '' ],
-              'link_onclicks' => [ '', map('', @locale_links), $disable_link ],
-              'cell_style'    => [ '', '', map ($locale_style, @locales), $locale_style ],
-          )
-%>
-<%init>
-
-my $curuser = $FS::CurrentUser::CurrentUser;
-
-die "access denied"
-  unless $curuser->access_right([ 'View templates', 'View global templates',
-                                  'Edit templates', 'Edit global templates', ]);
-
-my @menubar = ();
-if ( $curuser->access_right(['Edit templates', 'Edit global templates']) ) {
-  push @menubar, 'Add a new template' => $p.'edit/msg_template.html';
-}
-
-my $link = [ "${p}edit/msg_template.html?msgnum=", 'msgnum' ];
-
-my $locale_style = 'font-size:0.8em; padding:3px';
-
-my (@locales, @locale_links);
-foreach my $l ( FS::Locales->locales ) {
-  push @locales, sub {
-    exists ( $_[0]->content_locales->{$l} )
-    ? +{ FS::Locales->locale_info($l) }->{'label'} 
-    : '';
-  };
-  push @locale_links, sub {
-    my $content = $_[0]->content_locales->{$l} or return '';
-    [ "${p}edit/msg_template.html?locale=$l;msgnum=", 'msgnum' ];
-  };
-}
-
-my $disable_link = sub {
-  my $template = shift;
-  include('/elements/popup_link_onclick.html',
-    action      => $p.'misc/disable-msg_template.cgi?msgnum=' .
-                     $template->msgnum .
-                     ($template->disabled ? ';enable=1' : ''),
-    actionlabel => 'Disable lemplate',
-  );
-};
-
-my $disable_link_label = sub {
-  my $template = shift;
-  $template->disabled ? '(enable)' : '(disable)' ;
-};
-
-</%init>
diff --git a/httemplate/browse/msg_template/email.html b/httemplate/browse/msg_template/email.html
new file mode 100644 (file)
index 0000000..d0ef4e3
--- /dev/null
@@ -0,0 +1,74 @@
+<& /browse/elements/browse.html,
+              'title'         => 'Message templates',
+              'name_singular' => 'template',
+              'menubar'       => \@menubar,
+              'query'         => $query,
+              'count_query'   => $count_query,
+              'disableable'   => 1,
+              'disabled_statuspos' => (scalar(@locales) + 3),
+              'agent_virt'         => 1,
+              'agent_null_right'   => ['View global templates','Edit global templates'],
+              'agent_pos'          => 1,
+              'header'      => [ 'Name', '', map ('', @locales), '' ],
+              'fields'      => [ 'msgname', @locales, $disable_link_label ],
+              'links'       => [ $link, @locale_links, '' ],
+              'link_onclicks' => [ '', map('', @locale_links), $disable_link ],
+              'cell_style'    => [ '', '', map ($locale_style, @locales), $locale_style ],
+&>
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates', ]);
+
+my @menubar = ();
+if ( $curuser->access_right(['Edit templates', 'Edit global templates']) ) {
+  push @menubar, 'Add a new template' => $fsurl.'edit/msg_template/email.html';
+}
+push @menubar, 'Template images' => $fsurl.'browse/template_image.html';
+
+push @menubar, 'External message interfaces' => $fsurl.'browse/msg_template/http.html';
+
+my $query = {
+  'table'   => 'msg_template',
+  'select'  => '*',
+  'hashref' => { 'msgclass' => 'email' },
+};
+
+my $count_query = "SELECT COUNT(*) FROM msg_template WHERE msgclass = 'email'";
+
+my $link = [ $fsurl.'edit/msg_template/email.html?msgnum=', 'msgnum' ];
+
+my $locale_style = 'font-size:0.8em; padding:3px';
+
+my (@locales, @locale_links);
+foreach my $l ( FS::Locales->locales ) {
+  push @locales, sub {
+    exists ( $_[0]->content_locales->{$l} )
+    ? +{ FS::Locales->locale_info($l) }->{'label'} 
+    : '';
+  };
+  push @locale_links, sub {
+    my $content = $_[0]->content_locales->{$l} or return '';
+    [ $fsurl."edit/msg_template/email.html?locale=$l;msgnum=", 'msgnum' ];
+  };
+}
+
+my $disable_link = sub {
+  my $template = shift;
+  include('/elements/popup_link_onclick.html',
+    action      => $fsurl.'misc/disable-msg_template.cgi?msgnum=' .
+                     $template->msgnum .
+                     ($template->disabled ? ';enable=1' : ''),
+    actionlabel => 'Disable template',
+  );
+};
+
+my $disable_link_label = sub {
+  my $template = shift;
+  $template->disabled ? '(enable)' : '(disable)' ;
+};
+
+</%init>
diff --git a/httemplate/browse/msg_template/http.html b/httemplate/browse/msg_template/http.html
new file mode 100644 (file)
index 0000000..888fda4
--- /dev/null
@@ -0,0 +1,68 @@
+<& /browse/elements/browse.html,
+              'title'         => 'External message interfaces',
+              'name_singular' => 'interface', # what else do we call them?
+              'menubar'       => \@menubar,
+              'query'         => $query,
+              'count_query'   => $count_query,
+              'disableable'   => 1,
+              'disabled_statuspos' => 4,
+              'agent_virt'         => 1,
+              'agent_null_right'   => ['View global templates','Edit global templates'],
+              'agent_pos'          => 1,
+              'header'      => [ 'Name',
+                                 # 'Agent',
+                                 'Prepare',
+                                 'Send',
+                                 '' ],
+              'fields'      => [ 'msgname',
+                                 'prepare_url',
+                                 'send_url',
+                                 $disable_link_label
+                               ],
+              'links'       => [ $link, ],
+              'link_onclicks' => [ '', '', '',  $disable_link ],
+              'cell_style'  => [ '', '', $url_style, $url_style ],
+&>
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates', ]);
+
+my @menubar = ();
+if ( $curuser->access_right(['Edit templates', 'Edit global templates']) ) {
+  push @menubar, 'Add a new interface' => $fsurl.'edit/msg_template/http.html';
+}
+push @menubar, 'Email templates' => $fsurl.'browse/msg_template/email.html';
+push @menubar, 'Template images' => $fsurl.'browse/template_image.html';
+
+my $query = {
+  'table'   => 'msg_template',
+  'select'  => '*',
+  'hashref' => { 'msgclass' => 'http' },
+};
+
+my $count_query = "SELECT COUNT(*) FROM msg_template WHERE msgclass = 'http'";
+
+my $link = [ $fsurl.'edit/msg_template/http.html?msgnum=', 'msgnum' ];
+
+my $url_style = 'font-size:0.8em; padding:3px'; # also for (disable) label
+
+my $disable_link = sub {
+  my $template = shift;
+  include('/elements/popup_link_onclick.html',
+    action      => $fsurl.'misc/disable-msg_template.cgi?msgnum=' .
+                     $template->msgnum .
+                     ($template->disabled ? ';enable=1' : ''),
+    actionlabel => 'Disable template',
+  );
+};
+
+my $disable_link_label = sub {
+  my $template = shift;
+  $template->disabled ? '(enable)' : '(disable)' ;
+};
+
+</%init>
index c2f1430..07f104e 100755 (executable)
@@ -591,6 +591,7 @@ push @fields,
                                 },
                               ];
                             }
+                        sort
                         grep { $options{$_} =~ /\S/ } 
                         grep { $_ !~ /^(setup|recur)_fee$/ 
                                and $_ !~ /^report_option_\d+$/ }
index ec5f321..88f8d8d 100755 (executable)
@@ -161,7 +161,7 @@ function part_export_areyousure(href) {
 %     }
 %   
 %     my($n1)='';
-%     foreach my $field ( @fields ) {
+%     foreach my $field ( sort @fields ) {
 %
 %       #a few lines of false laziness w/edit/part_svc.cgi
 %       my $def = FS::part_svc->svc_table_fields($svcdb)->{$field};
diff --git a/httemplate/browse/template_image.html b/httemplate/browse/template_image.html
new file mode 100644 (file)
index 0000000..eb4325f
--- /dev/null
@@ -0,0 +1,68 @@
+<% include('/elements/init_overlib.html') %>
+
+<% include( 'elements/browse.html',
+              'title'         => 'Template images',
+              'name_singular' => 'image',
+              'menubar'       => \@menubar,
+              'query'         => { 'table' => 'template_image', },
+              'count_query'   => 'SELECT COUNT(*) FROM template_image',
+              'agent_virt'         => 1,
+              'agent_null_right'   => ['View global templates','Edit global templates'],
+              'agent_pos'          => 1,
+              'header'      => [ 'Name', '', '' ],
+              'fields'      => [ 'name', $tag, $delete_text ],
+              'links'       => [ '', '', '' ],
+              'cell_style'    => [ '', '', '' ],
+          )
+%>
+
+<% include('/elements/template_image-dialog.html',
+     'url' => $p.'browse/template_image.html'
+   ) %>
+
+<%init>
+use FS::template_image;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates', ]);
+
+my $canedit = $curuser->access_right(['Edit templates', 'Edit global templates']);
+
+my @menubar = ();
+if ($canedit) {
+  push @menubar, 'Upload a new image' => 'javascript:insertImageDialog(\'upload\')';
+}
+push @menubar, ( 'View message templates' => $p.'browse/msg_template.html' );
+
+my $tag = sub { qq!<A HREF="javascript:insertImageDialog(! . $_[0]->imgnum . qq!)">view</A>! };
+
+my $delete_text = $canedit ? sub {
+  my $image = shift;
+  my $imgnum = $image->imgnum;
+  unless ($image->agentnum) {
+    unless ($FS::CurrentUser::CurrentUser->access_right('Edit global templates')) {
+      return '';
+    }
+  }
+  my $out = <<EOF;
+<FORM name="delete_template_image_$imgnum">
+<INPUT TYPE="hidden" name="imgnum" value="$imgnum">
+</FORM>
+EOF
+  $out .= include('/elements/progress-init.html',
+            "delete_template_image_$imgnum",
+            [ 'imgnum' ],
+            $p.'misc/process/template_image-delete.cgi',
+            $p.'browse/template_image.html',
+            "imgnum$imgnum",
+          );
+  my $onclick = 'if ( confirm(\'';
+  $onclick .= emt('Are you sure you want to delete template image ') . $imgnum;
+  $onclick .= '\') ) { imgnum' . $imgnum . 'process() }';
+  return $out . '<A HREF="javascript:void(0)" ONCLICK="' . $onclick . '">delete</A>';
+} : '';
+
+</%init>
index fa049a3..bfcbfe7 100755 (executable)
@@ -139,16 +139,8 @@ my $payinfo = $cgi->param('payinfo');
 my $reason  = $cgi->param('reason');
 my $link    = $cgi->param('popup') ? 'popup' : '';
 
-my @rights = ();
-push @rights, 'Post refund'                if $payby =~ /^(BILL|CASH|MCRD|MCHK)$/;
-push @rights, 'Post check refund'          if $payby eq 'BILL';
-push @rights, 'Post cash refund '          if $payby eq 'CASH';
-push @rights, 'Refund payment'             if $payby =~ /^(CARD|CHEK)$/;
-push @rights, 'Refund credit card payment' if $payby eq 'CARD';
-push @rights, 'Refund Echeck payment'      if $payby eq 'CHEK';
-
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right(\@rights);
+  unless $FS::CurrentUser::CurrentUser->refund_access_right($payby);
 
 my( $paynum, $cust_pay ) = ( '', '' );
 if ( $cgi->param('paynum') =~ /^(\d+)$/ ) {
index 90d1b66..b8d9f8b 100644 (file)
           value => 'Contractually guaranteed speed (Mbps)' },
         'cir_speed_down',
         'cir_speed_up',
-
-        { type => 'tablebreak-tr-title', value => 'Census blocks'},
-        { field => 'file',
-          type  => 'file-upload',
-        },
-        { field => 'format',
-          type  => 'hidden',
-          value => 'plain',
-        },
-        { field => 'censusyear',
-          type  => 'select',
-          options => [ '', qw( 2013 2012 2011 ) ],
-        },
-
-        { type => 'tablebreak-tr-title', value => '', },
-        { field => 'blocknum',
-          type              => 'deploy_zone_block',
-          o2m_table         => 'deploy_zone_block',
-          m2_label          => ' ',
-          m2_error_callback => $m2_error_callback,
-        },
+        { type => 'tablebreak-tr-title', value => 'Footprint'},
+        { field               => 'vertices',
+          type                => 'polygon',
+          curr_value_callback => sub {
+            my ($cgi, $object) = @_;
+            $cgi->param('vertices') || $object->vertices_json;
+          },
+        }
+#
+#        { type => 'tablebreak-tr-title', value => 'Census blocks'},
+#        { field => 'file',
+#          type  => 'file-upload',
+#        },
+#        { field => 'format',
+#          type  => 'hidden',
+#          value => 'plain',
+#        },
+#        { field => 'censusyear',
+#          type  => 'hidden',
+#          options => [ '', qw( 2013 2012 2011 ) ],
+#        },
+#
+#        { type => 'tablebreak-tr-title', value => '', },
+#        { field => 'blocknum',
+#          type              => 'deploy_zone_block',
+#          o2m_table         => 'deploy_zone_block',
+#          m2_label          => ' ',
+#          m2_error_callback => $m2_error_callback,
+#        },
     ],
-
 &>
 <%init>
 my $curuser = $FS::CurrentUser::CurrentUser;
@@ -90,22 +97,22 @@ my $technology_labels = FS::part_pkg_fcc_option->technology_labels;
 my $media_types = FS::part_pkg_fcc_option->media_types;
 delete $media_types->{'Mobile Wireless'}; # cause this is the fixed zone page
 
-my $m2_error_callback = sub {
-  my ($cgi, $deploy_zone) = @_;
-  my @blocknums = grep {
-    /^blocknum\d+/ and length($cgi->param($_.'_censusblock'))
-  } $cgi->param;
-
-  sort { $a->censusblock <=> $b->censusblock }
-  map {
-    my $k = $_;
-    FS::deploy_zone_block->new({
-      blocknum    => scalar($cgi->param($k)),
-      zonenum     => $deploy_zone->zonenum,
-      censusblock => scalar($cgi->param($k.'_censusblock')),
-      censusyear  => scalar($cgi->param($k.'_censusyear')),
-    })
-  } @blocknums;
-};
+#my $m2_error_callback = sub {
+#  my ($cgi, $deploy_zone) = @_;
+#  my @blocknums = grep {
+#    /^blocknum\d+/ and length($cgi->param($_.'_censusblock'))
+#  } $cgi->param;
+#
+#  sort { $a->censusblock <=> $b->censusblock }
+#  map {
+#    my $k = $_;
+#    FS::deploy_zone_block->new({
+#      blocknum    => scalar($cgi->param($k)),
+#      zonenum     => $deploy_zone->zonenum,
+#      censusblock => scalar($cgi->param($k.'_censusblock')),
+#      censusyear  => scalar($cgi->param($k.'_censusyear')),
+#    })
+#  } @blocknums;
+#};
 
 </%init>
index d049cb0..8cec298 100644 (file)
         'adv_speed_down',
         'adv_speed_up',
         { type => 'tablebreak-tr-title', value => 'Footprint'},
-        { field => 'vertexnum',
-          type              => 'deploy_zone_vertex',
-          o2m_table         => 'deploy_zone_vertex',
-          m2_label          => ' ',
-          m2_error_callback => $m2_error_callback,
-        },
-    ],
+        { field               => 'vertices',
+          type                => 'polygon',
+          curr_value_callback => sub {
+            my ($cgi, $object) = @_;
+            $cgi->param('vertices') || $object->vertices_json;
+          },
+        }
 
+#        { field => 'vertexnum',
+#          type              => 'deploy_zone_vertex',
+#          o2m_table         => 'deploy_zone_vertex',
+#          m2_label          => ' ',
+#          m2_error_callback => $m2_error_callback,
+#        },
+    ],
 &>
 <%init>
 my $curuser = $FS::CurrentUser::CurrentUser;
index 7f38241..889b107 100644 (file)
@@ -1,373 +1,9 @@
-<& elements/edit.html,
-     'html_init'        => '<TABLE id="outerTable"><TR><TD>',
-     'body_etc'         => $body_etc,
-     'name_singular'    => 'template',
-     'table'            => 'msg_template',
-     'viewall_dir'      => 'browse',
-     'agent_virt'       => 1,
-     'agent_null'       => 1,
-     'agent_null_right' => [ 'View global templates', 'Edit global templates' ],
-
-     'fields'           => \@fields,
-     'labels'           => { 
-                             'msgnum'    => 'Template',
-                             'agentnum'  => 'Agent',
-                             'msgname'   => 'Template name',
-                             'from_addr' => 'From: ',
-                             'bcc_addr'  => 'Bcc: ',
-                             'locale'    => 'Locale',
-                             'subject'   => 'Subject: ',
-                             'body'      => 'Message body',
-                           },
-     'edit_callback'    => \&edit_callback,
-     'error_callback'   => \&edit_callback,
-     'html_bottom'      => '</DIV>',
-     'html_table_bottom'=> \&html_table_bottom,
-     'html_foot'        => ( $no_submit ? '' : "</TD>$sidebar</TR></TABLE>" ),
-     'no_submit'        => $no_submit,
-&>
 <%init>
-
-my $curuser = $FS::CurrentUser::CurrentUser;
-
-die "access denied"
-  unless $curuser->access_right([ 'View templates', 'View global templates',
-                                  'Edit templates', 'Edit global templates',
-                               ]);
-
-my $body_etc = '';
-$body_etc = q!onload="document.getElementById('locale').onchange()"!
-  if $cgi->param('locale') eq 'new';
-
-my $msgnum = $cgi->param('msgnum');
-my $msg_template = $msgnum ? qsearchs('msg_template', {msgnum=>$msgnum}) : '';
-
-my $no_submit = 0;
-my @fields = ();
-if ( $curuser->access_right('Edit global templates') 
-     || (    $curuser->access_right('Edit templates')
-          && $msg_template
-          && $msg_template->agentnum
-          && $curuser->agentnums_href->{$msg_template->agentnum}
-        )
-   )
-{
-  push @fields,
-      { field => 'agentnum',
-        type  => 'select-agent',
-      },
-      { field => 'msgname',   size=>60, },
-      { field => 'from_addr', size=>60, },
-      { field => 'bcc_addr',  size=>60, },
-      { type  => 'tablebreak-tabs',
-        include_opt_callback => \&menubar_opt_callback,
-      },
-      # template_content fields
-      { field => 'locale', type => 'hidden' },
-      { field => 'subject',   size=>60, },
-      { field => 'body',
-        type  => 'htmlarea',
-        width => 763,
-        config=> { extraPlugins => 'blockprotect' },
-      },
-  ;
-} else { #readonly
-
-  $no_submit = 1;
-
-  push @fields,
-      { field => 'agentnum',
-        type  => 'select-agent',
-        fixed => 1,
-      },
-      { field => 'msgname',   type => 'fixed', },
-      { field => 'from_addr', type => 'fixed', },
-      { field => 'bcc_addr',  type => 'fixed', },
-      { type  => 'tablebreak-tabs',
-        include_opt_callback => \&menubar_opt_callback,
-      },
-      # template_content fields
-      { field => 'locale',  type => 'hidden' },
-      { field => 'subject', type => 'fixed', },
-      { field    => 'body',
-        type     => 'fixed',
-        noescape => 1,
-      },
-  ;
-
+my $msgclass = 'email';
+if ( $cgi->param('msgnum') =~ /^(\d+)$/ ) {
+  my $msg_template = FS::msg_template->by_key($1)
+    or die "unknown msgnum $1";
+  $msgclass = $msg_template->msgclass;
 }
-
-sub new_callback {
-  my ($cgi, $object, $fields_listref, $opt_hashref) = @_;
-  my $template_content = new FS::template_content { 'locale' => '' };
-  $object->{'Hash'} = { $object->hash, $template_content->hash };
-}
-
-sub edit_callback {
-  my ($cgi, $object, $fields_listref, $opt_hashref) = @_;
-  $cgi->param('locale') =~ /^(\w*)$/ or die 'bad locale '.$cgi->param('locale');
-  my $locale = $1;
-
-  # fetch the content object and merge its fields
-  my %args = (
-    'msgnum' => $object->msgnum,
-    'locale' => $locale
-  );
-  my $template_content = qsearchs('template_content', \%args) 
-                        || new FS::template_content( { %args });
-  $object->{'Hash'} = { $object->hash, $template_content->hash };
-
-  # set up the locale selector if this is a new content
-  if ( $locale eq 'new' ) {
-
-    # make a list of available locales
-    my $content_locales = $object->content_locales;
-    my @locales = grep { !exists($content_locales->{$_}) } 
-                         FS::Conf->new->config('available-locales');
-    my %labels;
-    foreach (@locales) {
-      my %info = FS::Locales->locale_info($_);
-      $labels{$_} = $info{'label'};
-    }
-    unshift @locales, 'new';
-    $labels{'new'} = 'Select language';
-
-    # insert a field def
-    my $i = 0;
-    $i++ until ( $fields_listref->[$i]->{'field'} eq 'locale' );
-    my $locale_field = $fields_listref->[$i];
-
-    my $onchange_locale = "document.getElementById('submit').disabled = 
-    (this.options[this.selectedIndex].value == 'new');";
-
-    %$locale_field = (
-      field   => 'locale',
-      type    => 'select',
-      options => \@locales,
-      labels  => \%labels,
-      curr_value  => 'new',
-      onchange    => $onchange_locale,
-    );
-  }
-}
-
-sub menubar_opt_callback {
-  my $object = shift;
-  # generate no tabs for new msg_templates.
-  my $msgnum = $object->msgnum or return; 
-  my (@tabs, @options, %labels);
-  push @tabs, mt('Default'), '';
-  my $display_new = 0;
-  my $selected = '';
-  foreach my $l (FS::Locales->locales) {
-    if ( exists $object->content_locales->{$l} ) {
-      my %info = FS::Locales->locale_info($l);
-      push @tabs, 
-           $info{'label'},
-           ';locale='.$l;
-      $selected = $info{'label'} if $object->locale eq $l;
-    }
-    else {
-      $display_new = 1; # there is at least one unused locale left
-    }
-  }
-  push @tabs, mt('New'), ';locale=new' if $display_new;
-  $selected = mt('New') if $object->locale eq 'new';
-  $selected ||= mt('Default');
-  (
-    'url_base' => $p.'edit/msg_template.html?msgnum='.$msgnum,
-    'selected' => $selected,
-    'tabs'     => \@tabs
-  );
-}
-
-my $onchange_locale = '';
-
-# Create hints pane
-
-my %substitutions = (
-  'cust_main' => [
-    '$display_custnum'=> 'Customer#',
-    '$agentnum'       => 'Agent#',
-    '$agent_name'     => 'Agent name',
-    '$payby'          => 'Payment method',
-    '$paymask'        => 'Card/account# (masked)',
-    '$payname'        => 'Name on card/bank name',
-    '$paytype'        => 'Account type',
-    '$payip'          => 'IP address used to submit payment info',
-    '$num_ncancelled_pkgs'  => '# of active packages',
-    '$num_cancelled_pkgs'   => '# of cancelled packages',
-    '$num_pkgs'       => '# of packages',
-    '$classname'      => 'Customer class',
-    '$categoryname'   => 'Customer category',
-    '$balance'        => 'Current balance',
-    '$credit_limit'   => 'Credit limit',
-    '$invoicing_list_emailonly' => 'Billing email address',
-    #'$cust_status'    => 'Status (raw internal label)',
-    '$cust_status_label' => 'Status (display label)',
-    '$cust_statuscolor'  => 'Status color code',
-    '$company_name'   => 'Our company name',
-    '$company_address'=> 'Our company address',
-    '$company_phonenum' => 'Our phone number',
-    '$selfservice_server_base_url' => 'Base URL of customer self-service',
-  ],
-  'contact' => [ # duplicate this for shipping
-    '$name'           => 'Company and contact name',
-    '$name_short'     => 'Company or contact name',
-    '$company'        => 'Company name',
-    '$contact'        => 'Contact name (last, first)',
-    '$contact_firstlast'=> 'Contact name (first last)',
-    '$first'          => 'First name',
-    '$last'           => 'Last name',
-    '$address1'       => 'Address line 1',
-    '$address2'       => 'Address line 2',
-    '$city'           => 'City',
-    '$county'         => 'County',
-    '$state'          => 'State',
-    '$zip'            => 'Zip',
-    '$country'        => 'Country',
-    '$daytime'        => 'Day phone',
-    '$night'          => 'Night phone',
-    '$mobile'         => 'Mobile phone',
-    '$fax'            => 'Fax',
-  ],
-  'service' => [
-    '$ship_address1'  => 'Address line 1',
-    '$ship_address2'  => 'Address line 2',
-    '$ship_city'      => 'City',
-    '$ship_county'    => 'County',
-    '$ship_state'     => 'State',
-    '$ship_zip'       => 'Zip',
-    '$ship_country'   => 'Country',
-  ],
-  'cust_bill' => [
-    '$invnum'         => 'Invoice#',
-    '$_date_pretty'   => 'Invoice date',
-    '$due_date'       => 'Invoice due date (timestamp)',
-    '$due_date2str'   => 'Invoice due date (human readable)',
-  ],
-  'cust_pkg' => [
-    '$pkgnum'         => 'Package#',
-    '$pkg'            => 'Package description',
-    '$pkg_label'      => 'Description + comment',
-    '$status'         => 'Status',
-    '$statuscolor'    => 'Status color code',
-    '$start_ymd'      => 'Start date',
-    '$setup_ymd'      => 'Setup date',
-    '$last_bill_ymd'  => 'Last bill date',
-    '$next_bill_ymd'  => 'Next bill date',
-    '$susp_ymd'       => 'Suspended on date',
-    '$cancel_ymd'     => 'Canceled on date',
-    '$adjourn_ymd'    => 'Adjournment date',
-    '$expire_ymd'     => 'Expiration date',
-    '$labels_short'   => 'Service labels',
-    '$location_label' => 'Service location',
-  ],
-  'svc_acct'  => [
-    '$svcnum'         => 'Service#',
-    '$username'       => 'Login name',
-    '$password'       => 'Password',
-    '$domain'         => 'Domain name',
-  ],
-  'svc_domain' => [
-    '$svcnum'         => 'Service#',
-    '$domain'         => 'Domain name',
-    '$registrar'      => 'Registrar name',
-    '$catchall'       => 'Catchall email',
-  ],
-  'svc_phone' => [
-    '$svcnum'         => 'Service#',
-    '$phonenum'       => 'Phone number',
-    '$countrycode'    => 'Country code',
-    '$domain'         => 'Domain name'
-  ],
-  'svc_broadband' => [
-    '$svcnum'         => 'Service#',
-    '$ip_addr'        => 'IP address',
-    '$mac_addr'       => 'MAC address',
-    '$speed_up'       => 'Upstream speed',
-    '$speed_down'     => 'Downstream speed',
-  ],
-  'cust_pay'  => [
-    '$paynum'         => 'Payment#',
-    '$paid'           => 'Amount',
-    '$payby'          => 'Payment method',
-    '$date'           => 'Payment date',
-    '$payinfo'        => 'Card/account# (masked)',
-    '$error'          => 'Decline reason',
-  ],
-);
-
-tie my %sections, 'Tie::IxHash', (
-'contact'   => 'Name and contact info (billing)',
-'service'   => 'Service address',
-'cust_main' => 'Customer status and payment info',
-'cust_pkg'  => 'Package fields',
-'cust_bill' => 'Invoice fields',
-'cust_pay'  => 'Payment fields',
-'svc_acct'  => 'Login service fields',
-'svc_domain'=> 'Domain service fields',
-'svc_phone' => 'Phone service fields',
-'svc_broadband' => 'Broadband service fields',
-);
-
-my $widget = new HTML::Widgets::SelectLayers(
-  'options'   => \%sections,
-  'form_name' => 'dummy',
-  'html_between'=>'</FORM><FONT SIZE=-1>',
-  'selected_layer'=>(keys(%sections))[0],
-  'layer_callback' => sub {
-    my $section = shift;
-    my $html = include('/elements/table-grid.html');
-    my @hints = @{ $substitutions{$section} };
-    while(@hints) {
-      my $key = shift @hints;
-      $html .= qq!\n<TR><TD><A href="javascript:insertHtml('{$key}')">$key</A></TD>!;
-      $html .= "\n<TD>".shift(@hints).'</TD></TR>';
-    }
-    $html .= "\n</TABLE>";
-    return $html;
-  },
-);
-
-my $sidebar = '
-<SCRIPT TYPE="text/javascript">
-function insertHtml(what) {
-  var oEditor = CKEDITOR.instances["body"];
-  oEditor.insertHtml(what);
-};
-
-function areyousure(url, message) {
-  if (confirm(message))
-    window.location.href = url;
-}
-</SCRIPT>
-<TD valign="top"><FORM name="dummy">
-Substitutions: '
-. $widget->html .
-'<BR>Click links to insert.
-<BR>Enclose substitutions and other Perl expressions in braces:
-<BR>{ $name } = ExampleCo (Smith, John)
-<BR>{ time2str("%D", time) } = '.time2str("%D", time).'
-</FONT></TD>
-';
-
-sub html_table_bottom {
-  my $object = shift;
-  $cgi->param('locale') =~ /^(\w+)$/;
-  my $locale = $1;
-  my $html;
-  if ( $locale and $locale ne 'new' ) {
-    # set up a delete link
-    my $msgnum = $object->msgnum;
-    my $url = $p."misc/delete-template_content.html?msgnum=$msgnum;locale=$1";
-    my $link = qq!<A HREF="javascript:areyousure('$url','Really delete this template?')">! .
-      'Delete this template' .
-      '</A>';
-    $html = qq!<TR><TD></TD>
-      <TD STYLE="font-style: italic; font-size: small">$link</TD></TR>!;
-  }
-  $html;
-}
-
+print $cgi->redirect($fsurl."edit/msg_template/$msgclass.html?".$cgi->query_string);
 </%init>
diff --git a/httemplate/edit/msg_template/email.html b/httemplate/edit/msg_template/email.html
new file mode 100644 (file)
index 0000000..dc70ef6
--- /dev/null
@@ -0,0 +1,385 @@
+<& /edit/elements/edit.html,
+     'post_url'         => $fsurl.'edit/process/msg_template.html', 
+     'html_init'        => '<TABLE id="outerTable"><TR><TD>',
+     'body_etc'         => $body_etc,
+     'name_singular'    => 'template',
+     'table'            => 'msg_template',
+     'viewall_dir'      => 'browse',
+     'agent_virt'       => 1,
+     'agent_null'       => 1,
+     'agent_null_right' => [ 'View global templates', 'Edit global templates' ],
+
+     'fields'           => \@fields,
+     'labels'           => { 
+                             'msgnum'    => 'Template',
+                             'agentnum'  => 'Agent',
+                             'msgname'   => 'Template name',
+                             'from_addr' => 'From: ',
+                             'bcc_addr'  => 'Bcc: ',
+                             'locale'    => 'Locale',
+                             'subject'   => 'Subject: ',
+                             'body'      => 'Message body',
+                           },
+     'edit_callback'    => \&edit_callback,
+     'error_callback'   => \&edit_callback,
+     'html_bottom'      => '</DIV>',
+     'html_table_bottom'=> \&html_table_bottom,
+     'html_foot'        => ( $no_submit ? '' : "</TD>$sidebar</TR></TABLE>" ),
+     'no_submit'        => $no_submit,
+&>
+<%init>
+use FS::template_image;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates',
+                               ]);
+
+my $body_etc = '';
+$body_etc = q!onload="document.getElementById('locale').onchange()"!
+  if $cgi->param('locale') eq 'new';
+
+my $msgnum = $cgi->param('msgnum');
+my $msg_template = $msgnum ? qsearchs('msg_template', {msgnum=>$msgnum}) : '';
+
+my $no_submit = 0;
+my @fields = ();
+if ( $curuser->access_right('Edit global templates') 
+     || (    $curuser->access_right('Edit templates')
+          && $msg_template
+          && $msg_template->agentnum
+          && $curuser->agentnums_href->{$msg_template->agentnum}
+        )
+   )
+{
+  push @fields,
+      { field => 'msgclass',
+        type  => 'hidden',
+        value => 'email',
+      },
+      { field => 'agentnum',
+        type  => 'select-agent',
+      },
+      { field => 'msgname',   size=>60, },
+      { field => 'from_addr', size=>60, },
+      { field => 'bcc_addr',  size=>60, },
+      { type  => 'tablebreak-tabs',
+        include_opt_callback => \&menubar_opt_callback,
+      },
+      # template_content fields
+      { field => 'locale', type => 'hidden' },
+      { field => 'subject',   size=>60, },
+      { field => 'body',
+        type  => 'htmlarea',
+        width => 763,
+        config=> { extraPlugins => 'blockprotect' },
+      },
+  ;
+} else { #readonly
+
+  $no_submit = 1;
+
+  push @fields,
+      { field => 'agentnum',
+        type  => 'select-agent',
+        fixed => 1,
+      },
+      { field => 'msgname',   type => 'fixed', },
+      { field => 'from_addr', type => 'fixed', },
+      { field => 'bcc_addr',  type => 'fixed', },
+      { type  => 'tablebreak-tabs',
+        include_opt_callback => \&menubar_opt_callback,
+      },
+      # template_content fields
+      { field => 'locale',  type => 'hidden' },
+      { field => 'subject', type => 'fixed', },
+      { field    => 'body',
+        type     => 'fixed',
+        noescape => 1,
+      },
+  ;
+
+}
+
+sub new_callback {
+  my ($cgi, $object, $fields_listref, $opt_hashref) = @_;
+  my $template_content = new FS::template_content { 'locale' => '' };
+  $object->{'Hash'} = { $object->hash, $template_content->hash };
+}
+
+sub edit_callback {
+  my ($cgi, $object, $fields_listref, $opt_hashref) = @_;
+  $cgi->param('locale') =~ /^(\w*)$/ or die 'bad locale '.$cgi->param('locale');
+  my $locale = $1;
+
+  # fetch the content object and merge its fields
+  my %args = (
+    'msgnum' => $object->msgnum,
+    'locale' => $locale
+  );
+  my $template_content = qsearchs('template_content', \%args) 
+                        || new FS::template_content( { %args });
+  $object->{'Hash'} = { $object->hash, $template_content->hash };
+
+  # set up the locale selector if this is a new content
+  if ( $locale eq 'new' ) {
+
+    # make a list of available locales
+    my $content_locales = $object->content_locales;
+    my @locales = grep { !exists($content_locales->{$_}) } 
+                         FS::Conf->new->config('available-locales');
+    my %labels;
+    foreach (@locales) {
+      my %info = FS::Locales->locale_info($_);
+      $labels{$_} = $info{'label'};
+    }
+    unshift @locales, 'new';
+    $labels{'new'} = 'Select language';
+
+    # insert a field def
+    my $i = 0;
+    $i++ until ( $fields_listref->[$i]->{'field'} eq 'locale' );
+    my $locale_field = $fields_listref->[$i];
+
+    my $onchange_locale = "document.getElementById('submit').disabled = 
+    (this.options[this.selectedIndex].value == 'new');";
+
+    %$locale_field = (
+      field   => 'locale',
+      type    => 'select',
+      options => \@locales,
+      labels  => \%labels,
+      curr_value  => 'new',
+      onchange    => $onchange_locale,
+    );
+  }
+}
+
+sub menubar_opt_callback {
+  my $object = shift;
+  # generate no tabs for new msg_templates.
+  my $msgnum = $object->msgnum or return; 
+  my (@tabs, @options, %labels);
+  push @tabs, mt('Default'), '';
+  my $display_new = 0;
+  my $selected = '';
+  foreach my $l (FS::Locales->locales) {
+    if ( exists $object->content_locales->{$l} ) {
+      my %info = FS::Locales->locale_info($l);
+      push @tabs, 
+           $info{'label'},
+           ';locale='.$l;
+      $selected = $info{'label'} if $object->locale eq $l;
+    }
+    else {
+      $display_new = 1; # there is at least one unused locale left
+    }
+  }
+  push @tabs, mt('New'), ';locale=new' if $display_new;
+  $selected = mt('New') if $object->locale eq 'new';
+  $selected ||= mt('Default');
+  (
+    'url_base' => $fsurl.'edit/msg_template.html?msgnum='.$msgnum,
+    'selected' => $selected,
+    'tabs'     => \@tabs
+  );
+}
+
+my $onchange_locale = '';
+
+# Create hints pane
+
+my %substitutions = (
+  'cust_main' => [
+    '$display_custnum'=> 'Customer#',
+    '$agentnum'       => 'Agent#',
+    '$agent_name'     => 'Agent name',
+    '$payby'          => 'Payment method',
+    '$paymask'        => 'Card/account# (masked)',
+    '$payname'        => 'Name on card/bank name',
+    '$paytype'        => 'Account type',
+    '$payip'          => 'IP address used to submit payment info',
+    '$num_ncancelled_pkgs'  => '# of active packages',
+    '$num_cancelled_pkgs'   => '# of cancelled packages',
+    '$num_pkgs'       => '# of packages',
+    '$classname'      => 'Customer class',
+    '$categoryname'   => 'Customer category',
+    '$balance'        => 'Current balance',
+    '$credit_limit'   => 'Credit limit',
+    '$invoicing_list_emailonly' => 'Billing email address',
+    #'$cust_status'    => 'Status (raw internal label)',
+    '$cust_status_label' => 'Status (display label)',
+    '$cust_statuscolor'  => 'Status color code',
+    '$company_name'   => 'Our company name',
+    '$company_address'=> 'Our company address',
+    '$company_phonenum' => 'Our phone number',
+    '$selfservice_server_base_url' => 'Base URL of customer self-service',
+  ],
+  'contact' => [ # duplicate this for shipping
+    '$name'           => 'Company and contact name',
+    '$name_short'     => 'Company or contact name',
+    '$company'        => 'Company name',
+    '$contact'        => 'Contact name (last, first)',
+    '$contact_firstlast'=> 'Contact name (first last)',
+    '$first'          => 'First name',
+    '$last'           => 'Last name',
+    '$address1'       => 'Address line 1',
+    '$address2'       => 'Address line 2',
+    '$city'           => 'City',
+    '$county'         => 'County',
+    '$state'          => 'State',
+    '$zip'            => 'Zip',
+    '$country'        => 'Country',
+    '$daytime'        => 'Day phone',
+    '$night'          => 'Night phone',
+    '$mobile'         => 'Mobile phone',
+    '$fax'            => 'Fax',
+  ],
+  'service' => [
+    '$ship_address1'  => 'Address line 1',
+    '$ship_address2'  => 'Address line 2',
+    '$ship_city'      => 'City',
+    '$ship_county'    => 'County',
+    '$ship_state'     => 'State',
+    '$ship_zip'       => 'Zip',
+    '$ship_country'   => 'Country',
+  ],
+  'cust_bill' => [
+    '$invnum'         => 'Invoice#',
+    '$_date_pretty'   => 'Invoice date',
+    '$due_date'       => 'Invoice due date (timestamp)',
+    '$due_date2str'   => 'Invoice due date (human readable)',
+  ],
+  'cust_pkg' => [
+    '$pkgnum'         => 'Package#',
+    '$pkg'            => 'Package description',
+    '$pkg_label'      => 'Description + comment',
+    '$status'         => 'Status',
+    '$statuscolor'    => 'Status color code',
+    '$start_ymd'      => 'Start date',
+    '$setup_ymd'      => 'Setup date',
+    '$last_bill_ymd'  => 'Last bill date',
+    '$next_bill_ymd'  => 'Next bill date',
+    '$susp_ymd'       => 'Suspended on date',
+    '$cancel_ymd'     => 'Canceled on date',
+    '$adjourn_ymd'    => 'Adjournment date',
+    '$expire_ymd'     => 'Expiration date',
+    '$labels_short'   => 'Service labels',
+    '$location_label' => 'Service location',
+  ],
+  'svc_acct'  => [
+    '$svcnum'         => 'Service#',
+    '$username'       => 'Login name',
+    '$password'       => 'Password',
+    '$domain'         => 'Domain name',
+  ],
+  'svc_domain' => [
+    '$svcnum'         => 'Service#',
+    '$domain'         => 'Domain name',
+    '$registrar'      => 'Registrar name',
+    '$catchall'       => 'Catchall email',
+  ],
+  'svc_phone' => [
+    '$svcnum'         => 'Service#',
+    '$phonenum'       => 'Phone number',
+    '$countrycode'    => 'Country code',
+    '$domain'         => 'Domain name'
+  ],
+  'svc_broadband' => [
+    '$svcnum'         => 'Service#',
+    '$ip_addr'        => 'IP address',
+    '$mac_addr'       => 'MAC address',
+    '$speed_up'       => 'Upstream speed',
+    '$speed_down'     => 'Downstream speed',
+  ],
+  'cust_pay'  => [
+    '$paynum'         => 'Payment#',
+    '$paid'           => 'Amount',
+    '$payby'          => 'Payment method',
+    '$date'           => 'Payment date',
+    '$payinfo'        => 'Card/account# (masked)',
+    '$error'          => 'Decline reason',
+  ],
+);
+
+tie my %sections, 'Tie::IxHash', (
+'contact'   => 'Name and contact info (billing)',
+'service'   => 'Service address',
+'cust_main' => 'Customer status and payment info',
+'cust_pkg'  => 'Package fields',
+'cust_bill' => 'Invoice fields',
+'cust_pay'  => 'Payment fields',
+'svc_acct'  => 'Login service fields',
+'svc_domain'=> 'Domain service fields',
+'svc_phone' => 'Phone service fields',
+'svc_broadband' => 'Broadband service fields',
+);
+
+my $widget = new HTML::Widgets::SelectLayers(
+  'options'   => \%sections,
+  'form_name' => 'dummy',
+  'html_between'=>'</FORM><FONT SIZE=-1>',
+  'selected_layer'=>(keys(%sections))[0],
+  'layer_callback' => sub {
+    my $section = shift;
+    my $html = include('/elements/table-grid.html');
+    my @hints = @{ $substitutions{$section} };
+    while(@hints) {
+      my $key = shift @hints;
+      $html .= qq!\n<TR><TD><A href="javascript:insertHtml('{$key}')">$key</A></TD>!;
+      $html .= "\n<TD>".shift(@hints).'</TD></TR>';
+    }
+    $html .= "\n</TABLE>";
+    return $html;
+  },
+);
+
+my $sidebar = '
+<SCRIPT TYPE="text/javascript">
+function insertHtml(what) {
+  var oEditor = CKEDITOR.instances["body"];
+  oEditor.insertHtml(what);
+};
+
+function areyousure(url, message) {
+  if (confirm(message))
+    window.location.href = url;
+}
+</SCRIPT>
+<TD valign="top"><FORM name="dummy">
+Substitutions: '
+. $widget->html .
+'<P>Click above links to insert substitution code.</P>
+<P>
+Enclose substitutions and other Perl expressions in braces:
+<BR>{ $name } = ExampleCo (Smith, John)
+<BR>{ time2str("%D", time) } = '.time2str("%D", time).'
+</P>';
+$sidebar .= include('/elements/template_image-dialog.html',
+              'callback' => 'insertHtml'
+            );
+$sidebar .= '<P><A HREF="javascript:insertImageDialog()">Insert Uploaded Image</A></P>
+</FONT></TD>
+';
+
+sub html_table_bottom {
+  my $object = shift;
+  $cgi->param('locale') =~ /^(\w+)$/;
+  my $locale = $1;
+  my $html;
+  if ( $locale and $locale ne 'new' ) {
+    # set up a delete link
+    my $msgnum = $object->msgnum;
+    my $url = $fsurl."misc/delete-template_content.html?msgnum=$msgnum;locale=$1";
+    my $link = qq!<A HREF="javascript:areyousure('$url','Really delete this template?')">! .
+      'Delete this template' .
+      '</A>';
+    $html = qq!<TR><TD></TD>
+      <TD STYLE="font-style: italic; font-size: small">$link</TD></TR>!;
+  }
+  $html;
+}
+
+</%init>
diff --git a/httemplate/edit/msg_template/http.html b/httemplate/edit/msg_template/http.html
new file mode 100644 (file)
index 0000000..e82cc0c
--- /dev/null
@@ -0,0 +1,82 @@
+<& /edit/elements/edit.html,
+    'post_url'         => $fsurl.'edit/process/msg_template.html', 
+    'name_singular'    => 'message interface',
+    'table'            => 'msg_template',
+    'viewall_dir'      => 'browse',
+    'agent_virt'       => 1,
+    'agent_null'       => 1,
+    'agent_null_right' => [ 'View global templates', 'Edit global templates' ],
+
+    'fields'           => [], # callback takes care of this
+    'new_callback'     => $edit_callback,
+    'edit_callback'    => $edit_callback,
+    'error_callback'   => $edit_callback,
+    'labels'           => \%labels,
+    'no_submit'        => $no_submit,
+&>
+<%init>
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates',
+                               ]);
+
+my %labels = (
+  'msgnum'      => 'Template', # it's still a template number
+  'agentnum'    => 'Agent',
+  'msgname'     => 'Interface name',
+  'prepare_url' => 'Prepare URL',
+  'send_url'    => 'Send URL',
+  'username'    => 'HTTP username',
+  'password'    => 'HTTP password',
+  'content'     => 'Additional POST content',
+);
+
+my $no_submit = 0;
+
+my $edit_callback = sub {
+  my ($cgi, $msg_template, $fields, $opt) = @_;
+  if ( $curuser->access_right('Edit global templates') 
+     || (    $curuser->access_right('Edit templates')
+          && $msg_template
+          && $msg_template->agentnum
+          && $curuser->agentnums_href->{$msg_template->agentnum}
+        )
+  ) {
+    @$fields = (
+        { field => 'msgclass',
+          type  => 'hidden',
+          value => 'http',
+        },
+        { field => 'agentnum',
+          type  => 'select-agent',
+        },
+        { field => 'msgname',   size=>60, required => 1 },
+        { field => 'prepare_url', size=>60, required => 1 },
+        { field => 'send_url',  size=>60, required => 1 },
+        { field => 'username', size=>20 },
+        { field => 'password', size=>20 },
+        { field => 'content', type => 'textarea' },
+    );
+  } else { #readonly
+
+    $no_submit = 1;
+
+    @$fields = (
+        { field => 'agentnum',
+          type  => 'select-agent',
+          fixed => 1,
+        },
+        { field => 'msgname',   type => 'fixed', },
+        { field => 'prepare_url', type => 'fixed', },
+        { field => 'send_url',  type => 'fixed', },
+        { field => 'username',  type => 'fixed', },
+        { field => 'password',  type => 'fixed', },
+        { field => 'content', type => 'fixed' },
+    );
+
+  }
+};
+
+</%init>
index 9f5510d..570c5ac 100755 (executable)
@@ -989,9 +989,13 @@ my $html_bottom = sub {
    #$html .= '</SELECT></TD></TR>';
   
     my $href = $plans{$layer}->{'fields'};
-    my @fields = exists($plans{$layer}->{'fieldorder'})
-                   ? @{$plans{$layer}->{'fieldorder'}}
-                   : keys %{ $href };
+    my @fields;
+    if ( $plans{$layer}->{'fieldorder'} ) {
+      @fields = @{ $plans{$layer}->{'fieldorder'} };
+    } else {
+      warn "FS::part_pkg::$layer has no fieldorder.\n";
+      @fields = keys %$href;
+    }
     
     # hash of dependencies for each of the Pricing Plan fields.
     # make sure NOT to use double-quotes inside the 'msg' value.
@@ -1015,7 +1019,7 @@ my $html_bottom = sub {
             }
         }
     };
-    
+
     foreach my $field ( grep $_ !~ /^(setup|recur)_fee$/, @fields ) {
   
       if(!exists($href->{$field})) {
@@ -1029,7 +1033,8 @@ my $html_bottom = sub {
         next if !$display;
       }
 
-      $html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>';
+      $html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>
+      ';
   
       my $format = sub { shift };
       $format = $href->{$field}{'format'} if exists($href->{$field}{'format'});
@@ -1128,9 +1133,11 @@ my $html_bottom = sub {
       $html .= '</TD></TR>';
     }
     $html .= '</TABLE>';
-  
-    $html .= qq(<INPUT TYPE="hidden" NAME="${layer}__OPTIONS" VALUE=").
-             join(',', keys %{ $href } ). '">';
+    $html .= include('/elements/hidden.html',
+                field => $layer.'__OPTIONS',
+                value => join(',', @fields)
+             );
   
     $html;
   
index 046a979..308ea8f 100644 (file)
@@ -59,6 +59,40 @@ unless ($error) {
       $error = $cust_pkg->change_later(\%change);
     }
   } else {
+
+    # for now, can't change usageprice with change_later
+    my @old_cust_pkg_usageprice = $cust_pkg->cust_pkg_usageprice;
+
+    # build new usageprice array
+    # false laziness with /edit/process/quick-cust_pkg.cgi
+    my @cust_pkg_usageprice = ();
+    foreach my $quantity_param ( grep { $cgi->param($_) && $cgi->param($_) > 0 }
+                                   grep /^usagepricenum(\d+)_quantity$/,
+                                     $cgi->param
+                               )
+    {
+      $quantity_param =~ /^usagepricenum(\d+)_quantity$/ or die 'unpossible';
+      my $num = $1;
+      push @cust_pkg_usageprice, new FS::cust_pkg_usageprice {
+        usagepricepart => scalar($cgi->param("usagepricenum${num}_usagepricepart")),
+        quantity       => scalar($cgi->param($quantity_param)),
+      };
+    }
+
+    # Need to figure out if usagepricepart quantities changed
+    my %oldup = map { $_->usagepricepart, $_->quantity } @old_cust_pkg_usageprice;
+    my %newup = map { $_->usagepricepart, $_->quantity } @cust_pkg_usageprice;
+    my $usagechanged = 0;
+    foreach my $up (keys %oldup) {
+      last if $usagechanged;
+      $usagechanged = 1 unless $oldup{$up} == $newup{$up};
+    }
+    foreach my $up (keys %newup) {
+      last if $usagechanged;
+      $usagechanged = 1 unless $oldup{$up} == $newup{$up};
+    }
+    $change{'cust_pkg_usageprice'} = \@cust_pkg_usageprice;
+
     # special case: if there's a package change scheduled, and it matches
     # the parameters the user requested this time, then change to the existing
     # future package.
@@ -68,12 +102,13 @@ unless ($error) {
         $change_to->pkgpart      == $change{'pkgpart'} and
         $change_to->locationnum  == $change{'locationnum'} and
         $change_to->quantity     == $change{'quantity'} and
-        $change_to->contract_end == $change{'contract_end'}
+        $change_to->contract_end == $change{'contract_end'} and
+        !$usagechanged
       ) {
         %change = ( 'cust_pkg' => $change_to );
       }
     }
-    
+
     # do a package change right now
     my $pkg_or_error = $cust_pkg->change( \%change );
     $error = ref($pkg_or_error) ? '' : $pkg_or_error;
index d3847dc..db15eac 100755 (executable)
@@ -12,8 +12,7 @@ die "access denied"
 
 if ( $cgi->param('src_amount') ) {
   die "access denied"
-    unless ( $FS::CurrentUser::CurrentUser->access_right('Post credit') &&
-           $FS::CurrentUser::CurrentUser->access_right('Delete credit') );
+    unless $FS::CurrentUser::CurrentUser->access_right('Post credit')
 }
 
 </%init>
index 52fede8..6ad468b 100755 (executable)
@@ -12,7 +12,7 @@
 
     </BODY></HTML>
 %  } else {
-<% $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum") %>
+<% $cgi->redirect(popurl(3). "view/cust_main.cgi?custnum=$custnum;show=payment_history") %>
 %  }
 %}
 <%init>
@@ -30,16 +30,8 @@ my $link    = $cgi->param('popup') ? 'popup' : '';
 
 my $payby = $cgi->param('payby');
 
-my @rights = ();
-push @rights, 'Post refund'                if $payby =~ /^(BILL|CASH|MCRD|MCHK)$/;
-push @rights, 'Post check refund'          if $payby eq 'BILL';
-push @rights, 'Post cash refund '          if $payby eq 'CASH';
-push @rights, 'Refund payment'             if $payby =~ /^(CARD|CHEK)$/;
-push @rights, 'Refund credit card payment' if $payby eq 'CARD';
-push @rights, 'Refund Echeck payment'      if $payby eq 'CHEK';
-
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right(\@rights);
+  unless $FS::CurrentUser::CurrentUser->refund_access_right($payby);
 
 $cgi->param('reasonnum') =~ /^(-?\d+)$/ or die "Illegal reasonnum";
 my ($reasonnum, $error) = $m->comp('/misc/process/elements/reason');
@@ -63,12 +55,19 @@ if ( $error ) {
                                                   'reason' => $reason,
                                                   %options );
 } else {
-  my $new = new FS::cust_refund ( {
-    map {
-      $_, scalar($cgi->param($_));
-    } fields('cust_refund') #huh? , 'paynum' )
-  } );
-  $error = $new->insert;
+  my %hash = map {
+    $_, scalar($cgi->param($_))
+  } fields('cust_refund');
+  my $paynum = $cgi->param('paynum');
+  $paynum =~ /^(\d*)$/ or die "Illegal paynum!";
+  if ($paynum) {
+    my $cust_pay = qsearchs('cust_pay',{ 'paynum' => $paynum });
+    die "Could not find paynum $paynum" unless $cust_pay;
+    $error = $cust_pay->refund(\%hash);
+  } else {
+    my $new = new FS::cust_refund ( \%hash );
+    $error = $new->insert;
+  }
 }
 
 </%init>
index eae3a74..0033bbe 100644 (file)
@@ -3,12 +3,31 @@
     error_redirect => popurl(2).'deploy_zone-fixed.html',
     table       => 'deploy_zone',
     viewall_dir => 'browse',
-    process_o2m => {
-      'table'  => 'deploy_zone_block',
-      'fields' => [qw( censusblock censusyear )]
-    },
-    process_upload => {
-      'process' => 'misc/process/deploy_zone-import.html',
-      'fields' => [qw( censusyear format )],
-    },
+    precheck_callback => $precheck_callback,
+    process_o2m =>
+      { 'table'  => 'deploy_zone_vertex',
+                     'fields' => [qw( latitude longitude )]
+      },
+    progress_init => [
+      'PostForm',
+      [ 'zonenum' ],
+      $fsurl.'misc/process/deploy_zone-block_lookup.cgi',
+      $fsurl.'browse/deploy_zone.html',
+    ],
 &>
+<%init>
+my $precheck_callback = sub {
+  # convert the vertex list into a process_o2m-style parameter list
+  if ( $cgi->param('vertices') ) {
+    my $vertices = decode_json($cgi->param('vertices'));
+    my $i = 0;
+    foreach (@$vertices) {
+      $cgi->param("vertexnum${i}", '');
+      $cgi->param("vertexnum${i}_latitude", $_->[0]);
+      $cgi->param("vertexnum${i}_longitude", $_->[1]);
+      $i++;
+    }
+  }
+  '';
+};
+</%init>
index 7b8f911..d36d5d4 100644 (file)
@@ -2,8 +2,25 @@
     error_redirect => popurl(2).'deploy_zone-mobile.html',
     table       => 'deploy_zone',
     viewall_dir => 'browse',
-    process_o2m => 
+    precheck_callback => $precheck_callback,
+    process_o2m =>
       { 'table'  => 'deploy_zone_vertex',
                      'fields' => [qw( latitude longitude )]
       },
 &>
+<%init>
+my $precheck_callback = sub {
+  # convert the vertex list into a process_o2m-style parameter list
+  if ( $cgi->param('vertices') ) {
+    my $vertices = decode_json($cgi->param('vertices'));
+    my $i = 0;
+    foreach (@$vertices) {
+      $cgi->param("vertexnum${i}", '');
+      $cgi->param("vertexnum${i}_latitude", $_->[0]);
+      $cgi->param("vertexnum${i}_longitude", $_->[1]);
+      $i++;
+    }
+  }
+  '';
+};
+</%init>
index 69bd605..fd12c61 100644 (file)
@@ -160,7 +160,28 @@ process();
 </script>
 <& /elements/footer.html &>
 
-%} elsif ( $opt{'popup_reload'} ) {
+% } elsif ( $opt{'progress_init'} ) {
+%   # some false laziness with the above
+%   my ($form_name, $job_fields) = @{ $opt{'progress_init'} };
+<form name="<% $form_name %>">
+  <input type="hidden" name="<% $pkey %>" value="<% $new->get($pkey) %>">
+%   foreach my $field (@$job_fields) {
+%     next if $field eq $pkey;
+  <input type="hidden" name="<% $field %>" value="<% $cgi->param($field) |h %>">
+%   }
+<& /elements/progress-init.html,
+  @{ $opt{'progress_init'} }
+&>
+<input type="submit" style="display:none">
+</form>
+<script>
+<&| /elements/onload.js &>
+process();
+</&>
+</script>
+<& /elements/footer.html &>
+
+% } elsif ( $opt{'popup_reload'} ) {
 
   <% include('/elements/header-popup.html', $opt{'popup_reload'} ) %>
 
index e146adf..d8b125a 100644 (file)
@@ -1,7 +1,7 @@
 <% include( 'elements/process.html',  
               'table'       => 'msg_template',
-              'viewall_dir' => 'browse',
-              #'popup_reload'=> 1,
+              'fields'      => $fields,
+              'viewall_url' => "browse/msg_template/$msgclass.html",
               'debug'       => 0,
               'precheck_callback' => \&precheck_callback,
               'args_callback' => \&args_callback,
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right(['Edit templates','Edit global templates']);
 
+my $msgclass = 'email';
+if ( $cgi->param('msgclass') =~ /^(\w+)$/ ) {
+  $msgclass = $1;
+}
+
+my $fields = [ fields('msg_template') ];
+my $class = "FS::msg_template::$msgclass";
+eval "use $class;";
+if ( $class->extension_table ) {
+  push @$fields, fields($class->extension_table);
+}
+
 sub precheck_callback {
   my $cgi = shift;
-  # validate some fields
+  # validate locale field (for email-type records)
   $cgi->param('locale') =~ /^(\w*)$/;
   my $locale = $1;
   return mt('Language required') if $locale eq 'new'; # the user didn't choose
index 0709d50..f8a7444 100644 (file)
@@ -12,7 +12,6 @@ die "access denied"
 
 my $set_default_detail = sub {
   my ($cgi, $rate_detail) = @_;
-warn Dumper $rate_detail;
   if (!$rate_detail->dest_regionnum) {
     # then this is a global default rate
     my $rate = $rate_detail->rate;
index 183ea8a..1b052d6 100644 (file)
@@ -5,7 +5,7 @@
 
 <% include('/elements/progress-init.html',
               'OneTrueForm',
-              [ 'rate', 'agentnum', 'preserve_rate_detail' ], # 'rate', 'min_', 'sec_' ],
+              [ 'rate', 'agentnum' ],
               'process/rate.cgi',
               $p.'browse/rate.cgi',
            )
@@ -27,8 +27,6 @@
 </TABLE>
 <BR>
 
-<INPUT TYPE="hidden" NAME="preserve_rate_detail" VALUE="1">
-
 <INPUT NAME="submit" TYPE="button" VALUE="<% 
   $rate->ratenum ? "Apply changes" : "Add rate plan"
 %>" onClick="document.OneTrueForm.submit.disabled=true; process();">
index ef74481..87e15de 100644 (file)
@@ -135,7 +135,7 @@ tie my %label, 'Tie::IxHash',
 
 my $first = 0;
 foreach my $phone_type ( qsearch({table=>'phone_type', order_by=>'weight'}) ) {
-  next if $phone_type->typename eq 'Home';
+  next if $phone_type->typename =~ /^(Home|Fax)$/;
   my $f = 'phonetypenum'.$phone_type->phonetypenum;
   $label{$f} = $phone_type->typename. ' phone';
   $size{$f} = $first++ ? 10 : 15;
index 7290993..74b7842 100644 (file)
         >
 %         my $info = $part_pkg_usageprice->target_info;
 %         my $amount = $part_pkg_usageprice->amount / ($info->{multiplier}||1);
-          <OPTION VALUE="">Additional <% $info->{label} %>
+          <OPTION VALUE="">Additional <% $info->{label} %></OPTION>
 %         for (1..100) { #100?  arbitrary.
-            <OPTION VALUE="<% $_ %>"><%
+%           my $selected = ($opt{'curr_quantity'} == $_) ? ' SELECTED' : '';
+            <OPTION VALUE="<% $_ %>"<% $selected %>><%
               $money_char. sprintf('%.2f', $_ * $part_pkg_usageprice->price ).
               ' '.
               'for'. #( $part_pkg_usageprice->action eq 'increment' ? 'per' : 'for' ).
               ' '.
               ( $_ * $amount ). ' '. $info->{label}
-            %>
+            %></OPTION>
 %         }
         </SELECT>
       </TD>
@@ -42,8 +43,6 @@
 % }
 <%init>
 
-#my $targets = FS::part_pkg_usageprice->targets;
-
 my( %opt ) = @_;
 
 my $conf = new FS::Conf;
index 2612faa..16935cf 100644 (file)
@@ -10,7 +10,8 @@ die "'table' required" if !$table;
 die "'search_hash' required" if !$search_hash;
 
 my $uri = new URI;
-$uri->query_form($search_hash);
+my @params = map { $_, $search_hash->{$_} } sort keys %$search_hash;
+$uri->query_form(@params);
 my $query = $uri->query;
 my $label = ($opt{'label'} || 'Email a notice to these customers');
 </%init>
index 362e823..d76c0d8 100644 (file)
@@ -6,7 +6,7 @@ function updateTicketLink() {
   link.href = "<% $new_base.'?'.
     join(';', map(
       { ($_ eq 'Queue') ? () : "$_=$new_param{$_}"}
-    keys %new_param),'Queue=') %>" + selector.options[selector.selectedIndex].value;
+    sort keys %new_param),'Queue=') %>" + selector.options[selector.selectedIndex].value;
 }
 </SCRIPT>
 <A NAME="tickets"><FONT CLASS="fsinnerbox-title">Tickets</FONT></A>
index 45b6c97..3542a5a 100644 (file)
@@ -69,6 +69,7 @@ Example:
 <div style="display:none:" id="uploadError"></div>
 
 <FORM NAME     = "<% $opt{name} %>"
+      ID       = "<% $opt{id} %>"
       ACTION   = "<% $fsurl %>misc/file-upload.html"
       METHOD   = "POST"
       ENCTYPE  = "multipart/form-data"
index 7c40e61..d8b2512 100644 (file)
@@ -12,7 +12,7 @@ Example:
 </%doc>
 
 % #init
-<SCRIPT TYPE="text/javascript" src="<% $p %>elements/ckeditor/ckeditor.js">
+<SCRIPT TYPE="text/javascript" src="<% $fsurl %>elements/ckeditor/ckeditor.js">
 </SCRIPT>
 
 % #editor
@@ -35,7 +35,7 @@ my $config = {
   'skin'                => 'kama',
   'toolbarCanCollapse'  => JSON::true,
   'removePlugins'       => 'elementspath',
-  'basePath'            => $p.'elements/ckeditor/',
+  'basePath'            => $fsurl.'elements/ckeditor/',
   'enterMode'           => 2,
   %{ $opt{config} || {} },
 };
diff --git a/httemplate/elements/images/ui-icons_ef8c08_256x240.png b/httemplate/elements/images/ui-icons_ef8c08_256x240.png
new file mode 100644 (file)
index 0000000..85e63e9
Binary files /dev/null and b/httemplate/elements/images/ui-icons_ef8c08_256x240.png differ
index a5fb15b..ea69331 100644 (file)
@@ -381,6 +381,8 @@ if( $curuser->access_right('Financial reports') ) {
   $report_financial{'Tax Liability (vendor tax data)'} = [ $fsurl.'search/report_newtax.html', 'Tax liability report (vendor tax data)' ]
     if $taxproducts;
 
+  $report_financial{'Monthly Sales and Taxes'} = [$fsurl.'search/tax_sales.html', 'Monthly sales and taxes report'];
+
   # most sites don't need this but there isn't really a config to enable it
   $report_financial{'E911 Fee Summary'} = [ $fsurl.'search/report_e911.html', 'E911 fee summary' ];
 
@@ -767,7 +769,7 @@ tie my %config_nms, 'Tie::IxHash',
 ;
 
 tie my %config_misc, 'Tie::IxHash';
-$config_misc{'Message templates'} = [ $fsurl.'browse/msg_template.html', 'Templates for customer notices' ]
+$config_misc{'Message templates'} = [ $fsurl.'browse/msg_template/email.html', 'Templates for customer notices' ]
   if $curuser->access_right(['View templates', 'View global templates',
                              'Edit templates', 'Edit global templates', ]);
 $config_misc{'Advertising sources'} = [ $fsurl.'browse/part_referral.html', 'Where a customer heard about your service.' ]
index 3586a54..a850d21 100644 (file)
@@ -1,10 +1,12 @@
 function pkg_changed () {
   var form = document.OrderPkgForm;
   var discountnum = form.discountnum;
+  var opt = form.pkgpart.options[form.pkgpart.selectedIndex];
+
+  usageprice_pkg_changed( opt.value );
 
   if ( form.pkgpart.selectedIndex > 0 ) {
 
-    var opt = form.pkgpart.options[form.pkgpart.selectedIndex];
     var date_button = document.getElementById('start_date_button');
     var date_button_disabled = document.getElementById('start_date_disabled');
     var date_text = document.getElementById('start_date_text');
@@ -68,78 +70,14 @@ function pkg_changed () {
       }
     }
 
-    get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice );
-
   } else {
     form.submitButton.disabled = true;
     if ( discountnum ) { form.discountnum.disabled = true; }
     discountnum_changed(form.discountnum);
   }
-}
-
-function update_part_pkg_usageprice(part_pkg_usageprice) {
-
-  var table = document.getElementById('cust_pkg_usageprice_table');
-
-  // black the current usage price rows
-  for ( var r = table.rows.length - 1; r >= 0; r-- ) {
-    table.deleteRow(r);
-  }
-
-  // add the new usage price rows
-  var rownum = 0;
-  var usagepriceArray = eval('(' + part_pkg_usageprice + ')' );
-  for ( var s = 0; s < usagepriceArray.length; s=s+2 ) {
-    //surely this should be some kind of JSON structure
-    var html       = usagepriceArray[s+0];
-    var javascript = usagepriceArray[s+1];
-
-    // a lot like ("inspiried by") edit/elements/edit.html function spawn_<%$field%>
-
-    // XXX evaluate the javascript
-    //if (window.ActiveXObject) {
-    //  window.execScript(newfunc);
-    //} else { /* (window.XMLHttpRequest) */
-    //  //window.eval(newfunc);
-    //  setTimeout(newfunc, 0);
-    //}
-
-    var row = table.insertRow(rownum++);
-
-    //var label_cell = document.createElement('TD');
-
-    //label_cell.id = '<% $field %>_label' + <%$field%>_fieldnum;
-
-    //label_cell.style.textAlign = "right";
-    //label_cell.style.verticalAlign = "top";
-    //label_cell.style.borderTop = "1px solid black";
-    //label_cell.style.paddingTop = "5px";
-
-    //label_cell.innerHTML = '<% $label %>';
-
-    //row.appendChild(label_cell);
-          
-    var widget_cell = document.createElement('TD');
-
-    //widget_cell.style.borderTop = "1px solid black";
-    widget_cell.style.paddingTop = "3px";
-    widget_cell.colSpan = "2";
-
-    widget_cell.innerHTML = html;
-
-    row.appendChild(widget_cell);
-
-  }
-
-  if ( rownum > 0 ) {
-    document.getElementById('cust_pkg_usageprice_title').style.display = '';
-  } else {
-    document.getElementById('cust_pkg_usageprice_title').style.display = 'none';
-  }
 
 }
 
-
 function standardize_new_location() {
   var form = document.OrderPkgForm;
   var loc = form.locationnum;
diff --git a/httemplate/elements/polygon.html b/httemplate/elements/polygon.html
new file mode 100644 (file)
index 0000000..c26e985
--- /dev/null
@@ -0,0 +1,127 @@
+<%init>
+my %opt = @_;
+my $field = $opt{'field'};
+my $id = $opt{'id'} || $opt{'field'};
+my $div_id = "div_$id";
+
+my $vertices_json = $opt{'curr_value'} || '[]';
+</%init>
+<& hidden.html, %opt &>
+<div id="<% $div_id %>" style="height: 600px; width: 600px"></div>
+
+<script src="https://maps.googleapis.com/maps/api/js?libraries=drawing"></script>
+<script>
+var map;
+var drawingManager;
+
+function updateFormInput(event) {
+  var path = window.polygon.getPath();
+  var vertices = []; // array of arrays, geoJSON style
+  for (var i =0; i < path.getLength(); i++) {
+    var xy = path.getAt(i);
+    vertices[i] = [ xy.lat(), xy.lng() ];
+  }
+  console.log(vertices); //XXX
+  $('#<% $field %>').prop('value', JSON.stringify(vertices));
+}
+
+$(function() {
+  mapOptions = {
+    zoom: 4,
+    center: {lat: 39.40114, lng: -96.57127}, // continental U.S.
+    mapTypeId: google.maps.MapTypeId.ROADMAP,
+    panControl: true,
+    scaleControl: true,
+    streetViewControl: false,
+  };
+  map = new google.maps.Map($('#<% $div_id %>')[0], mapOptions);
+
+  var polygonComplete = function(p) {
+    window.polygon = p;
+    if (drawingManager) {
+      drawingManager.setDrawingMode(null);
+      drawingManager.setOptions({ drawingControl: false });
+    }
+    // double click to delete a vertex (so long as it remains a polygon)
+    p.addListener('dblclick', function (mev) {
+      if (mev.vertex != null && window.polygon.getPath().length > 3) {
+        p.getPath().removeAt(mev.vertex);
+      }
+    });
+    // any time the polygon is modified, update the vertex list
+    p.getPath().addListener('set_at', updateFormInput);
+    p.getPath().addListener('insert_at', updateFormInput);
+    p.getPath().addListener('remove_at', updateFormInput);
+
+    // and also now
+    updateFormInput();
+  };
+
+  var polygonOptions = {
+    fillColor: '#0000a0',
+    fillOpacity: 0.2,
+    strokeColor: '#0000a0',
+    strokeWeight: 2,
+    clickable: false,
+    editable: true,
+    zIndex: 1,
+    map: map,
+  };
+
+  var vertex_array = <% $vertices_json %>;
+  if ( vertex_array.length > 2 ) {
+    // then we already have a polygon. make it acceptable to google maps,
+    // and also create a bounding box for it and fit the map to that.
+
+    var path = [];
+    var bounds = new google.maps.LatLngBounds();
+    for (var i = 0; i < vertex_array.length; i++) {
+      var xy = new google.maps.LatLng(vertex_array[i][0], vertex_array[i][1]);
+      path.push(xy);
+      bounds.extend(xy);
+    }
+
+    polygonOptions.paths = [ path ];
+    polygonComplete(new google.maps.Polygon(polygonOptions));
+    map.fitBounds(bounds);
+
+  } else {
+    // there are no vertices, or not enough to make a polygon, so 
+    // enable drawing mode to create a new one
+
+    drawingManager = new google.maps.drawing.DrawingManager({
+      drawingMode: google.maps.drawing.OverlayType.POLYGON,
+      drawingControl: true,
+      drawingControlOptions: {
+        position: google.maps.ControlPosition.TOP_CENTER,
+        drawingModes: [
+          google.maps.drawing.OverlayType.POLYGON,
+        ]
+      },
+      polygonOptions: polygonOptions,
+    });
+
+    // after a single polygon is drawn: remember it, add a listener to let
+    // nodes be deleted, and exit drawing mode
+    drawingManager.addListener('polygoncomplete', polygonComplete);
+    drawingManager.setMap(map);
+
+    // center the map on the user (for lack of a better choice)
+    if (navigator.geolocation) {
+      navigator.geolocation.getCurrentPosition(function(position) {
+        var pos = {
+          lat: position.coords.latitude,
+          lng: position.coords.longitude
+        };
+
+        map.setCenter(pos);
+        map.setZoom(12);
+      });
+    } // on error, or if geolocation isn't available, do nothing
+  }
+
+});
+
+    </script>
+  </body>
+</html>
diff --git a/httemplate/elements/popup_link-send_report_batch.html b/httemplate/elements/popup_link-send_report_batch.html
new file mode 100644 (file)
index 0000000..5f44710
--- /dev/null
@@ -0,0 +1,28 @@
+<%doc>
+
+Example:
+
+<& /elements/popup_link-send_report_batch.html,
+  reportname => 'sales_commission_pkg',
+  label => 'Click here to send reports by email',
+&>
+</%doc>
+<& /elements/popup_link.html, $params &>\
+<%init>
+
+my $params = { 'closetext' => emt('Close') };
+
+if (ref($_[0]) eq 'HASH') {
+  $params = { %$params, %{ $_[0] } };
+} else {
+  $params = { %$params, @_ };
+}
+
+$params->{'label'} ||= emt('Send reports by email');
+$params->{'actionlabel'} ||= emt('Send reports');
+#$params->{'width'} ||= 350;
+$params->{'height'} ||= 650;
+
+$params->{'action'} = $fsurl. 'misc/send-report.html?reportname='. $params->{'reportname'};
+
+</%init>
index 45a8a5b..69b9f42 100644 (file)
@@ -12,7 +12,8 @@ my $custnum = encode_entities( $cgi->param('custnum') );
 
 my $query = join('&', map "username=$_", @username).
             "&LengthMin=$LengthMin".
-            "&custnum=$custnum";
+            "&custnum=$custnum".
+            "&RedirectToBasics=1";
             #XXX '&pkgnum=$pkgnum";need to be for specific package/location, not just for a customer... default to active(/ordered) package in a pkg_class w/ticketing_queueid, otherwise, a popup?  we're getting complicated like form-creat_ticket.html
 
 my $url = $p. 'rt/Search/Schedule.html?'. $query;
index 716832f..a330df1 100644 (file)
@@ -36,7 +36,7 @@ my $empty_value = $opt{'empty_value'} || '';
 
 my @terms = ( emt('Payable upon receipt'),
               ( map "Net $_",
-                0, 3, 5, 9, 10, 14, 15, 18, 20, 21, 25, 30, 45, 60, 90 ),
+                0, 3, 5, 7, 9, 10, 14, 15, 18, 20, 21, 25, 30, 45, 60, 90 ),
             );
 
 my @pre_options = $opt{pre_options} ? @{ $opt{pre_options} } : ();
index a16d3bf..76ff252 100644 (file)
@@ -2,6 +2,8 @@
 <& /elements/select-table.html,
     table       => 'tower_sector',
     name_col    => 'description',
+    addl_from   => 'JOIN tower USING (towernum)',
+    extra_sql   => q(WHERE disabled = '' OR disabled IS NULL),
     order_by    => 'ORDER BY towernum,sectorname',
     empty_label => ' ',
     @_ 
@@ -11,8 +13,9 @@
 <& /elements/select-table.html,
     table       => 'tower',
     name_col    => 'towername',
+    hashref     => { 'disabled' => '', },
     id          => 'towernum',
-    field       => 'dummy_towernum',
+    field       => 'towernum',
     onchange    => 'change_towernum(this.value);',
     element_etc => 'STYLE="vertical-align:top"',
 &>
@@ -63,5 +66,5 @@ foreach my $towernum (keys %sectors_of) {
   }
 }
 
-my $empty_label = $opt{'empty_label'} || 'Include services with no tower/sector';
+my $empty_label = $opt{'empty_label'} || 'Include services with no sector';
 </%init>
diff --git a/httemplate/elements/template_image-dialog.html b/httemplate/elements/template_image-dialog.html
new file mode 100644 (file)
index 0000000..b471d28
--- /dev/null
@@ -0,0 +1,279 @@
+<%doc>
+
+Creates a jquery dialog box that opens when javascript function insertImageDialog
+is called, allows user to select an image and specify attributes for it, then passes 
+img tag with base64 encoded data url to a callback javascript function.
+
+Accepts the following options:
+
+callback - pass the html for the selected img to this javascript function;
+if omitted, will only include fields for viewing/uploading image
+
+url - to redirect to after upload, otherwise just refreshes dialog window
+
+</%doc>
+
+<% include('/elements/xmlhttp.html',
+        'url'  => $fsurl.'misc/xmlhttp-template_image.cgi',
+        'subs' => [ 'get_template_image' ],
+   ) %>
+
+<DIV ID="insert_image_dialog" title="Template Images">
+
+<TABLE BORDER="0" STYLE="width: 100%"><TR><TD>
+
+<FORM ID="insert_image_form">
+
+<% &ntable("#cccccc", 2) %>
+
+  <TR>
+    <TH>Image</TH>
+    <TD>
+      <SELECT ID="insert_image_imgnum" ONCHANGE="insertImageDialog($('#insert_image_imgnum').val())">
+        <OPTION VALUE="">(select an image)</OPTION>
+      </SELECT>
+    </TD>
+  </TR>
+% if ($opt{'callback'}) {
+  <TR>
+    <TH>Width</TH>
+    <TD><INPUT TYPE="text" SIZE="5" ID="insert_image_width" ONCHANGE="previewInsertImage()"></TD>
+  </TR>
+  <TR>
+    <TH>Height</TH>
+    <TD><INPUT TYPE="text" SIZE="5" ID="insert_image_height" ONCHANGE="previewInsertImage()"></TD>
+  </TR>
+  <TR>
+    <TH>Align</TH>
+    <TD>
+      <SELECT ID="insert_image_float" ONCHANGE="previewInsertImage()">
+        <OPTION VALUE="none">inline</OPTION>
+        <OPTION VALUE="left">left</OPTION>
+        <OPTION VALUE="right">right</OPTION>
+      </SELECT>
+    </TD>
+  </TR>
+  <TR>
+    <TH>Alt Text</TH>
+    <TD><INPUT TYPE="text" SIZE="20" ID="insert_image_alt" ONCHANGE="previewInsertImage()"></TD>
+  </TR>
+  <TR>
+    <TD COLSPAN="2" ALIGN="center" STYLE="padding-top:6px">
+      <INPUT TYPE="button" ID="insert_image_button" VALUE="Insert Image" ONCLICK="insertImage()">
+    </TD>
+  </TR>
+% } # if $opt{'callback'}
+
+</TABLE>
+
+</FORM>
+
+% if ($canedit) {
+
+<P><B><% emt('Upload New Image') %></B></P>
+
+<% include('/elements/form-file_upload.html',
+     'name'      => 'TemplateImageUploadForm',
+     'id'        => 'TemplateImageUploadForm',
+     'action'    => $fsurl.'misc/process/template_image-upload.cgi',
+     'num_files' => 1,
+     'fields'    => [ 'name', 'agentnum' ],
+     'url'       => $opt{'url'} || 'javascript:refreshImageList(1)',
+   )
+ %>
+
+ <% &ntable("#cccccc", 2) %>
+
+  <% include( '/elements/tr-input-text.html',
+                'field' => 'name',
+                'label' => 'Name',
+                'required' => 1,
+                'id' => 'upload_form_name',
+            )
+  %>
+
+  <% include( '/elements/tr-select-agent.html',
+                 'label'       => "<B>Agent</B>",
+                 'empty_label' => '(global)',
+                 'agent_virt'  => 1,
+                 'agent_null_right' => 'Edit global templates',
+             )
+  %>
+
+  <% include( '/elements/tr-file-upload.html',
+                'field' => 'file',
+                'label' => 'File',
+            )
+  %>
+
+  <TR>
+    <TD COLSPAN="2" ALIGN="center" STYLE="padding-top:6px">
+      <INPUT TYPE    = "submit"
+             NAME    = "submitButton"
+             ID      = "submitButton"
+             VALUE   = "Upload image"
+      >
+    </TD>
+  </TR>
+
+</TABLE>
+
+</FORM>
+
+% } #if canedit
+
+</TD><TD width="100%">
+
+<DIV ID="insert_image_preview_box">
+  <P><B><% emt('Image Preview') %></B></P>
+  <SPAN ID="insert_image_loading"><B>(<% emt('Loading image...') %>)</B></SPAN>
+  <IMG SRC="" ID="insert_image_preview">
+</DIV>
+
+</TD></TR></TABLE>
+</DIV>
+
+<SCRIPT>
+
+// initialize & close dialog window, initialize imgobj cache && image list
+$( '#insert_image_dialog' ).dialog({
+  width: 800,
+  height: 550,
+  resizable: true,
+  autoOpen: false,
+});
+var imgobj = new Object;
+refreshImageList(0);
+
+// this is the main func to invoke from links outside this file.
+// opens dialog if needed
+// updates dialog with passed imgnum
+// caches image info through an xmlhttp request if needed
+// pass 'upload' as imgnum for upload-only view
+function insertImageDialog (imgnum) {
+  if (imgnum == 'upload') {
+    $('#insert_image_form').hide();
+    $('#insert_image_preview_box').hide();
+    imgnum = undefined;
+  } else {
+    $('#insert_image_form').show();
+    $('#insert_image_preview_box').show();
+  }
+  if (imgnum && !imgobj[imgnum]) {
+    clearInsertImageDialog();
+    $('#insert_image_loading').show();
+    $('#insert_image_imgnum').val(imgnum);
+    get_template_image('imgnum',imgnum,
+      function (result) {
+        var images = JSON.parse(result) || [];
+        for (i = 0; i < images.length; i++) {
+          imgobj[images[i].imgnum] = images[i];
+        }
+        updateInsertImageDialog();
+      }
+    );
+  } else if (imgnum) {
+    $('#insert_image_imgnum').val(imgnum);
+    updateInsertImageDialog();
+  } else {
+    clearInsertImageDialog();
+  }
+  if (!$( '#insert_image_dialog' ).dialog( 'isOpen' )) {
+    $( '#insert_image_dialog' ).dialog( 'open' );
+  }
+}
+
+// sets dialog values to a default "Loading..." state, including imgnum
+function clearInsertImageDialog () {
+  $('#insert_image_imgnum').val('');
+  $('#insert_image_preview').attr('src','');
+  $('#insert_image_loading').hide();
+}
+
+// updates preview src from cache based on imgnum from form
+// then calls previewInsertImage
+function updateInsertImageDialog () {
+  var imgnum = $('#insert_image_imgnum').val();
+  $('#insert_image_loading').hide();
+  $('#insert_image_preview').attr('src',imgobj[imgnum].src);
+  previewInsertImage();
+}
+
+// updates preview width/height/alt/float based on current form values
+function previewInsertImage () {
+  $('#insert_image_preview').css('width',$('#insert_image_width').val());
+  $('#insert_image_preview').css('height',$('#insert_image_height').val());
+  $('#insert_image_preview').css('float',$('#insert_image_float').val());
+  $('#insert_image_preview').attr('alt',$('#insert_image_alt').val());
+}
+
+// constructs html based on the form contents,
+// passes it to callback & closes dialog
+function insertImage() {
+  var imgnum = $('#insert_image_imgnum').val();
+  if (!(imgnum && imgobj[imgnum])) {
+    return '';
+  }
+  var width = $('#insert_image_width').val() || '';
+  var height = $('#insert_image_height').val() || '';
+  var alt = $('#insert_image_alt').val() || '';
+  var float = $('#insert_image_float').val();
+  var imgtag = '<IMG SRC="' + imgobj[imgnum].src + '"';
+  if (width) {
+    imgtag += ' WIDTH="' + width + '"';
+  }
+  if (height) {
+    imgtag += ' HEIGHT="' + height + '"';
+  }
+  if (alt) {
+    imgtag += ' ALT="' + alt + '"';
+  }
+  if (float) {
+    imgtag += ' STYLE="float: ' + float + '"';
+  }
+  imgtag += '>';
+  <% $opt{'callback'} %>(imgtag);
+  $( '#insert_image_dialog' ).dialog( 'close' );
+}
+
+// uses xmlhttp request to initialize image list & refresh it after uploads
+function refreshImageList (fromupload) {
+  get_template_image('no_src','1',
+    function (result) {
+      if (fromupload) {
+        $("#TemplateImageUploadForm")[0].reset();
+      }
+      var images = JSON.parse(result) || [];
+      var latest;
+      for (i = 0; i < images.length; i++) {
+        if ( $("#insert_image_imgnum option[value='" + images[i].imgnum + "']").length == 0 ) {
+          $("#insert_image_imgnum").append('<OPTION VALUE="'+images[i].imgnum+'">'+images[i].name+'</OPTION>');
+          latest = images[i].imgnum;
+        }
+      }
+      if (fromupload) {
+        location.hash = "insert_image_dialog";
+        if (latest) {
+          // small risk of a race condition with other newly-uploaded images,
+          // but does no real damage (our image still shows up in the list)
+          insertImageDialog(latest);
+        }
+      }
+    }
+  );
+}
+
+</SCRIPT>
+
+<%init>
+my %opt = @_;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates', ]);
+
+my $canedit = $curuser->access_right([ 'Edit templates', 'Edit global templates' ]);
+</%init>
+
index cfef51c..de3f95a 100644 (file)
@@ -1,8 +1,13 @@
 <TR>
   <TD CLASS="background" COLSPAN=99>
 
+<SCRIPT>
+var provision_hold_td = [];
+var provision_hold_input = [];
+</SCRIPT>
+
 <% itable('', 4, 1) %><TR><TD VALIGN="top">
-<% $thead %>
+<% pkg_svc_thead() %>
 
 %foreach my $part_svc ( @part_svc ) {
 %  my $svcpart = $part_svc->svcpart;
       <INPUT TYPE="checkbox" NAME="no_bulk_skip<% $svcpart %>" VALUE="Y"<% $bulk_skip =~ /^Y/i ? '' : ' CHECKED' %>>
     </TD>
 
-    <TD ALIGN="center">
-      <INPUT TYPE="checkbox" NAME="provision_hold<% $svcpart %>" VALUE="Y"<% $provision_hold =~ /^Y/i ? ' CHECKED' : ''%>>
+    <TD ALIGN="center" ID="td_provision_hold<% $svcpart %>">
+      <INPUT TYPE="checkbox" ID="input_provision_hold<% $svcpart %>" NAME="provision_hold<% $svcpart %>" VALUE="Y"<% $provision_hold =~ /^Y/i ? ' CHECKED' : ''%>>
     </TD>
+<SCRIPT>
+provision_hold_td.push(document.getElementById('td_provision_hold<% $svcpart %>'));
+provision_hold_input.push(document.getElementById('input_provision_hold<% $svcpart %>'));
+</SCRIPT>
 
   </TR>
 % foreach ( 1 .. $columns-1 ) {
 %       if ( $count == int( $_ * scalar(@part_svc) / $columns ) ) { 
 %  
 
-         </TABLE></TD><TD VALIGN="top"><% $thead %>
+         </TABLE></TD><TD VALIGN="top"><% pkg_svc_thead() %>
 %   }
 %     }
 %     $count++;
 %  
-% } 
+% } # foreach $part_svc
 
 </TR></TABLE></TD></TR></TABLE>
 
+<SCRIPT>
+// start_on_hold from edit/part_pkg.cgi
+// toggles display of provision_hold checkboxes when that changes
+function provision_hold_check () {
+  var start_on_hold = document.getElementById('start_on_hold');
+  if (start_on_hold) {
+    for (i = 0; i < provision_hold_td.length; i++) {
+      provision_hold_td[i].style.display = start_on_hold.checked ? '' : 'none';
+    }
+    for (i = 0; i < provision_hold_input.length; i++) {
+      provision_hold_input[i].disabled = start_on_hold.checked ? false : true;
+    }
+  }
+}
+function provision_hold_init () {
+  var start_on_hold = document.getElementById('start_on_hold');
+  if (start_on_hold) {
+    start_on_hold.onchange = provision_hold_check;
+    provision_hold_check();
+  }
+}
+provision_hold_init();
+</SCRIPT>
+
 % if ( scalar(@possible_exports) > 0 || scalar(@mapped_exports) > 0 ) {
    <TABLE><TR>
        <TH BGCOLOR="#dcdcdc">Export</TH>
 my %opt = @_;
 my $cgi = $opt{'cgi'};
 
-my $thead =  "\n\n". ntable('#cccccc', 2).
-             '<TR>'.
-             '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH>'.
-             '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH>'.
-             '<TH BGCOLOR="#dcdcdc">Service</TH>'.
-             '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH>'.
-             '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH>'.
-             '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hold<BR>Until<BR>Provision</FONT></TH>'.
-             '</TR>';
+my $thead_count = 0;
+sub pkg_svc_thead {
+  $thead_count += 1;
+  return "\n\n". ntable('#cccccc', 2).
+         '<TR>'.
+         '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH>'.
+         '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Primary</FONT></TH>'.
+         '<TH BGCOLOR="#dcdcdc">Service</TH>'.
+         '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide<BR>from<BR>Invoices</FONT></TH>'.
+         '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Bulk<BR>Charge</FONT></TH>'.
+         '<TH BGCOLOR="#dcdcdc" ID="th_provision_hold' . $thead_count . '"><FONT SIZE=-1>Remove Hold After Provisioning</FONT></TH>'.
+         '</TR>'.
+         qq!<SCRIPT>provision_hold_td.push(document.getElementById('th_provision_hold$thead_count'))</SCRIPT>!;
+;
+}
 
 my $part_pkg = $opt{'object'};
 my $pkgpart = $part_pkg->pkgpart;
diff --git a/httemplate/elements/tr-polygon.html b/httemplate/elements/tr-polygon.html
new file mode 100644 (file)
index 0000000..6990d3d
--- /dev/null
@@ -0,0 +1,5 @@
+<tr>
+<td colspan=2>
+<& polygon.html, @_ &>
+</td>
+</tr>
index 3ff28f9..b90ce1e 100644 (file)
@@ -7,6 +7,5 @@ $opt{labels} = { '' => '',
                  map { $_ => emt('[quant,_1,month]', $_) } 1 .. $max
                };
 
-warn Dumper(\%opt);
 </%init>
 <& tr-select.html, %opt &>
index 78690f1..f706722 100644 (file)
@@ -9,7 +9,7 @@ Actually <TR> <TH> $label </TH>
       VALIGN = "<% $opt{'valign'} || 'top' %>"
       STYLE  = "<% $style %>"
       ID     = "<% $opt{label_id} || $opt{id}. '_label0' %>"
-  ><% $required %><% $opt{label} %></TD>
+  ><% $required %><% $opt{label} %></TH>
 
 <%init>
 
index b5486f4..83eb0e8 100644 (file)
@@ -1,5 +1,4 @@
 <% include('elements/monthly.html',
-   #Dumper(
                 'title'        => $title,
                 'graph_type'   => $graph_type,
                 'items'        => \@items,
@@ -28,6 +27,7 @@ my $bottom_link = "$link;";
 my $use_usage = $cgi->param('use_usage') || 0;
 my $use_setup = $cgi->param('use_setup') || 0;
 my $use_discount = $cgi->param('use_discount') || 2;
+my $use_taxes = $cgi->param('use_taxes') || 0;
 
 my $use_override         = $cgi->param('use_override')         ? 1 : 0;
 my $average_per_cust_pkg = $cgi->param('average_per_cust_pkg') ? 1 : 0;
@@ -50,6 +50,7 @@ my %charge_labels = (
   'R'  => 'recurring',
   'U'  => 'usage',
   'D'  => 'discount',
+  'T'  => 'taxes',
 );
 
 #XXX or virtual
@@ -194,8 +195,14 @@ if ( $use_discount == 1 ) {
   push @components, 'D';
 } # else leave discounts off entirely; never combine them with setup/recur
 
+# could in theory combine with setup/recur/usage,
+# but would require reverse engineering the tax calculation
+if ( $use_taxes == 1 ) {
+  push @components, 'T';
+} 
+
 # Categorization of line items goes
-# Agent -> Referral -> Package class -> Component (setup/recur/usage)
+# Agent -> Referral -> Package class -> Component (setup/recur/usage/discount/taxes)
 # If per-agent totals are enabled, they go under the Agent level.
 # There aren't any other kinds of subtotals.
 
@@ -255,6 +262,8 @@ foreach my $agent ( $all_agent || $sel_agent || $FS::CurrentUser::CurrentUser->a
         if ( $component eq 'D' ) {
           # discounts ignore 'charges' and 'distribute'
           $row_link = "${p}search/cust_bill_pkg_discount.html?";
+        } elsif ( $component eq 'T' ) {
+          $row_link = "${p}search/cust_bill_pkg.cgi?istax=1;";
         }
 
         $row_link .=  ($all_agent ? '' : "agentnum=$row_agentnum;").
@@ -314,6 +323,8 @@ foreach my $agent ( $all_agent || $sel_agent || $FS::CurrentUser::CurrentUser->a
           if ( $component eq 'D' ) {
             # discounts ignore 'charges' and 'distribute'
             $row_link ="${p}search/cust_bill_pkg_discount.html?";
+          } elsif ( $component eq 'T' ) {
+            $row_link = "${p}search/cust_bill_pkg.cgi?istax=1;";
           }
 
           $row_link .= ($all_agent ? '' : "agentnum=$row_agentnum;").
@@ -386,9 +397,8 @@ foreach my $agent ( $all_agent || $sel_agent || $FS::CurrentUser::CurrentUser->a
 
   $anum++;
 
-}
+} # foreach $agent
 
-#use Data::Dumper;
 if ( $cgi->param('debug') == 1 ) {
   $FS::Report::Table::DEBUG = 1;
 }
index f1b0d16..b5d2148 100644 (file)
@@ -11,6 +11,7 @@ Example:
     #these run parallel to items, and can be given as hashes
     'row_labels'      => \@row_labels,    #required
     'colors'          => \@colors,        #required
+    'bgcolors'        => \@bgcolors,      #optional
     'graph_labels'    => \@graph_labels,  #defaults to row_labels
 
     'links'           => \@links,         #optional
@@ -22,7 +23,7 @@ Example:
 
     #optional
     'nototal'         => 1,
-    'graph_type'      => 'LinesPoints',
+    'graph_type'      => 'LinesPoints',   #can be 'none' for no graph
     'bottom_total'    => 1,
     'sprintf'         => '%u', #sprintf format, overrides default %.2f
     'disable_money'   => 1,
@@ -231,7 +232,8 @@ any delimiter and linked from the elements in @data.
 % foreach my $row ( @items ) {
 % #make a style
 %   my $color = shift @{ $opt{'colors'} };
-%   push @styles, ".i$i { text-align: right; color: #$color; }";
+%   my $bgcolor = $opt{'bgcolors'} ? (shift @{ $opt{'bgcolors'} }) : 'ffffff';
+%   push @styles, ".i$i { text-align: right; color: #$color; background: #$bgcolor; }";
 % #create the data row
 %   my $links = shift @{$opt{'links'}} || [''];
 %   my $link_prefix = shift @$links;
index 1db86e3..96bfdc0 100644 (file)
@@ -165,7 +165,6 @@ window.onload = class_mode_changed;
 
 </TR>
 
-
 <TR>
   <TH CLASS="background" COLSPAN=2>&nbsp;</TH>
 </TR>
@@ -196,6 +195,12 @@ window.onload = class_mode_changed;
     'options' => [ 1, 2 ],
     'labels'  => { 1 => 'Separate', 2 => 'Do not show' },
 &>
+<& /elements/tr-select.html,
+    'label'   => 'Taxes',
+    'field'   => 'use_taxes',
+    'options' => [ 1, 2 ],
+    'labels'  => { 1 => 'Separate', 2 => 'Do not show' },
+&>
 
 <TR>
   <TD ALIGN="right">Colors</TD>
index 9f2540c..197ade1 100644 (file)
@@ -101,6 +101,10 @@ function select_discount_term(row) {
 
 var invoices_for_row = new Object;
 
+var preloading = 0; // the number of preloading threads currently running
+
+// callback from toggle_application_row: we've received a list of
+// the customer's open invoices. store them.
 function update_invoices(rownum, invoices) {
   invoices_for_row[rownum] = new Object;
   // only called before create_application_row
@@ -113,6 +117,12 @@ function toggle_application_row(ev, next) {
   if (!next) next = function(){}; //optional continuation
   var rownum = this.getAttribute('rownum');
   if ( this.checked ) {
+    // the user has opted to apply the payment to specific invoices.
+    // - lock the customer
+    // - fetch the list of open invoices
+    // - create a row to select an invoice
+    // - then optionally call "next", with this as the invocant
+    //   and the rownum as argument; we use this to preload rows.
     var custnum = document.getElementById('custnum'+rownum).value;
     if (!custnum) return;
     lock_payment_row(rownum, true);
@@ -124,6 +134,9 @@ function toggle_application_row(ev, next) {
       }
     );
   } else {
+    // the user has opted not to do that.
+    // - remove all application rows
+    // - unlock the customer
     var row = document.getElementById('row'+rownum);
     var table_rows = row.parentNode.rows;
     for (i = row.sectionRowIndex; i < table_rows.count; i++) {
@@ -183,6 +196,16 @@ function amount_unapplied(rownum) {
 
 var change_app_amount;
 
+// the user has chosen an invoice. the previously chosen invoice is still
+// in curr_invoice
+// - if there is a value there, put it back on the invoices_for_row list for
+// this customer.
+// - then _remove_ the newly chosen invoice from that list.
+// - find the "owed" element for this application row and set its value to the
+// amount owed on that invoice.
+// - find the "amount" element for this application row and set its value to
+// either "owed" or the remaining payment amount, whichever is less.
+// - call change_app_amount() on that element.
 function choose_app_invnum() {
   var rownum = this.getAttribute('rownum');
   var appnum = this.getAttribute('appnum');
@@ -210,8 +233,10 @@ function choose_app_invnum() {
   }
 }
 
+// the invoice selector has gained focus. clear its list of options, and
+// replace them with the list of open invoices (from invoices_for_row).
+// if there's already a selected invoice, prepend that to the list.
 function focus_app_invnum() {
-% # invoice numbers just display as invoice numbers
   var rownum = this.getAttribute('rownum');
   var add_opt = function(obj, value, label) {
     var o = document.createElement('OPTION');
@@ -233,14 +258,15 @@ function focus_app_invnum() {
   }
 }
 
+// an application amount has been changed. if there's any unapplied payment
+// amount, and any remaining invoices_for_row, add a blank application row.
+// (but don't do this while preloading; it will unconditionally add enough
+// rows to show all the attempted applications)
 function change_app_amount() {
   var rownum = this.getAttribute('rownum');
   var appnum = this.getAttribute('appnum');
-%# maybe some kind of warning if amount_unapplied < 0?
-%# only spawn a new application row if there are open invoices left,
-%# and this is the highest-numbered application row for the customer,
-%# and the sum of the applied amounts is < the amount of the payment,
-  if ( Object.keys(invoices_for_row[rownum]).length > 0
+  if ( preloading == 0
+       && Object.keys(invoices_for_row[rownum]).length > 0
        && !document.getElementById( 'row'+rownum+'.'+(parseInt(appnum) + 1) )
        && amount_unapplied(rownum) > 0 ) {
 
@@ -248,6 +274,9 @@ function change_app_amount() {
   }
 }
 
+// we're creating a payment application row.
+// create the following elements: <TR>, <TD>s, "Apply to invoice" caption,
+// invnum selector, "owed" display, amount input box, delete button.
 function create_application_row(rownum, appnum) {
   var payment_row = document.getElementById('row'+rownum);
   var tr_app = document.createElement('TR');
@@ -341,29 +370,45 @@ function preload() {
       var enable = document.getElementById('enable_app'+rownum);
       enable.checked = true;
       var preload_row = function(r) {//continuation from toggle_application_row
-        for (appnum=0; appnum < row_obj[r].length; appnum++) {
-          this_app = row_obj[r][appnum];
-          var x = r + '.' + appnum;
-          //set invnum
-          var select_invnum = document.getElementById('invnum'+x);
-          focus_app_invnum.call(select_invnum);
-          for (i=0; i<select_invnum.options.length; i++) {
-            if (select_invnum.options[i].value == this_app.invnum) {
-              select_invnum.selectedIndex = i;
+
+        preloading++;
+
+        try {
+          for (appnum=0; appnum < row_obj[r].length; appnum++) {
+            this_app = row_obj[r][appnum];
+            var x = r + '.' + appnum;
+            //set invnum
+            var select_invnum = document.getElementById('invnum'+x);
+            focus_app_invnum.call(select_invnum);
+            for (i=0; i<select_invnum.options.length; i++) {
+              if (select_invnum.options[i].value == this_app.invnum) {
+                select_invnum.selectedIndex = i;
+              }
             }
-          }
-          choose_app_invnum.call(select_invnum);
-          //set amount
-          var input_amount = document.getElementById('amount'+x);
-          input_amount.value = this_app.amount;
-
-          //set error
-          var span_error = document.getElementById('error'+x);
-          span_error.innerHTML = this_app.error;
-          change_app_amount.call(input_amount); //creates next row
-        } //for appnum
+            choose_app_invnum.call(select_invnum);
+            //set amount
+            var input_amount = document.getElementById('amount'+x);
+            input_amount.value = this_app.amount;
+
+            //set error
+            var span_error = document.getElementById('error'+x);
+            span_error.innerHTML = this_app.error;
+
+            // create another row (unconditionally)
+            create_application_row(r, appnum + 1);
+
+          } //for appnum
+
+        } finally {
+          preloading--;
+        }
+
       }; //preload_row function
+
+      // enable application rows on the selected customer. this creates
+      // the first row, then kicks off preloading.      
       toggle_application_row.call(enable, null, preload_row);
+
     } // if (row_obj[rownum].length
   } //for rownum
 }
index e74747e..b562d24 100755 (executable)
 
   <& /elements/tr-select-cust-part_pkg.html,
                'pre_label'  => emt('New'),
-               'curr_value' => scalar($cgi->param('pkgpart')),
+               'curr_value' => scalar($cgi->param('pkgpart')) || $cust_pkg->pkgpart,
                'classnum'   => $part_pkg->classnum,
                'cust_main'  => $cust_main,
   &>
 
   <& /elements/tr-input-pkg-quantity.html,
-               'curr_value' => $cust_pkg->quantity
+               'curr_value' => scalar($cgi->param('quantity')) || $cust_pkg->quantity
   &>
 
 % if ($use_contract_end) {
 </TABLE>
 <BR>
 
+<% include('/misc/cust_pkg_usageprice.html',
+     'pkgpart' => (scalar($cgi->param('pkgpart')) || $cust_pkg->pkgpart),
+     'pkgnum'  => ($cust_pkg->change_to_pkgnum || $pkgnum),
+   ) %>
+<BR>
 
 <FONT CLASS="fsinnerbox-title"><% mt('Change') |h %></FONT>
 <% ntable('#cccccc') %>
       document.getElementById('start_date_text').disabled = !enable;
       document.getElementById('start_date_button').style.display = 
         (enable ? '' : 'none');
-      document.getElementById('start_date_button_disabled').style.display =
-        (enable ? 'none' : '');
+      if (document.getElementById('start_date_button_disabled')) { // does this ever exist anymore?
+        document.getElementById('start_date_button_disabled').style.display =
+          (enable ? 'none' : '');
+      }
+      if (enable) {
+        usageprice_disable(1);
+      } else {
+        var form = document.OrderPkgForm;
+        usageprice_disable(0,form.pkgpart.options[form.pkgpart.selectedIndex].value);
+      }
     }
     <&| /elements/onload.js &>
       delay_changed();
        TYPE    = "button"
        VALUE   = "<% mt("Change package") |h %>"
        onClick = "this.disabled=true; standardize_new_location();"
-       <% scalar($cgi->param('pkgpart')) ? '' : 'DISABLED' %>
+       <% #scalar($cgi->param('pkgpart')) ? '' : 'DISABLED' %>
 >
 
 </FORM>
diff --git a/httemplate/misc/cust_pkg_usageprice.html b/httemplate/misc/cust_pkg_usageprice.html
new file mode 100644 (file)
index 0000000..f2e0f57
--- /dev/null
@@ -0,0 +1,121 @@
+<%doc>
+Sets up the xmlhttp, javascript and initial (empty) table for selecting cust_pkg_usageprice.
+Available values are based on pkgpart, and can be updated when changing pkgpart
+by passing the new pkgpart to the following javascript:
+
+  usageprice_pkg_changed( pkgpart, pkgnum )
+
+The pkgnum input is optional, and will be used to set initial selected values.
+
+If pkgpart is passed as an option to this element, will run usageprice_pkg_changed
+once to initialize table;  pkgnum can be passed as an option along with this.
+
+You can disable usageprice selection temporarily (remove the fields from the form)
+with the javascript usageprice_disable(1), and restore it with usageprice_disable(0,pkgnum).
+While disabled, calling usageprice_pkg_changed will have no effect.
+</%doc>
+
+<& /elements/xmlhttp.html,
+              'url'  => $p.'misc/xmlhttp-part_pkg_usageprice.html',
+              'subs' => [ 'get_part_pkg_usageprice' ],
+&>
+
+<FONT CLASS = "fsinnerbox-title" 
+      ID    = "cust_pkg_usageprice_title"
+      STYLE = "display:none"
+><% mt('Usage add-ons') |h %></FONT>
+<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 ID="cust_pkg_usageprice_table">
+
+</TABLE>
+
+<SCRIPT>
+
+var usagepriceCache = {};
+var usagepriceDisabled = 0;
+
+function usageprice_disable (disabled, pkgpart) {
+  if (disabled) {
+    usageprice_pkg_changed(0);
+    usagepriceDisabled = 1;
+  } else {
+    usagepriceDisabled = 0;
+    usageprice_pkg_changed(pkgpart);
+  }
+}
+
+// main function to invoke when pkgpart changes
+function usageprice_pkg_changed (pkgpart, pkgnum) {
+  if (usagepriceDisabled) return;
+  clear_part_pkg_usageprice();
+
+  if (pkgpart) {
+    if (usagepriceCache[pkgpart]) {
+      update_part_pkg_usageprice(pkgpart);
+    } else {
+      get_part_pkg_usageprice( pkgpart || 0, pkgnum || 0, download_part_pkg_usageprice );
+    }
+  }
+}
+
+// removes table rows & hides table title
+function clear_part_pkg_usageprice () {
+  var table = document.getElementById('cust_pkg_usageprice_table');
+  for ( var r = table.rows.length - 1; r >= 0; r-- ) {
+    table.deleteRow(r);
+  }
+  document.getElementById('cust_pkg_usageprice_title').style.display = 'none';
+}
+
+// catches response from xmlhttp request, updates cache & calls update function
+function download_part_pkg_usageprice (part_pkg_usageprice) {
+  var usagepriceArray = JSON.parse(part_pkg_usageprice);
+  var pkgpart = usagepriceArray[0];
+  usagepriceCache[pkgpart] = usagepriceArray;
+  update_part_pkg_usageprice(pkgpart);
+}
+
+// updates from cache
+function update_part_pkg_usageprice (pkgpart) {
+  if (usagepriceDisabled) return;
+  clear_part_pkg_usageprice();
+
+  var usagepriceArray = usagepriceCache[pkgpart];
+  var table = document.getElementById('cust_pkg_usageprice_table');
+
+  // add the new usage price rows
+  var rownum = 0;
+  for ( var s = 1; s < usagepriceArray.length; s=s+2 ) {
+    var html = usagepriceArray[s];
+    var javascript = usagepriceArray[s+1];
+
+    var row = table.insertRow(rownum++);
+
+    var widget_cell = document.createElement('TD');
+    widget_cell.style.paddingTop = "3px";
+    widget_cell.colSpan = "2";
+    widget_cell.innerHTML = html;
+    row.appendChild(widget_cell);
+
+  }
+
+  if ( rownum > 0 ) {
+    document.getElementById('cust_pkg_usageprice_title').style.display = '';
+  } else {
+    document.getElementById('cust_pkg_usageprice_title').style.display = 'none';
+  }
+
+}
+
+% if ($opt{'pkgpart'}) {
+<&| /elements/onload.js &>
+usageprice_pkg_changed(<% $opt{'pkgpart'} %>, <% $opt{'pkgnum'} %>);
+</&>
+% }
+
+</SCRIPT>
+
+<%init>
+my %opt = @_;
+</%init>
+
+
diff --git a/httemplate/misc/delete-cust_credit.cgi b/httemplate/misc/delete-cust_credit.cgi
deleted file mode 100755 (executable)
index 03eb472..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-% if ( $error ) {
-%   errorpage($error);
-% } else {
-<% $cgi->redirect($p. "view/cust_main.cgi?". $custnum) %>
-% }
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Delete credit');
-
-#untaint crednum
-my($query) = $cgi->keywords;
-$query =~ /^(\d+)$/ || die "Illegal crednum";
-my $crednum = $1;
-
-my $cust_credit = qsearchs('cust_credit',{'crednum'=>$crednum});
-my $custnum = $cust_credit->custnum;
-
-my $error = $cust_credit->delete;
-
-</%init>
diff --git a/httemplate/misc/delete-cust_pay.cgi b/httemplate/misc/delete-cust_pay.cgi
deleted file mode 100755 (executable)
index 38e7e4b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-% if ( $error ) {
-%   errorpage($error);
-% } else {
-<% $cgi->redirect($p. "view/cust_main.cgi?". $custnum) %>
-% }
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Delete payment');
-
-#untaint paynum
-my($query) = $cgi->keywords;
-$query =~ /^(\d+)$/ || die "Illegal paynum";
-my $paynum = $1;
-
-my $cust_pay = qsearchs('cust_pay',{'paynum'=>$paynum});
-my $custnum = $cust_pay->custnum;
-
-my $error = $cust_pay->delete;
-
-</%init>
index 47e6a5b..8e28634 100644 (file)
@@ -1,10 +1,11 @@
 <%doc>
 
-Allows emailing one or more customers, based on a search for customers.  Search can
-be specified either through cust_main fields as cgi params, or through a base64 encoded
-frozen hash in the 'search' cgi param.  Form allows selecting an existing msg_template,
-or creating a custom message, and shows a preview of the message before sending.
-If linked to as a popup, include the cgi parameter 'popup' for proper header handling.
+Allows emailing one or more customers, based on a search for customers.
+Search can be specified either through cust_main fields as cgi params, or
+through a base64 encoded frozen hash in the 'search' cgi param.  Form allows
+selecting an existing msg_template, or creating a custom message, and shows a
+preview of the message before sending.  If linked to as a popup, include the
+cgi parameter 'popup' for proper header handling.
 
 This may also be used as an element in other pages, enabling you to provide an
 alternate initial form while using this for search freezing/thawing and 
@@ -21,12 +22,13 @@ title - the title of the page
 no_search_fields - arrayref of additional fields that are not search parameters
 
 alternate_form - subroutine that returns alternate html for the initial form,
-replaces msgnum/from/subject/html_body/action inputs and submit button,
-not used if an action is specified
+replaces msgnum/from/subject/body/action inputs and submit button, not
+used if an action is specified
 
-post_search_hook - sub hook for additional processing after search has been processed from cgi,
-gets passed options 'conf' and 'search' (a reference to the unfrozen %search hash),
-should be used to set msgnum or from/subject/html_body cgi params
+post_search_hook - sub hook for additional processing after search has been
+processed from cgi, gets passed options 'conf' and 'search' (a reference to
+the unfrozen %search hash), should be used to set msgnum or
+from/subject/body cgi params
 
 </%doc>
 % if ($popup) {
@@ -35,8 +37,9 @@ should be used to set msgnum or from/subject/html_body cgi params
 <& /elements/header.html, $title &>
 % }
 
+<& /elements/error.html &>
 
-<FORM NAME="OneTrueForm" ACTION="<% $form_action %>" METHOD="GET">
+<FORM NAME="OneTrueForm" ACTION="<% $form_action %>" METHOD="POST">
 <INPUT TYPE="hidden" NAME="table" VALUE="<% $table %>">
 %# Mixing search params with from address, subject, etc. required special-case
 %# handling of those, risked name conflicts, and caused massive problems with 
@@ -46,48 +49,40 @@ should be used to set msgnum or from/subject/html_body cgi params
 <INPUT TYPE="hidden" NAME="popup" VALUE="<% $popup %>">
 <INPUT TYPE="hidden" NAME="url" VALUE="<% $url | h %>">
 
-% if ( $cgi->param('action') eq 'send' ) { 
-
-    <FONT SIZE="+2">Sending notice</FONT>
+% if ( $cgi->param('preview') ) {
+%   # preview mode: at this point we have a msg_template (either "real" or
+%   # draft) and $html_body and $text_body contain the preview message.
+%   # give the user a chance to back out (by going back to edit mode).
 
+    <FONT SIZE="+2">Preview notice</FONT>
     <& /elements/progress-init.html,
                  'OneTrueForm',
-                 [ qw( search table from subject html_body text_body msgnum ) ],
+                 [ qw( search table msgnum ) ],
                  $process_url,
                  $pdest,
     &>
 
-% } elsif ( $cgi->param('action') eq 'preview' ) {
-
-    <FONT SIZE="+2">Preview notice</FONT>
-
-% }
-
-% if ( $cgi->param('action') ) {
-
     <TABLE CLASS="fsinnerbox">
-    <INPUT TYPE="hidden" NAME="msgnum" VALUE="<% scalar($cgi->param('msgnum')) %>">
-
-%   if ( $msg_template ) {
-      <& /elements/tr-fixed.html,
-                   'label'      => 'Template:',
-                   'value'      => $msg_template->msgname,
-      &>
-% }
+    <INPUT TYPE="hidden" NAME="msgnum" VALUE="<% $msg_template->msgnum %>">
+%   # kludge these through hidden inputs because they're not really part
+%   # of the template, but should be sticky during draft editing
+    <INPUT TYPE="hidden" NAME="from_name" VALUE="<% $cgi->param('from_name') %>">
+    <INPUT TYPE="hidden" NAME="from_addr" VALUE="<% $cgi->param('from_addr') %>">
+
+%   if ( !$msg_template->disabled ) {
+      <& /elements/tr-td-label.html, 'label' => 'Template:' &>
+        <td><% $msg_template->msgname |h %></td>
+      </tr>
+%   }
 
-      <& /elements/tr-fixed.html,
-                   'field'      => 'from',
-                   'label'      => 'From:',
-                   'value'      => $from,
-      &>
+      <& /elements/tr-td-label.html, 'label' => 'From:' &>
+        <td><% $from |h %></td>
+      </tr>
 
-      <& /elements/tr-fixed.html,
-                   'field'      => 'subject',
-                   'label'      => 'Subject:',
-                   'value'      => $subject,
-      &>
+      <& /elements/tr-td-label.html, 'label' => 'Subject:' &>
+        <td><% $subject |h %></td>
+      </tr>
 
-      <INPUT TYPE="hidden" NAME="html_body" VALUE="<% $html_body |h %>">
       <TR><TD COLSPAN=2>&nbsp;</TD></TR>
       <TR>
         <TH ALIGN="right" VALIGN="top">Message (HTML display): </TD>
@@ -99,7 +94,6 @@ should be used to set msgnum or from/subject/html_body cgi params
 %                         $html_body
 %                       )
 %                     );
-      <INPUT TYPE="hidden" NAME="text_body" VALUE="<% $text_body |h %>">
       <TR><TD COLSPAN=2>&nbsp;</TD></TR>
       <TR>
         <TH ALIGN="right" VALIGN="top">Message (Text display): </TD>
@@ -112,38 +106,37 @@ should be used to set msgnum or from/subject/html_body cgi params
 
     </TABLE>
 
-%   if ( $cgi->param('action') eq 'preview' ) {
+    <SCRIPT>
 
-      <SCRIPT>
-
-        function showtext() {
-          $('#email-message-text-view').css('display','none');
-          $('#email-message-text-hide').css('display','');
-          $('#email-message-text').slideDown();
-        }
+      function showtext() {
+        $('#email-message-text-view').css('display','none');
+        $('#email-message-text-hide').css('display','');
+        $('#email-message-text').slideDown();
+      }
 
-        function hidetext() {
-          $('#email-message-text-view').css('display','');
-          $('#email-message-text-hide').css('display','none');
-          $('#email-message-text').slideUp();
-        }
+      function hidetext() {
+        $('#email-message-text-view').css('display','');
+        $('#email-message-text-hide').css('display','none');
+        $('#email-message-text').slideUp();
+      }
 
-        function areyousure(href) {
-          return confirm("Send this notice to <% ($num_cust > 1) ? "$num_cust customers" : '1 customer' %> ?");
+      function areyousure(href) {
+        if (confirm("Send this notice to <% ($num_cust > 1) ? "$num_cust customers" : '1 customer' %> ?")) {
+          process();
         }
-      </SCRIPT>
+      }
+    </SCRIPT>
 
-      <BR>
-      <INPUT TYPE="hidden" NAME="action" VALUE="send">
-      <INPUT TYPE="submit" VALUE="Send notice" onClick="return areyousure()">
-    
-%   }
+    <BR>
+    <INPUT TYPE="submit" NAME="edit" VALUE="Edit">
+    <INPUT TYPE="button" VALUE="Send notice" onClick="areyousure()">
 
 % } elsif ($opt{'alternate_form'}) {
 
 <% &{$opt{'alternate_form'}}() %>
 
 % } else {
+%   # Edit mode.
 
 <SCRIPT TYPE="text/javascript">
 function toggle(obj) {
@@ -151,11 +144,20 @@ function toggle(obj) {
 }
 
 </SCRIPT>
+% if ( $msg_template and $msg_template->disabled ) {
+%   # if we've already established a draft template, don't let msgnum be changed
+    <& /elements/hidden.html,
+      field => 'msgnum',
+      curr_value => ($cgi->param('msgnum') || ''),
+    &>
+% } else {
 Template: 
     <& /elements/select-msg_template.html,
-         onchange => 'toggle(this)',
+        onchange   => 'toggle(this)',
+        curr_value => ($cgi->param('msgnum') || ''),
     &>
     <BR>
+% }
   <TABLE BGCOLOR="#cccccc" CELLSPACING=0 WIDTH="100%" id="table_no_template">
     <& /elements/tr-td-label.html, 'label' => 'From:' &>
       <TD><& /elements/input-text.html,
@@ -163,46 +165,41 @@ Template:
               'value' => $conf->config('invoice_from_name', $agent_virt_agentnum) ||
                          $conf->config('company_name', $agent_virt_agentnum), #?
               'size'  => 20,
+              'curr_value' => $cgi->param('from_name'),
           &>&nbsp;&lt;\
           <& /elements/input-text.html,
               'field' => 'from_addr',
               'type'  => 'email', # HTML5, woot
               'value' => $conf->config('invoice_from', $agent_virt_agentnum),
               'size'  => 20,
+              'curr_value' => $cgi->param('from_addr'),
           &>&gt;</TD>
  
     <& /elements/tr-input-text.html,
                  'field' => 'subject',
                  'label' => 'Subject:',
                  'size'  => 50,
+                 'curr_value' => $subject,
     &>
 
     <TR>
       <TD ALIGN="right" VALIGN="top" STYLE="padding-top:3px">Message: </TD>
       <TD><& /elements/htmlarea.html, 
-               'field' => 'html_body',
+               'field' => 'body',
                'width' => 763,
+               'curr_value' => $body,
           &>
       </TD>
     </TR>
 
   </TABLE>
 
-%#Substitution vars:
-
-    <INPUT TYPE="hidden" NAME="action" VALUE="preview">
-    <INPUT TYPE="submit" VALUE="Preview notice">
+  <INPUT TYPE="submit" NAME="preview" VALUE="Preview notice">
 
 % } #end not action or alternate form
 
 </FORM>
 
-% if ( $cgi->param('action') eq 'send' ) {
-    <SCRIPT TYPE="text/javascript">
-      process();
-    </SCRIPT>
-% }
-
 <& /elements/footer.html &>
 
 <%init>
@@ -215,7 +212,7 @@ die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right($opt{'acl'});
 
 my $conf = FS::Conf->new;
-my @no_search_fields = qw( action table from subject html_body text_body popup url );
+my @no_search_fields = qw( table from subject html_body text_body popup url );
 
 my $form_action = $opt{'form_action'} || 'email-customers.html';
 my $process_url = $opt{'process_url'} || 'process/email-customers.html';
@@ -259,12 +256,26 @@ if ( $cgi->param('from') ) {
   $from = $cgi->param('from_addr');
 }
 
-my $subject = $cgi->param('subject') || '';
-my $html_body = $cgi->param('html_body') || '';
-
 my $msg_template = '';
+if ( $cgi->param('msgnum') =~ /^(\d+)$/ ) {
+  $msg_template = FS::msg_template->by_key($1)
+    or die "template not found: ".$cgi->param('msgnum');
+}
 
-if ( $cgi->param('action') eq 'preview' ) {
+my $subject = $cgi->param('subject');
+my $body = $cgi->param('body');
+my ($html_body, $text_body);
+
+if ( !$cgi->param('preview') ) {
+
+  # edit mode: initialize the fields from the saved draft, if there is one
+  if ( $msg_template and $msg_template->disabled eq 'D' ) {
+    my $content = $msg_template->content(''); # no localization on these yet
+    $subject ||= $content->subject;
+    $body ||= $content->body;
+  }
+
+} else {
 
   my $sql_query = "FS::$table"->search(\%search);
   my $count_query = delete($sql_query->{'count_query'});
@@ -275,10 +286,40 @@ if ( $cgi->param('action') eq 'preview' ) {
   my $count_arrayref = $count_sth->fetchrow_arrayref;
   $num_cust = $count_arrayref->[0];
 
-  if ( $cgi->param('msgnum') ) {
-    $msg_template = qsearchs('msg_template', 
-                             { msgnum => scalar($cgi->param('msgnum')) } )
-        or die "template not found: ".$cgi->param('msgnum');
+  if ( !$msg_template or $msg_template->disabled eq 'D' ) {
+    # then this is a one-off template; edit it in place
+    my $subject = $cgi->param('subject') || '';
+    my $body = $cgi->param('body') || '';
+
+    # create a draft template
+    $msg_template ||= FS::msg_template->new({
+      msgclass  => 'email',
+      disabled  => 'D',
+    });
+    # anyone have a better idea for msgname?
+    $msg_template->set('msgname' => "Notice " . DateTime->now->iso8601);
+    $msg_template->set('from_addr' => $from);
+    my %content = (
+      subject => $subject,
+      body    => $body,
+    );
+    my $error;
+    if ( $msg_template->msgnum ) {
+      $error = $msg_template->replace(%content);
+    } else {
+      $error = $msg_template->insert(%content);
+    }
+
+    if ( $error ) {
+      $cgi->param('error', $error);
+      $cgi->delete('preview'); # don't go on to preview stage yet
+      undef $msg_template;
+    }
+  }
+  # unless creating the msg_template failed, we now have one, so construct a
+  # preview message from the first customer/whatever in the search results
+
+  if ( $msg_template ) { 
     $sql_query->{'extra_sql'} .= ' LIMIT 1';
     $sql_query->{'select'} = "$table.*";
     $sql_query->{'order_by'} = '';
@@ -288,8 +329,13 @@ if ( $cgi->param('action') eq 'preview' ) {
       'cust_main' => $cust,
       'object' => $object,
     );
-    my %message = $msg_template->prepare(%msgopts);
-    ($from, $subject, $html_body) = @message{'from', 'subject', 'html_body'};
+
+    my $cust_msg = $msg_template->prepare(%msgopts);
+    $from = $cust_msg->env_from;
+    $html_body = $cust_msg->preview;
+    if ( $cust_msg->header =~ /^subject: (.*)/mi ) {
+      $subject = $1;
+    }
   }
 }
 
index 799165f..cb2bd48 100644 (file)
@@ -5,11 +5,6 @@
    }
 &>
 
-<& /elements/xmlhttp.html,
-              'url'  => $p.'misc/xmlhttp-part_pkg_usageprice.html',
-              'subs' => [ 'get_part_pkg_usageprice' ],
-&>
-
 <& /elements/init_calendar.html &>
 
 <SCRIPT TYPE="text/javascript" SRC="../elements/order_pkg.js"></SCRIPT>
 
 </TABLE><BR>
 
-%#so:
-%# - hide until you selecdt a pacakge with add-ons
-%# -lookup and display the available add-ons when 
-%# -add them to the (recur if there is one, otherwise setup) price and display magically like processing fees do on edit/cust_pay.cgi
-
-%# better label?
-<FONT CLASS = "fsinnerbox-title" 
-      ID    = "cust_pkg_usageprice_title"
-      STYLE = "display:none"
-><% mt('Usage add-ons') |h %></FONT>
-<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 ID="cust_pkg_usageprice_table">
-
-</TABLE>
+<% include('/misc/cust_pkg_usageprice.html',
+     'pkgpart' => $pkgpart
+   ) %>
 <BR>
 
 % my $discount_cust_pkg = $curuser->access_right('Discount customer package');
diff --git a/httemplate/misc/process/deploy_zone-block_lookup.cgi b/httemplate/misc/process/deploy_zone-block_lookup.cgi
new file mode 100644 (file)
index 0000000..8f4eac7
--- /dev/null
@@ -0,0 +1,13 @@
+<% $server->process %>
+<%init>
+my $curuser = $FS::CurrentUser::CurrentUser;
+die "access denied"
+  unless $curuser->access_right([
+    'Edit FCC report configuration',
+    'Edit FCC report configuration for all agents',
+  ]);
+
+my $server = FS::UI::Web::JSRPC->new(
+  'FS::deploy_zone::process_block_lookup', $cgi
+);
+</%init>
index 27b8186..efba9ed 100644 (file)
@@ -74,11 +74,13 @@ $cgi->param('balance') =~ /^\s*(\-?\s*\d*(\.\d\d)?)\s*$/
 my $balance = $1;
 
 my $payinfo;
+my $paymask; # override only used by loaded cust payinfo, only implemented for realtime processing
 my $paycvv = '';
 if ( $payby eq 'CHEK' ) {
 
   if ($cgi->param('payinfo1') =~ /xx/i || $cgi->param('payinfo2') =~ /xx/i ) {
     $payinfo = $cust_main->payinfo;
+    $paymask = $cust_main->paymask;
   } else {
     $cgi->param('payinfo1') =~ /^(\d+)$/
       or errorpage("Illegal account number ". $cgi->param('payinfo1'));
@@ -99,6 +101,7 @@ if ( $payby eq 'CHEK' ) {
   $payinfo = $cgi->param('payinfo');
   if ($payinfo eq $cust_main->paymask) {
     $payinfo = $cust_main->payinfo;
+    $paymask = $cust_main->paymask;
   }
   $payinfo =~ s/\D//g;
   $payinfo =~ /^(\d{13,16}|\d{8,9})$/
@@ -135,6 +138,46 @@ $cgi->param('discount_term') =~ /^(\d*)$/
   or errorpage("illegal discount_term");
 my $discount_term = $1;
 
+# save first, for proper tokenization later
+if ( $cgi->param('save') ) {
+  my $new = new FS::cust_main { $cust_main->hash };
+  if ( $payby eq 'CARD' ) { 
+    $new->set( 'payby' => ( $cgi->param('auto') ? 'CARD' : 'DCRD' ) );
+  } elsif ( $payby eq 'CHEK' ) {
+    $new->set( 'payby' => ( $cgi->param('auto') ? 'CHEK' : 'DCHK' ) );
+  } else {
+    die "unknown payby $payby";
+  }
+  $new->payinfo($payinfo);             # sets default paymask, but not if it's already tokenized
+  $new->paymask($paymask) if $paymask; # in case it's been tokenized, override with loaded paymask
+  $new->set( 'paydate' => "$year-$month-01" );
+  $new->set( 'payname' => $payname );
+
+  #false laziness w/FS:;cust_main::realtime_bop - check both to make sure
+  # working correctly
+  if ( $payby eq 'CARD' &&
+       grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save') ) {
+    $new->set( 'paycvv' => $paycvv );
+  } else {
+    $new->set( 'paycvv' => '');
+  }
+
+  if ( $payby eq 'CARD' ) {
+    my $bill_location = FS::cust_location->new;
+    $bill_location->set( $_ => $cgi->param($_) )
+      foreach @{$payby2fields{$payby}};
+    $new->set('bill_location' => $bill_location);
+    # will do nothing if the fields are all unchanged
+  } else {
+    $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}};
+  }
+
+  my $error = $new->replace($cust_main);
+  errorpage("error saving info, payment not processed: $error")
+    if $error;
+  $cust_main = $new;
+}
+
 my $error = '';
 my $paynum = '';
 if ( $cgi->param('batch') ) {
@@ -160,6 +203,7 @@ if ( $cgi->param('batch') ) {
     'manual'     => 1,
     'balance'    => $balance,
     'payinfo'    => $payinfo,
+    'paymask'    => $paymask,
     'paydate'    => "$year-$month-01",
     'payname'    => $payname,
     'payunique'  => $payunique,
@@ -190,44 +234,6 @@ if ( $cgi->param('batch') ) {
 
 }
 
-if ( $cgi->param('save') ) {
-  my $new = new FS::cust_main { $cust_main->hash };
-  if ( $payby eq 'CARD' ) { 
-    $new->set( 'payby' => ( $cgi->param('auto') ? 'CARD' : 'DCRD' ) );
-  } elsif ( $payby eq 'CHEK' ) {
-    $new->set( 'payby' => ( $cgi->param('auto') ? 'CHEK' : 'DCHK' ) );
-  } else {
-    die "unknown payby $payby";
-  }
-  $new->set( 'payinfo' => $cust_main->card_token || $payinfo );
-  $new->set( 'paydate' => "$year-$month-01" );
-  $new->set( 'payname' => $payname );
-
-  #false laziness w/FS:;cust_main::realtime_bop - check both to make sure
-  # working correctly
-  if ( $payby eq 'CARD' &&
-       grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save') ) {
-    $new->set( 'paycvv' => $paycvv );
-  } else {
-    $new->set( 'paycvv' => '');
-  }
-
-  if ( $payby eq 'CARD' ) {
-    my $bill_location = FS::cust_location->new;
-    $bill_location->set( $_ => $cgi->param($_) )
-      foreach @{$payby2fields{$payby}};
-    $new->set('bill_location' => $bill_location);
-    # will do nothing if the fields are all unchanged
-  } else {
-    $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}};
-  }
-
-  my $error = $new->replace($cust_main);
-  errorpage("payment processed successfully, but error saving info: $error")
-    if $error;
-  $cust_main = $new;
-}
-
 #success!
 
 </%init>
diff --git a/httemplate/misc/process/send-report.html b/httemplate/misc/process/send-report.html
new file mode 100644 (file)
index 0000000..3bceebc
--- /dev/null
@@ -0,0 +1,7 @@
+<%init>
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Send reports to customers');
+
+my $server = FS::UI::Web::JSRPC->new('FS::report_batch::process_send_report', $cgi);
+</%init>
+<% $server->process %>
diff --git a/httemplate/misc/process/template_image-delete.cgi b/httemplate/misc/process/template_image-delete.cgi
new file mode 100644 (file)
index 0000000..58c3f2c
--- /dev/null
@@ -0,0 +1,28 @@
+<% $server->process %>
+
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+# make sure user can generally edit
+die "access denied"
+  unless $curuser->access_right([ 'Edit templates', 'Edit global templates' ]);
+
+# make sure user can edit this particular image
+my %arg = $cgi->param('arg');
+my $imgnum = $arg{'imgnum'};
+die "bad imgnum" unless $imgnum =~ /^\d+$/;
+die "access denied" unless qsearchs({
+               'table'     => 'template_image',
+               'select'    => 'imgnum',
+               'hashref'   => { 'imgnum' => $imgnum },
+               'extra_sql' => ' AND ' . 
+                              $curuser->agentnums_sql(
+                                'null_right' => ['Edit global templates']
+                              ),
+             });
+
+my $server =
+  new FS::UI::Web::JSRPC 'FS::template_image::process_image_delete', $cgi;
+
+</%init>
diff --git a/httemplate/misc/process/template_image-upload.cgi b/httemplate/misc/process/template_image-upload.cgi
new file mode 100644 (file)
index 0000000..c3c9059
--- /dev/null
@@ -0,0 +1,26 @@
+<% $server->process %>
+
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'Edit templates', 'Edit global templates' ]);
+
+my %arg = $cgi->param('arg');
+my $agentnum = $arg{'agentnum'};
+
+if (!$agentnum) {
+  die "access denied"
+    unless $curuser->access_right([ 'Edit global templates' ]);
+} else {
+  die "bad agentnum"
+    unless $agentnum =~ /^\d+$/;
+  die "access denied"
+    unless $curuser->agentnum($agentnum);
+}
+
+my $server =
+  new FS::UI::Web::JSRPC 'FS::template_image::process_image_upload', $cgi;
+
+</%init>
index accee27..7773b0b 100755 (executable)
@@ -21,6 +21,6 @@ my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 
 my $custnum = $cust_bill->custnum;
 
-my $error = $cust_bill->void( $cgi->param('reason') );
+my $error = $cust_bill->void( scalar($cgi->param('reason')) );
 
 </%init>
diff --git a/httemplate/misc/send-report.html b/httemplate/misc/send-report.html
new file mode 100644 (file)
index 0000000..557767a
--- /dev/null
@@ -0,0 +1,166 @@
+<%doc>
+
+Parameters:
+
+- reportname: the report name (per FS::report_batch)
+
+</%doc>
+<& /elements/header-popup.html, { title => $report_info->{name} } &>
+<script type="text/javascript">
+
+$().ready(function() {
+  var agent_info = <% encode_json(\%agent) %>;
+
+  $('#agentnum').on('change', function() {
+    var agentnum = this.value;
+    if ( agent_info[agentnum] ) {
+      $('#msgnum').prop('value',         agent_info[agentnum]['msgnum']);
+      $('#beginning_text').prop('value', agent_info[agentnum]['beginning']);
+      $('#ending_text').prop('value',    agent_info[agentnum]['ending']);
+    } else {
+      $('#msgnum').prop('value',         '');
+      $('#beginning_text').prop('value', '');
+      $('#ending_text').prop('value',    '');
+    }
+  });
+
+  $('#agentnum').trigger('change');
+
+});
+
+</script>
+<FORM NAME="OneTrueForm" ACTION="process/send-report.html" METHOD="POST">
+
+<table class="inv">
+  <input type="hidden" name="reportname" value="<% $cgi->param('reportname') |h %>">
+
+  <& /elements/tr-select-agent.html &>
+
+  <& /elements/tr-td-label.html, label => emt('Message template') &>
+    <TD>
+      <& /elements/select-msg_template.html, field => 'msgnum' &>
+    </TD>
+  </TR>
+
+  <& /elements/tr-input-beginning_ending.html &>
+
+  <& /elements/progress-init.html,
+    'OneTrueForm',
+    [ qw( reportname msgnum agentnum beginning ending ) ],
+    $p.'misc/process/send-report.html',
+    { message => 'Reports sent',
+      url => $cgi->referer }
+  &>
+
+</table>
+
+<INPUT TYPE="button" onclick="process()" VALUE="<% emt('Send reports') %>" />
+</FORM>
+
+<style>
+table.grid {
+  border-collapse: collapse;
+  margin-top: 1ex;
+  margin-left: auto;
+  margin-right: auto;
+}
+.grid caption {
+  font-weight: bold;
+  margin-bottom: 0.5ex;
+}
+.grid th,td {
+  padding-left: 3px;
+  padding-right: 3px;
+  padding-bottom: 2px;
+  border: none;
+  empty-cells: show;
+}
+.grid th {
+  border-bottom: 1px solid #999999;
+  font-size: 90%;
+  vertical-align: bottom;
+}
+</style>
+
+% if ( @report_history ) {
+<hr>
+<table class="grid">
+<caption><% emt('Report history') %></caption>
+<thead>
+  <th>Agent</th>
+  <th>Sent on</th>
+  <th colspan=2>Date range</th>
+  <th>User</th>
+</thead>
+<tbody>
+%   my $row = 0;
+%   foreach my $report (@report_history) {
+%   my $agent = ($report->agentnum ?
+%                 $report->agent->agent : 'All agents');
+  <tr class="row<% $row % 2 %>">
+    <td><% $agent %></td>
+    <td><% time2str($date_format, $report->send_date) %></td>
+    <td><% time2str($date_format, $report->sdate) %></td>
+    <td><% time2str($date_format, $report->edate) %></td>
+    <td><% $report->access_user->username %></td>
+  </tr>
+%   $row++;
+%   }
+</tbody>
+</table>
+% }
+
+<& /elements/footer.html &>
+
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Send reports to customers');
+
+$cgi->param('reportname') =~ /^(\w+)$/
+  or die "bad reportname";
+my $reportname = $1;
+my $report_info = $FS::report_batch::sendable_reports{$reportname}
+  or die "bad reportname";
+
+my $date_format = FS::Conf->new->config('date_format') || '%x';
+
+my @report_history = qsearch({
+  table     => 'report_batch',
+  hashref   => { reportname => $reportname },
+  order_by  => ' ORDER BY send_date DESC',
+});
+
+# defaults per agent that could be selected for the report
+my %agent;
+
+foreach my $report ( @report_history ) {
+  my $agentnum = $report->agentnum;
+  next if $agent{$agentnum};
+
+  # estimate the width of the report period, in months
+  my $last_sdate = DateTime->from_epoch( epoch => $report->sdate );
+  my $last_edate = DateTime->from_epoch( epoch => $report->edate );
+
+  my $days = $last_sdate->delta_days( $last_edate )->delta_days;
+  my $months = sprintf('%.0f', $days / 6) / 5;
+
+  my $next_sdate = $last_edate->clone->add(days => 1);
+  my $next_edate = $next_sdate->clone;
+  if ( $months >= 1 ) { # then treat as an interval in months
+    $next_edate->add( months => sprintf('%.0f', $months) );
+    $next_edate->subtract(days => 1);
+  } else { # treat as a number of days
+    $next_edate->add( days => $days );
+  }
+
+  my $name = $agentnum ? FS::agent->by_key($agentnum)->agent : 'All agents';
+  $agent{$agentnum} = {
+    name      => $name,
+    beginning => $next_sdate->strftime($date_format),
+    ending    => $next_edate->strftime($date_format),
+    msgnum    => $report->msgnum,
+  };
+}
+
+</%init>
index 8cdac18..b0343d0 100755 (executable)
@@ -12,9 +12,7 @@ my $paynum = $1;
 my $cust_pay = qsearchs('cust_pay', { 'paynum' => $paynum } );
 my $custnum = $cust_pay->custnum;
 
-foreach my $cust_bill_pay ( $cust_pay->cust_bill_pay ) {
-  my $error = $cust_bill_pay->delete;
-  errorpage($error) if $error;
-}
+my $error = $cust_pay->delete_cust_bill_pay;
+errorpage($error) if $error;
 
 </%init>
index 1608fd0..39b0712 100644 (file)
@@ -14,7 +14,7 @@
 <% ntable("#cccccc", 2) %>
 <TR>
   <TD ALIGN="right">Reason</TD>
-  <TD><INPUT TYPE="text" NAME="reason" VALUE="<% $cgi->param('reason') |h %>"></TD>
+  <TD><INPUT TYPE="text" NAME="reason" VALUE="<% scalar($cgi->param('reason')) |h %>"></TD>
 </TR>
 
 </TABLE>
index d4e2d84..9decdef 100644 (file)
@@ -1,24 +1,32 @@
 <% encode_json( \@return ) %>\
 <%init>
 
-my( $pkgpart ) = $cgi->param('arg');
+my( $pkgpart, $pkgnum ) = $cgi->param('arg');
 
 #could worry about agent-virting this so you can't see the add-on pricing of
 # other agents, but not a real-world big worry
 
 my $part_pkg = qsearchs( 'part_pkg', { pkgpart=>$pkgpart } );
 
+my %curr_quantity;
+if ($pkgnum) {
+  my $cust_pkg = qsearchs( 'cust_pkg', { pkgnum=>$pkgnum } );
+  %curr_quantity = map { $_->usagepricepart, $_->quantity } $cust_pkg->cust_pkg_usageprice;
+}
+
 my $num = 0;
 
-my @return = map { 
+# probably don't need to be returning js_only anymore?
+my @return = ($pkgpart, map { 
+                   my $usagepricepart = $_->usagepricepart;
                    my @inc = ('/elements/cust_pkg_usageprice.html',
-                                'usagepricepart' => $_->usagepricepart,
+                                'usagepricepart' => $usagepricepart,
                              );
-
+                   push(@inc,'curr_quantity',($curr_quantity{$usagepricepart} || 0));
                    ( include(@inc, field=>'usagepricenum'.$num, html_only=>1 ),
                      include(@inc, field=>'usagepricenum'.$num++, js_only=>1 ),
                    );
                  }
-               $part_pkg->part_pkg_usageprice;
+               $part_pkg->part_pkg_usageprice);
 
 </%init>
diff --git a/httemplate/misc/xmlhttp-template_image.cgi b/httemplate/misc/xmlhttp-template_image.cgi
new file mode 100644 (file)
index 0000000..a8c50ed
--- /dev/null
@@ -0,0 +1,48 @@
+<%doc>
+Returns JSON encoded array of objects with details about FS::template_image
+objects.  Attributes in each returned object are imgnum, name, and src.
+
+Accepts the following options:
+
+imgnum - only return object for this imgnum
+
+no_src - do not include the src field
+
+</%doc>
+<% encode_json(\@result) %>\
+<%init>
+use FS::template_image;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right([ 'View templates', 'View global templates',
+                                  'Edit templates', 'Edit global templates', ]);
+
+my %arg = $cgi->param('arg');
+
+my $search = {
+  'table' => 'template_image',
+  'hashref' => {},
+};
+
+my $imgnum = $arg{'imgnum'} || '';
+die "Bad imgnum" unless $imgnum =~ /^\d*$/;
+$search->{'hashref'}->{'imgnum'} = $imgnum if $imgnum;
+
+$search->{'select'} = 'imgnum, name' if $arg{'no_src'};
+
+$search->{'extra_sql'} = ($imgnum ? ' AND ' : ' WHERE ')
+                       . $curuser->agentnums_sql(
+                           'null_right' => ['View global templates','Edit global templates']
+                         );
+
+my @images = qsearch($search); #needs agent virtualization
+
+my @result = map { +{
+  'imgnum' => $_->imgnum,
+  'name'   => $_->name,
+  'src'    => $arg{'no_src'} ? '' : $_->src,
+} } @images;
+
+</%init>
diff --git a/httemplate/misc/xmlhttp-ticket-update.html b/httemplate/misc/xmlhttp-ticket-update.html
new file mode 100644 (file)
index 0000000..147fbef
--- /dev/null
@@ -0,0 +1,66 @@
+<% encode_json($return) %>\
+<%init>
+
+my $id       = $cgi->param('id');
+my $starts   = $cgi->param('starts');
+my $due      = $cgi->param('due');
+my $username = $cgi->param('username');
+
+my $ticket = FS::TicketSystem->get_ticket_object( \%session, ticket_id=>$id );
+
+#hmm, this should happen in a single transaction and either commit or rollback,
+# but in reality failures "Don't Happen" so its not like a ticket gets
+# half changed
+
+my $return;
+if ( $ticket ) {
+
+  my($orv, $omsg) = $ticket->SetOwner( $username, 'Steal' );
+  $orv = 1 if ! $orv && $omsg =~ /already owns/i;
+
+  if ( $orv ) {
+
+    my $date = RT::Date->new( $session{CurrentUser} );
+    $date->Set( Format=>'unix', Value=>$starts, );
+    my($srv, $smsg) = $ticket->SetStarts( $date->ISO );
+
+    my $ddate;
+    unless ( ! $srv ) {
+      $ddate = RT::Date->new( $session{CurrentUser} );
+      $ddate->Set( Format=>'unix', Value=>$due, );
+      my($drv, $dmsg) = $ticket->SetDue( $ddate->ISO );
+      #XXX lame
+    }
+
+    if ( $srv ) {
+
+      my ($sm, $sh) = ( $date->Localtime('user'))[1,2];
+      my ($em, $eh) = ($ddate->Localtime('user'))[1,2];
+
+      #false laziness w/CalendarSlotSchedule and CalendarDaySchedule
+      my %hash = $m->comp('/rt/Ticket/Elements/Customers', Ticket => $ticket);
+      my @cust_main = values( %{$hash{cust_main}} );
+
+      $return = { 'error'       => '',
+                  #'starts'      => $starts,
+                  #'due'         => $due,
+                  #'username'    => $username,
+                                   #false laziness w/CalendarSlotSchedule
+                  'sched_label' =>
+                     FS::sched_avail::pretty_time($sh*60+$sm). '-'.
+                     FS::sched_avail::pretty_time($eh*60+$em). ': '.
+                     $cust_main[0]->_FreesideURILabel,
+                };
+    } else {
+      $return = { 'error' => $smsg };
+    }
+
+  } else {
+    $return = { 'error' => $omsg };
+  }
+
+} else {
+  $return = { 'error' => 'Unknown ticket id' };
+}
+
+</%init>
index 017e829..6e3617b 100755 (executable)
@@ -196,7 +196,7 @@ my $html_init = join("\n", map {
  ( my $action = $_ ) =~ s/_$//;
  include('/elements/progress-init.html',
            $_.'form',
-           [ keys %search ],
+           [ sort keys %search ],
            "../misc/${_}invoices.cgi",
            { 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but...
            $_, #key
@@ -206,7 +206,7 @@ my $html_init = join("\n", map {
          my @values = ref($search{$f}) ? @{ $search{$f} } : $search{$f};
          map qq!<INPUT TYPE="hidden" NAME="$f" VALUE="$_">!, @values;
        }
-       keys %search
+       sort keys %search
  ),
  qq!</FORM>!
 } qw( print_ email_ fax_ ftp_ spool_ ) ). 
index 82e87fb..ab5aad7 100644 (file)
@@ -44,8 +44,8 @@
                    @currency,
                    'invnum',
                    '_date',
-                   '', #'pay_amount',
-                   '', #'credit_amount',
+                   'pay_amount',
+                   'credit_amount',
                    FS::UI::Web::cust_sort_fields(),
                  ],
                  'links'       => [
@@ -461,12 +461,6 @@ if ( $cgi->param('nottax') ) {
 
     }
 
-    my $credit_sub = 'SELECT SUM(amount) AS credit_amount, billpkgnum
-    FROM cust_credit_bill_pkg GROUP BY billpkgnum';
-
-    $join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit
-    ON (cust_bill_pkg.billpkgnum = item_credit.billpkgnum)";
-   
     if ( @tax_where or $cgi->param('taxable') ) {
       # process tax restrictions
       unshift @tax_where,
@@ -579,51 +573,61 @@ if ( $cgi->param('nottax') ) {
 
 } elsif ( $cgi->param('istax') ) {
 
-  @peritem = ( 'setup' ); # taxes only have setup
-  @peritem_desc = ( 'Tax charge' );
+  # ensure that it is a tax:
+  push @where, 'cust_bill_pkg.pkgnum = 0',
+               'cust_bill_pkg.feepart IS NULL';
 
-  push @where, 'cust_bill_pkg.pkgnum = 0';
+  # We MUST NOT join cust_bill_pkg to any table that it's 1:many to.
+  # Otherwise we get duplication of the cust_bill_pkg records, 
+  # inaccurate totals, nonsensical paging behavior, etc.
+  # We CAN safely join it to a subquery that has unique billpkgnums, and 
+  # that's what we'll do.
+
+  my $tax_subquery;
+  my @tax_where;
 
   # tax location when using tax_rate_location
   if ( $cgi->param('vendortax') ) {
 
-    $join_pkg .= ' LEFT JOIN cust_bill_pkg_tax_rate_location USING ( billpkgnum ) '.
-                 ' LEFT JOIN tax_rate_location USING ( taxratelocationnum )';
+    $tax_subquery = '
+      SELECT billpkgnum, SUM(amount) as tax_total
+      FROM cust_bill_pkg_tax_rate_location AS tax
+        JOIN tax_rate_location USING (taxratelocationnum)
+    ';
     foreach (qw( state county city locationtaxid)) {
       if ( scalar($cgi->param($_)) ) {
         my $place = dbh->quote( $cgi->param($_) );
-        push @where, "tax_rate_location.$_ = $place";
+        push @tax_where, "tax_rate_location.$_ = $place";
       }
     }
 
-    push @total, 'SUM(
-      COALESCE(cust_bill_pkg_tax_rate_location.amount, 
-               cust_bill_pkg.setup + cust_bill_pkg.recur)
-    )';
-    push @total_desc, "$money_char%.2f total";
+    # itemdesc, for breakdown from the vendor tax report
+    # (this is definitely used)
+    if ( $cgi->param('itemdesc') ) {
+      if ( $cgi->param('itemdesc') eq 'Tax' ) {
+        push @where, "($itemdesc = 'Tax' OR $itemdesc is null)";
+      } else {
+        push @where, "$itemdesc = ". dbh->quote($cgi->param('itemdesc'));
+      }
+    }
 
   } else { # the internal-tax case
 
-    $join_pkg .= '
-      LEFT JOIN cust_bill_pkg_tax_location USING (billpkgnum)
-      JOIN cust_main_county           USING (taxnum)
-    ';
-
-    # don't double-count the components of consolidated taxes
-    @total = ( 'COUNT(DISTINCT cust_bill_pkg.billpkgnum)',
-               'SUM(cust_bill_pkg_tax_location.amount)' );
-    @total_desc = "$money_char%.2f total";
+    my $tax_select = 'SELECT tax.billpkgnum, SUM(tax.amount) as tax_total';
+    my $tax_from = ' FROM cust_bill_pkg_tax_location AS tax JOIN cust_main_county USING (taxnum)';
 
     # package classnum
     if ( grep { $_ eq 'classnum' } $cgi->param ) {
       my @classnums = grep /^\d*$/, $cgi->param('classnum');
-      $join_pkg .= '
-        JOIN cust_pkg AS taxed_pkg 
-          ON (cust_bill_pkg_tax_location.pkgnum = taxed_pkg.pkgnum)
-        JOIN part_pkg AS taxed_part_pkg
-          ON (taxed_pkg.pkgpart = taxed_part_pkg.pkgpart)
+      $tax_from .= '
+        JOIN cust_bill_pkg AS taxed_item
+          ON (tax.taxable_billpkgnum = taxed_item.billpkgnum)
+        LEFT JOIN cust_pkg AS taxed_pkg ON (taxed_item.pkgnum = taxed_pkg.pkgnum)
+        LEFT JOIN part_pkg AS taxed_part_pkg ON (taxed_pkg.pkgpart = taxed_part_pkg.pkgpart)
+        LEFT JOIN part_fee AS taxed_part_fee ON (taxed_item.feepart = taxed_part_fee.feepart)
       ';
-      push @where, "COALESCE(taxed_part_pkg.classnum, 0) IN ( ".
+      push @tax_where,
+        "COALESCE(taxed_part_pkg.classnum, taxed_part_fee.classnum,0) IN ( ".
                        join(',', @classnums ).
                    ' )'
         if @classnums;
@@ -631,19 +635,20 @@ if ( $cgi->param('nottax') ) {
 
     # taxclass
     if ( $cgi->param('taxclassNULL') ) {
-      push @where, 'cust_main_county.taxclass IS NULL';
+      push @tax_where, 'cust_main_county.taxclass IS NULL';
     }
 
     # taxname
     if ( $cgi->param('taxnameNULL') ) {
-      push @where, 'cust_main_county.taxname IS NULL OR '.
+      push @tax_where, 'cust_main_county.taxname IS NULL OR '.
                    'cust_main_county.taxname = \'Tax\'';
     } elsif ( $cgi->param('taxname') ) {
-      push @where, 'cust_main_county.taxname = '.
+      push @tax_where, 'cust_main_county.taxname = '.
                     dbh->quote($cgi->param('taxname'));
     }
 
     # itemdesc, for breakdown from the vendor tax report
+    # (is this even used? vendor tax report shouldn't use cust_bill_pkg.cgi)
     if ( $cgi->param('itemdesc') ) {
       if ( $cgi->param('itemdesc') eq 'Tax' ) {
         push @where, "($itemdesc = 'Tax' OR $itemdesc is null)";
@@ -652,27 +657,46 @@ if ( $cgi->param('nottax') ) {
       }
     }
 
-    # specific taxnums
+    # specific taxnums (the usual way)
     if ( $cgi->param('taxnum') =~ /^([\d,]+)$/) {
-      push @where, "cust_main_county.taxnum IN ($1)";
+      push @tax_where, "cust_main_county.taxnum IN ($1)";
     }
 
-  } #end of "normal case"
+    $tax_subquery = "$tax_select $tax_from";
 
-  # classnum (of underlying package)
-  # not specified: all classes
-  # 0: empty class
-  # N: classnum
-  if ( grep { $_ eq 'classnum' } $cgi->param ) {
-    my @classnums = grep /^\d+$/, $cgi->param('classnum');
-    push @where, "COALESCE(part_fee.classnum, $part_pkg.classnum, 0) IN ( ".
-                     join(',', @classnums ).
-                 ' )'
-      if @classnums;
+  } # end of internal-tax case
+
+  if (@tax_where) {
+    $tax_subquery .= '
+      WHERE ' . join(' AND ', map "($_)", @tax_where);
   }
+  $tax_subquery .= ' GROUP BY tax.billpkgnum ';
 
-} # nottax / istax
+  # now join THAT into the main report
+  # (inner join, so that tax line items that don't match the tax_where 
+  # conditions don't appear in the output.)
+
+  $join_pkg .= " JOIN ($tax_subquery) AS _istax USING (billpkgnum) ";
 
+  push @select, 'tax_total';
+
+  @peritem = ( 'setup' ); # total tax on the invoice, not just the filtered tax
+  @peritem_desc = ( 'Tax charge' );
+
+  @total = ( 'COUNT(cust_bill_pkg.billpkgnum)',
+             'SUM(cust_bill_pkg.setup)' );
+  @total_desc = ( "$money_char%.2f total tax" );
+
+  if ( @tax_where ) {
+    # then also show the filtered tax
+    push @peritem, 'tax_total';
+    push @peritem_desc, 'Tax in category';
+    push @total, 'SUM(tax_total)';
+    push @total_desc, "$money_char%.2f tax in this category";
+    # would also be nice to include a line explaining what the category is
+  }
+
+} # nottax / istax
 
 #total payments
 my $pay_sub = "SELECT SUM(cust_bill_pay_pkg.amount)
@@ -681,87 +705,25 @@ my $pay_sub = "SELECT SUM(cust_bill_pay_pkg.amount)
               ";
 push @select, "($pay_sub) AS pay_amount";
 
-
-# credit
-if ( $cgi->param('credit') ) {
-
-  my $credit_where;
-
+# showing credited amount, optionally with date filtering
+my $credit_where = '';
+if ( $cgi->param('credit_begin') or $cgi->param('credit_end') ) {
   my($cr_begin, $cr_end) = FS::UI::Web::parse_beginning_ending($cgi, 'credit');
   $credit_where = "WHERE cust_credit_bill._date >= $cr_begin " .
                   "AND cust_credit_bill._date <= $cr_end";
+}
 
-  my $credit_sub;
-
-  if ( $cgi->param('istax') ) {
-    # then we need to group/join by billpkgtaxlocationnum, to get only the 
-    # relevant part of partial taxes
-    my $credit_sub = "SELECT SUM(cust_credit_bill_pkg.amount) AS credit_amount,
-      reason.reason as reason_text, access_user.username AS username_text,
-      billpkgtaxlocationnum, billpkgnum
-    FROM cust_credit_bill_pkg
-      JOIN cust_credit_bill USING (creditbillnum)
-      JOIN cust_credit USING (crednum)
-      LEFT JOIN reason USING (reasonnum)
-      LEFT JOIN access_user USING (usernum)
-    $credit_where
-    GROUP BY billpkgnum, billpkgtaxlocationnum, reason.reason, 
-      access_user.username";
-
-    if ( $cgi->param('out') ) {
-
-      # find credits that are applied to the line items, but not to 
-      # a cust_bill_pkg_tax_location link
-      $join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit
-        USING (billpkgnum)";
-      push @where, 'item_credit.billpkgtaxlocationnum IS NULL';
-
-    } else {
-
-      # find credits that are applied to the CBPTL links that are 
-      # considered "interesting" by the report criteria
-      $join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit
-        USING (billpkgtaxlocationnum)";
-
-    }
-
-  } else {
-    # then only group by billpkgnum
-    my $credit_sub = "SELECT SUM(cust_credit_bill_pkg.amount) AS credit_amount,
-      reason.reason as reason_text, access_user.username AS username_text,
-      billpkgnum
-    FROM cust_credit_bill_pkg
-      JOIN cust_credit_bill USING (creditbillnum)
-      JOIN cust_credit USING (crednum)
-      LEFT JOIN reason USING (reasonnum)
-      LEFT JOIN access_user USING (usernum)
-    $credit_where
-    GROUP BY billpkgnum, reason.reason, access_user.username";
-    $join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit USING (billpkgnum)";
-  }
-
-  push @where,    'item_credit.billpkgnum IS NOT NULL';
-  push @select,   'item_credit.credit_amount',
-                  'item_credit.username_text',
-                  'item_credit.reason_text';
-  push @peritem,  'credit_amount', 'username_text', 'reason_text';
-  push @peritem_desc, 'Credited', 'By', 'Reason';
-  push @total,    'SUM(credit_amount)';
-  push @total_desc, "$money_char%.2f credited";
-
-} else {
-
-  #still want a credit total column
-
-  my $credit_sub = "
-    SELECT SUM(cust_credit_bill_pkg.amount)
-      FROM cust_credit_bill_pkg
-        WHERE cust_bill_pkg.billpkgnum = cust_credit_bill_pkg.billpkgnum
-  ";
-  push @select, "($credit_sub) AS credit_amount";
+my $credit_sub = "SELECT SUM(cust_credit_bill_pkg.amount) AS credit_amount, billpkgnum
+                  FROM cust_credit_bill_pkg
+                  JOIN cust_credit_bill USING (creditbillnum)
+                  $credit_where
+                  GROUP BY billpkgnum";
 
-}
+$join_pkg .= " LEFT JOIN ($credit_sub) AS item_credit
+  ON (cust_bill_pkg.billpkgnum = item_credit.billpkgnum)";
+push @select, 'credit_amount';
 
+# standard customer fields
 push @select, 'cust_main.custnum', FS::UI::Web::cust_sql_fields();
 
 #salesnum
@@ -785,6 +747,10 @@ if ( $cgi->param('salesnum') =~ /^(\d+)$/ ) {
   $cgi->param('classnum', 0) unless $cgi->param('classnum');
 }
 
+#credit flag (include only those that have credit(s) applied)
+if ( $cgi->param('credit') ) {
+  push @where, 'credit_amount > 0';
+}
 
 my $where = join(' AND ', @where);
 $where &&= "WHERE $where";
@@ -823,7 +789,13 @@ my $ilink = [ "${p}view/cust_bill.cgi?", 'invnum' ];
 my $clink = [ "${p}view/cust_main.cgi?", 'custnum' ];
 
 my $pay_link    = ''; #[, 'billpkgnum', ];
-my $credit_link = [ "${p}search/cust_credit_bill_pkg.html?billpkgnum=", 'billpkgnum', ];
+my $credit_param = '';
+foreach ('credit_begin', 'credit_end') {
+  if ( $cgi->param($_) ) {
+    $credit_param .= "$_=" . $cgi->param($_) . ';';
+  }
+}
+my $credit_link = [ "${p}search/cust_credit_bill_pkg.html?${credit_param}billpkgnum=", 'billpkgnum', ];
 
 warn "\n\nQUERY:\n".Dumper($query)."\n\nCOUNT_QUERY:\n$count_query\n\n"
   if $cgi->param('debug');
index 63d70c2..5facd4a 100644 (file)
@@ -3,11 +3,12 @@
               'name_singular' => 'credit application',
               'query'         => $query,
               'count_query'   => $count_query,
-               'count_addl'   => [ $money_char. '%.2f total', ],
+               'count_addl'   => \@count_addl,
                'header'       => [
                    #'#',
 
                    'Amount',
+                   'Tax exempt',
 
                    #credit
                    'Date',
@@ -26,7 +27,9 @@
                ],
                'fields'       => [
                    #'creditbillpkgnum',
-                   sub { sprintf($money_char.'%.2f', shift->amount ) },
+                  sub { sprintf($money_char.'%.2f', shift->amount ) },
+
+                  sub { sprintf($money_char.'%.2f', shift->get('exempt_credited') ) },
 
                    sub { time2str('%b %d %Y', shift->get('cust_credit_date') ) },
                    sub { shift->cust_credit_bill->cust_credit->otaker },
@@ -44,6 +47,7 @@
                ],
                'sort_fields'  => [
                    'amount',
+                   'exempt_credited',
                    'cust_credit_date',
                    '', #'otaker',
                    '', #reason
@@ -61,6 +65,7 @@
                    '',
                    '',
                    '',
+                   '',
                    @post_desc_null,
                    $ilink,
                    $ilink,
                          FS::UI::Web::cust_header()
                    ),
                ],
-               'align' => 'rrllll'.
+               'align' => 'rrrllll'.
                           $post_desc_align.
                           'rr'.
                           FS::UI::Web::cust_aligns(),
-               'color' => [ 
+               'color' => [
+                              '',
                               '',
                               '',
                               '',
@@ -91,6 +97,7 @@
                               '',
                               '',
                               '',
+                              '',
                               @post_desc_null,
                               '',
                               '',
@@ -203,6 +210,7 @@ if ( $cgi->param('taxclass')
 my @loc_param = qw( district city county state country );
 
 if ( $cgi->param('out') ) {
+  # probably don't need this part
 
   my ( $loc_sql, @param ) = FS::cust_pkg->location_sql( 'ornull' => 1 );
   while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution
@@ -242,6 +250,8 @@ if ( $cgi->param('out') ) {
 
     #hacky, could be more efficient.  care if it is ever used for more than the
     # tax-report_groups filtering kludge
+    # (does that even still exist? if so, correct this (or location_sql itself)
+    # to work with modern cust_location links)
 
     my $locs_sql =
       ' ( '. join(' OR ', map {
@@ -266,15 +276,23 @@ if ( $cgi->param('out') ) {
 
   } else {
 
-    my %ph = map { $_ => dbh->quote( scalar($cgi->param($_)) ) } @loc_param;
-
-    my ( $loc_sql, @param ) = FS::cust_pkg->location_sql;
-    while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution
-      $loc_sql =~ s/\?/$ph{shift(@param)}/e;
+    my @loc_where;
+    foreach (@loc_param) {
+      if ( length($cgi->param($_)) ) {
+        my $quoted = dbh->quote($cgi->param($_));
+        push @loc_where, "(COALESCE(cust_location.$_, '') = $quoted)";
+      }
     }
+    my $loc_sql = join(' AND ', @loc_where);
 
-    push @where, $loc_sql;
+    #my %ph = map { $_ => dbh->quote( scalar($cgi->param($_)) ) } @loc_param;
+    #
+    #my ( $loc_sql, @param ) = FS::cust_pkg->location_sql;
+    #while ( $loc_sql =~ /\?/ ) { #easier to do our own substitution
+    #  $loc_sql =~ s/\?/$ph{shift(@param)}/e;
+    #}
 
+    push @where, $loc_sql;
   }
    
   my($title, $name);
@@ -357,7 +375,7 @@ if ( $cgi->param('report_group') =~ /^(=|!=) (.*)$/ && $cgi->param('istax') ) {
   
 }
 
-push @where, 'cust_bill_pkg.pkgnum != 0' if $cgi->param('nottax');
+push @where, '(cust_bill_pkg.pkgnum != 0 OR cust_bill_pkg.feepart is not null)' if $cgi->param('nottax');
 push @where, 'cust_bill_pkg.pkgnum  = 0' if $cgi->param('istax');
 
 if ( $cgi->param('cust_tax') ) {
@@ -381,6 +399,9 @@ if ( $cgi->param('cust_tax') ) {
 
 my $count_query = "SELECT COUNT(DISTINCT creditbillpkgnum),
                           SUM(cust_credit_bill_pkg.amount)";
+if ( $cgi->param('nottax') ) {
+  $count_query .= ", SUM(exempt_credited)";
+}
 
 my $join_cust =
   '      JOIN cust_bill ON ( cust_bill_pkg.invnum = cust_bill.invnum )'.
@@ -393,6 +414,21 @@ my $join_cust_bill_pkg = 'LEFT JOIN cust_bill_pkg USING ( billpkgnum )';
 
 if ( $cgi->param('nottax') ) {
 
+  # There can be multiple cust_tax_exempt_pkg records with the same
+  # creditbillpkgnum iff the line item is exempt from multiple taxes.
+  # They will all have the same amount, except in the case where there are
+  # different exemption types and so the exemption amounts are different.
+  # In that case, show the amount of the largest exemption.
+
+  $join_cust_bill_pkg .= '
+    LEFT JOIN(
+      SELECT creditbillpkgnum,
+        MAX(0 - cust_tax_exempt_pkg.amount) AS exempt_credited
+      FROM cust_tax_exempt_pkg
+      WHERE creditbillpkgnum IS NOT NULL
+      GROUP BY creditbillpkgnum
+    ) AS exempt_credit USING (creditbillpkgnum)
+  ';
   $join_pkg =  ' LEFT JOIN cust_pkg USING ( pkgnum )
                  LEFT JOIN part_pkg USING ( pkgpart )
                  LEFT JOIN part_pkg AS override
@@ -460,6 +496,12 @@ push @select, 'part_pkg.pkg' unless $cgi->param('istax');
 push @select, 'cust_main.custnum',
               FS::UI::Web::cust_sql_fields();
 
+if ( $cgi->param('istax') ) {
+  push @select, 'NULL AS exempt_credited'; # just display zero
+} elsif ( $cgi->param('nottax') ) {
+  push @select, 'exempt_credited';
+}
+
 my @post_desc_header = ();
 my @post_desc = ();
 my @post_desc_null = ();
@@ -543,4 +585,13 @@ my $location_sub = sub {
 
 };
 
+my @count_addl = ( $money_char. '%.2f total', );
+if ( $cgi->param('nottax') ) {
+  push @count_addl, ( $money_char. '%.2f tax exempt' );
+}
+
+if ( $cgi->param('debug') ) {
+  warn "\nQUERY:\n" . Dumper($query) . "\nCOUNT_QUERY:\n$count_query\n\n";
+}
+
 </%init>
index 401f52e..e9aece2 100644 (file)
@@ -144,11 +144,12 @@ include('/elements/select.html',
 include('/elements/select.html',
   'field' => 'msgtype',
   'curr_value' => $cgi->param('msgtype') || '',
-  'options' => [ '', 'invoice', 'receipt', 'admin' ],
+  'options' => [ '', 'invoice', 'receipt', 'admin', 'report' ],
   'labels'  => { ''         => '(any)',
                  'invoice'  => 'Invoices',
                  'receipt'  => 'Receipts',
                  'admin'    => 'Admin notices',
+                 'report'   => 'Reports',
                },
 ) .
 '</TD>
index 03474c1..e466f6a 100755 (executable)
@@ -3,4 +3,5 @@
                 'amount_field'  => 'paid',
                 'name_singular' => emt('payment'),
                 'name_verb'     => emt('paid'),
+                'show_card_type' => 1,
 &>
index c88b3a1..f1e686a 100755 (executable)
@@ -310,11 +310,14 @@ my $process_svc_labels = sub {
       foreach ( map { [ $_->label ] } @{ $part_svc->cust_pkg_svc } ) {
         push @out, [ 
         { 'data' => $_->[0]. ':',
-          'align'=> 'right', },
+          'align'=> 'right',
+        },
+
         { 'data' => $_->[1],
           'align'=> 'left',
-          'link' => $p. 'view/' .
-          $_->[2]. '.cgi?'. $_->[3], },
+          'link' => $p. 'view/cust_svc.cgi?' . $_->[3],
+        },
+
         ];
       }
     }
index 5808e5f..1fea67c 100755 (executable)
@@ -184,6 +184,16 @@ push @fields, 'payby_payinfo_pretty',
 push @link_onclicks, $sub_receipt, '';
 push @sort_fields, 'paysort', $amount_field;
 
+if ($opt{'show_card_type'}) {
+  push @header, emt('Card Type');
+  $align .= 'r';
+  push @links, '';
+  push @fields, sub { 
+    (($_[0]->payby eq 'CARD') && ($_[0]->paymask !~ /N\/A/)) ? cardtype($_[0]->paymask) : ''
+  };
+  push @sort_fields, '';
+}
+
 if ( $unapplied ) {
   push @header, emt('Unapplied');
   $align .= 'r';
index beb0173..a279f53 100644 (file)
@@ -348,8 +348,8 @@ if ( $opt{'disableable'} ) {
       sub { shift->disabled ? 'FF0000'   : '00CC00'; };
     splice @{ $opt{'links'}  }, $pos, 0, ''
       if $opt{'links'};
-    splice @{ $opt{'link_onlicks'}  }, $pos, 0, ''
-      if $opt{'link_onlicks'};
+    splice @{ $opt{'link_onclicks'}  }, $pos, 0, ''
+      if $opt{'link_onclicks'};
   }
 
   #add show/hide disabled links
index 141c535..22032b1 100644 (file)
@@ -13,6 +13,7 @@
                                'Date',
                                'Status',
                                'Account', # unless $hashref->{'svcnum'}
+                               'Employee',
                                '', # checkbox column
                              ],
                  'fields' => [
                                },
                                sub {
                                  my $queue = shift;
+                                 my $access_user = $queue->access_user;
+                                 return $access_user ? $access_user->username : '';
+                               },
+                               sub {
+                                 my $queue = shift;
                                  my $jobnum = $queue->jobnum;
                                  my $status = $queue->status;
                                  my $changable = $dangerous
index 6adf090..27906e0 100644 (file)
@@ -1,5 +1,15 @@
 <& /elements/header.html, 'Sales commission report per package' &>
 
+% if ($FS::CurrentUser::CurrentUser->access_right('Send reports to customers'))
+%   {
+<P>
+<& /elements/popup_link-send_report_batch.html,
+    reportname => 'sales_commission_pkg',
+    label => emt('Send these reports by email'),
+&>
+</P>
+% } 
+
 <FORM ACTION="sales_commission_pkg.html">
 
 <TABLE BGCOLOR="#cccccc" CELLSPACING=0>
index d0ef434..773b403 100755 (executable)
@@ -122,7 +122,7 @@ my %default = (
   border    => 1,
 );
 my @widths = ( #ick
-  30, (13) x 5, 3, 7.5, 3, 11, 11, 3, 11, 3, 11
+  30, (13) x 6, 3, 7.5, 3, 11, 11, 3, 11, 3, 11
 );
 
 my @format = ( {}, {}, {} ); # white row, gray row, yellow (totals) row
@@ -134,40 +134,46 @@ foreach (keys(%formatdef)) {
                                            italic   => 1,
                                            %f);
 }
-my $ws = $workbook->add_worksheet('taxreport');
+my $ws = $workbook->add_worksheet('Sales and Tax');
 
 # main title
 $ws->merge_range(0, 0, 0, 14, $report->title, $format[0]->{title});
+$ws->set_row(0, 30);
 # excel position
 my $x = 0;
 my $y = 2;
 
 my $colhead = $format[0]->{colhead};
 # print header
-$ws->merge_range($y, 1, $y, 5, 'Sales', $colhead);
-$ws->merge_range($y, 6, $y+1, 8, 'Rate', $colhead);
-$ws->merge_range($y, 9, $y, 14, 'Tax', $colhead);
+$ws->merge_range($y, 1, $y, 6, 'Sales', $colhead);
+$ws->merge_range($y, 7, $y+1, 9, 'Rate', $colhead);
+$ws->merge_range($y, 10, $y, 16, 'Tax', $colhead);
 
 $y++;
 $colhead = $format[0]->{colhead_small};
-$ws->write($y, 1, [ 'Total', 'Exempt customer', 'Exempt package', 'Monthly exemption',
+$ws->write($y, 1, [ 'Total',
+                    'Exempt customer',
+                    'Exempt package',
+                    'Monthly exemption',
+                    'Credited',
                     'Taxable' ], $colhead);
-$ws->write($y, 9, 'Estimated', $colhead);
-$ws->write($y, 10, 'Invoiced', $colhead);
-$ws->write($y, 12, 'Credited', $colhead);
-$ws->write($y, 14, 'Net due',  $colhead);
+$ws->write($y, 10, 'Estimated', $colhead);
+$ws->write($y, 11, 'Invoiced', $colhead);
+$ws->write($y, 13, 'Credited', $colhead);
+$ws->write($y, 15, 'Net due',  $colhead);
+$ws->write($y, 16, 'Collected',$colhead);
 $y++;
 
 # print data
-my $rownum = 0;
+my $rownum = 1;
 my $prev_row = { pkgclass => 'DUMMY PKGCLASS' };
 
 foreach my $row (@rows) {
   $x = 0;
   if ( $row->{pkgclass} ne $prev_row->{pkgclass} ) {
-    $rownum = 0;
+    $rownum = 1;
     if ( $params{breakdown}->{pkgclass} ) {
-      $ws->merge_range($y, 0, $y, 14,
+      $ws->merge_range($y, 0, $y, 15,
         $pkgclass_name{$row->{pkgclass}},
         $format[0]->{sectionhead}
       );
@@ -181,7 +187,7 @@ foreach my $row (@rows) {
   }
   $ws->write($y, $x, $row->{label}, $f->{rowhead});
   $x++;
-  foreach (qw(sales exempt_cust exempt_pkg exempt_monthly taxable)) {
+  foreach (qw(sales exempt_cust exempt_pkg exempt_monthly sales_credited taxable)) {
     $ws->write($y, $x, $row->{$_} || 0, $f->{currency});
     $x++;
   }
@@ -206,6 +212,8 @@ foreach my $row (@rows) {
   $ws->write_string($y, $x, " = ", $f->{bigmath});
   $x++;
   $ws->write($y, $x, $row->{tax} - $row->{credit}, $f->{currency});
+  $x++;
+  $ws->write($y, $x, $row->{tax_paid} || 0, $f->{currency});
 
   $rownum++;
   $y++;
@@ -226,6 +234,69 @@ for my $x (0..scalar(@widths)-1) {
   $ws->set_column($x, $x, $widths[$x]);
 }
 
+# do the same for the credit worksheet
+$ws = $workbook->add_worksheet('Credits');
+
+my $title = $report->title;
+$title =~ s/Tax Report/Credits/;
+# main title
+$ws->merge_range(0, 0, 0, 14, $title, $format[0]->{title});
+$ws->set_row(0, 30); # height
+# excel position
+$x = 0;
+$y = 2;
+
+$colhead = $format[0]->{colhead};
+# print header
+$ws->merge_range($y, 1, $y+1, 1, 'Total', $colhead);
+$ws->merge_range($y, 2, $y, 4, 'Applied to', $colhead);
+
+$y++;
+$colhead = $format[0]->{colhead_small};
+$ws->write($y, 2, [ 'Taxable sales',
+                    'Tax-exempt sales',
+                    'Taxes'
+                  ], $colhead);
+$y++;
+
+# print data
+$rownum = 1;
+$prev_row = { pkgclass => 'DUMMY PKGCLASS' };
+
+foreach my $row (@rows) {
+  $x = 0;
+  if ( $row->{pkgclass} ne $prev_row->{pkgclass} ) {
+    $rownum = 1;
+    if ( $params{breakdown}->{pkgclass} ) {
+      $ws->merge_range($y, 0, $y, 4,
+        $pkgclass_name{$row->{pkgclass}},
+        $format[0]->{sectionhead}
+      );
+      $y++;
+    }
+  }
+  # pick a format set
+  my $f = $format[$rownum % 2];
+  if ( $row->{total} ) {
+    $f = $format[2];
+  }
+  $ws->write($y, $x, $row->{label}, $f->{rowhead});
+  $x++;
+  foreach (qw(credits sales_credited exempt_credited tax_credited)) {
+    $ws->write($y, $x, $row->{$_} || 0, $f->{currency});
+    $x++;
+  }
+
+  $rownum++;
+  $y++;
+  $prev_row = $row;
+}
+
+for my $x (0..4) {
+  $ws->set_column($x, $x, $widths[$x]);
+}
+
+
 $workbook->close;
 
 http_header('Content-Length' => length($data));
index 491cd42..9e625c8 100644 (file)
@@ -18,11 +18,12 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
 .bigmath { font-size: large; font-weight: bold; font: sans-serif; text-align: center }
 .total { font-style: italic }
 </STYLE>
+
 <& /elements/table-grid.html &>
   <THEAD>
   <TR>
     <TH ROWSPAN=3></TH>
-    <TH COLSPAN=5>Sales</TH>
+    <TH COLSPAN=6>Sales</TH>
     <TH ROWSPAN=3></TH>
     <TH ROWSPAN=3>Rate</TH>
     <TH ROWSPAN=3></TH>
@@ -32,6 +33,8 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
     <TH ROWSPAN=3>Tax credited</TH>
     <TH ROWSPAN=3></TH>
     <TH ROWSPAN=3>Net tax due</TH>
+    <TH ROWSPAN=3></TH>
+    <TH ROWSPAN=3>Tax collected</TH>
   </TR>
 
   <TR>
@@ -39,6 +42,7 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
     <TH ROWSPAN=1>Non-taxable</TH>
     <TH ROWSPAN=1>Non-taxable</TH>
     <TH ROWSPAN=1>Non-taxable</TH>
+    <TH ROWSPAN=2>Credited</TH>
     <TH ROWSPAN=2>Taxable</TH>
   </TR>
 
@@ -71,10 +75,20 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
 %   } # if $row->{pkgclass} ne ...
 
 %   # construct base links that limit to the tax rates described by this row
+%   # cust_bill_pkg.cgi wants a list of specific taxnums (and package class)
+%   # cust_credit_bill_pkg.html wants a geographic scope (and package class)
 %   my $rowlink = ';taxnum=' . $row->{taxnums};
+% # DON'T EVER USE THIS
+% #  my $rowregion = ';country=' . $cgi->param('country');
+% #  foreach my $loc (qw(state county city district)) {
+% #    if ( $row->{$loc} ) {
+% #      $rowregion .= ";$loc=" . uri_escape($row->{$loc});
+% #    }
+% #  }
 %   # and also the package class, if we're limiting package class
 %   if ( $params{breakdown}->{pkgclass} ) {
 %     $rowlink .= ';classnum=' . ($row->{pkgclass} || 0);
+% #    $rowregion .= ';classnum=' . ($row->{pkgclass} || 0);
 %   }
 %
 %   if ( $row->{total} ) {
@@ -107,6 +121,12 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
         <% $money_sprintf->( $row->{exempt_monthly} ) %>
       </A>
     </TD>
+%   # credited sales
+    <TD>
+      <A HREF="<% $salescreditlink . $rowlink %>">
+        <% $money_sprintf->( $row->{sales_credited} ) %>
+      </A>
+    </TD>
 %   # taxable sales
     <TD>
       <A HREF="<% $saleslink . $rowlink . ";taxable=1" %>">
@@ -131,13 +151,16 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
 %   # credited tax
     <TD CLASS="bigmath"> &minus; </TD>
     <TD>
-      <A HREF="<% $creditlink . $rowlink %>">
-        <% $money_sprintf->( $row->{credit} ) %>
-      </A>
+%#      <A HREF="<% $creditlink . $rowlink %>"> currently broken
+        <% $money_sprintf->( $row->{tax_credited} ) %>
+%#      </A>
     </TD>
 %   # net tax due
     <TD CLASS="bigmath"> = </TD>
-    <TD><% $money_sprintf->( $row->{tax} - $row->{credit} ) %></TD>
+    <TD><% $money_sprintf->( $row->{tax} - $row->{tax_credited} ) %></TD>
+%   # tax collected
+    <TD>&nbsp;</TD>
+    <TD><% $money_sprintf->( $row->{tax_paid} ) %></TD>
   </TR>
 %   $rownum++;
 %   $prev_row = $row;
@@ -161,6 +184,80 @@ TD.rowhead { font-weight: bold; text-align: left; padding: 0px 3px }
 % }
 </TABLE>
 
+<BR>
+<& /elements/table-grid.html &>
+  <THEAD>
+  <TR>
+    <TH ROwSPAN=2></TH>
+    <TH ROWSPAN=2>Total credits</TH>
+    <TH COLSPAN=3>Applied to</TH>
+  </TR>
+  <TR STYLE="font-size: small">
+    <TH>Taxable sales</TH>
+    <TH>Tax-exempt sales</TH>
+    <TH>Taxes</TH>
+  </TR>
+  </THEAD>
+
+% $rownum = 0;
+% $prev_row = { pkgclass => 'DUMMY PKGCLASS' };
+
+  <TBODY>
+% # mostly duplicates the stuff above...
+% # but putting it all in one giant table is no good
+% foreach my $row (@rows) {
+%   if ( $row->{pkgclass} ne $prev_row->{pkgclass} ) {
+%     if ( $rownum > 0 ) { # start a new section
+%       $rownum = 0;
+  </TBODY><TBODY>
+%     }
+%     if ( $params{breakdown}->{pkgclass} ) { # and caption the new section
+  <TR>
+    <TD COLSPAN=5 CLASS="sectionhead">
+      <% $pkgclass_name{$row->{pkgclass}} %>
+    </TD>
+  </TR>
+%     }
+%   } # if $row->{pkgclass} ne ...
+
+%   my $rowlink = ';taxnum=' . $row->{taxnums};
+%
+%   if ( $row->{total} ) {
+  </TBODY><TBODY CLASS="total">
+%   }
+  <TR CLASS="row<% $rownum % 2 %>">
+    <TD CLASS="rowhead"><% $row->{label} |h %></TD>
+    <TD>
+%   # Total credits
+      <% $money_sprintf->( $row->{credits} ) %>
+    </TD>
+%   # Credits to taxable sales
+    <TD>
+      <A HREF="<% $salescreditlink . $rowlink %>">
+        <% $money_sprintf->( $row->{sales_credited} ) %>
+      </A>
+    </TD>
+%   # ... to exempt sales (link is the same, it shows both exempt and taxable)
+    <TD>
+      <A HREF="<% $salescreditlink . $rowlink %>">
+        <% $money_sprintf->( $row->{exempt_credited} ) %>
+      </A>
+    </TD>
+%   # ... to taxes
+    <TD>
+%#      <A HREF="<% $creditlink . $rowlink %>"> currently broken
+        <% $money_sprintf->( $row->{tax_credited} ) %>
+%#      </A>
+    </TD>
+  </TR>
+%   $rownum++;
+%   $prev_row = $row;
+% } # foreach my $row
+% # no "out of taxable region" for credits (yet)
+  </TBODY>
+</TABLE>
+
+
 <& /elements/footer.html &>
 <%init>
 
@@ -218,12 +315,18 @@ if ( $params{agentnum} ) {
 my $saleslink  = $p. "search/cust_bill_pkg.cgi?$dateagentlink;nottax=1";
 my $taxlink    = $p. "search/cust_bill_pkg.cgi?$dateagentlink;istax=1";
 my $exemptlink = $p. "search/cust_tax_exempt_pkg.cgi?$dateagentlink";
-my $creditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;credit=1;istax=1";
-
+my $salescreditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;nottax=1;credit=1";
 if ( $params{'credit_date'} eq 'cust_credit_bill' ) {
-  $creditlink =~ s/begin/credit_begin/;
-  $creditlink =~ s/end/credit_end/;
+  $salescreditlink =~ s/begin/credit_begin/;
+  $salescreditlink =~ s/end/credit_end/;
+  $saleslink .= ";credit_begin=$beginning;credit_end=$ending";
 }
+#my $creditlink = $p. "search/cust_bill_pkg.cgi?$dateagentlink;credit=1;istax=1";
+#if ( $params{'credit_date'} eq 'cust_credit_bill' ) {
+#  $creditlink =~ s/begin/credit_begin/;
+#  $creditlink =~ s/end/credit_end/;
+#}
+my $creditlink = ''; # disabled until we find a sane way to do this
 
 my %pkgclass_name = map { $_->classnum, $_->classname } qsearch('pkg_class');
 $pkgclass_name{''} = 'Unclassified';
index 2b5f2bb..9fbe22e 100644 (file)
@@ -1,12 +1,17 @@
 %# still not a good way to do rows grouped by some field in a search.html 
 %# report
+%# (there is now, but we're not yet sponsored to switch this over to it)
 % if ( $type eq 'xls' ) {
 <% $data %>\
 % } else {
+%   if ( $type eq 'html-print' ) {
+<& /elements/header-popup.html, $title &>
+%   } else {
 <& /elements/header.html, $title &>
 <P ALIGN="right" CLASS="noprint">
 Download full results<BR>
 as <A HREF="<% $cgi->self_url %>;_type=xls">Excel spreadsheet</A></P>
+%   }
 <BR>
 <STYLE TYPE="text/css">
 td.cust_head {
@@ -22,12 +27,14 @@ td.money:before { content: '<% $money_char %>'; }
 .row1 { background-color: #ffffff; }
 </STYLE>
 <& /elements/table-grid.html &>
+<THEAD>
   <TR STYLE="background-color: #cccccc">
     <TH CLASS="grid">Package</TH>
     <TH CLASS="grid">Sales</TH>
     <TH CLASS="grid">Percentage</TH>
     <TH CLASS="grid">Commission</TH>
   </TR>
+</THEAD>
 % my ($custnum, $sales, $commission, $row, $bgcolor) = (0, 0, 0, 0);
 % foreach my $cust_pkg ( @cust_pkg ) {
 %   if ( $custnum ne $cust_pkg->custnum ) {
diff --git a/httemplate/search/tax_sales.cgi b/httemplate/search/tax_sales.cgi
new file mode 100644 (file)
index 0000000..4b28c93
--- /dev/null
@@ -0,0 +1,172 @@
+
+<% include('/graph/elements/report.html',
+     'title'      => 'Monthly Sales and Taxes Report',
+     'items'      => \@row_labels,
+     'data'       => \@rowdata,
+     'row_labels' => \@row_labels,
+     'colors'     => \@rowcolors,
+     'bgcolors'   => \@rowbgcolors,
+     'col_labels' => \@col_labels,
+     'graph_type' => 'none',
+   ) %>
+
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+# validate cgi input
+my $start_month = $cgi->param('start_month');
+die "Bad start month" unless $start_month =~ /^\d*$/;
+my $start_year = $cgi->param('start_year');
+die "Bad start year" unless $start_year =~ /^\d*$/;
+my $end_month = $cgi->param('end_month');
+die "Bad end month" unless $end_month =~ /^\d*$/;
+my $end_year = $cgi->param('end_year');
+die "Bad end year" unless $end_year =~ /^\d*$/;
+die "End year before start year" if $end_year < $start_year;
+die "End month before start month" if ($start_year == $end_year) && ($end_month < $start_month);
+my $country = $cgi->param('country');
+die "Bad country code" unless $country =~ /^\w\w$/;
+
+# Data structure for building final table
+# row order will be calculated separately
+#
+# $data->{$rowlabel} = \@rowvalues
+#
+
+my $data = {};
+
+### Calculate package values
+
+my @pkg_class = qsearch('pkg_class');
+my @pkg_classnum = map { $_->classnum } @pkg_class;
+unshift(@pkg_classnum,0);
+my @pkg_classname = map { $_->classname } @pkg_class;
+unshift(@pkg_classname,'(empty class)');
+
+# some false laziness with graph/elements/monthly.html
+my %reportopts = (
+  'items'        => [ qw( cust_bill_pkg cust_bill_pkg_credits ) ],
+  'cross_params' => [ map { [ 'classnum', $_ ] } @pkg_classnum ],
+  'start_month'  => $start_month,
+  'start_year'   => $start_year,
+  'end_month'    => $end_month,
+  'end_year'     => $end_year,
+);
+my $pkgreport = new FS::Report::Table::Monthly(%reportopts);
+my $pkgdata = $pkgreport->data;
+
+# assuming every month/year combo is included in results,
+# just use this list for the final table
+my @col_labels = @{$pkgdata->{'label'}}; 
+
+# unpack report data into a more manageable format
+foreach my $item ( qw( invoiced credited ) ) { # invoiced, credited
+  my $itemref = shift @{$pkgdata->{'data'}};
+  foreach my $label (@{$pkgdata->{'label'}}) { # month/year
+    my $labelref = shift @$itemref;
+    foreach my $classname (@pkg_classname) {   # pkg class
+      my $value = shift @$labelref;
+      my $rowlabel = $classname.' '.$item;
+      $data->{$rowlabel} ||= [];
+      push(@{$data->{$rowlabel}},$value);
+    }
+  }
+}
+
+### Calculate tax values
+
+# false laziness w report_tax.html, put this in FS::Report::Tax?
+my $sth = dbh->prepare('SELECT DISTINCT(COALESCE(taxname, \'Tax\')) FROM cust_main_county');
+$sth->execute or die $sth->errstr;
+my @taxnames = map { $_->[0] } @{ $sth->fetchall_arrayref };
+$sth->finish;
+
+# get DateTime objects for start & end
+my $startdate = DateTime->new(
+                  year => $start_year,
+                  month => $start_month,
+                  day => 1
+                );
+my $enddate   = DateTime->new(
+                  year => $end_year,
+                  month => $end_month,
+                  day => 1
+                );
+$enddate->add( months => 1 )->subtract( seconds => 1 ); # the last second of the month
+
+# common to all tax reports
+my %params = ( 
+  'country' => $country,
+  'credit_date' => 'cust_bill',
+);
+
+# run a report for each month, for each tax
+my $countdate = $startdate->clone;
+while ($countdate < $enddate) {
+
+  # set report start date, iterate to end of this month, set report end date
+  $params{'beginning'} = $countdate->epoch;
+  $params{'ending'} = $countdate->add( months => 1 )->subtract( seconds => 1 )->epoch;
+
+  # run a report for each tax name
+  foreach my $taxname (@taxnames) {
+    $params{'taxname'} = $taxname;
+    my $report = FS::Report::Tax->report_internal(%params);
+
+    # extract totals from report, kinda awkward
+    my $pkgclass = ''; # this will get more complicated if we breakdown by pkgclass
+    my @values = (0,0);
+    if ($report->{'total'}->{$pkgclass}) {
+      my %totals = map { $$_[0] => $$_[2] } @{$report->{'total'}->{$pkgclass}};
+      $values[0] = $totals{'tax'};
+      $values[1] = $totals{'credit'};
+    }
+
+    # treat each tax class like it's an additional pkg class
+    foreach my $item ( qw ( invoiced credited ) ) {
+      my $rowlabel = $taxname . ' ' . $item;
+      my $value = shift @values;
+      $data->{$rowlabel} ||= [];
+      push(@{$data->{$rowlabel}},$value);
+    }
+
+  }
+
+  # iterate to next month
+  $countdate->add( seconds => 1 );
+}
+
+# put the data in the order we want it
+my @row_labels;
+my @rowdata;
+my @rowcolors;
+my @rowbgcolors;
+my $pkgcount = 0; #for colors
+foreach my $classname (@pkg_classname,@taxnames) {
+  my $istax = ($pkgcount++ < @pkg_classname) ? 0 : 1;
+  my @classlabels = ();
+  my @classdata = ();
+  my @classcolors = ();
+  my @classbgcolors = ();
+  my $hasdata = 0;
+  foreach my $item ( qw( invoiced credited ) ) {
+    my $rowlabel = $classname . ' ' . $item;
+    my $rowdata  = $data->{$rowlabel};
+    my $rowcolor = $istax ? '0000ff' : '000000';
+    my $rowbgcolor  = ($item eq 'credited') ? 'cccccc' : 'ffffff';
+    $hasdata = 1 if grep { $_ } @$rowdata;
+    push(@classlabels,$rowlabel);
+    push(@classdata,$rowdata);
+    push(@classcolors,$rowcolor);
+    push(@classbgcolors,$rowbgcolor);
+  }
+  next unless $hasdata; # don't include class if it has no data in time range
+  push(@row_labels,@classlabels);
+  push(@rowdata,@classdata);
+  push(@rowcolors,@classcolors);
+  push(@rowbgcolors,@classbgcolors);
+}
+
+</%init>
diff --git a/httemplate/search/tax_sales.html b/httemplate/search/tax_sales.html
new file mode 100755 (executable)
index 0000000..61cf86e
--- /dev/null
@@ -0,0 +1,35 @@
+<% include('/elements/header.html', 'Monthly Sales and Taxes Report' ) %>
+
+<FORM ACTION="tax_sales.cgi" METHOD="GET">
+
+<TABLE>
+
+  <% include('/elements/tr-select-from_to.html') %>
+
+  <% include('/elements/tr-select.html',
+      'label'         => 'Country',
+      'field'         => 'country',
+      'options'       => \@countries,
+      'curr_value'    => ($conf->config('countrydefault') || 'US'),
+     ) %>
+
+</TABLE>
+
+<BR><INPUT TYPE="submit" VALUE="Get Report">
+
+</FORM>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+my $conf = new FS::Conf;
+
+# false laziness w report_tax.html, put this in FS::Report::Tax?
+my $sth = dbh->prepare('SELECT DISTINCT(country) FROM cust_location');
+$sth->execute or die $sth->errstr;
+my @countries = map { $_->[0] } @{ $sth->fetchall_arrayref };
+
+</%init>
index c907b25..9bf5be1 100644 (file)
@@ -19,7 +19,9 @@
 
 <THEAD>
 <TR>
-  <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Type') |h %></TH>
+% if ( $custom_field ) {
+    <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Type') |h %></TH>
+% }
   <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Date') |h %></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Status') |h %></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Owner') |h %></TH>
 %       if $starts > 86400;
 
   <TR>
-  
-    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
-      <A HREF=<%$href%>><% 'custom field magic type' %></A>
-    </TD>
+
+%   if ( $custom_field ) {
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+        <A HREF=<%$href%>><% $ticket->{"CF.{$custom_field}"} |h %></A>
+      </TD>
+%   }
   
     <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
       <A HREF=<%$href%>><% $starts_pretty %></A>
@@ -78,20 +82,22 @@ return '' unless $conf->config('ticket_system');
 
 #my $object = $opt{'object'};
 #$object = $object->cust_svc if $object->isa('FS::svc_Common');
-my( @tickets )  = $object->tickets; #XXX but actually appointments... filter by presense of the necessary CF?  RT::Appointment instead of RT::Ticket ?
+my @tickets = $object->appointments;
 
-my ($openlabel, $open_link, $res_link, $thing);
-$openlabel = join('/', FS::TicketSystem->statuses );
+my $custom_field = $conf->config('ticket_system-appointment-custom_field');
+
+# my ($openlabel, $open_link, $res_link, $thing);
+# $openlabel = join('/', FS::TicketSystem->statuses );
 
 # not the nicest way to do this--FS::has_tickets_Common?
 #if ( $object->isa('FS::cust_main') ) {
-  $thing  = 'customer';
-  $open_link = FS::TicketSystem->href_customer_tickets($object->custnum);
-
-  $res_link  = FS::TicketSystem->href_customer_tickets(
-                    $object->custnum,
-                    { 'statuses' => [ 'resolved' ] }
-                  );
+#  $thing  = 'customer';
+#  $open_link = FS::TicketSystem->href_customer_tickets($object->custnum);
+#
+#  $res_link  = FS::TicketSystem->href_customer_tickets(
+#                    $object->custnum,
+#                    { 'statuses' => [ 'resolved' ] }
+#                  );
 #} elsif ( $object->isa('FS::cust_svc') ) {
 #
 #  return '' unless $object->pkgnum;
index c031ce9..0c9f74a 100644 (file)
 %       'hashref'   => { 'custnum' => $cust_main->custnum, },
 %       'extra_sql' => 'AND ( cancel IS NULL OR cancel = 0 )
 %                       AND freq = '. dbh->quote($freq),
+%       'order_by'  => 'ORDER BY COALESCE(start_date,0), pkgnum', # to ensure old pkgs come before change_to_pkg
 %     }) or next;
 % 
 %     my $freq_pretty = $cust_pkg[0]->part_pkg->freq_pretty;
 %
 %     my $amount = 0;
+%     my $skip_pkg = {};
 %     foreach my $cust_pkg (@cust_pkg) {
 %       my $part_pkg = $cust_pkg->part_pkg;
 %       next if $cust_pkg->susp
 %                 || $cust_pkg->option('no_suspend_bill')
 %               );
 %
+%       #pkg change handling
+%       next if $skip_pkg->{$cust_pkg->pkgnum};
+%       if ($cust_pkg->change_to_pkgnum) {
+%         #if change is on or before next bill date, use new pkg
+%         next if $cust_pkg->expire <= $cust_pkg->bill;
+%         #if change is after next bill date, use old (this) pkg
+%         $skip_pkg->{$cust_pkg->change_to_pkgnum} = 1;
+%       }
+%
 %       my $pkg_amount = 0;
 %
 %       #add recurring amounts for this package and its billing add-ons
index e3599bc..d81fe99 100644 (file)
@@ -228,9 +228,10 @@ my %opt = (
       (
         'View invoices', 'Void invoices', 'Unvoid invoices',
         'Apply payment', 'Refund credit card payment', 'Refund Echeck payment',
+        'Post refund', 'Post check refund', 'Post cash refund ', 'Refund payment',
         'Credit card void', 'Echeck void', 'Void payments', 'Unvoid payments',
-        'Delete payment', 'Unapply payment',
-        'Apply credit', 'Delete credit', 'Unapply credit', 'Void credit', 'Unvoid credit',
+        'Unapply payment',
+        'Apply credit', 'Unapply credit', 'Void credit', 'Unvoid credit',
         'Delete refund',
         'Billing event reports', 'View customer billing events',
       )
index 3eed833..db2e5e5 100644 (file)
@@ -1,4 +1,4 @@
-<% $credit. ' '. $reason. $desc. $change_pkg. $apply. $delete. $unapply. $void %>
+<% $credit. ' '. $reason. $desc. $change_pkg. $apply . $unapply. $void %>
 <%init>
 
 my( $cust_credit, %opt ) = @_;
@@ -138,15 +138,6 @@ $void = ' ('.
   if $cust_credit->closed !~ /^Y/i
   && $opt{'Void credit'};
 
-my $delete = '';
-$delete = areyousure_link("${p}misc/delete-cust_credit.cgi?".$cust_credit->crednum,
-                            emt('Are you sure you want to delete this credit?'),
-                            '',
-                            emt('delete')
-                          )
-  if $cust_credit->closed !~ /^Y/i
-  && $opt{'Delete credit'};
-
 my $unapply = '';
 $unapply = areyousure_link("${p}misc/unapply-cust_credit.cgi?".$cust_credit->crednum,
                             emt('Are you sure you want to unapply this credit?'),
index bf88a66..fd336b8 100644 (file)
@@ -1,5 +1,5 @@
 <% $payment. ' '.  $info. $desc.
-   $view. $change_pkg. $apply. $refund. $void. $delete. $unapply
+   $view. $change_pkg. $apply. $refund. $void. $unapply
 %>
 <%init>
 
@@ -154,18 +154,19 @@ if ( $apply && $opt{'pkg-balances'} && $cust_pay->pkgnum ) {
 
 my $refund = '';
 my $refund_days = $opt{'card_refund-days'} || 120;
-my $refund_right = '';
-$refund_right = 'Refund credit card payment' if $cust_pay->payby eq 'CARD';
-$refund_right = 'Refund Echeck payment'      if $cust_pay->payby eq 'CHEK';
+my @refund_right = grep { $opt{$_} } $FS::CurrentUser::CurrentUser->refund_rights($cust_pay->payby);
 if (    $cust_pay->closed !~ /^Y/i
-     && $cust_pay->payby =~ /^(CARD|CHEK)$/
+     && $cust_pay->payby =~ /^(CARD|CHEK|BILL)$/
      && time-$cust_pay->_date < $refund_days*86400
      && $cust_pay->unrefunded > 0
-     && $opt{$refund_right}
+     && scalar(@refund_right)
 ) {
+  my $refundtitle = ($cust_pay->payby =~ /^(CARD|CHEK)$/)
+            ? emt('Send a refund for this payment to the payment gateway')
+            : emt('Record a refund for this payment');
   $refund = qq! (<A HREF="${p}edit/cust_refund.cgi?payby=$1;!.
             qq!paynum=!. $cust_pay->paynum. '"'.
-            qq! TITLE="! .emt('Send a refund for this payment to the payment gateway') 
+            qq! TITLE="! . $refundtitle
             . '">' . emt('refund') . '</A>)';
 }
 
@@ -184,16 +185,6 @@ $void = areyousure_link("${p}misc/void-cust_pay.cgi?".$cust_pay->paynum,
        || ( $cust_pay->payby !~ /^(CARD|CHEK)$/ && $opt{'Void payments'}    )
      );
 
-my $delete = '';
-$delete = areyousure_link("${p}misc/delete-cust_pay.cgi?".$cust_pay->paynum,
-                            emt('Are you sure you want to delete this payment?'),
-                            emt('Delete this payment from the database completely - not recommended'),
-                            emt('delete')
-                         )
-  if $cust_pay->closed !~ /^Y/i
-  && $opt{'deletepayments'}
-  && $opt{'Delete payment'};
-
 my $unapply = '';
 $unapply = areyousure_link("${p}misc/unapply-cust_pay.cgi?".$cust_pay->paynum,
                             emt('Are you sure you want to unapply this payment?'),
index 8ccfce3..aaf3678 100644 (file)
@@ -1,4 +1,4 @@
-<% $cgi->redirect(popurl(1)."$svcdb.cgi?". $svcnum ) %>
+<% $cgi->redirect($url) %>
 <%init>
 
 #needed here?  we're just redirecting.  i guess it could reveal the svcdb of a
@@ -18,6 +18,12 @@ my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
 die "Unknown svcpart" unless $part_svc;
 
 my $svcdb = $part_svc->svcdb;
+my $url = svc_url(
+            'm' => $m,
+            'action'  => 'view',
+            'svcdb'   => $svcdb,
+            'query'   => $svcnum,
+          );
 
 </%init>
 
index ace0d49..05ffb2a 100644 (file)
@@ -165,3 +165,9 @@ share/html/Search/Elements/PickBasics
 lib/RT/CustomField.pm
 share/html/Admin/CustomFields/Modify.html
 share/html/Ticket/Create.html
+
+#allow RedirectToBasics to be set from schedule-appointments, RT#38481
+share/html/Search/Schedule.html
+share/html/Elements/CalendarSlotSchedule
+share/html/Ticket/Display.html
+
index c9bff6f..ea3a498 100644 (file)
@@ -423,12 +423,13 @@ sub ProcessColumnMapValue {
     my $value = shift;
     my %args = ( Arguments => [],
                  Escape => 1,
-                 FormatDate => \&default_FormatDate,
                  @_ );
 
+    my $FormatDate = $m->notes('FormatDate') || \&default_FormatDate;
+
     if ( ref $value ) {
         if ( ref $value eq 'RT::Date' ) {
-            return $args{FormatDate}->($value);
+            return $FormatDate->($value);
         } elsif ( UNIVERSAL::isa( $value, 'CODE' ) ) {
             my @tmp = $value->( @{ $args{'Arguments'} } );
             return ProcessColumnMapValue( ( @tmp > 1 ? \@tmp : $tmp[0] ), %args );
index 5be5b06..bac9a78 100644 (file)
@@ -31,8 +31,13 @@ $CurrentUser => undef
 %     my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} };
 %     my $s = int(($starts-$stime)/10);
 %     my $e = int(($due-$stime)/10)-1;
+
+%     #false laziness w/misc/xmlhttp-ticket-update.html & CalendarSlotSchedule
+%     my %hash = $m->comp('/Ticket/Elements/Customers', Ticket => $t);
+%     my @cust_main = values( %{$hash{cust_main}} );
+
       <AREA
-         onmouseover = "overlib('<%$id%>: <% FS::sched_avail::pretty_time($starts). '-'. FS::sched_avail::pretty_time($due) %><BR>XX miles away<BR>more info', WRAP, BGCOLOR, '#000000', FGCOLOR, '#<%$col%>')"
+         onmouseover = "overlib('<% FS::sched_avail::pretty_time($starts). '-'. FS::sched_avail::pretty_time($due) %><BR>' + <% $cust_main[0]->_FreesideURILabel |js_string %>, WRAP, BGCOLOR, '#000000', FGCOLOR, '#<%$col%>')"
          onmouseout  = "nd(); return true;"
          shape       = "rect"
          coords      = "<%$s%>,0,<%$e%>,<%$height%>"
index 045d6e4..2513471 100644 (file)
@@ -9,6 +9,7 @@
   $LengthMin => $default_timestep
   $custnum   => undef
   $pkgnum    => undef
+  $RedirectToBasics => 0
 </%ARGS>
 % foreach my $username ( @username ) {
 %
 %     $selectable = 0;
 %
 %     if ( $starts >= $tod_row ) { #first row
+%
+%       #false laziness w/misc/xmlhttp-ticket-update.html & CalendarDaySchedule
+%       my %hash = $m->comp('/Ticket/Elements/Customers', Ticket => $t);
+%       my @cust_main = values( %{$hash{cust_main}} );
+%
 %       $content .= ($content?', ':''). #$id. ': '.
 %                   #false laziness w/xmlhttp-ticket-update.html
 %                   FS::sched_avail::pretty_time($starts). '-'.
-%                   FS::sched_avail::pretty_time($due);
+%                   FS::sched_avail::pretty_time($due).
+%                   ': '. encode_entities($cust_main[0]->_FreesideURILabel);
 %                   #'install for custname XX miles away'; #XXX placeholder/more
 %       $draggable_ticketid = $id;
 %       $draggable_length = $due - $starts;
 %         # (XXX and eventually, package)
 %         my $cust_main = qsearchs('cust_main', { custnum=>$custnum } )
 %           or die "unknown custnum $custnum";
-%         my $Queue = $cust_main->agent->ticketing_queueid || 1; # || $default_queueid;#XXX really, pick pkg_category queue
+%
+%         my $conf = new FS::Conf;
+%         my $Queue = $conf->config('ticket_system-appointment-queueid')
+%           or die "ticket_system-appointment-queueid configuration not set";
+%
 %         my $member = "freeside://freeside/cust_main/$custnum";
 %
 %warn         my $Starts = int($tod_row/60). ':'. sprintf('%02d',$tod_row%60). ':00';
 %                   '&Starts='. $Date->strftime('%F').'%20'. $Starts.
 %                   '&Due='.    $Date->strftime('%F').'%20'. $Due.
 %                   '&new-MemberOf='. $member. #XXX uri_escape?
-%                   '&Status=new';
+%                   '&Status=new'.
+%                   '&RedirectToBasics='.$RedirectToBasics;
 %                   #'&Requestors='. #XXX Freeside customer requestor(s) (package?
 
           onmouseover = "boxon(this);"
index 92ab767..1536935 100644 (file)
  my $content = $Object->Content;
  my $DateObj = RT::Date->new ( $session{'CurrentUser'} );
  $DateObj->Set( Format => 'unknown', Value => $content, Timezone => 'utc'  );
- $content = $DateObj->AsString(Time => 0, Timezone => 'utc');
+ if ($m->notes('FormatDate')) {
+   $content = $m->notes('FormatDate')->($DateObj);
+ } else {
+   $content = $DateObj->AsString(Time => 0, Timezone => 'utc');
+ }
 </%INIT>
 <%$content|n%>
 <%ARGS>
index 2ba873a..e179d6a 100644 (file)
  my $content = $Object->Content;
  my $DateObj = RT::Date->new ( $session{'CurrentUser'} );
  $DateObj->Set( Format => 'ISO', Value => $content );
- $content = $DateObj->AsString;
+ if ($m->notes('FormatDate')) {
+   $content = $m->notes('FormatDate')->($DateObj);
+ } else {
+   $content = $DateObj->AsString;
+ }
 </%INIT>
 <%$content|n%>
 <%ARGS>
index 0e9457c..5b9db4e 100644 (file)
@@ -54,7 +54,6 @@ $Format => undef
 #Callbacks
 $WriteHeader => sub { $RT::Logger->error('WriteHeader callback required'); '' }
 $WriteRow    => sub { $RT::Logger->error('WriteRow callback required'); '' }
-$FormatDate  => sub { $_[0]->AsString }
 </%ARGS>
 <%INIT>
 
@@ -146,7 +145,6 @@ while ( my $Ticket = $Tickets->Next()) {
             push @out, ProcessColumnMapValue(
                 $ColumnMap->{$col}{'value'},
                 Arguments => [ $Ticket, $row ],
-                FormatDate => $FormatDate,
             );
         } #foreach $subcol
         $value = join('', '<span>', @out, '</span>');
index 8b94e22..d9d8356 100644 (file)
@@ -118,11 +118,11 @@ my $WriteRow = sub {
     $row++;
 };
 
-my $FormatDate = sub {
+$m->notes('FormatDate', sub {
     my $DateObj = shift;
     return '' if $DateObj->Unix == 0;
     return time2str('%Y-%m-%dT%H:%M', $DateObj->Unix);
-};
+});
 
 # Write everything to the worksheet
 $m->comp('Elements/ResultsStructuredView',
@@ -132,7 +132,6 @@ $m->comp('Elements/ResultsStructuredView',
           Format        => $Format,
           WriteHeader   => $WriteHeader,
           WriteRow      => $WriteRow,
-          FormatDate    => $FormatDate,
 );
 
 # Set column widths
index be5a140..ccd844b 100644 (file)
 <& /Search/Calendar.html,
      @_,
      Query       => "( Status = 'new' OR Status = 'open' OR Status = 'stalled')
-                     AND ( Type = 'reminder' OR 'Type' = 'ticket' )",
-                    #XXX and we have the magic custom field
+                     AND ( Type = 'reminder' OR 'Type' = 'ticket' )
+                     AND Queue = $queueid ",
      slots       => scalar(@usernames),
      Embed       => 'Schedule.html',
      DimPast     => 1,
                       #oops, more freeside abstraction-leaking
                       custnum   => $ARGS{custnum},
                       pkgnum    => $ARGS{pkgnum},
+                      RedirectToBasics => $ARGS{RedirectToBasics},
                     ],
 &>
 
@@ -222,6 +223,11 @@ my $timestep =  RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h
 </%ONCE>
 <%init>
 
+#abstraction-leaking
+my $conf = new FS::Conf;
+my $queueid = $conf->config('ticket_system-appointment-queueid')
+  or die "ticket_system-appointment-queueid configuration not set";
+
 my @files = ();
 #if ( ! $initialized ) {
   push @files, map "overlibmws$_", ( '', qw( _iframe _draggable _crossframe ) );
index 41684c5..96a49d4 100755 (executable)
@@ -99,6 +99,7 @@ $id => undef
 $TicketObj => undef
 $ShowHeaders => 0
 $ForceShowHistory => 0
+$RedirectToBasics => 0
 </%ARGS>
 
 <%INIT>
@@ -217,6 +218,7 @@ $m->callback(
 );
 
 # This code does automatic redirection if any updates happen. 
+$m->notes('RedirectToBasics' => 1) if $RedirectToBasics;
 my $path = '/Ticket/'. ( $m->notes('RedirectToBasics') ? 'Modify.html'
                                                        : 'Display.html' );
 MaybeRedirectForResults(
index 504c0f3..0ecec1c 100644 (file)
@@ -25,7 +25,7 @@ $Torrus::Freeside::FSURL = '%%%FREESIDE_URL%%%';
 $Torrus::Renderer::displayReports = 1;
 push (@Torrus::Collector::loadModules, 'Torrus::Collector::ExternalStorage');
 $Torrus::SQL::connections{'Default'}{'dsn'} =
-      'DBI:mysql:dbname=freeside'; #XXX sub in DATASOURCE
+      'DBI:Pg:dbname=freeside'; #XXX sub in DATASOURCE
 $Torrus::SQL::connections{'Default'}{'username'} = 'freeside'; #DB_USER
 $Torrus::SQL::connections{'Default'}{'password'} = '';         #DB_PASSWORD
 
index 9a7c023..d97920e 100644 (file)
@@ -3,7 +3,7 @@ package Torrus::Renderer::Freeside;
 use strict;
 use warnings;
 use base 'Torrus::Freeside';
-use FS::UID qw(cgisuidsetup);
+use FS::UID qw(setcgi adminsuidsetup);
 use FS::TicketSystem;
 
 our $cgi = '';
@@ -15,7 +15,9 @@ sub freesideSetup {
 
   $cgi = $Torrus::CGI::q;
 
-  cgisuidsetup($cgi);
+  setcgi($cgi);
+
+  adminsuidsetup;
   FS::TicketSystem->init();
 
 }