[freeside-commits] branch FREESIDE_4_BRANCH updated. dab2632c3799d37ef575ccc186f45bc81a734b0d

Jonathan Prykop jonathan at 420.am
Wed Jun 22 02:21:49 PDT 2016


The branch, FREESIDE_4_BRANCH has been updated
       via  dab2632c3799d37ef575ccc186f45bc81a734b0d (commit)
       via  3afb93419e298b765104a6ed4df856d8e4d6fc25 (commit)
      from  3efb9e9aaebde62332f3a03c3c6970747eef9501 (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 dab2632c3799d37ef575ccc186f45bc81a734b0d
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 3afb93419e298b765104a6ed4df856d8e4d6fc25
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Tue Jun 21 23:07:14 2016 -0500

    RT#30820: Report not working

diff --git a/FS/FS/log_context.pm b/FS/FS/log_context.pm
index ab1b0c3..83414a6 100644
--- a/FS/FS/log_context.pm
+++ b/FS/FS/log_context.pm
@@ -11,6 +11,7 @@ my @contexts = ( qw(
   FS::cust_main::Billing::bill
   FS::cust_main::Billing_Realtime::realtime_verify_bop
   FS::pay_batch::import_from_gateway
+  FS::part_pkg
   FS::Misc::Geo::standardize_uscensus
   Cron::bill
   Cron::backup
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