LedgerSMB::ScriptLib::UseraContributed Perl LedgerSMB::ScriptLib::Company(3pm)

       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.

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

           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.

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

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

           Dispatches to the sales/purchase order screen.

       rfq Dispatches to the quotation/rfq screen

           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.

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

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

           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

       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.

           Generates the filter screen for the customer/vendor history report.

           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

           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.

           This inserts or updates a credit account of the sort listed here.

           This inserts a new credit account.

           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

           Renders the search criteria screen.

           Saves contact info as per

           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

           Deletes the selected bank account record

           Required request variables: * bank_account_id * entity_id * form_id

           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

           displays screen to a bank account

           Required data: bank_account_id bic iban

           Saves contact info as a new line as per save_contact above.

               Adds a bank account to a company and, if defined, an entity
               credit account.

           Saves notes.  entity_id or credit_id must be set, as must
           note_class, note, and subject.

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

           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.

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

       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.14.2                      2012-10-08LedgerSMB::ScriptLib::Company(3pm)