X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fglobal_Mixin.pm;h=59eaaaaec6469f9b02b174b5520b22df18b9e7ab;hb=57bb423fe457ba4e13726877f53bcdf944f828f8;hp=2637729554bdbb94b8b619836d4579097d9f49c8;hpb=cf985eedaeb4b23a2050ebc0bb0cb304554e2a6d;p=freeside.git diff --git a/FS/FS/part_pkg/global_Mixin.pm b/FS/FS/part_pkg/global_Mixin.pm index 263772955..59eaaaaec 100644 --- a/FS/FS/part_pkg/global_Mixin.pm +++ b/FS/FS/part_pkg/global_Mixin.pm @@ -14,16 +14,39 @@ tie my %a2billing_simultaccess, 'Tie::IxHash', ( 1 => 'Enabled', ); +# much false laziness with FS::Record::ut_money +sub validate_moneyn { + my ($option, $valref) = @_; + if ( $$valref eq '' ) { + return ''; + } 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 ''; +} + +tie my %count_available_phones, 'Tie::IxHash', ( + 0 => 'Provisioned phone services', + 1 => 'All available phone services', +); + %info = ( 'disabled' => 1, 'fields' => { 'setup_fee' => { 'name' => 'Setup fee for this package', 'default' => 0, + 'validate' => \&validate_moneyn, }, 'recur_fee' => { 'name' => 'Recurring fee for this package', 'default' => 0, + 'validate' => \&validate_moneyn, }, 'unused_credit_cancel' => { 'name' => 'Credit the customer for the unused portion of service at '. @@ -40,6 +63,15 @@ tie my %a2billing_simultaccess, 'Tie::IxHash', ( 'changing packages', 'type' => 'checkbox', }, + 'delay_cancel' => { + 'name' => 'Automatic suspension period before cancelling (configuration setting part_pkg-delay_cancel-days)', + 'type' => 'checkbox', + }, + 'count_available_phones' => { 'name' => 'Count taxable phone lines', + 'type' => 'radio', + 'options' => \%count_available_phones, + 'default' => 0, + }, # miscellany--maybe put this in a separate module? @@ -109,6 +141,9 @@ tie my %a2billing_simultaccess, 'Tie::IxHash', ( unused_credit_cancel unused_credit_suspend unused_credit_change + delay_cancel + + count_available_phones a2billing_tariff a2billing_type