<% 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::quotation

NAME

FS::quotation - Object methods for quotation records

SYNOPSIS

  use FS::quotation;

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

  $error = $record->insert;

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

  $error = $record->delete;

  $error = $record->check;

DESCRIPTION

An FS::quotation object represents a quotation. FS::quotation inherits from FS::Record. The following fields are currently supported:

quotationnum

primary key

prospectnum

prospectnum

custnum

custnum

_date

_date

disabled

disabled

usernum

usernum

close_date

projected date when the quotation will be closed

confidence

projected confidence (expressed as integer) that quotation will close

METHODS

new HASHREF

Creates a new quotation. To add the quotation 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 quotation. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.

prospect_main
cust_main
cust_bill_pkg
total_setup
total_recur [ FREQ ]
cust_or_prosect
cust_or_prospect_label_link

HTML links to either the customer or prospect.

Returns a list consisting of two elements. The first is a text label for the link, and the second is the URL.

enable_previous
convert_cust_main [ PARAMS ]

If this quotation already belongs to a customer, then returns that customer, as an FS::cust_main object.

Otherwise, creates a new customer (FS::cust_main object and record, and associated) based on this quotation's prospect, then orders this quotation's packages as real packages for the customer.

If there is an error, returns an error message, otherwise, returns the newly-created FS::cust_main object.

Accepts the same params as "order".

order [ HASHREF ] [ PARAMS ]

This method is for use with quotations which are already associated with a customer.

Orders this quotation's packages as real packages for the customer.

If there is an error, returns an error message, otherwise returns false.

If HASHREF is passed, it will be filled with a hash mapping the quotationpkgnum of each quoted package to the pkgnum of the package as ordered.

If PARAMS hashref is passed, the following params are accepted:

onhold - if true, suspends newly ordered packages

charge

One-time charges, like FS::cust_main::charge()

disable

Disables this quotation (sets disabled to Y, which hides the quotation on prospects and customers).

If there is an error, returns an error message, otherwise returns false.

enable

Enables this quotation.

If there is an error, returns an error message, otherwise returns false.

estimate

Calculates current prices for all items on this quotation, including discounts and taxes, and updates the quotation_pkg records accordingly.

CLASS METHODS

search_sql_where HASHREF

Class method which returns an SQL WHERE fragment to search for parameters specified in HASHREF. Valid parameters are

_date

List reference of start date, end date, as UNIX timestamps.

invnum_min
invnum_max
agentnum
charged

List reference of charged limits (exclusive).

owed

List reference of charged limits (exclusive).

open

flag, return open invoices only

net

flag, return net invoices only

days
newest_percust

Note: validates all passed-in data; i.e. safe to use with unchecked CGI params.

_items_pkg

Return line item hashes for each package on this quotation.

BUGS

SEE ALSO

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

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