1 package FS::part_pkg::business_elec_generic;
4 use vars qw(@ISA %info %gr_fee %penalty_fee $DEBUG);
6 use FS::Record qw(qsearch qsearchs);
7 use FS::part_pkg::flat;
10 @ISA = qw(FS::part_pkg::flat);
13 tie %penalty_fee,'Tie::IxHash',
18 tie %gr_fee, 'Tie::IxHash',
26 'name' => 'Business base package',
27 'svc_elec_compatible' => 1,
29 'setup_fee' => { 'name' => 'Setup fee for this package',
32 'base_fee' => { 'name' => 'Base fee for this package',
35 'rate' => { 'name' => 'Rate for customer',
38 'gr_fee' => { 'name' =>'Ground fee',
40 'select_options' => \%gr_fee,
42 'penalty' => { 'name'=>'Late fee',
44 'select_options'=> \%penalty_fee,
47 'fieldorder' => [ 'setup_fee', 'base_fee','rate','gr_fee','penalty' ],
52 my($self, $cust_pkg ) = @_;
54 my $cust_svc=qsearchs('cust_svc',{'pkgnum' => $cust_pkg->pkgnum});
55 my $lastdate =$cust_pkg -> last_bill ||0;
56 warn $lastdate if $DEBUG;
57 my @usage_elecs=qsearch('usage_elec',{'svcnum' => $cust_svc->svcnum,
58 '_date'=> { op=>'>', value=>$lastdate },
59 'extra_sql' => 'ORDER BY _date_'});
61 warn "test".@usage_elecs."\n" if $DEBUG;
62 if(defined($usage_elecs[0])){
63 warn "test2".$usage_elecs[0]->id if $DEBUG;
64 my $base=$self->option('base_fee');
65 my $rate=$self->option('rate');
66 my $sum= $base + ($usage_elecs[0]->getUsage)*$rate+$usage_elecs[0]->tdsp;
67 warn $sum."\n" if $DEBUG;
68 warn "grfee = ".$sum* $self->option('gr_fee') if $DEBUG;
69 $sum = $sum + $sum * $self->option('gr_fee');
70 warn "sum = ".$sum if $DEBUG;
74 #$hours -= $self->option('recur_included_hours');
75 #$hours = 0 if $hours < 0;
77 #$self->option('recur_flat') + $hours * $self->option('recur_hourly_charge');
83 qw( setup_fee recur_flat recur_unit_charge );
87 my($self, $cust_pkg) = @_;
88 $self->option('base_fee');
92 my $roundit= int($number*100 + .5);
93 return sprintf('%.2f',$roundit/100)