Provided by: ledgersmb_1.3.46-1_all bug

NAME

       LedgerSMB::AM - This module provides some administrative functions

SYNOPSIS

       This module provides some administrative functions

COPYRIGHT

        #====================================================================
        # LedgerSMB
        # Small Medium Business Accounting software
        # http://www.ledgersmb.org/
        #
        # Copyright (C) 2006
        # This work contains copyrighted information from a number of sources
        # all used with permission.
        #
        # This file contains source code included with or based on SQL-Ledger
        # which is Copyright Dieter Simader and DWS Systems Inc. 2000-2005
        # and licensed under the GNU General Public License version 2 or, at
        # your option, any later version.  For a full list including contact
        # information of contributors, maintainers, and copyright holders,
        # see the CONTRIBUTORS file.
        #
        # Original Copyright Notice from SQL-Ledger 2.6.17 (before the fork):
        # Copyright (C) 2000
        #
        #  Author: DWS Systems Inc.
        #     Web: http://www.sql-ledger.org
        #
        #  Contributors: Jim Rawlings <jim@your-dba.com>
        #
        #====================================================================
        #
        # This file has undergone whitespace cleanup.
        #
        #====================================================================
        #
        # Administration module
        #    Chart of Accounts
        #    template routines
        #    preferences
        #
        #====================================================================

