X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main_county.pm;h=e84fa98f9c2f837448d1cca64846e4545caac000;hb=5af515ac6bdc6ff88860c618207660eac48c276a;hp=edf57ab2fc1dec0bc59f58793165e3c612e75087;hpb=a96ddd777a87c2f74a9cf408b44d0f6e7347b5f3;p=freeside.git diff --git a/FS/FS/cust_main_county.pm b/FS/FS/cust_main_county.pm index edf57ab2f..e84fa98f9 100644 --- a/FS/FS/cust_main_county.pm +++ b/FS/FS/cust_main_county.pm @@ -2,7 +2,7 @@ package FS::cust_main_county; use strict; use vars qw( @ISA @EXPORT_OK $conf - @cust_main_county %cust_main_county $countyflag ); + @cust_main_county %cust_main_county $countyflag ); # $cityflag ); use Exporter; use FS::Record qw( qsearch dbh ); use FS::cust_bill_pkg; @@ -17,6 +17,7 @@ use FS::cust_tax_exempt_pkg; @cust_main_county = (); $countyflag = ''; +#$cityflag = ''; #ask FS::UID to run this stuff for us later $FS::UID::callback{'FS::cust_main_county'} = sub { @@ -55,10 +56,12 @@ currently supported: =item taxnum - primary key (assigned automatically for new tax rates) -=item state +=item city =item county +=item state + =item country =item tax - percentage @@ -116,8 +119,9 @@ sub check { $self->exempt_amount(0) unless $self->exempt_amount; $self->ut_numbern('taxnum') - || $self->ut_anything('state') + || $self->ut_textn('city') || $self->ut_textn('county') + || $self->ut_anything('state') || $self->ut_text('country') || $self->ut_float('tax') || $self->ut_textn('taxclass') # ... @@ -198,29 +202,18 @@ sub _list_sql { map $_->[0], @{ $sth->fetchall_arrayref }; } -=item taxline TAXABLES, [ OPTIONSHASH ] +=item taxline TAXABLES_ARRAYREF, [ OPTION => VALUE ... ] Returns a listref of a name and an amount of tax calculated for the list of -packages or amounts referenced by TAXABLES. Returns a scalar error message -on error. +packages or amounts referenced by TAXABLES_ARRAYREF. Returns a scalar error +message on error. -OPTIONSHASH includes custnum and invoice_date and are hints to this method +Options include custnum and invoice_date and are hints to this method =cut sub taxline { - my $self = shift; - - my $taxables; - my %opt = (); - - if (ref($_[0]) eq 'ARRAY') { - $taxables = shift; - %opt = @_; - }else{ - $taxables = [ @_ ]; - # exemptions broken in this case - } + my( $self, $taxables, %opt ) = @_; my @exemptions = (); push @exemptions, @{ $_->_cust_tax_exempt_pkg } @@ -263,7 +256,10 @@ sub taxline { my ($mon,$year) = (localtime( $cust_bill_pkg->sdate || $invoice_date ) )[4,5]; $mon++; - my $freq = $part_pkg->freq || 1; + my $freq = $cust_bill_pkg->freq; + unless ($freq) { + $freq = $part_pkg->freq || 1; # less trustworthy fallback + } if ( $freq !~ /(\d+)$/ ) { $dbh->rollback if $oldAutoCommit; return "daily/weekly package definitions not (yet?)". @@ -362,7 +358,12 @@ sub taxline { } $dbh->commit or die $dbh->errstr if $oldAutoCommit; - return [ $name, $amount ] + + return { + 'name' => $name, + 'amount' => $amount, + }; + } =back