diff options
author | Christopher Burger <burgerc@freeside.biz> | 2019-01-09 20:19:26 -0500 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2019-01-10 09:34:44 -0500 |
commit | d5d62e40593d5153afd64527accad35b7f4fda2e (patch) | |
tree | bfd8d43bdda6d861b169b3a153ea75b3e0790c66 /FS/FS | |
parent | ae6359efac06d899093f799052ef8d472effbe98 (diff) |
RT# 81249 - Fixed error where empty field becomes 0.
Diffstat (limited to 'FS/FS')
-rw-r--r-- | FS/FS/part_pkg.pm | 11 | ||||
-rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 8 | ||||
-rw-r--r-- | FS/FS/part_pkg/voip_inbound.pm | 8 |
3 files changed, 19 insertions, 8 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index 1895404..4aa2926 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -695,12 +695,23 @@ sub replace { sub validate_number { my ($option, $valref) = @_; + $$valref = 0 unless $$valref; return "Invalid $option" unless ($$valref) = ($$valref =~ /^\s*(\d+)\s*$/); return ''; } +sub validate_number_blank { + my ($option, $valref) = @_; + + if ($$valref) { + return "Invalid $option" + unless ($$valref) = ($$valref =~ /^\s*(\d+)\s*$/); + } + return ''; +} + =item check Checks all fields to make sure this is a valid package definition. If diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 715d5c0..74deb8b 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -166,13 +166,13 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', }, 'use_cdrtypenum' => { 'name' => 'Only charge for CDRs where the CDR Type is set to this cdrtypenum: ', - 'validate' => \&FS::part_pkg::validate_number, - 'js_validate' => 'digits', + 'validate' => \&FS::part_pkg::validate_number_blank, + 'js_validate' => 'digits: true', }, 'ignore_cdrtypenum' => { 'name' => 'Do not charge for CDRs where the CDR Type is set to this cdrtypenum: ', - 'validate' => \&FS::part_pkg::validate_number, - 'js_validate' => 'digits', + 'validate' => \&FS::part_pkg::validate_number_blank, + 'js_validate' => 'digits: true', }, 'use_calltypenum' => { 'name' => 'Only charge for CDRs where the CDR Call Type is set to this calltypenum: ', diff --git a/FS/FS/part_pkg/voip_inbound.pm b/FS/FS/part_pkg/voip_inbound.pm index 45a7428..aecbe33 100644 --- a/FS/FS/part_pkg/voip_inbound.pm +++ b/FS/FS/part_pkg/voip_inbound.pm @@ -64,13 +64,13 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); }, 'use_cdrtypenum' => { 'name' => 'Only charge for CDRs where the CDR Type is set to this cdrtypenum: ', - 'validate' => \&FS::part_pkg::validate_number, - 'js_validate' => 'digits', + 'validate' => \&FS::part_pkg::validate_number_blank, + 'js_validate' => 'digits: true', }, 'ignore_cdrtypenum' => { 'name' => 'Do not charge for CDRs where the CDR Type is set to this cdrtypenum: ', - 'validate' => \&FS::part_pkg::validate_number, - 'js_validate' => 'digits', + 'validate' => \&FS::part_pkg::validate_number_blank, + 'js_validate' => 'digits: true', }, 'use_calltypenum' => { 'name' => 'Only charge for CDRs where the CDR Call Type is set to this cdrtypenum: ', |