[freeside-commits] branch master updated. 0df9455e5c155bc7aea4f515876111825f1931b9

Christopher Burger burgerc at freeside.biz
Wed Nov 21 08:21:49 PST 2018


The branch, master has been updated
       via  0df9455e5c155bc7aea4f515876111825f1931b9 (commit)
       via  afb1c3d32628a6778c56fd3ff356dfaaa6ac0c58 (commit)
       via  69df93bdea1c7692de8c7d11a9bee04dbd9e1ff9 (commit)
      from  cb8a5ae336bba47dfd9cdaccab11f8f1534a7069 (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 0df9455e5c155bc7aea4f515876111825f1931b9
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Wed Nov 21 11:20:28 2018 -0500

    RT# 79902 - restored functionality to selfservice change_pay so it does not break on v3 to v4 upgrade.

diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 365a42b87..de35c5197 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -745,8 +745,15 @@ sub edit_info {
     or return { 'error' => "unknown custnum $custnum" };
 
   my $conf = new FS::Conf;
-  if (($p->{payby} eq "CHEK" || $p->{payby} eq "DCHEK") && $conf->exists('selfservice-ACH_info_readonly')) {
-    return { 'error' => "You do not have authority to add a bank account" };
+
+  if ($p->{payby}) {
+    return { 'error' => "You do not have authority to add a bank account" }
+      if (($p->{payby} eq "CHEK" || $p->{payby} eq "DCHEK") && $conf->exists('selfservice-ACH_info_readonly'));
+
+    ## get default cust_payby and change it. For old v3 selfservice that upgraded to v4.  this is for v4 only
+    my ($cust_payby) = $cust_main->cust_payby();
+    $p->{'custpaybynum'} = $cust_payby->custpaybynum;
+    update_payby($p);
   }
 
   my $new = new FS::cust_main { $cust_main->hash };
@@ -877,31 +884,34 @@ sub payment_info {
     for qw(address1 address2 city state zip);
 
   # look for stored cust_payby info
-  #   only if we've been given a clear payment_payby (to avoid payname conflicts)
-  if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/) {
-    my @search_payby = ($p->{'payment_payby'} eq 'CARD') ? ('CARD','DCRD') : ('CHEK','DCHK');
-    my ($cust_payby) = $cust_main->cust_payby(@search_payby);
-    if ($cust_payby) {
-      $return{payname} = $cust_payby->payname
+  #   v3 to v4 upgrade would break change_pay because change_pay does not send payment_payby
+  #   so for change_pay to work need to search for all allowed paybys and grab default payment account
+  my @search_payby = ();
+  @search_payby = ($p->{'payment_payby'} eq 'CARD') ? ('CARD','DCRD') : ('CHEK','DCHK')
+    if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/);
+
+  my ($cust_payby) = $cust_main->cust_payby(@search_payby);
+  if ($cust_payby) {
+    $return{payby} = $cust_payby->payby;
+    $return{payname} = $cust_payby->payname
                          || ( $cust_main->first. ' '. $cust_main->get('last') );
-      $return{custpaybynum} = $cust_payby->custpaybynum;
+    $return{custpaybynum} = $cust_payby->custpaybynum;
 
-      if ( $cust_payby->payby =~ /^(CARD|DCRD)$/ ) {
-        $return{card_type} = cardtype($cust_payby->payinfo);
-        $return{payinfo} = $cust_payby->paymask;
+    if ( $cust_payby->payby =~ /^(CARD|DCRD)$/ ) {
+      $return{card_type} = cardtype($cust_payby->payinfo);
+      $return{payinfo} = $cust_payby->paymask;
 
-        @return{'month', 'year'} = $cust_payby->paydate_monthyear;
+      @return{'month', 'year'} = $cust_payby->paydate_monthyear;
 
-      }
+    }
 
-      if ( $cust_payby->payby =~ /^(CHEK|DCHK)$/ ) {
-        my ($payinfo1, $payinfo2) = split '@', $cust_payby->paymask;
-        $return{payinfo1} = $payinfo1;
-        $return{payinfo2} = $payinfo2;
-        $return{paytype}  = $cust_payby->paytype;
-        $return{paystate} = $cust_payby->paystate;
-        $return{payname}  = $cust_payby->payname;	# override 'first/last name' default from above, if any.  Is instution-name here.  (#15819)
-      }
+    if ( $cust_payby->payby =~ /^(CHEK|DCHK)$/ ) {
+      my ($payinfo1, $payinfo2) = split '@', $cust_payby->paymask;
+      $return{payinfo1} = $payinfo1;
+      $return{payinfo2} = $payinfo2;
+      $return{paytype}  = $cust_payby->paytype;
+      $return{paystate} = $cust_payby->paystate;
+      $return{payname}  = $cust_payby->payname;	# override 'first/last name' default from above, if any.  Is instution-name here.  (#15819)
     }
   }
 
@@ -1718,7 +1728,10 @@ sub update_payby {
        or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} };
      my $payinfo2 = $1;
      $p->{'payinfo'} = $payinfo1. '@'. $payinfo2;
-   }
+  }
+  elsif ($p->{'payby'} eq 'CARD') {
+    $p->{paydate} = $p->{year} . '-' . $p->{month} . '-01' unless $p->{paydate};
+  }
 
   my $cust_payby = qsearchs('cust_payby', {
                               'custnum'      => $custnum,
diff --git a/fs_selfservice/FS-SelfService/cgi/change_pay.html b/fs_selfservice/FS-SelfService/cgi/change_pay.html
index f90f6d92b..e272669dc 100644
--- a/fs_selfservice/FS-SelfService/cgi/change_pay.html
+++ b/fs_selfservice/FS-SelfService/cgi/change_pay.html
@@ -60,9 +60,6 @@
   delete $options{'DCRD'} unless $payby eq 'DCRD' || ! exists $options{'CARD'};
   delete $options{'DCHK'} unless $payby eq 'DCHK' || ! exists $options{'CHEK'};
 
-  ## set default layer to first payby.
-  @p = keys %options; $payby = $p[0];
-
   HTML::Widgets::SelectLayers->new(
     options => \%options,
     selected_layer => $payby,

commit afb1c3d32628a6778c56fd3ff356dfaaa6ac0c58
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Wed Nov 21 07:46:31 2018 -0500

    Revert "RT# 79902 - fixed so change payment information link will still work when upgraded from V3 to V4 and restores functionality in V3"
    
    This reverts commit 3fc05ed5adb6cbfcd6aee27b2ae199cf95cd4224.

diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index bb3ca1265..365a42b87 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -876,18 +876,12 @@ sub payment_info {
   $return{$_} = $cust_main->bill_location->get($_) 
     for qw(address1 address2 city state zip);
 
-  $p->{'payment_payby'} = $payment_info->{paybys} if !$p->{'payment_payby'};
-
   # look for stored cust_payby info
   #   only if we've been given a clear payment_payby (to avoid payname conflicts)
-  if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/ || (ref($p->{'payment_payby'}))) {
-    my @search_payby = ();
-    if ($p->{'payment_payby'} eq 'CARD') { @search_payby = ('CARD','DCRD'); }
-    elsif ($p->{'payment_payby'} eq 'CHEK') { @search_payby = ('CHEK','DCHK'); }
-    elsif (ref($p->{'payment_payby'}) eq 'ARRAY') { @search_payby = @{$payment_info->{paybys}}; }
+  if ($p->{'payment_payby'} =~ /^(CARD|CHEK)$/) {
+    my @search_payby = ($p->{'payment_payby'} eq 'CARD') ? ('CARD','DCRD') : ('CHEK','DCHK');
     my ($cust_payby) = $cust_main->cust_payby(@search_payby);
     if ($cust_payby) {
-      $return{payby} = $cust_payby->payby;
       $return{payname} = $cust_payby->payname
                          || ( $cust_main->first. ' '. $cust_main->get('last') );
       $return{custpaybynum} = $cust_payby->custpaybynum;
diff --git a/fs_selfservice/FS-SelfService/cgi/change_pay.html b/fs_selfservice/FS-SelfService/cgi/change_pay.html
index 75ceee8f7..f90f6d92b 100644
--- a/fs_selfservice/FS-SelfService/cgi/change_pay.html
+++ b/fs_selfservice/FS-SelfService/cgi/change_pay.html
@@ -14,7 +14,6 @@
 
   my $tail = qq(</TABLE>).
              qq(<INPUT TYPE="hidden" NAME="action" VALUE="process_change_pay">).
-             qq(<INPUT TYPE="hidden" NAME="custpaybynum" VALUE="$custpaybynum">).
              qq(<BR>).
              qq(<INPUT TYPE="submit" NAME="process" ).
              qq(VALUE="Save payment information"> ).
@@ -61,6 +60,9 @@
   delete $options{'DCRD'} unless $payby eq 'DCRD' || ! exists $options{'CARD'};
   delete $options{'DCHK'} unless $payby eq 'DCHK' || ! exists $options{'CHEK'};
 
+  ## set default layer to first payby.
+  @p = keys %options; $payby = $p[0];
+
   HTML::Widgets::SelectLayers->new(
     options => \%options,
     selected_layer => $payby,
diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
index 698640574..6eab11dae 100755
--- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
+++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
@@ -12,7 +12,7 @@ use Date::Format;
 use Date::Parse 'str2time';
 use Number::Format 1.50;
 use FS::SelfService qw(
-  access_info login_info login customer_info edit_info insert_payby update_payby
+  access_info login_info login customer_info edit_info insert_payby update_payby 
   invoice payment_info process_payment realtime_collect process_prepay
   list_pkgs order_pkg signup_info order_recharge
   part_svc_info provision_acct provision_external provision_phone provision_forward
@@ -388,9 +388,8 @@ sub process_change_ship {
 sub process_change_pay {
         my $postal = $cgi->param( 'postal_invoicing' );
         my $payby  = $cgi->param( 'payby' );
-        $cgi->param('paydate', $cgi->param('year') . '-' . $cgi->param('month') . '-01');
         my @list =
-          qw( payby payinfo payinfo1 payinfo2 month year paydate payname custpaybynum
+          qw( payby payinfo payinfo1 payinfo2 month year payname
               address1 address2 city county state zip country auto paytype
               paystate ss stateid stateid_state invoicing_list
             );
@@ -408,11 +407,7 @@ sub process_change_pay {
           };
         }
 
-        if (FS::SelfService->can('update_payby')) {
-          if ($cgi->param( 'custpaybynum' )) { _process_change_payby( 'change_pay', @list ); }
-          else { _process_insert_payby( 'change_pay', @list ); }
-        }
-        else { _process_change_info( 'change_pay', @list ); }
+        _process_change_info( 'change_pay', @list );
 }
 
 sub process_change_creditcard_pay {

commit 69df93bdea1c7692de8c7d11a9bee04dbd9e1ff9
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Wed Nov 21 07:43:33 2018 -0500

    Revert "RT# 79902 - fixed display issue with updating accounts"
    
    This reverts commit d9b37134d7e5dc98012b3111698e160d8f06bb98.

diff --git a/fs_selfservice/FS-SelfService/cgi/image.cgi b/fs_selfservice/FS-SelfService/cgi/image.cgi
index 129ac438b..ee17683a6 100755
--- a/fs_selfservice/FS-SelfService/cgi/image.cgi
+++ b/fs_selfservice/FS-SelfService/cgi/image.cgi
@@ -22,7 +22,7 @@ if ( $query =~ /^(\w+)$/ ) {
 my $info = skin_info( agentnum=>$agentnum );
 
 print $cgi->header( '-type'    => 'image/png', #for now
-                    '-expires' => 'now',
+                    #'-expires' => 'now',
                   ).
       $info->{$name};
 

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

Summary of changes:
 FS/FS/ClientAPI/MyAccount.pm                      | 65 +++++++++++++----------
 fs_selfservice/FS-SelfService/cgi/change_pay.html |  1 -
 fs_selfservice/FS-SelfService/cgi/image.cgi       |  2 +-
 fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 11 ++--
 4 files changed, 40 insertions(+), 39 deletions(-)




More information about the freeside-commits mailing list