SureInvoice Documentation
From OpenWiki
Contents |
[edit] Overview
SureInvoice is software that makes tracking clients, projects and time easy for businesses. SureInvoice allows you to easily create invoices for work completed, setup regular billings and track expenses associated with your clients. For a complete tour of SureInvoice please vist http://www.uversainc.com/products/sureinvoice.
[edit] Installation
You have 2 different options for installing SureInvoice, you can install a release version or install from Subversion. We recommend installing from Subversion because it is more up to date and we make sure that the HEAD of subversion remains stable. If we need to redesign a significant portion of SureInvoice we do so in another branch until the changes have stabilized.
If you want to use SureInvoice right away and not have to worry about installation and setup please visit http://www.uversainc.com/products/sureinvoice/purchase to signup for a hosted version of SureInvoice.
[edit] System Requirements
SureInvoice requires a web server with PHP already setup and running. We recommend PHP 5.2+ but SureInvoice currently will run on PHP 4.4+ as well, although this may change in future versions.
We also recommend running the Apache 2.2+ web server on Linux as the preferred platform but SureInvoice does run on other web servers including IIS on Windows.
SureInvoice also requires MySQL v4.0.14+ but 5.0.x is preferred, this could be hosted on the localhost or another server.
[edit] Installation from Subversion
You will need to get the SureInvoice source code and place it in an empty directory inside of your web server's document root. You could use the following command to get the source code using the svn command line utility.
cd /var/www mkdir sureinvoice svn co http://open.uversainc.com/svn/sureinvoice/sureinvoice/trunk sureinvoice
This would put the SureInvoice code in /var/www/sureinvoice on your server, which we will presume is accessible at http://localhost/sureinvoice/.
Next you need to create the database and load the database structure plus initial data. You could use the following commands to perform these tasks from the command line.
mysqladmin create sureinvoice cd /var/www/sureinvoice/setup/ mysql sureinvoice <sureinvoice.sql mysql sureinvoice <update-0.2-0.3.sql mysql sureinvoice <update-0.3-0.4.sql mysql sureinvoice <update-0.4-1.0.sql mysql sureinvoice <sureinvoice_initial_data.sql mysql sureinvoice <update-1.0-1.1.sql
Now you need to create a user that has access to the SureInvoice database on your mysql server. You could use the following commands to do this.
mysql sureinvoice mysql> GRANT ALL ON sureinvoice.* TO si_user@localhost IDENTIFIED BY 'si_pass';
Finally you need to create the global_config.php file to let SureInvoice know what username, password and database it should use.
cd /var/www/sureinvoice/includes cp global_config.php.dist global_config.php
Then you should edit the file with your favorite text editor to ensure the following settings are correct.
define("DB_SERVER", "localhost");
define("DB_USER", "si_user");
define("DB_PASSWORD", "si_pass");
define("DB_DATABASE", "sureinvoice");
SureInvoice is now installed and ready to be configured.
[edit] Installation from Release
The SureInvoice releases include an installer that will guide your through the installation or upgrade of SureInvoice. Consult the INSTALL file included with the release for more information on this installation method.
[edit] Initial Setup
Once SureInvoice is installed then you can login using the default username and password of admin. You should then Select Companies from the Admin Menu and edit the company called Default Company to match your companies information.
Next you should click on Users in the Admin Menu and add a new Account for yourself with the correct information. Be sure to click on the Admin and Accounting rights for the new account. Once you have completed this step, logout of SureInvoice and then log back in with your newly created account and then delete the default admin account.
The final step is to go to the Configuration screen and setup the appropriate options for your installation. This is where you setup the currency type, default tax rate and invoice information.
[edit] Getting started with SureInvoice
The first steps in using SureInvoice will be basically the same for most people. You will need to setup your item codes, users, companies, projects and tasks. If you are currently using Quickbooks to invoice your clients, you can export the client and item code information from Quickbooks into SureInvoice to simplify the setup.
[edit] Importing Data
SureInvoice allows you to import data either from Quickbooks or CSV files.
[edit] Importing QuickBooks Data
In QuickBooks choose the 'Export Lists as IIF' menu option, usually located in the File menu but it could be different based on your version of Quickbooks. In this list select Accounts, Customers and Item Codes for export, any other items you select will be ignored by SureInvoice on the import.
In SureInvoice select the Quickbooks Import menu option and then select the file that you just exported from Quickbooks and run the import. This will populate the appropriate data in SureInvoice.
[edit] Importing Time Entries
If you have been tracking time and projects through some other application you can import that information into SureInvoice using the Import Time menu option. This will take you to a guided import process that will allow you to select which columns are imported and how to match clients and projects to each row. You will need to have your Companies, Projects and Tasks defined before beginning this process.
[edit] Creating Data
Even if you import data from another source there are a few things you will need to create in SureInvoice in order to effectively use the software. At a minimum you will need Item Codes, Companies and Projects and Tasks.
[edit] Create Accounts
You only need to use accounts if you are using the QuickBooks integration features of SureInvoice and Accounts will automatically be created for you from the QuickBooks import.
[edit] Create Item Codes
Item Codes are a key concept in SureInvoice that you can use to differentiate the different services and products you provide. Everytime an entry is made into SureInvoice it is associated with an Item Code, whether it is a time entry, an expense or a scheduled billing. The combination of the Item Code and the Company determines the price for the entry.
When creating a new item code you will provide the following information.
- Code - This is the short code that must be smaller than 25 characters but should be less then 10
- Description - This is a longer description that will be seen by users when selecting the item code
- Income Account - Optional, This is the account associated with Income from this item code
- Expense Account - Optional, This is the account associated with Expense from this item code
- Cost - This is default cost of this item code and will be overridden on time entries based on the user making the entry
- Price - This is the default price for this item code, this can be overridden per company
- Taxable - Indicates whether this is a taxable item code, the tax rate will use the system default tax rate but can be overridden per company
In the case of Price and Cost the amounts are per hour rates when used with time entries. In all other entry types they are a unit price.
[edit] Create Companies
You will obviously need to create companies in SureInvoice, these will usually be your client companies. The company setup is pretty straight forward, you just enter the contact information and name for each company. Once the company is established you can add users for that company.
[edit] Set Company Pricing
If you have different prices for your services for different clients you will need to setup Company Prices for each company that has a different price then the default. You can do this from the Companies list in the Admin Menu, Click on the Gold Bars icon in the Prices column. This will show you the list of special pricing setup for this company. Click on the New Price link to establish a new price for that company. You will need to provide the following information.
- Item Code - The item code that this price override is associated with
- Price - The new company specific price for this item code
- Tax Rate - If the item code is taxable you will need to provide a new tax rate as well
Once company prices have been established they are automatically used in all areas of SureInvoice whenever the associated Item Code is used.
[edit] Define Rate Structures
If you provide variable pricing based on the number of hours used each month by your clients, you can define these rules in SureInvoice and it will automatically provide the discounts on the Invoices when you associate a company with a particular Rate Structure.
[edit] Create Users
You define both your internal users and users for your clients in the Users area of the Admin Menu. In addition to providing the contact information for each user, you will also have to setup the following.
- Company - This is the company that the user is associated with
- Rate Type - Defines how internal users are paid
- Annual Salary - If the user is a salaried employee then fill out the yearly salary
- Hourly Rate - If the user is an hourly employee then fill out the hourly rate
- Receive Invoices - Whether or not the user should receive invoice via email for their associated company
- Active - Is the user currently active
- Type Of User - If the user is a resource type they will be able to add time and projects. See User Types
- User Rights - The Admin Right gives the user the power to do anything in SureInvoice. The Accounting Right allows the user to create invoices, receive payments and do other accounting related tasks.
[edit] Create Projects & Tasks
SureInvoice uses Projects and Tasks to track time for a given client. Projects are broken down into one or more tasks where time will be recorded.
New Projects will have the following fields to be entered:
- Name: This is the name which you wish to assign the project.
- Status: This is where you assign the current status level of the project.
- Priority: The current Priority level assigned to the project.
Note both Status and Priority levels can be change in the Status & Priorities area of the Admin menu, if you have access as an Admin.
- Owner: This is the person who is the owner of the project and responsible for its outcome.
- Company: This is the company that the project is for.
- Default Item Code: This will be the default item/rate for the project. Tasks created for this project will use this rate if the bill rate is set to default when the task is created.
- Due: This is the Date when the project is scheduled to be completed.
- Sales Commissions if they are to be used are configured with the next three areas. If the are enabled, who gets the commission and how is that commission is calculated is what is setup here.
- Billable Type: There are three options for the Billable type: Hourly, Non-Billable, Flat-Rate. Hourly is for projects that the time will be billed directly to the client, Non-Billable the time will still be tracked however the client will not be invoiced for the time spent on the project, and Finally Flat-Rate which when selected will allow the ability to setup scheduled payments for milestone or periodic billing cycles.
- Description: Is a brief description of the Project for the client.
- Attachments: If there are additional files that need to be kept for a given project, like specifications or contracts, they can be uploaded from this area and made available to other project workers.
- Access: The next two sections involve the access to this project and the levels that people have.
- Notification: The section that has the current CC and add CC is where you add users that will be notified of changes to the project.
[edit] Using SureInvoice
[edit] Entering Time
[edit] Scheduled Billings
[edit] Invoicing
[edit] Payments
[edit] SureInvoice API
SureInvoice provides 2 different APIs for integration into other applications. The most efficient and most limited is the PHP API but it can only be used in other PHP applications. The most accessible API is the SOAP API that is available, this is the API used in the PocketPC version of SureInvoice, PocketSI.
[edit] PHP API
The PHP API makes available all the internal classes used by SureInvoice. You can use this API just by including the SI_API.php file into your PHP based application. We have taken care to ensure the SureInvoice class names are unique by prepending SI_ to each class name. Information about each class and what it does is available in the api docs that can be built using phpDocumentor.
[edit] SOAP API
SureInvoice provides a SOAP API that is available on each installation, this API requires authentication like the web interface and exposes only some of the PHP API. This interface is used in PocketSI and integrates seamlessly with any SOAP client implementation.
