Provided by: ledgersmb_1.3.46-1_all bug

NAME

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

SYNOPSIS

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

METHODS

       $company->set_entity_class()
           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).

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

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

           TODO:  Separate company from credit account storage.

       delete_contact
           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.

       delete_location
           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.

       delete_bank_account
           Deletes a bank account

           Requires:

           entity_id bank_account_id

           Returns true if a record was deleted, false otherwise.

       get_history
           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 invoice/order

           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 detail

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

       save_credit
           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

       save_location
           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)

       get_credit_id
           This method returns the current credit id from the screen.

           Requires entity_id, meta_number, and entity_class be set.

       get_metadata()
           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)

       save_contact
           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
           old_contact_class

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

       save_notes
           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

       search
           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.

       get_billing_info
           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

       accounts
           Returns all accounts, and sets these to $self->{accounts}.

           id and entity_class must be set.

       address($id)
           Returns the location if it is specified by the $id argument.

       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

       get_pricematrix
           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.

       delete_pricematrix($entry_id)
           This deletes a pricematrix line identified by $entry_id

       save_pricematrix
           Updates or inserts the price matrix.

COPYRIGHT

       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.

perl v5.20.2                                       2014-12-11                  LedgerSMB::DBObject::Company(3pm)