[freeside-commits] branch FREESIDE_3_BRANCH updated. 506c2dc3da817a631ea6f77f7ab3dcaa02c1c188

Jonathan Prykop jonathan at 420.am
Wed Jun 22 02:34:35 PDT 2016


The branch, FREESIDE_3_BRANCH has been updated
       via  506c2dc3da817a631ea6f77f7ab3dcaa02c1c188 (commit)
       via  c48c1ed2ac975eb3b5b97f7876978b90fae4f316 (commit)
      from  6acb603bb4422ca282b29e962291eb3d0d86d7bd (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 506c2dc3da817a631ea6f77f7ab3dcaa02c1c188
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Tue Jun 21 23:54:30 2016 -0500

    RT#71166: Catch blank intro_duration at package definition setup

diff --git a/FS/FS/part_pkg/flat_introrate.pm b/FS/FS/part_pkg/flat_introrate.pm
index 1fc9cd2..786841b 100644
--- a/FS/FS/part_pkg/flat_introrate.pm
+++ b/FS/FS/part_pkg/flat_introrate.pm
@@ -6,6 +6,31 @@ use vars qw( %info );
 
 use FS::Log;
 
+# mostly false laziness with FS::part_pkg::global_Mixin::validate_moneyn,
+# except for blank string handling...
+sub validate_money {
+  my ($option, $valref) = @_;
+  if ( $$valref eq '' ) {
+    $$valref = '0';
+  } elsif ( $$valref =~ /^\s*(\d*)(\.\d{1})\s*$/ ) {
+    #handle one decimal place without barfing out
+    $$valref = ( ($1||''). ($2.'0') ) || 0;
+  } elsif ( $$valref =~ /^\s*(\d*)(\.\d{2})?\s*$/ ) {
+    $$valref = ( ($1||''). ($2||'') ) || 0;
+  } else {
+    return "Illegal (money) $option: ". $$valref;
+  }
+  return '';
+}
+
+sub validate_number {
+  my ($option, $valref) = @_;
+  $$valref = 0 unless $$valref;
+  return "Invalid $option"
+    unless ($$valref) = ($$valref =~ /^\s*(\d+)\s*$/);
+  return '';
+}
+
 %info = (
   'name' => 'Introductory price for X months, then flat rate,'.
             'relative to setup date (anniversary billing)',
@@ -14,10 +39,12 @@ use FS::Log;
   'fields' => {
     'intro_fee' => { 'name' => 'Introductory recurring fee for this package',
                      'default' => 0,
+                     'validate' => \&validate_money,
                    },
     'intro_duration' =>
          { 'name' => 'Duration of the introductory period, in number of months',
            'default' => 0,
+           'validate' => \&validate_number,
          },
   },
   'fieldorder' => [ qw(intro_duration intro_fee) ],

commit c48c1ed2ac975eb3b5b97f7876978b90fae4f316
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Tue Jun 21 23:07:14 2016 -0500

    RT#30820: Report not working [v3 merge]

diff --git a/FS/FS/log_context.pm b/FS/FS/log_context.pm
index ddea771..d7ea26b 100644
--- a/FS/FS/log_context.pm
+++ b/FS/FS/log_context.pm
@@ -10,6 +10,7 @@ my @contexts = ( qw(
   FS::cust_main::Billing::bill_and_collect
   FS::cust_main::Billing::bill
   FS::cust_main::Billing_Realtime::realtime_verify_bop
+  FS::part_pkg
   FS::Misc::Geo::standardize_uscensus
   Cron::bill
   Cron::upload
diff --git a/FS/FS/part_pkg/flat_introrate.pm b/FS/FS/part_pkg/flat_introrate.pm
index 7337602..1fc9cd2 100644
--- a/FS/FS/part_pkg/flat_introrate.pm
+++ b/FS/FS/part_pkg/flat_introrate.pm
@@ -4,6 +4,8 @@ use base qw( FS::part_pkg::flat );
 use strict;
 use vars qw( %info );
 
+use FS::Log;
+
 %info = (
   'name' => 'Introductory price for X months, then flat rate,'.
             'relative to setup date (anniversary billing)',
@@ -30,7 +32,10 @@ sub base_recur {
 
   my ($duration) = ($self->option('intro_duration') =~ /^\s*(\d+)\s*$/);
   unless (length($duration)) {
-    die "Invalid intro_duration: " . $self->option('intro_duration');
+    my $log = FS::Log->new('FS::part_pkg');
+    $log->warning("Invalid intro_duration '".$self->option('intro_duration')."' on pkgpart ".$self->pkgpart
+                .", defaulting to 0, check package definition");
+    $duration = 0;
   }
   my $intro_end = $self->add_freq($cust_pkg->setup, $duration);
 

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

Summary of changes:
 FS/FS/log_context.pm             |    1 +
 FS/FS/part_pkg/flat_introrate.pm |   34 +++++++++++++++++++++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)




More information about the freeside-commits mailing list