Freeside:4:Documentation:Developer/FS/cust main county
From Freeside
NAME
FS::cust_main_county - Object methods for cust_main_county objects
SYNOPSIS
use FS::cust_main_county; $record = new FS::cust_main_county \%hash; $record = new FS::cust_main_county { 'column' => 'value' }; $error = $record->insert; $error = $new_record->replace($old_record); $error = $record->delete; $error = $record->check; ($county_html, $state_html, $country_html) = FS::cust_main_county::regionselector( $county, $state, $country );
DESCRIPTION
An FS::cust_main_county object represents a tax rate, defined by locale. FS::cust_main_county inherits from FS::Record. The following fields are currently supported:
- taxnum - primary key (assigned automatically for new tax rates); district - tax district (optional); city; county; state; country; tax - percentage; taxclass; exempt_amount; taxname - if defined, printed on invoices instead of "Tax"; setuptax - if 'Y', this tax does not apply to setup fees; recurtax - if 'Y', this tax does not apply to recurring fees
METHODS
- new HASHREF
- Creates a new tax rate. To add the tax rate to the database, see "insert".
- insert
- Adds this tax rate to the database. If there is an error, returns the error, otherwise returns false.
- delete
- Deletes this tax rate from the database. If there is an error, returns the error, otherwise returns false.
- 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 tax rate. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
- label OPTIONS
- Returns a label looking like "Anytown, Alameda County, CA, US".
- If the taxname field is set, it will look like "CA Sales Tax (Anytown, Alameda County, CA, US)".
- If the taxclass is set, then it will be "Anytown, Alameda County, CA, US (International)".
- OPTIONS may contain "with_taxclass", "with_city", and "with_district" to show those fields. It may also contain "out", in which case, if this region (district+city+county+state+country) contains no non-zero taxes, the label will read "Out of taxable region(s)".
- sql_taxclass_sameregion
- Returns an SQL WHERE fragment or the empty string to search for entries with different tax classes.
- taxline TAXABLES_ARRAYREF, [ OPTION => VALUE ... ]
- Takes an arrayref of FS::cust_bill_pkg objects representing taxable line items, and returns a new FS::cust_bill_pkg object representing the tax on them under this tax rate.
- This will have a pseudo-field, "cust_bill_pkg_tax_location", containing an arrayref of FS::cust_bill_pkg_tax_location objects. Each of these will in turn have a "taxable_cust_bill_pkg" pseudo-field linking it to one of the taxable items. All of these links must be resolved as the objects are inserted.
- In addition to calculating the tax for the line items, this will calculate any appropriate tax exemptions and attach them to the line items.
- Options may include 'custnum' and 'invoice_time' in case the cust_bill_pkg objects belong to an invoice that hasn't been inserted yet.
- Options may include 'exemptions', an arrayref of FS::cust_tax_exempt_pkg objects belonging to the same customer, to be counted against the monthly tax exemption limit if there is one.
SUBROUTINES
- regionselector [ COUNTY STATE COUNTRY [ PREFIX [ ONCHANGE [ DISABLED ] ] ] ]
BUGS
regionselector? putting web ui components in here? they should probably live somewhere else...
SEE ALSO
FS::Record, FS::cust_main, FS::cust_bill, schema.html from the base documentation.