<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi everyone.</p>
    <p>Every month, we send our automated payments to the bank on the
      1st and the 15th of the month, using the freeside-daily script. <br>
    </p>
    <p>Unfortunately, between the 15th of December and the first of
      January, that "suddenly stopped working". This, in spite of the
      fact that we can still do manual payments by going to the
      customer's account in Freeside, then go to Payment History ->
      Process Payment -> Process credit card payment. This also works
      for electronic check payments. <br>
      <br>
      What this tells me, is that our Payment Batching settings are
      correct for our bank, and allow us to send the data we need, but
      that something has changed in the freeside-daily script. <br>
      <br>
      Interestingly, the output we get from freeside-daily has also
      changed. I have that for reference. Here's the output from
      December 15:<br>
      <br>
    </p>
    <pre wrap="">Subroutine JSON::XS::Boolean::(0+ redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(-- redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(++ redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::("" redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(eq redefined at /usr/share/perl/5.20/overload.pm line 50.
FS::part_event::Condition::payby is disabled; skipping
running cust_event 34998 (notice) for cust_main 30573
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Strings with code points over 0xFF may not be mapped into in-memory file handles
running cust_event 34999 (notice) for cust_main 30763
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Strings with code points over 0xFF may not be mapped into in-memory file handles
running cust_event 35000 (notice) for cust_main 30519
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Strings with code points over 0xFF may not be mapped into in-memory file handles
running cust_event 35001 (notice) for cust_main 31079
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
ucfirst_cust_status deprecated, use cust_status_label at /usr/share/perl5/FS/msg_template.pm line 366.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Argument "" isn't numeric in sprintf at /usr/share/perl5/FS/msg_template.pm line 515.
Strings with code points over 0xFF may not be mapped into in-memory file handles
running cust_event 35004 (cust_bill_send) for cust_bill 9024
Use of uninitialized value $_[0] in pattern match (m//) at /usr/share/perl/5.20/I18N/LangTags.pm line 398.
WARNING: (pkgpart 17) Package def option show_as_discount not found in options or plandata!
 at /usr/share/perl5/FS/part_pkg.pm line 1481.
        FS::part_pkg::option(FS::part_pkg::flat=HASH(0xe028678), "show_as_discount") called at /usr/share/perl5/FS/cust_bill_pkg.pm line 866
        FS::cust_bill_pkg::_item_discount(FS::cust_bill_pkg=HASH(0xdfc6bb8)) called at /usr/share/perl5/FS/Template_Mixin.pm line 3618
        FS::Template_Mixin::_items_cust_bill_pkg(FS::cust_bill=HASH(0xe3862d0), ARRAY(0x6384df8), "summary_page", 1, "escape_function", CODE(0x64076a0), "preref_callback", undef, "format", ...) called at /usr/share/perl5/FS/Template_Mixin.pm line 3080
        FS::Template_Mixin::_items_pkg(FS::cust_bill=HASH(0xe3862d0), "summary_page", 1, "escape_function", CODE(0x64076a0), "preref_callback", undef, "format", "html", ...) called at /usr/share/perl5/FS/Template_Mixin.pm line 1192
        FS::Template_Mixin::print_generic(FS::cust_bill=HASH(0xe3862d0), "format", "html", "cid", <a class="moz-txt-link-rfc2396E" href="mailto:1011179080.58727.23694.1513153173%5C@lightspeed.ca">"1011179080.58727.23694.1513153173\@lightspeed.ca"</a>, "to", ARRAY(0x5f42e90), "unsquelch_cdr", 1, ...) called at /usr/share/perl5/FS/Template_Mixin.pm line 1799
        FS::Template_Mixin::print_html(FS::cust_bill=HASH(0xe3862d0), HASH(0xe387960)) called at /usr/share/perl5/FS/Template_Mixin.pm line 2228
        FS::Template_Mixin::generate_email(FS::cust_bill=HASH(0xe3862d0), "subject", "Invoice", "from", "Lightspeed Accounts Receivable <a class="moz-txt-link-rfc2396E" href="mailto:billing%5C@lightspeed.ca"><billing\@lightspeed.ca></a>", "to", ARRAY(0x5f42e90)) called at /usr/share/perl5/FS/Template_Mixin.pm line 2050
        FS::Template_Mixin::email(FS::cust_bill=HASH(0xe3862d0), HASH(0xe386198)) called at /usr/share/perl5/FS/cust_bill.pm line 1100
        FS::cust_bill::email(FS::cust_bill=HASH(0xe3862d0), HASH(0xe029ae8)) called at /usr/share/perl5/FS/cust_bill.pm line 1059
        FS::cust_bill::send(FS::cust_bill=HASH(0xe3862d0)) called at /usr/share/perl5/FS/part_event/Action/cust_bill_send.pm line 26
        FS::part_event::Action::cust_bill_send::do_action(FS::part_event::Action::cust_bill_send=HASH(0xe36cef8), FS::cust_bill=HASH(0xe3862d0), FS::cust_event=HASH(0xe39f980)) called at /usr/share/perl5/FS/cust_event.pm line 237
        eval {...} called at /usr/share/perl5/FS/cust_event.pm line 237
        FS::cust_event::do_event(FS::cust_event=HASH(0xe39f980), "time", 1513152001) called at /usr/share/perl5/FS/cust_main/Billing.pm line 1992
        FS::cust_main::Billing::do_cust_event(FS::cust_main=HASH(0xe02a190), "debug", 0, "time", 1513152001, "check_freq", "1d", "stage", "collect", ...) called at /usr/share/perl5/FS/cust_main/Billing.pm line 1763
        FS::cust_main::Billing::collect(FS::cust_main=HASH(0xe02a190), "one_recur", undef, "check_freq", "1d", "no_prepaid", 1, "invoice_time", 1513152001, ...) called at /usr/share/perl5/FS/cust_main/Billing.pm line 194
        FS::cust_main::Billing::bill_and_collect(FS::cust_main=HASH(0xe02a190), "not_pkgpart", undef, "resetup", 0, "time", 1513152001, "actual_time", 1513152001, ...) called at /usr/share/perl5/FS/Cron/bill.pm line 135
        FS::Cron::bill::bill() called at /usr/bin/freeside-daily line 40
WARNING: (pkgpart 54) Package def option show_as_discount not found in options or plandata!
 at /usr/share/perl5/FS/part_pkg.pm line 1481.

(output repeats for each customer)

And here's the output from the same script on January 15th:

Subroutine JSON::XS::Boolean::(++ redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(0+ redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(-- redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::("" redefined at /usr/share/perl/5.20/overload.pm line 50.
Subroutine JSON::XS::Boolean::(eq redefined at /usr/share/perl/5.20/overload.pm line 50.
FS::part_event::Condition::payby is disabled; skipping
running cust_event 69100 (cust_bill_fee_percent) for cust_bill 12883
running cust_event 69101 (cust_bill_fee_percent) for cust_bill 12584
running cust_event 69102 (cust_bill_fee_percent) for cust_bill 12585
running cust_event 69103 (cust_bill_fee_percent) for cust_bill 12587

(output repeats for each customer)

running cust_event 69326 (cust_bill_fee_percent) for cust_bill 10482
Argument "" isn't numeric in numeric ne (!=) at /usr/share/perl5/FS/cust_main/Billing.pm line 1103.
Argument "" isn't numeric in numeric ne (!=) at /usr/share/perl5/FS/cust_main/Billing.pm line 1103.
Argument "" isn't numeric in numeric ne (!=) at /usr/share/perl5/FS/cust_main/Billing.pm line 1103.
Argument "" isn't numeric in numeric ne (!=) at /usr/share/perl5/FS/cust_main/Billing.pm line 1103.
running cust_event 69327 (cust_bill_fee_percent) for cust_bill 12697
running cust_event 69328 (cust_bill_fee_percent) for cust_bill 2115
running cust_event 69329 (cust_bill_fee_percent) for cust_bill 3101
running cust_event 69330 (cust_bill_fee_percent) for cust_bill 5517
running cust_event 69331 (cust_bill_fee_percent) for cust_bill 7371
running cust_event 69332 (cust_bill_fee_percent) for cust_bill 10612
running cust_event 69333 (cust_bill_fee_percent) for cust_bill 12640
[warning][FS::Record] FS::cust_pkg->replace pkgnum 7428: records identical at /usr/share/perl5/FS/Cron/notify.pm line 129.

To me, it seems like some bugs were patched in the freeside-daily script and pushed out to update (there's certainly a lot less errors in there now), unfortunately, the new fix also broke our billing somehow.

Any input as to why this happened and how to fix it will be greatly appreciated, because we need that cashflow, and we don't need to have to do it manually for everyone.
</pre>
    <pre class="moz-signature" cols="72">-- 
--- 
Lightspeed Communications and Dolphin Global Tel 
VoIP, Web Hosting, Server Colocation, ADSL and Cable Internet 
Systems and Operations department. 
<a class="moz-txt-link-freetext" href="http://www.lightspeed.ca">http://www.lightspeed.ca</a> <a class="moz-txt-link-freetext" href="http://www.dolphintel.com">http://www.dolphintel.com</a> 
Tech Support: 604-482-1192 ext. 2</pre>
  </body>
</html>