X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsales.pm;h=d262051a8db6d906e5945b2829fe2ff57d82a38f;hb=3a8fa4f27ef08792e3d653cee167979a411f89d1;hp=bdeaf1b6879fa0cd8841e545129547bb6adc4433;hpb=ecc15d03711690d2b2aeeda2bd8ff1119956c583;p=freeside.git diff --git a/FS/FS/sales.pm b/FS/FS/sales.pm index bdeaf1b68..d262051a8 100644 --- a/FS/FS/sales.pm +++ b/FS/FS/sales.pm @@ -38,14 +38,21 @@ FS::Record. The following fields are currently supported: primary key +=item salesperson + +Name + =item agentnum -agentnum +Agent (see L) =back @@ -205,28 +212,37 @@ sub cust_bill_pkg { qsearch( $self->cust_bill_pkg_search(@_) ) } -sub cust_credit { +sub cust_credit_search { my( $self, $sdate, $edate, %search ) = @_; $search{'hashref'}->{'commission_salesnum'} = $self->salesnum; + my @where = (); + push @where, "cust_credit._date >= $sdate" if $sdate; + push @where, "cust_credit._date < $edate" if $edate; + my $classnum_sql = ''; if ( exists($search{'commission_classnum'}) ) { my $classnum = delete($search{'commission_classnum'}); - $classnum_sql = " AND part_pkg.classnum ". ( $classnum ? " = $classnum" - : " IS NULL " ); + push @where, 'part_pkg.classnum '. ( $classnum ? " = $classnum" + : " IS NULL " ); $search{'addl_from'} .= ' LEFT JOIN cust_pkg ON ( commission_pkgnum = cust_pkg.pkgnum ) '. ' LEFT JOIN part_pkg USING ( pkgpart ) '; } - qsearch({ 'table' => 'cust_credit', - 'extra_sql' => " AND cust_credit._date >= $sdate ". - " AND cust_credit._date < $edate ". - $classnum_sql, - %search, - }); + my $extra_sql = "AND ".join(' AND ', map {"( $_ )"} @where); + + { 'table' => 'cust_credit', + 'extra_sql' => $extra_sql, + %search, + }; +} + +sub cust_credit { + my $self = shift; + qsearch( $self->cust_credit_search(@_) ) } =back