<% include( '/elements/header.html', 'Developer Documentation' ) %> <& /elements/menubar.html, 'Freeside Perl Modules' => $fsurl.'docs/library/FS.html', 'Complete Index' => $fsurl.'docs/library/index.html', &>

FS::cust_bill_pkg_tax_location

NAME

FS::cust_bill_pkg_tax_location - Object methods for cust_bill_pkg_tax_location records

SYNOPSIS

  use FS::cust_bill_pkg_tax_location;

  $record = new FS::cust_bill_pkg_tax_location \%hash;
  $record = new FS::cust_bill_pkg_tax_location { 'column' => 'value' };

  $error = $record->insert;

  $error = $new_record->replace($old_record);

  $error = $record->delete;

  $error = $record->check;

DESCRIPTION

An FS::cust_bill_pkg_tax_location object represents an record of taxation based on package location. FS::cust_bill_pkg_tax_location inherits from FS::Record. The following fields are currently supported:

billpkgtaxlocationnum

billpkgtaxlocationnum

billpkgnum

billpkgnum

taxnum

taxnum

taxtype

taxtype

pkgnum

pkgnum

locationnum

locationnum

amount

amount

taxable_billpkgnum

The billpkgnum of the FS::cust_bill_pkg that this tax was charged on. It may specifically be on any portion of that line item (setup, recurring, or a usage class).

METHODS

new HASHREF

Creates a new record. To add the record to the database, see "insert".

Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the hash method.

insert

Adds this record to the database. If there is an error, returns the error, otherwise returns false.

delete

Delete this record from the database.

replace OLD_RECORD

Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.

check

Checks all fields to make sure this is a valid record. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.

cust_bill_pkg

Returns the associated cust_bill_pkg object (i.e. the tax charge).

taxable_cust_bill_pkg

Returns the cust_bill_pkg object for the taxable charge.

cust_location

Returns the associated cust_location object

taxname

Returns the tax name (for populating the itemdesc field).

desc

Returns a description for this tax line item constituent. Currently this is the desc of the associated line item followed by the state/county/city for the location in parentheses.

owed

Returns the amount owed (still outstanding) on this tax line item which is the amount of this record minus all payment applications and credit applications.

BUGS

The presence of FS::cust_main_county::delete makes the cust_main_county method unreliable.

Pre-3.0 versions of Freeside would only create one cust_bill_pkg_tax_location per tax definition (taxtype/taxnum) per invoice. The pkgnum and locationnum fields were arbitrarily set to those of the first line item subject to the tax. This created problems if the tax contribution of each line item ever needed to be determined (for example, when applying credits). For several months in 2012, this was changed to create one record per tax definition per package per invoice, which was still not specific enough to identify a line item.

The current behavior is to create one record per tax definition per taxable line item, and to store the billpkgnum of the taxed line item in the record. The upgrade will try to convert existing records to the new format, but this is not perfectly reliable.

SEE ALSO

FS::Record, schema.html from the base documentation.

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 481:

=cut found outside a pod block. Skipping to next block.

<% include ('/elements/footer.html' ) %>