METHODS

       AM->get_account($myconfig, $form);
           Populates  the $form attributes accno, description, charttype, gifi_accno, category, link, and contra
           with details about the account that has the id $form->{id}.  If there are no acc_trans  entries  that
           refer to that account, $form->{orphaned} is made true, otherwise $form->{orphaned} is set to false.

           Also  populates  'inventory_accno_id',  'income_accno_id', 'expense_accno_id', 'fxgain_accno_id', and
           'fxloss_accno_id' with the values from defaults.

           $myconfig is unused.

       AM->delete_account($myconfig, $form);
           Deletes the account with the id $form->{id}.  Calls $form->error if there are any  acc_trans  entries
           that  reference  it.   If  any  parts  have  that account for an inventory, income, or COGS (expense)
           account, switch the part to using the default account for that type.  Also deletes all tax, partstax,
           customertax, and vendortax table entries for the account.

           $myconfig is unused.

       AM->gifi_accounts($myconfig, $form);
           Populates the list referred to as $form->{ALL} with hashes of gifi numbers and descriptions in  order
           of the GIFI number.  The GIFI number referred to as 'accno'.

           $myconfig is not used.

       AM->get_gifi($myconfig, $form);
           Sets   $form->{description}   to   the   description   of   the  GIFI  number  $form->{accno}.   Sets
           $form->{orphaned} to true if there are no entries in acc_trans that refer to this GIFI and  to  false
           otherwise.

           $myconfig is not used.

       AM->save_gifi($myconfig, $form);
           Adds  or  updates  a  GIFI record.  If $form->{id} is set, update the gifi record that has that as an
           account number.  The new values for an added or updated  record  are  stored  in  $form->{accno}  and
           $form->{description}.

           $myconfig is not used.

       AM->delete_gifi($myconfig, $form);
           Deletes the gifi record with the GIFI number $form->{id}.

           $myconfig is not used.

       AM->warehouses($myconfig, $form);
           Populates  the  list referred to as $form->{ALL} with hashes describing warehouses, ordered according
           to the logic of $form->sort_order.  Each hash has an id and a description element.

           $myconfig is not used.

       AM->get_warehouse($myconfig, $form);
           Sets $form->{description} to the name of the warehouse $form->{id}.  If  no  inventory  is  currently
           linked to the warehouse, set $form->{orphaned} to true, otherwise $form->{orphaned} is false.

           $myconfig is not used.

       AM->save_warehouse($myconfig, $form);
           Add  or update a warehouse.  If $form->{id} is set, that warehouse is updated instead of adding a new
           warehouse.  In both cases, the description of the warehouse is set to $form->{description}.

           $myconfig is not used.

       AM->delete_warehouse($myconfig, $form);
           Deletes the warehouse with the id $form->{id}.

           $myconfig is not used.

       AM->departments($myconfig, $form);
           Populate the list referred to as $form->{ALL} with hashes of details about departments.   The  hashes
           all contain the id, description, and role of the department and are ordered by the description.

           $myconfig is unused.

       AM->get_department($myconfig, $form);
           Fills  $form->{description}  and $form->{role} with details about the department with the id value of
           $form->{id}.  If the department has not been used as part of a transaction referred to in  dpt_trans,
           set $form->{orphaned} to true, otherwise it is set to false.

           $myconfig is unused.

       AM->save_department($myconfig, $form);
           Add  or  update  a department record.  If $form->{id} is set, the department with that id is updated,
           otherwise a new department is added.  The department role (either 'C' for cost  centres  or  'P'  for
           profit centres) and description is taken from the $form attributes 'role' and 'description'.

           $myconfig is unused.

       AM->delete_department($myconfig, $form)
           Deletes the department with an id of $form->{id}.

           $myconfig is unused.

       AM->business($myconfig, $form);
           Populates  the  list referred to as $form->{ALL} with hashes containing details about all known types
           of business.  Each hash contains the id, description, and discount for businesses of this type.   The
           discount  is  represented  in  numeric form, such that a 10% discount is stored and retrieved as 0.1.
           The hashes are sorted by the business description.

           $myconfig is unused.

       AM->get_business($myconfig, $form);
           Places  the  description  and  discount  for  the  business  with   an   id   of   $form->{id}   into
           $form->{description} and $form->{discount}.

           $myconfig is unused.

       AM->save_business($myconfig, $form);
           Adds or updates a type of business.  If $form->{id} is set, the business type with a corresponding id
           is  updated,  otherwise  a  new  type  is  added.   The new description is $form->{description}.  The
           discount taken as a percentage stored in $form->{discount}, which then value is  divided  by  100  in
           place  and the multiplier is stored.  As an example, if $form->{discount} is 10 when this function is
           called, it is changed to 0.1 and stored as 0.1.

           $myconfig is unused.

       AM->delete_business($myconfig, $form);
           Deletes the business type with the id $form->{id}.

           $myconfig is unused.

       AM->sic($myconfig, $form);
           Populate the list referred to as $form->{ALL} with hashes containing SIC (some well known systems  of
           which  are  NAICS  and  ISIC) data from the sic table.  code is the actual SIC code, description is a
           textual description of the code, and sictype is an indicator of whether or not the entry refers to  a
           header.  The hashes will be sorted by either the code or description.

           $myconfig is unused.

       AM->get_sic($myconfig, $form);
           Retrieves the sictype and description for the SIC indicated by $form->{code} and places the retrieved
           values into $form->{sictype} and $form->{description}.

           $myconfig is unused

       AM->save_sic($myconfig, $form);
           Add or update a SIC entry.  If $form->{id} is set, take it as the original code to identify the entry
           update, otherwise treat it as a new entry.  $form->{code}, $form->{description}, and $form->{sictype}
           contain  the  new  values.   sictype  is a single character to flag whether or not the entry is for a
           header ('H').

           $myconfig is unused.

       AM->delete_sic($myconfig, $form);
           Deletes the SIC entry with the code $form->{code}.

           $myconfig is unused.

       AM->language($myconfig, $form);
           Populates the list referred to as $form->{ALL} with hashes containing the code and description of all
           languages entered in the language table.  The usual set of $form attributes affect the order in which
           the hashes are entered in the list.

           These language functions are unrelated to LedgerSMB::Locale, although these language codes  are  also
           used for non-UI templates and by LedgerSMB::PE.

           $myconfig is unused.

       AM->get_language($myconfig, $form);
           Sets $form->{description} to the description of the language that has the code $form->{code}.

           $myconfig is unused.

       AM->save_language($myconfig, $form);
           Add or update a language entry.  If $form->{id} is set, the language entry that has that as a code is
           updated,  otherwise  a  new  entry  is added.  $form->{code} and $form->{description} contain the new
           values for the entry.

           $myconfig is unused.

       AM->delete_language($myconfig, $form);
           Deletes the language entry with the code $form->{code}.

           $myconfig is unused.

       AM->recurring_transactions($myconfig, $form);
           Populates lists referred to in the form of $form->{transactions}{$type}, where  the  possible  values
           for  $type  are  'ar',  'ap',  'gl',  'so',  and 'po', with hashes containing details about recurring
           transactions of the $type variety.  These hashes have the fields module  (the  frontend  script  that
           governs  the  transaction type), transaction (the transaction type), invoice (true if the transaction
           is an invoice), description (a field that is a customer, vendor, or in the case of a GL  transaction,
           an  arbitrary  text  field),  amount (the cash value of the transaction), id (the id of the recurring
           transaction), reference (the reference value for the transaction), startdate (the date the  recurring
           sequence  started),  nextdate  (the  date of the next occurrence of the event), enddate (the date the
           sequence ends), repeat (the number of units involved in the recurrence  frequency),  unit  (the  base
           recurrence  unit),  howmany  (how  many  times  the  event occurs), payment (whether or not the event
           involves a payment), recurringemail (a colon separated list of forms to email as part of the  event),
           recurringprint  (a  colon  separated  list of forms to print as part of the event), overdue (how many
           days until the next repetition of the event), vc (vendor,  customer,  or  empty),  exchangerate  (the
           exchangerate  involved on the day of the original transaction), curr (the currency of the event), and
           expired (if there will be no more recurrences).

           By default, these lists are sorted in order of the date of the next occurrence  of  the  transaction.
           This order can be affected by the usual attributes used by $form->sort_order.

           $myconfig is unused.

       AM->recurring_details($myconfig, $form, $id);
           Retrieves details about the recurring transaction $id and places them into attributes of $form.  Sets
           id (the transaction id passed in, $id), reference (a reference string for the recurring transaction),
           startdate  (the  date the recurrence series started on), nextdate (the date of the next occurrence of
           the event), enddate (the date of the final occurrence of the event),  repeat  (the  number  of  units
           involved  in  a  recurrence  period),  unit  (the  recurrence  unit),  howmany  (the  total number of
           recurrences in the recurrence series), payment (whether or not the transaction is associated  with  a
           payment), arid (true if an ar event), apid (true if an ap event), overdue (number of days an ar event
           was  to  the  duedate),  paid  (number  of  days  after an ar event it was paid), req (days until the
           requirement date from the transdate of an oe event), oeid (true if an oe event), customer_id  (vendor
           id  if  sales  order),  vendor_id  (vendor  id  if puchase order), vc ('customer' if customer_id set,
           'vendor' if vendor_id set), invoice (true if both  arid  and  arinvoice  set  or  if  both  apid  and
           apinvoice  set),  recurringemail  (colon  separated list of forms and formats to be emailed), message
           (the non-attachement message body for the emails), and recurringprint (colon separated list  of  form
           names, formats, and printer names).

           $myconfig is unused.

       AM->update_recurring($myconfig, $form, $id)
           Updates  nextdate  for  the  recurring  transaction $id to the next date of the sequence.  If the new
           value for nextdate is after enddate, nextdate is set to NULL.

           $myconfig is unused.

       AM->check_template_name($myconfig, $form);
           Performs some sanity checking on the filename $form->{file} and calls $form->error if the filename is
           disallowed.

       AM->load_template($myconfig, $form);
           Populates $form->{body} with the contents of the file $form->{file}.

       AM->save_template($myconfig, $form);
           Overwrites the file $form->{file} with the contents of $form->{body}, excluding carriage returns.

       AM->save_preferences($myconfig, $form);
           Saves the preferences for the current user.  New values are taken from  the  $form  attributes  name,
           email,  dateformat,  signature,  numberformat,  vclimit,  tel,  fax, company, menuwidth, countrycode,
           address, timeout, stylesheet, printer, password, new_password, and  old_password.   Password  updates
           occur when new_password and old_password differ.

       AM->save_defaults($myconfig, $form, \@defaults);
           Sets  the  values  in the defaults table to values derived from $form.  glnumber, sinumber, vinumber,
           sonumber, ponumber, sqnumber, rfqnumber, partnumber,  employeenumber,  customernumber,  vendornumber,
           projectnumber,  yearend, curr, weightunit, and businessnumber are taken directly from the $form value
           with the corresponding name.

           Stores the templates directory for a specific company on defaults table.

           @defaults identifies the list of values to be stored in defaults.  If not provided, a default list is
           used.

       AM->defaultaccounts($myconfig, $form);
           Retrieves the numbers of default accounts and sets $form->{defaults}{$key} to the appropriate account
           numbers,   where   $key   can   be   'inventory_accno_id',   'income_accno_id',    'income_accno_id',
           'expense_accno_id', 'fxgain_accno_id' and 'fxloss_accno_id'.

           Sets  the  hashes  refered  to  as  $form->{accno}{${type}_accno_id}{$accno}  -  where  $type  one of
           'inventory', 'income' and 'expense' - to contain the id and  description  of  all  accounts  with  IC
           elements in their link fields keyed on the account number.

           Fills the hashes referred to as $form->{accno}{fx(gain|loss)_accno_id} with the id and description of
           all income and expense accounts, keyed on the account number.

           $myconfig is unused.

       AM->taxes($myconfig, $form);
           Retrieve  details  about  all  taxes  in the database.  $form->{taxrates} refers to a list containing
           hashes with the chart id (id), account number (accno), description, rate, taxnumber,  validto,  pass,
           and  taxmodulename  for  a  tax.   $form->{taxmodule_id},  where id is a taxmodule_id, is set to that
           taxmodule's name.

           $myconfig is unused.

       AM->save_taxes($myconfig, $form);
           Deletes all entries from the tax table then re-inserts all taxes whose accounts are part of the space
           separated list $form->{taxaccounts}.  Each element of $form->{taxaccounts} is of the form 'chartid_i'
           where chartid is the id of the chart entry for the tax and i is a numeric index.  The values inserted
           for  each  tax  are  chart_id  (from  taxaccounts),  rate  (  form->{taxrate_i}   /   100),   validto
           ($form->{validto_i}),  taxnumber  ($form->{taxnumber_i}),  pass  ($form->{pass_i}),  and taxmodule_id
           ($form->{taxmodule_id_i}).

       AM->closedto($myconfig, $form);
           Populates $form->{closedto}, $form->{revtrans}, and $form->{audittrail}  with  their  values  in  the
           defaults table.

           $myconfig is unused.

       AM->closebooks($myconfig, $form);
           Updates   the  revtrans,  closedto,  and  audittrail  entries  in  the  defaults  table  using  their
           corresponding $form values.  If $form->{removeaudittrail} is set, this used to remove all  audittrail
           entries with a transdate prior to the date given by $form->{removeaudittrail}, but has been disabled.

           $myconfig is unused.

       AM->earningsaccounts($myconfig, $form);
           Populates  the  list  referred to as $form->{chart} with hashes containing the account number (accno)
           and the description of all equity accounts, ordered by the account number.

           $myconfig is unused.

       AM->post_yearend($myconfig, $form);
           Posts the termination of a financial year.  Makes use  of  the  $form  attributes  login,  reference,
           notes,  description,  and  transdate to populate the gl table entry.  The id of the gl transaction is
           placed in $form->{id}.

           For every accno_$i in $form, where $i is between 1 and $form->{rowcount}, an acc_trans entry will  be
           added if credit_$i or debit_$i is non-zero.

           A new yearend entry is populated with the id and transdate of the gl transaction.

           Adds an entry to the audittrail.

           $myconfig is unused.

       AM->get_all_defaults($form);
           Retrieves   all   settings   from  defaults  and  sets  the  appropriate  $form  values.   Also  runs
           AM->defaultaccounts.

       AM->get_templates_directories;
           This functions gets all  the  directories  from  $LedgerSMB::Sysconfig::templates  to  list  all  the
           possible non-Ui templates.

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