From 3117b156cf3d118ae6a76c823311bfd941fbdf86 Mon Sep 17 00:00:00 2001 From: Mitch Jackson Date: Fri, 16 Feb 2018 18:13:27 -0600 Subject: [PATCH] RT# 79549 Requre a Rate Plan to use voip_cdr Price Plan --- FS/FS/part_pkg.pm | 17 +++++++++++------ FS/FS/part_pkg/voip_cdr.pm | 8 +++++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index da53715c6..fb0570647 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -787,11 +787,17 @@ sub check { =item check_options -For a passed I<$options> hashref, validates any options that -have 'validate' subroutines defined in the info hash, -then validates the entire hashref if the price plan has -its own 'validate' subroutine defined in the info hash -(I<$options> values might be altered.) +Pass an I<$options> hashref that contains the values to be +inserted or updated for any FS::part_pkg::MODULE.pm. + +For each key in I<$options>, validates the value by calling +the 'validate' subroutine defined for that option e.g. +FS::part_pkg::MODULE::plan_info()->{$KEY}->{validate}. The +option validation function is only called when the hashkey for +that option exists in I<$options>. + +Then the module validation function is called, from +FS::part_pkg::MODULE::plan_info()->{validate} Returns error message, or empty string if valid. @@ -2610,4 +2616,3 @@ schema.html from the base documentation. =cut 1; - diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 8085c1995..1fb3bec84 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -360,6 +360,13 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', ) ], 'weight' => 41, + 'validate' => sub { + # Validation function for FS::part_pkg::check_options() + my $options = shift; + return "Please select a rate plan for price plan VoIP/telco CDR rating (standard)" + unless $options->{ratenum}; + return; + }, ); sub price_info { @@ -724,4 +731,3 @@ sub hide_svc_detail { 1; - -- 2.11.0