LedgerSMB::DBObject::Company − Base utility functions for
processing customers and vendors.

This library contains the base utility functions for
creating, saving, and retrieving customers and vendors.

    This is a stub for a private method that subclasses are
    expected to overwrite.  It will be set to the account
    class of the entity (1 for vendor, 2 for customer, etc).

    This retrieves the company header information by control
    code.  Leaves the overall account class untouched.

    This stores the company record including a credit
    account in the database.

    TODO:  Separate company from credit account storage.

    required request variables:

    contact_class_id:  int id of contact class contact: text
    of contact information

    Must include at least one of:

    credit_id: int of entity_credit_account.id, preferred
    value company_id:  int of company.id, only used if
    credit_id not set.

    returns true of a record was deleted.

    Deletes a record from the location side.

    Required request variables:

    location_id location_class_id

    One of:

    credit_id (preferred) company_id (as fallback)

    Returns true if a record was deleted.  False otherwise.

    Deletes a bank account



    entity_id bank_account_id

    Returns true if a record was deleted, false otherwise.

    Retrieves customer/vendor purchase.

    Search Criteria name:  search string for company name
    contact_info:  Search string for contact info, can match
    phone, fax, or email.  salesperson:  Search string for
    employee name in the salesperson field notes: Notes
    search.  Not currently implemented meta_number:  Exact
    match for customer/vendor number address_line:  Search
    string for first or second line of address.  city:
    Search string for city name state:  Case insensitive,
    otherwise exact match for state or province zip:
    leading match for zip/mail code country_id:  integer for
    country id.  Exact match tartdate_from:  Earliest date
    for startdate of entity credit account startdate_to:
    Lates date for entity credit accounts’ start date type:
    either ’i’ for invoice, ’o’ for orders, ’q’ for
    quotations from_date:  Earliest date for the
    invoice/order to_date:  Latest date for the

    Unless otherwise noted, partial matches are sufficient.

    Control variables: inc_open:  Include open
    invoices/orders.  If not true, no open invoices are
               displayed inc_closed: Include closed
    invoices/orders.  If not true, no closed invoices are
                displayed report_type:  Either summary or

    returns a list of rows of the summary report and sets
    these to @{$self−>{history_rows}}

    This method saves the credit account for the company.

    Expected inputs: credit_id (int): (Optional) Id for the
    account entity_class (int):  Class of the account,
    required (1 = vendor, 2 = customer) entity_id (int):  ID
    of entity to attach to.  description (text):
    Description of account discount (numeric):  Early
    payment discount taxincluded (bool):  Whether prices
    include tax.  creditlimit (numeric):  Credit limit
    discount_terms (int):  How many days can elapse before
    the discount lapses too.  terms (int):  How many days
    can lapse before the invoice is overdue.  meta_number
    (varchar):  Account string identifier for the account.
    business_id (int):  ID for business type.  language
    (varchar): Language code for invoices.  pricegroup_id
    (int): Price group curr (char):  Currency  identifier,


    three characters long.  startdate (date):  Date of the
    start of the relationship.  enddate (date):  Date of the
    end of the relationship.  threshold (NUMERIC):  How much
    must be owed before the invoices can be paid.
    ar_ap_account_id (int):  ID of ar/ap account.  REQUIRED
    cash_account_id (int):  ID of cash account (Optional)
    pay_to_name (text):  Name to pay to or receive from.
    taxform_id (int);  ID of tax form

    This method saves an address for a company.

    Requires the following variables on the object:
    credit_id location_id location_class (1 = billing, 2 =
    shipping, 3 = sales) line_one line_two city state (can
    hold province info) mail_code (zip or postal code)
    country_code (ID of country)

    This method returns the current credit id from the

    Requires entity_id, meta_number, and entity_class be

    This retrieves various information vor building the user
    interface.  Among other things, it sets the following
    properties: $self−>{ar_ap_acc_list} = qw(list of ar or
    ap accounts) $self−>{cash_acc_list} = qw(list of cash
    accounts) $self−>{entity_classes} = qw(list of entity
    classes) $self−>{all_taxes}  =qw(list of taxes)

    Saves a contact.  Requires credit_id, contact_class,
    description, and contact to be set.

    Requires the following be set: credit_id or entity_id
    contact_class description contact old_contact

    Saves a bank account.  Requires the following be set:
    entity_id bic (bank id) iban (account number)
    bank_account_id (id for record, optional)

    Saves notes. The following must be set: credit_id:
    credit account to annotate.  Must be set to annotate
    credit account entity_id:  entitity to annotate.  note:
    Note contents subject:  Note subject

    Searches for matching company records.  Populates


    $self−>{search_results} with records found.

    Search criteria and inputs: account_class:  required (1
    for vendor, 2 for customer, etc) contact contact_info
    meta_number address city state mail_code country
    date_from date_to business_id legal_name control_code

    Account class may not be undef.  meta_number is an exact
    match, as is control_code.  All others specify ranges or
    partial matches.

    Requires that the id field is set.  Sets the following:

    legal_name meta_number control_code tax_id street1
    street2 street3 city state mail_code country

    Returns all accounts, and sets these to

    id and entity_class must be set.

    Returns the location if it is specified by the $id

get Retrieves a company record and all info.

    taxform_list is set to a list of tax forms for the
    entity’s country credit_list is set to a list of credit
    accounts locations is set to a list of locations
    contacts to a list of contacts notes to a list of notes
    bank_account to a list of bank accounts

    This routine gets the price matrix for the customer or
    vendor.  The pricematrix info is stored in the
    pricematrix hash entry.  If a customer
    (account_class=1), it also populates a
    pricematrix_pricegroup entry.

    This deletes a pricematrix line identified by $entry_id

    Updates or inserts the price matrix.

Copyright (c) 2009, the LedgerSMB Core Team.  This is
licensed under the GNU General Public License, version 2, or
at your option any later version.  Please see the
accompanying License.txt for more information.