LedgerSMB::ScriptLib::Company






LedgerSMB::ScriptLib::Company − LedgerSMB class defining the
Controller functions, template instantiation and rendering
for vendor and customer editing and display.  This would
also form the basis for other forms of company contacts.

This module is the UI controller for the vendor DB access;
it provides the View interface, as well as defines the Save
vendor.  Save vendor/customer will update or create as
needed.



set_entity_class($request) returns int entity class
    Errors if not inherited.  Inheriting classes MUST define
    this to set $entity_class appropriately.

get_by_cc
    Populates the company area with info on the company,
    pulled up through the control code

dispatch_legacy
    This is a semi‐private method which interfaces with the
    old code.  Note that as long as any other functions use
    this, the contact interface cannot be said to be safe
    for code caching.

    Not fully documented because this will go away as soon
    as possible.

add_transaction
    Dispatches to the Add (AR or AP as appropriate)
    transaction screen.

add_invoice
    Dispatches to the (sales or vendor, as appropriate)
    invoice screen.

add_order
    Dispatches to the sales/purchase order screen.

rfq Dispatches to the quotation/rfq screen

new_company($request)
    returns object inheriting LedgerSMB::DBObject::Company

    This too must be defined in classes that inherit this
    class.

get($self, $request, $user)
    Requires form var: id

    Extracts a single company from the database, using its
    company ID as the primary point of uniqueness. Shows
    (appropriate to user privileges) and allows editing of









                             ‐2‐


    the company information.

add_location
    Adds a location to the company as defined in the
    inherited object

save_new_location
    Adds a location to the company as defined in the
    inherited object, not overwriting existing locations.

generate_control_code
    Sets $company−>{control_code} equal to the next in the
    series of entity_control values

add This method creates a blank screen for entering a
    company’s information.

get_results($self, $request, $user)
    Requires form var: search_pattern

    Directly calls the database function search, and returns
    a set of all vendors found that match the search
    parameters. Search parameters search over address as
    well as vendor/Company name.

history($request)
    Generates the filter screen for the customer/vendor
    history report.

display_history($request)
    Displays the customer/vendor history based on criteria
    from the history filter screen.

    The following request variables are optionally set in
    the HTTP query string or request object.

    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










                             ‐3‐


    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

    Columns to display: l_partnumber:    parts.partnumber
    l_sellprice:     invoice/orderitems.sellprice l_curr:
    ar/ap/oe.curr l_unit:          invoice/orderitems.unit
    l_deliverydate:  invoice.deliverydate or
    orderitems.reqdate l_projectnumber:
    project.projectnumber l_serialnumber:
    invoice/orderitems.serialnumber

csv_company_list($request)
    Generates CSV report (not working at present)

save($self, $request, $user)
    Saves a company to the database. The function will
    update or insert a new company as needed, and will
    generate a new Company ID for the company if needed.

save_credit($request)
    This inserts or updates a credit account of the sort
    listed here.

save_credit_new($request)
    This inserts a new credit account.

edit($request)
    Displays a company for editing.  Needs the following to
    be set: entity_id, account_class, and meta_number.  The
    account_class requireent is typically set during the
    construction of scripts which inherit this library.

PRIVATE _render_main_screen($company)
    Pulls relevant data from db and renders the data entry
    screen for it.

search($request)
    Renders the search criteria screen.

save_contact($request)
    Saves contact info as per
    LedgerSMB::DBObject::Company::save_contact.

delete_contact
    Deletes the selected contact info record

    Must include company_id or credit_id (credit_id used if
    both are provided) plus:









                             ‐4‐


    * contact_class_id * contact * form_id

delete_bank_acct
    Deletes the selected bank account record

    Required request variables: * bank_account_id *
    entity_id * form_id

delete_location
    Deletes the selected contact info record

    Must include company_id or credit_id (credit_id used if
    both are provided) plus:

    * location_class_id * location_id * form_id

edit_bank_acct($request)
    displays screen to a bank account

    Required data: bank_account_id bic iban

save_contact_new($request)
    Saves contact info as a new line as per save_contact
    above.

    save_bank_account($request)
        Adds a bank account to a company and, if defined, an
        entity credit account.

save_notes($request)
    Saves notes.  entity_id or credit_id must be set, as
    must note_class, note, and subject.

pricelist
    This returns and displays the pricelist.  The id field
    is required.

delete_price

save_pricelist
    This routine saves the price matrix.  For existing rows,
    valid_to, valid_from, price fields are saved.

    For the new row, the partnumber field matches the
    beginning of the part number, and the description is a
    full text search.

pricelist_search_handle
    Handles the return from the parts search from the
    pricelist screen.













                             ‐5‐


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.