'key' => 'selfservice-timeout',
'section' => 'self-service',
'description' => 'Timeout for the self-service login cookie, in seconds. Defaults to 1 hour.',
+ 'type' => 'text',
},
{
sub can_discount { 0; } #can't discount yet (percentage would work, but amount?)
sub calc_recur {
my $self = shift;
+
#my($cust_pkg, $sdate, $details, $param ) = @_;
- #$self->calc_recur_Common($cust_pkg,$sdate,$details,$param);
- $self->calc_recur_Common(@_);
+ my $cust_pkg = $_[0];
+
+ ($cust_pkg->quantity || 1) * $self->calc_recur_Common(@_); #($cust_pkg,$sdate,$details,$param);
+
}
sub is_free { 0; }
--- /dev/null
+package FS::part_pkg::rt_time;
+
+use strict;
+use FS::Conf;
+use FS::Record qw(qsearchs qsearch);
+use FS::part_pkg::recur_Common;
+use Carp qw(cluck);
+
+our @ISA = qw(FS::part_pkg::recur_Common);
+
+our $DEBUG = 0;
+
+our %info = (
+ 'name' => 'Bill from Time Worked on tickets in RT',
+ 'shortname' => 'Project Billing (RT)',
+ 'weight' => 55,
+ 'inherit_fields' => [ 'global_Mixin' ],
+ 'fields' => {
+ 'base_rate' => { 'name' => 'Rate (per minute)',
+ 'default' => 0,
+ },
+ 'recur_fee' => {'disabled' => 1},
+ },
+ 'fieldorder' => [ 'base_rate' ],
+);
+
+sub price_info {
+ my $self = shift;
+ my $str = $self->SUPER::price_info;
+ my $rate = $self->option('base_rate');
+ $str .= " plus $rate/min" if $rate;
+ $str;
+}
+
+sub calc_setup {
+ my($self, $cust_pkg ) = @_;
+ $self->option('setup_fee');
+}
+
+sub calc_recur {
+ my $self = shift;
+ my($cust_pkg, $sdate, $details, $param ) = @_;
+
+ my $charges = 0;
+
+ $charges += $self->calc_usage(@_);
+ $charges += ($cust_pkg->quantity || 1) * $self->calc_recur_Common(@_);
+
+ $charges;
+
+}
+
+sub can_discount { 0; }
+
+# use the default
+#sub calc_cancel {
+# my $self = shift;
+# my($cust_pkg, $sdate, $details, $param ) = @_;
+#
+# $self->calc_usage(@_);
+#}
+
+sub calc_usage {
+ my $self = shift;
+ my($cust_pkg, $sdate, $details, $param ) = @_;
+
+ my $last_bill = $cust_pkg->get('last_bill') || $cust_pkg->get('setup');
+ my @tickets = @{ FS::TicketSystem->comments_on_tickets( $cust_pkg->custnum, 100, $last_bill ) };
+
+ my $charges = 0;
+
+ my $rate = $self->option('base_rate');
+
+ foreach my $ding ( @tickets) {
+ $charges += sprintf('%.2f', $ding->{'timetaken'} * $rate);
+ push @$details, join( ", ", ("($ding->{timetaken}) Minutes", substr($ding->{'content'},0,255)));
+ }
+ cluck $rate, $charges, @$details if $DEBUG > 0;
+ return $charges;
+}
+
+1;
+++ /dev/null
-package FS::part_pkg::rt_time;
-
-use strict;
-use FS::Conf;
-use FS::Record qw(qsearchs qsearch);
-use FS::part_pkg::recur_Common;
-use Carp qw(cluck);
-
-our @ISA = qw(FS::part_pkg::recur_Common);
-
-our $DEBUG = 0;
-
-our %info = (
- 'name' => 'Bill from Time Worked on tickets in RT',
- 'shortname' => 'Project Billing (RT)',
- 'weight' => 55,
- 'inherit_fields' => [ 'global_Mixin' ],
- 'fields' => {
- 'base_rate' => { 'name' => 'Rate (per minute)',
- 'default' => 0,
- },
- 'recur_fee' => {'disabled' => 1},
- },
- 'fieldorder' => [ 'base_rate' ],
-);
-
-sub price_info {
- my $self = shift;
- my $str = $self->SUPER::price_info;
- my $rate = $self->option('base_rate');
- $str .= " plus $rate/min" if $rate;
- $str;
-}
-
-sub calc_setup {
- my($self, $cust_pkg ) = @_;
- $self->option('setup_fee');
-}
-
-sub calc_recur {
- my $self = shift;
- my($cust_pkg, $sdate, $details, $param ) = @_;
-
- my $charges = 0;
-
- $charges += $self->calc_usage(@_);
- $charges += $self->calc_recur_Common(@_);
-
- $charges;
-
-}
-
-sub can_discount { 0; }
-
-# use the default
-#sub calc_cancel {
-# my $self = shift;
-# my($cust_pkg, $sdate, $details, $param ) = @_;
-#
-# $self->calc_usage(@_);
-#}
-
-sub calc_usage {
- my $self = shift;
- my($cust_pkg, $sdate, $details, $param ) = @_;
-
- my $last_bill = $cust_pkg->get('last_bill') || $cust_pkg->get('setup');
- my @tickets = @{ FS::TicketSystem->comments_on_tickets( $cust_pkg->custnum, 100, $last_bill ) };
-
- my $charges = 0;
-
- my $rate = $self->option('base_rate');
-
- foreach my $ding ( @tickets) {
- $charges += sprintf('%.2f', $ding->{'timetaken'} * $rate);
- push @$details, join( ", ", ("($ding->{timetaken}) Minutes", substr($ding->{'content'},0,255)));
- }
- cluck $rate, $charges, @$details if $DEBUG > 0;
- return $charges;
-}
-
-1;