Front Accounting User Manual
Front Accounting User Manual
and
Users Guide
Version 1.5
Written By:
Terrell L. Johnson, CEO
The Walawon Group, LLC
Joe Hunt, Sr. Software Developer
JH Global Consultants
http://frontaccounting.net
License
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License (“License”).
To view a copy of this license, visit http://www.creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter to Creative Com-
mons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Disclaimer
Your Warranty, Limitations of liability and Indemnity are expressly stated in the License. Please refer to the License for the
specific language governing these rights and limitations
Trademarks
All FrontAccounting logos in this document are registered trademarks of FrontAccounting. See the FrontAccounting trademark
policies at http://www.FrontAccounting.net/erp/open-source/trademark-information.html for more information on how Fron-
tAccounting trademarks can be used.
FrontAccounting is based on an open source project, and therefore, advances quickly through the devel-
opment and contribution of new features by its supporting community.
Welcome to the FrontAccounting community!
The FrontAccounting Community Edition User Guide is designed for users who are new to FA, or to
Accounting, ERP and Web-based applications. This guide introduces you to some basic CRM concepts
and helps you get familiar with the FA system. It describes how to access FA through a personal com-
puter and a Web browser to perform a broad range of customer relationship management tasks.
Readers are not required to have any programming or software development knowledge, but should be
generally familiar with the use of a personal computer and a Web browser such as Microsoft Internet
Explorer or Mozilla Firefox.
Audience
The FrontAccounting Community Edition User Guide provides information for users who want to record
and track company activities and outcomes. In addition, this guide provides information for system ad-
ministrators who manage user access and system configuration.
FA consists of modules, each of which represents a specific functional aspect of Accounting such as Ac-
counts, Accounts Receivable, Accounting Payable, and Opportunities. For example, the Accounts mod-
ule enables you to create and manage customer accounts, and the Activities module enables you to cre-
ate and manage activities related to accounts. These modules are designed to help you manage customer
accounts through each step of their lifecycle.
• FrontAccounting covers:
• Purchase Orders
• Good Receivable Notes
• Supplier Invoices/Credit Notes
• Payments & Allocations
• Accounts Payable
• Items and Inventory
• Stock
• Manufacturing
• Sales Orders
• Customer Invoices / Credit Notes
• Deposits & Allocations
• Accounts Receivable
• Dimensions
• General Ledger
• Multi-Languages
• Multi-Currencies
• Budgets
The operating system and the database engine chosen will have the largest bearing on System
requirements. Each client connection to the web server and database engine will also consume
RAM so the more connections the larger the RAM requirement. Similarly disk space required is
a function of the volume of customers, suppliers and transactions. Suffice it to say that due to
the efficiency of the components of the system the demands on the hardware are exceptionally
light by client server application standards.
With multiple servers with SMP, load balancing, a separate database server, and large amounts
of RAM the limit on database size and the number can be scaled to the most demanding busi-
nesses.
Software Requirements
• PHP greater than 4.2. The system is therefore operating system independent since PHP
can be configured as a CGI module for use on MS IIS or as a module for Apache under
either Windows (NT, 2000 or XP) or Unix/Linux. If transfer of EDI orders is required
the ftp extensions for PHP will be needed.
• MySQL-Max with Innodb transactional tables support. Innodb was introduced in 2001
to MySQL and has Oracle like functionality – with similar speed. (The system could be
used with Oracle or other database systems too with minimal modification.) MySQL
• later than version 4 has Innodb tables in by default. Since MySQL represents such good
value for money it has been used. An example configuration file my.cnf normally un-
der /usr/local/mysql/var is available in the mysql documentation to show typical settings
for the Innodb configuration. The expected size of the data is useful although additional
Requirements FrontAccounting User Guide
data files can be created retrospectively as necessary. Note that only the tables that require
transaction support are defined as Innodb tables. There is always debate but the MyISAM
tables are reputed to be faster.
• A web server. Apache makes the most sense – but most web servers are supported by
PHP in various forms.
• If the web server is accessible over the Internet and not just over a LAN then encrypted
communications are required. The openssl and mod-ssl modules for apache can be eas-
ily used to ensure all data is transmitted in encrypted form.
There are many sources of information on the compilation and installation of MySQL and PHP.
See the following links:
http://logidac.com/apache/apache-install-rpm.phtml
http://www.linux-sottises.net/en_apache_install.php
The system could be used with many other database servers but it is tested and developed on
MySQL. Independent benchmarks show that MySQL is one of the fastest for most common
database tasks, particularly at establishing connections – since this is required for every page,
MySQL is therefore ideally suited to the web environment. The ftp library for PHP is only re-
quired for sending order files to a Radio Beacon ftp server for remote warehouse services. Us-
ing Apache with mod_ssl and openssl secure sockets makes sense where there is any data trans-
mitted over the Internet and not just over a LAN.
Important Notes
• One critical aspect of the PHP installation is the setting of session.auto_start in the
php.ini file. Some rpm distributions of PHP have the default setting of ses-
sion.auto_start = 1. This starts a new session at the beginning of each script. However,
this makes it impossible to instantiate any class objects that the system relies on. Classes
are used extensively by this system. When sessions are required they are started by the
system and this setting of session.auto_start can and should be set to 0.
• Innodb tables must be enabled in the MySQL server. These tables allow database trans-
actions which are a critical component of the software. This is enabled by default in the
newer versions of MySQL. If you need to enable it yourself, consult the MySQL man-
ual.
• FrontAccounting is implemented and tested with MySQL. Generally it should work
with other databases, but this is not supported in any way at the moment.
• You must obviously have downloaded the project archive to be reading this file.
• All the files inside this archive should be copied to a directory under the web server root
directory.
• For example, create a folder called /account, and extract the archive into this folder.
1. If you have the option to create multiple databases on your host, create one, e.g. fron-
tacc, otherwise write down the database name for your account. At the same time look
up the username and password for the database. You will need these informations dur-
ing the wizard install.
2. Enter your_url/account/install (or whatever directory you entered). This will run the
install wizard, setup a drill company and populating with initial data. You can later on
Installation 1 FrontAccounting User Guide
create your own real company. It is a good idea to get familiar with the system before
starting your own company.
3. After successfully install, remove or rename your install directory for safety reasons.
You don't need it any more.
2. Editing config_db.php
14. “dbname” is the name of the database. The provided scripts use the name fron-
tacc.
15. “tbpref” is the table prefix for the tables. If you only have access to one data-
base, you must use table prefix to separate the companies. Table prefix is set by
a table prefix counter inside config_db.php, e.g. 0_ for the first company.
1. Open a browser and enter the URL for the web server directory where FrontAccounting
is installed.
2. Enter the user name: 'admin'
3. Enter the password: 'password'
4. (NB : enter without quotation marks. If you went through the automatic install, en-
ter your password here).
5. You can set up additional user accounts from the System Setup tab. Be careful not to
delete the demonstration user until a new user has been set up. If there are no users de-
fined the next time you try to login you won't be able to enter the system. The only way
then to login is to manually edit the SQL table "users" by inserting a user.
1. If FrontAccounting is installed locally, you may have the session save path not set cor-
rectly. Normally this is set in your php.ini (for Windows). The entry is called ses-
sion.save_path. Make sure this is set to a directory that actually exists. The default is set
to /tmp, which may not be valid.
2. If you are installing FrontAccounting onto a shared server, you may have to set the ses-
sion save path within FrontAccounting. At the top of config.php you will find this line :
3. Uncomment this line and set the path to a directory that exists on your server. Make sure
that you have read/write privileges on this directory.
Important Notes
• You can easily upload all the files to your installation folder on the server overwriting
the existing files, if you take these important steps:
1. Backup (download) the following files to another folder:
1. config_db.php (contains information about the companies and connec-
tion info).
2. config.php (contains various settings. You only need to backup this file
if you have done manually changes to it.
3. /lang/installed_languages.inc (contains information about the installed
languages)
4. /modules/installed_modules.php (contains information about installed
modules, only vers. 1.1)
5. if you have made changes to other files, like themes or so, backup these
files too.
2. Upload all the new files.
3. Restore the files mentioned in #1. Be careful with config.db. Look into vari-
ances. There might be new variables in the new version. It might be easier to
manually change your former values in the new file.
4. Rename or remove the /install folder (you have already performed the install
process earlier).
Name
Tax ID#
Tax Authority Reference
Tax Periods
Tax Last Period
Country Currency
Fiscal Year:
Current Fiscal Year can not be deleted
Address
Telephone Number
Facsimile Number
Email Address
Company Logo
Domicile or Office
Use Dimensions: “What are Dimensions” Simply speaking it is just a way of keeping track of
various departments, cost centers, projects inside the company. You can have 2 levels, e.g. level
1, department, level-2, cost-centre. When you create the dimension you decide if it should be of
level 1 or level 2. You can by this keep track of cost centers inside a department inside a com-
pany.
If you don't need dimensions you can set it to 0 in the company setup. Here you can choose be-
tween level 0, 1 or 2.
NOTE: Once Company information is set-up now you can setup users.
"Security Group definitions - Depending on the AccessLevel of the user defined in the user set
up the areas of functionality accessible can be modified.
Each AccessLevel is associated with an array containing the security categories that the user is
entitled to access Each script has a particular security category associated with it.
If the security setting of the page is contained in the security group as determined by the access
level then the user will be allowed access.
Each page has a $page security = x; variable this value is compared to contents of the array ap-
plicable which is based on the access level of the user.
Access authorization is checked in header.inc this is where _SESSION["AccessLevel"] is the
index of the security groups array. If you wish to add more security groups with then you must
add a new Security Heading to the security headings array and a new array of Security catego-
ries to the Security Groups arrays, this mechanism allows more fine grained control of access
security groups is an array of arrays.
The index is the order in which the array of allowed pages is defined new ones can be defined at
will or by changing the numbers in each array the security access can be tailored. These num-
bers need to read in conjunction with the Page Security index"
Code:
$security_headings = array(
_("Inquiries"),
_("Accountant"),
_("System Administrator")
);
$security_groups = array(
array(1,2),
array(1,2,3,4,5,6,7,8,9,10,11,12,13,14),
array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
);
As you can see there are 3 levels of User Access Levels at present. The corresponding arrays
shows which page a user can access. Every page has its own security level.
Language:
Display Setup
Click > Banking and General Ledger > Bank Accounts (under Maintenance)
Sales (Maintenance)
Note: This person needs to be set-up as a user if they are going to be entering customer account
information
For payments:
Click > Payments
Choose From (account you are debiting) > Pay to: (for work orders enter work order number) >
Payment Type > Date: >
To the Order of: > Reference account number (if any) > Enter Account Code > Account De-
scription > Dimensions (1 or 2) > Amount > Memo
Click > Add Item.
To make any changes, Click > edit > (Make whatever changes), Then Click > Update.
Journal Entry:
Click > Journal Entry
Budget Entry:
Bank Statement:
Click > Bank Account Inquiry
Banking Reports:
Click > Banking Reports
Bank Accounts:
Click > Bank Accounts
Bank Name:
Bank Account
Name:
Bank Account
Number:
Bank Address:
Exchange Rates:
Click > Exchange Rates
USD - US Dollars
Select a currency:
The company currency is the base currency so exchange rates cannot be set for it.
Chart of Accounts:
Click > Chart of Accounts
New Account
Account
Code:
Account
Code 2:
Account
Name:
Account
Group:
Tax Type:
Add Account
GL Account Groups:
Click > GL Account Groups
Class
Name Subgroup Of
Type
Cash/Bank Assets Edit Delete
Accounts Receivable Assets Edit Delete
Fixed Assets Assets Edit Delete
Inventory Assets Edit Delete
Cash Account - Counter
Cash/Bank Assets Edit Delete
Clerks
Liabili-
Accounts Payable Edit Delete
ties
Sales Income Edit Delete
Cost of Sales Costs Edit Delete
Expenses Costs Edit Delete
Depreciations Costs Edit Delete
Financials Costs Edit Delete
Equity Equity Edit Delete
Staff Fund Balances Equity Edit Delete
Sub-
group
Of:
Class
Type:
ave
Save
GL Account Classes:
Top of FormClass
ID:
Class Name:
Balance Sheet: No
ave
Save
Customer Allocations:
Click > Sales > Allocate Customer Payments or Credit Notes
Maintenance
Click > Sales Tab
Customers:
Click > Sales > Add and Manage Customers
Sales Types:
Click > Sales > Sales Types