+ if ( $included_min->{$regionnum}{$ratetimenum} >= $minutes ) {
+ $charge_sec = 0;
+ $included_min->{$regionnum}{$ratetimenum} -= $minutes;
+ } else {
+ $charge_sec -= ($included_min->{$regionnum}{$ratetimenum} * 60);
+ $included_min->{$regionnum}{$ratetimenum} = 0;
+ }
+ } elsif ( $opt{plan_included_min} && ${ $opt{plan_included_min} } > 0 ) {
+ # The package definition has included minutes, but only for in-group
+ # rate details. Decrement them if this is an in-group call.
+ if ( $rate_detail->region_group ) {
+ if ( ${ $opt{'plan_included_min'} } >= $minutes ) {
+ $charge_sec = 0;
+ ${ $opt{'plan_included_min'} } -= $minutes;
+ } else {
+ $charge_sec -= (${ $opt{'plan_included_min'} } * 60);
+ ${ $opt{'plan_included_min'} } = 0;
+ }
+ }
+ } else {
+ # the new way!
+ my $applied_min = $cust_pkg->apply_usage(
+ 'cdr' => $self,
+ 'rate_detail' => $rate_detail,
+ 'minutes' => $minutes
+ );
+ # for now, usage pools deal only in whole minutes
+ $charge_sec -= $applied_min * 60;
+ }