RT# 79636 Taxes per section when using invoice_sections
[freeside.git] / FS / FS / cust_bill_pkg_tax_location.pm
index 723d6e0..4da354a 100644 (file)
@@ -124,10 +124,10 @@ sub check {
     || $self->ut_foreign_key('billpkgnum', 'cust_bill_pkg', 'billpkgnum' )
     || $self->ut_number('taxnum') #cust_bill_pkg/tax_rate key, based on taxtype
     || $self->ut_enum('taxtype', [ qw( FS::cust_main_county FS::tax_rate ) ] )
-    || $self->ut_foreign_key('pkgnum', 'cust_pkg', 'pkgnum' )
+    || $self->ut_number('pkgnum', 'cust_pkg', 'pkgnum' )
     || $self->ut_foreign_key('locationnum', 'cust_location', 'locationnum' )
     || $self->ut_money('amount')
-    || $self->ut_foreign_key('taxable_billpkgnum', 'cust_bill_pkg', 'billpkgnum')
+    || $self->ut_foreign_keyn('taxable_billpkgnum', 'cust_bill_pkg', 'billpkgnum')
   ;
   return $error if $error;
 
@@ -160,6 +160,19 @@ sub cust_location {
   qsearchs( 'cust_location', { 'locationnum' => $self->locationnum }  );
 }
 
+=item taxname
+
+Returns the tax name (for populating the itemdesc field).
+
+=cut
+
+sub taxname {
+  my $self = shift;
+  my $cust_main_county = FS::cust_main_county->by_key($self->taxnum)
+    or return '';
+  $cust_main_county->taxname || 'Tax';
+}
+
 =item desc
 
 Returns a description for this tax line item constituent.  Currently this
@@ -215,10 +228,8 @@ sub cust_credit_bill_pkg {
 
 sub cust_main_county {
   my $self = shift;
-  my $result;
-  if ( $self->taxtype eq 'FS::cust_main_county' ) {
-    $result = qsearchs( 'cust_main_county', { 'taxnum' => $self->taxnum } );
-  }
+  return '' unless $self->taxtype eq 'FS::cust_main_county';
+  qsearchs( 'cust_main_county', { 'taxnum' => $self->taxnum } );
 }
 
 sub _upgrade_data {
@@ -343,7 +354,7 @@ sub upgrade_taxable_billpkgnum {
         } #for $i
       } else {
         # the more complicated case
-        $log->warn("mismatched charges and tax links in pkg#$pkgnum",
+        $log->warning("mismatched charges and tax links in pkg#$pkgnum",
           object => $cust_bill);
         my $tax_amount = sum(map {$_->amount} @tax_links);
         # remove all tax link records and recreate them to be 1:1 with 
@@ -497,4 +508,3 @@ L<FS::Record>, schema.html from the base documentation.
 =cut
 
 1;
-