add option to credit customer sales person if there is no package sales person to...
[freeside.git] / FS / FS / part_event / Action / Mixin / credit_sales_pkg_class.pm
1 package FS::part_event::Action::Mixin::credit_sales_pkg_class;
2 use base qw( FS::part_event::Action::Mixin::credit_pkg );
3
4 use strict;
5 use FS::Record qw(qsearchs);
6 use FS::sales_pkg_class;
7
8 sub option_fields {
9   my $class = shift;
10   my %option_fields = $class->SUPER::option_fields;
11
12   delete $option_fields{'percent'};
13
14   %option_fields;
15 }
16
17 sub _calc_credit_percent {
18   my( $self, $cust_pkg ) = @_;
19
20   my $salesnum = $cust_pkg->salesnum;
21   $salesnum ||= $self->cust_main($cust_pkg)->salesnum
22     if $self->option('cust_main_sales');
23
24   return 0 unless $salesnum;
25
26   my $sales_pkg_class = qsearchs( 'sales_pkg_class', {
27     'salesnum' => $salesnum,
28     'classnum' => $cust_pkg->part_pkg->classnum,
29   });
30
31   $sales_pkg_class ? $sales_pkg_class->commission_percent : 0;
32
33 }
34
35 1;