666de1378e2536a84d32b54d8d2ff81d80660b86
[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
7 sub option_fields {
8   my $class = shift;
9   my %option_fields = $class->SUPER::option_fields;
10
11   delete $option_fields{'percent'};
12
13   $option_fields{'cust_main_sales'} = {
14     'label' => "Credit the customer sales person if there is no package sales person",
15     'type'  => 'checkbox',
16     'value' => 'Y',
17   };
18
19   %option_fields;
20 }
21
22 sub _calc_credit_percent {
23   my( $self, $cust_pkg ) = @_;
24
25   my $salesnum = $cust_pkg->salesnum;
26   $salesnum ||= $self->cust_main($cust_pkg)->salesnum
27     if $self->option('cust_main_sales');
28
29   return 0 unless $salesnum;
30
31   my $sales_pkg_class = qsearchs( 'sales_pkg_class', {
32     'salesnum' => $salesnum,
33     'classnum' => $cust_pkg->part_pkg->classnum,
34   });
35
36   $sales_pkg_class ? $sales_pkg_class->commission_percent : 0;
37
38 }
39
40 1;