[freeside-commits] branch master updated. 1c9056a27c303170060004c1be93787c6a32dcb6

Mark Wells mark at 420.am
Wed Mar 25 11:22:19 PDT 2015


The branch, master has been updated
       via  1c9056a27c303170060004c1be93787c6a32dcb6 (commit)
       via  5adac2bcd86a2bb0ddf7b016b5ed1dcd04635aa0 (commit)
      from  08f209da036763c1f45e194de865a94dc5293ada (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1c9056a27c303170060004c1be93787c6a32dcb6
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Mar 25 11:21:32 2015 -0700

    paymentech: enforce field lengths in raw bytes, #29972

diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm
index f597058..9aeff93 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -22,6 +22,7 @@ use Encode;
                  generate_ps generate_pdf do_print
                  csv_from_fixed
                  ocr_image
+                 bytes_substr
                );
 
 $DEBUG = 0;
@@ -961,6 +962,26 @@ sub ocr_image {
   @lines;
 }
 
+=item bytes_substr STRING, OFFSET[, LENGTH[, REPLACEMENT] ]
+
+A replacement for "substr" that counts raw bytes rather than logical 
+characters. Unlike "bytes::substr", will suppress fragmented UTF-8 characters
+rather than output them. Unlike real "substr", is not an lvalue.
+
+=cut
+
+sub bytes_substr {
+  my ($string, $offset, $length, $repl) = @_;
+  my $bytes = substr(
+    Encode::encode('utf8', $string),
+    $offset,
+    $length,
+    Encode::encode('utf8', $repl)
+  );
+  my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET;
+  return Encode::decode('utf8', $bytes, $chk);
+}
+
 =back
 
 =head1 BUGS
diff --git a/FS/FS/pay_batch/paymentech.pm b/FS/FS/pay_batch/paymentech.pm
index 1ecf35a..91abbf2 100644
--- a/FS/FS/pay_batch/paymentech.pm
+++ b/FS/FS/pay_batch/paymentech.pm
@@ -8,6 +8,7 @@ use Date::Format 'time2str';
 use Date::Parse 'str2time';
 use Tie::IxHash;
 use FS::Conf;
+use FS::Misc 'bytes_substr';
 
 my $conf;
 my ($bin, $merchantID, $terminalID, $username, $password, $with_recurringInd);
@@ -98,7 +99,13 @@ my %paymentech_countries = map { $_ => 1 } qw( US CA GB UK );
     my @cust_pay_batch = @{(shift)};
     my $count = 1;
     my $output;
-    my $xml = new XML::Writer(OUTPUT => \$output, DATA_MODE => 1, DATA_INDENT => 2);
+    my $xml = XML::Writer->new(
+      OUTPUT => \$output,
+      DATA_MODE => 1,
+      DATA_INDENT => 2,
+      ENCODING => 'utf-8'
+    );
+    $xml->xmlDecl(); # it is in the spec
     $xml->startTag('transRequest', RequestCount => scalar(@cust_pay_batch) + 1);
     $xml->startTag('batchFileID');
     $xml->dataElement(userID => $username);
@@ -124,12 +131,12 @@ my %paymentech_countries = map { $_ => 1 } qw( US CA GB UK );
           ecpBankAcctType => $paytype{lc($_->cust_main->paytype)},
           ecpDelvMethod   => 'A',
         ),
-        avsZip          => substr($_->zip,      0, 10),
-        avsAddress1     => substr($_->address1, 0, 30),
-        avsAddress2     => substr($_->address2, 0, 30),
-        avsCity         => substr($_->city,     0, 20),
-        avsState        => substr($_->state,    0, 2),
-        avsName         => substr($_->first. ' '. $_->last, 0, 30),
+        avsZip          => bytes_substr($_->zip,      0, 10),
+        avsAddress1     => bytes_substr($_->address1, 0, 30),
+        avsAddress2     => bytes_substr($_->address2, 0, 30),
+        avsCity         => bytes_substr($_->city,     0, 20),
+        avsState        => bytes_substr($_->state,    0, 2),
+        avsName         => bytes_substr($_->first. ' '. $_->last, 0, 30),
         ( $paymentech_countries{ $_->country }
           ? ( avsCountryCode  => $_->country )
           : ()
@@ -174,4 +181,3 @@ sub _upgrade_gateway {
 }
 
 1;
-

commit 5adac2bcd86a2bb0ddf7b016b5ed1dcd04635aa0
Author: Mark Wells <mark at freeside.biz>
Date:   Mon Mar 23 17:51:20 2015 -0700

    remove obsolete FCC DS0 options

diff --git a/httemplate/browse/pkg_class.html b/httemplate/browse/pkg_class.html
index 2aa2857..eb33c0f 100644
--- a/httemplate/browse/pkg_class.html
+++ b/httemplate/browse/pkg_class.html
@@ -5,6 +5,7 @@
                  'disableable' => 1,
                  'disabled_statuspos' => 2,
                  'query'       => { 'table'     => 'pkg_class',
+                                    'addl_from' => ' LEFT JOIN pkg_category USING (categorynum)',
                                     'hashref'   => {},
                                     'order_by' => 'ORDER BY classnum',
                                   },
@@ -34,12 +35,6 @@ my $header = [ '#', 'Class' ];
 my $fields = [ 'classnum', 'classname' ];
 my $links  = [ $link, $link ];
 
-if($conf->exists('cust_main-require_censustract')) {
-    push @{$fields}, 'fcc_ds0s';
-    push @{$header}, 'FCC form 477 voice-grade equivalents';
-    push @{$links}, '';
-}
-
 my $cat_query = 'SELECT COUNT(*) FROM pkg_class where categorynum IS NOT NULL';
 my $sth = dbh->prepare($cat_query)
   or die "Error preparing $cat_query: ". dbh->errstr;
diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi
index 1702a6d..6629407 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -68,8 +68,6 @@
                    'svc_dst_pkgpart'  => 'Include services of package',
                    'supp_dst_pkgpart' => 'When ordering package, also order',
                    'report_option'    => 'Report classes',
-                   'fcc_ds0s'         => 'Voice-grade equivalents',
-                   'fcc_voip_class'   => 'Category',
                    'delay_start'      => 'Default delay (days)',
                  },
 
diff --git a/httemplate/edit/pkg_class.html b/httemplate/edit/pkg_class.html
index 95c6f30..498c34a 100644
--- a/httemplate/edit/pkg_class.html
+++ b/httemplate/edit/pkg_class.html
@@ -1,16 +1,4 @@
-<% include( 'elements/class_Common.html',
-              'name_singular'   => 'Package Class',
-              'table'  => 'pkg_class',
-              %opt,
-          )
-%>
-<%init>
-
-my $conf = new FS::Conf;
-
-my %opt = ();
-if($conf->exists('cust_main-require_censustract')) {
- $opt{'addl_fields'} = [ 'fcc_ds0s' ];
- $opt{'addl_labels'} = { 'fcc_ds0s' => 'FCC form 477 voice-grade equivalents' };
-}
-</%init>
+<& elements/class_Common.html,
+  'name_singular'   => 'Package Class',
+  'table'  => 'pkg_class',
+&>

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Misc.pm                    |   21 +++++++++++++++++++++
 FS/FS/pay_batch/paymentech.pm    |   22 ++++++++++++++--------
 httemplate/browse/pkg_class.html |    7 +------
 httemplate/edit/part_pkg.cgi     |    2 --
 httemplate/edit/pkg_class.html   |   20 ++++----------------
 5 files changed, 40 insertions(+), 32 deletions(-)




More information about the freeside-commits mailing list