---
name: "LedgerSMB::ScriptLib::Company"
section: "3pm"
platform: "linux"
package: "ledgersmb"
version: "1.3.40-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/LedgerSMB::ScriptLib::Company"
---

# LedgerSMB::ScriptLib::Company(3pm)

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.

## NAME

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.

## SYOPSIS

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.

## METHODS

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

  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:

  \* 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 remark

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

- delete\_pricematrix

  Delets an item from the pricelist, based on entry\_id and credit\_id, both of which must be provided

- pricelist\_search\_handle

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

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