Simple Invoice Manager

Simple Invoice Manager is a php based web app to manage your invoices/payments/quotations/customers. You can call this open & responsive invoice management solution.

Documentation Version 1.1

Installation Instruction

Requirements: Apache 2.2+, Mysql 5.4+, PHP 5.4+

  1. Copy/Upload the folder and files to your web server using cPanel or FTP
  2. If you are installing in sub folder, please make sure there is no space in folder names
  3. Create mysql database, database user and grant all permission to user for this database.
  4. Open the http://yourdomain.com/pathtoupload/install/index.php
  5. Step 1: Pre-install system checklist - If there is any issue with checklist, you will need to fix it first to proceed to next step.
  6. Step2: Provide you Envato Username and Purchase Code to validate the purchase.
  7. Step 3: Provide the database host, database user, database password and database name to proceed to next step. Please make sure you don't have $ sign in your password.
  8. Step 4: Site Config: Please Fill in you SIM Base URL and select your timezone. You must check the site url as installer might guess it wrong
    • Base URL for public_html or www/htdocs folder will be http://yourdomain.com/ or http://localhost/
    • Base URL for sub-domain will be http://subdomain.yourdomain.com/
    • Base URL for sub-folder will be http://yourdomain.com/subfolder/ or http://localhost/subfolder/
    • Base URL must not have space and it should end with a trailing slash
  9. If every thing goes smooth, You will be redirect to final page with login details.
  10. Remove the install folder and you are done. In case you have any issue after this, please refer to the FAQs section below.
  11. Login using default username and password and add new admin user before editing/delete the default user.
  12. Simple Invoice Manager is ready to use.

Request Installation

We will provide the service to install the item for $10 To request the installation, please send $10 to saleem@tecdiary.com by Paypal or Skrill and email us your license file and hosting control panel details with reference of your payment to support@tecdiary.com

Update Instruction

Requirements: Apache 2.2+, Mysql 5.4+, PHP 5.3+

  1. Backup all your files/folders and database (must do backup before stating update).
  2. Download and save sim/config/dataabse.php
  3. Delete all the files/folders from the mian directory and upload all the files and folders in new version using cPanel or FTP.
  4. Edit newly updated app/config/database.php and set the correct dbhost, dbuser, dbpass and dbname from the download database.php in step 2.
  5. Open the http://yourdomain.com/pathtoupload/update/index.php
  6. Go through the checklist and click next and verify the purchase and follow the step on screen.
  7. You will be redirect to final page and now you can login to Invoice manager with your old login.
  8. Remove the install folder and you are done. In case you have any issue after this, please refer to the FAQs section below.

Request Update

We will provide the service to update the item for $20 To request the installation, please send $20 to saleem@tecdiary.com by Paypal or Skrill and email us your license file and hosting control panel details with reference of your payment to support@tecdiary.com

Live Demo For Simple Invoice Manager V3.3

Demo Link: http://sim.tecdiary.my/

Login Details:

Role:               Username                 Password
Admin: admin@tecdiary.com 12345678
Sales staff: sales@tecdiary.com 12345678

Credits

Thanks to all great people who are developing open source software.

  • CodeIgniter - PHP-Framework under MIT License
  • Ion_auth - A simple, lightweight authentication library by Ben Edmunds under the Apache License v2
  • Bootstrap - Most popular HTML, CSS, and JS framework under MIT License
  • jQuery - A fast, small, and feature-rich JavaScript library under MIT License
  • Font Awesome - The iconic font and CSS toolkit under GPL License.
  • DataTables - A plug-in for the jQuery under two licenses: GPL v2 license or a BSD (3-point) License
  • Commercial Licenses
    • Highcharts
    • FormValidator
    • Redactor Text Editor

Thanks to all the friends for their suggestions, feedback and help.

Frequently Asked Questions

  • Error

  • Why am I getting CloudFlare Security or Blank error on verification while installation the item?

    If you are not getting any error but blank red alert or CloudFlare Security error mean your request is no reaching to verification server. Please check that you server is not blocking the curl request and secondly there are chances that CloudFlare might be challenging your request due to various reasons. Please check with your host and request them to white list CloudFlare ips https://www.cloudflare.com/ips

    Updating your Anti-Virus and Browser might help. You can check with your host too.

    You can try different host and/or install it locally with any web platform easyphp/lamp/mamp/wamp/xampp.

  • Why I am getting "no input specified" error after install/update?

    Please add the ? 'question sign' after index.php in the .htaccess file, you line will be look as RewriteRule ^(.*)$ /index.php?$1 [L]code.

    For more information, please visit this guide page. iPgae.com hosting will have same settings as godaddy.

  • Why the installer/update tool is locked?

    After successfully installation/update, the installer/update tool will be automatically locked.

    If you having any issue after installation or like to perform the installation again, please upload the files again.

  • Why am I getting 404/500 error page after installation?

    Please

    1. make sure that your apache mod_rewite is enabled
    2. check that .htaccess file is successfully uploaded and exists in the main directory of installation
    3. base_url in app/config/config.php
    4. check your database settings in app/config/database.php
    5. check your folders/files permissions (folders should have 755 and files should have 644 permissions).

    If you are using godaddy, please visit the codeigniter official guide here. You might need to check and modify you .htaccess files too.

    You can always check your error log to get more information about the issue.

  • Why time is different from my computer time?

    Invoice Manager will use your server local time (if timezone not set), please check your timezone in index.php and make sure that you have set the correct time zone. You can find your timezone at http://php.net/manual/en/timezones.php

  • Why I can't send emails?

    Invoice Manager have email protocol settings then can be set for php mail function, sendmail or smtp. If you need to view the method, please check app/libraries/sim.php and look for send_email()

  • Why I can't login and getting time out error?

    Timeout feature has been enabled. The user will be timed out after 3 unsuccessful login attempts for 10 minutes. You can disabled this in app/config/ion_auth.php by changing the $config['track_login_attempts'] = TRUE; to $config['track_login_attempts'] = FALSE; or you can increase the attempts from 3 to any number you like.

  • Why I can't upload any file?

    This could be due to permission on the /assets/uploads. Please set 777 permission to /assets/uploads and all other folder in the /assets/uploads/

  • Why I getting db error and can't login?

    Please check your db configuration in app/config/database.php

  • Can I use this on Windows server with IIS?

    Yes but we haven't tested this and don't provide any support for setup.

    If URL Rewrite module is not installed, please install it from here http://www.iis.net/downloads/microsoft/url-rewrite. Please check the complete web.config file. Place this in the main installation folder where the index.php is placed.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="Imported Rule 1" stopProcessing="true">
                        <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

  • Can I use this with NGINX?

    Yes but we haven't tested this and don't provide any support for setup.

    You can follow the guide http://wiki.nginx.org/Codeigniter. Your nginx.conf file will look like this.

    server {
        server_name domain.tld;
    
        root /var/www/codeignitor;
        index index.html index.php;
    
        # set expiration of assets to MAX for caching
        location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
            expires max;
            log_not_found off;
        }
    
        location / {
        # Check if a file or directory index file exists, else route it to index.php.
        try_files $uri $uri/ /index.php;
        }
    
        location ~* \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi.conf;
        }
    
        location ~ /files {
        deny all;
        return 404;
        }
    }

  • Why some products are missing from order when I add 100+ products?

    There is no restriction in Simple Invoice Manager on the number of order items. If you are having such issue, please check your php configuration file (php.ini) for max_input_vars and set it to higher number i.e, 10000.

  • Why Wordpress showing 404 page when I access the Simple Invoice Manager?

    You can exclude sub-directory from RewriteRule of wordpress by adding the line below to your .htaccess file in main directory of wordpress.

    RewriteCond %{REQUEST_URI} !^/(mydir|mydir/.*)$

User Guide

SIM

SIM

SIM

SIM

SIM

SIM

Adding Language

Guide to add new language.

  • Please create new folder in app/language/ and name it yourlanguagename
  • Folder name should be without space and all lower letters.
  • Copy all the files from app/language/english/ and paste then to app/language/yourlanguagename/
  • Now you can translate these all file to your language
  • Download flag image (format: png, width: 16px, height: 11px) and paste it in themes/default/assets/img/
  • You can add new key to language array. (See Code Section)

Please replace the yourlanguagename with your language For example, spanish, french, chinese etc

To add select option in setting's language

Please open themes/default/views/settings/index.php and search for ( $available_lang = ) You can replace the default with your theme if you are using different theme. You can add new array key for your language as following:

$available_lang = array(
'english' => 'English',
'yourlanguagename' => 'Your Language Name',
);

yourlanguagename must be same folder name that you created in app/language/

If you are getting the error "Unable to load the requested language file: language/yourlanguagename/form_validation_lang.php or calendar_lang.php" Then you will need to add your language in lib/language/ as you did above for app/language/ and translate the system language files to your language.

Add/Remove column to table

Here are the steps to follow

To add a column you will need to

  1. Modify the select statement and select the desired column, in the controller.
  2. Add new element to datatables columns (should be in sequence) in the relative view file.
  3. Lastly add the th tag with column heading to table head (should be in sequence).

To remove a column you will need to

  1. Modify the select statement and remove the desired column, in the controller.
  2. Remove the element form columns of datatables in the relative view file.
  3. Lastly Remove the th tag with column heading to table head.

Removing Required

To remove validation, you will need to edit few files

  1. app/controllers/sleectTheControllerYouWantEdeit
  2. themes/default/selectTheAppropriateFolderOrFile
  3. Database table to accept null value for that field

Please alter the database table to accept the null for your inputs (state).

  1. Open phpmyadmin and select the database
  2. Select the customers table
  3. Click Structure
  4. Click change on field name (state) line
  5. Tick/check the null checkbox
  6. Click Save

Now try to add customer without city. You won't get any error as we have remove the required validation for this input.

You can use these steps to remove the required field for any other fields.

Please be careful while removing the required from some fields as these might be used in other modules, like removing the required validation for email to accept customer with no email could cause issues/errors for emailing the invoice to customer.

Let say we want to remove the restriction from state from add customer

Open themes/default/views/customers/views/add.php and look for state input code

<?php echo form_input('state', '', 'class="form-control" id="state" required="required"'); ?>

We need to remove the required (you might need to check pattern) attributes. We will delete the code below

required="required"

Please check the rules in controller as app/controllers/customers.php and look for function add() and see the validation line on top as

$this->form_validation->set_rules('state', lang("state"), 'required|rule1|rule2');

Remove the required from last part of the validation. After this our validation line will look as

$this->form_validation->set_rules('state', lang("state"), 'rule1|rule2');

If there is no other rules, you can remove the full line.

Sorting Tables

We have used datatables library for all listing tables. If you need to change any table sorting column, you will need to modify the view file.

The first column of the table will start from index 0 and then increase 1 with each columns. Let say you want to sort the table with 4th column then you will need to use index 3 as "aaSorting": [[3, "asc"]],

You can change the sorting for any table by modifying the files as described here.

For example, if you need to change the sorting for customers, you will need to edit the /theme/default/customers/index.php and search

"aaSorting": [[0, "asc"]],

This is being sorted for first table column, If you want to sort it by id (2nd table column) then you will need to change as

"aaSorting": [[1, "asc"]],

You even can sort the table with multiple columns as

"aaSorting": [[0, "asc"], [1, "asc"]],

Request Installation

We will provide the service to install the item for $10 To request the installation, please send $10 to saleem@tecdiary.com by Paypal or Skrill and email us your license file and hosting control panel details with reference of your payment to support@tecdiary.com

Request Update

We will provide the service to update the item for $20 To request the update, please send $20 to saleem@tecdiary.com by Paypal or Skrill and email us your license file, old installation path/link with login details and hosting control panel details with reference of your payment to support@tecdiary.com

Custom Modifications

Yes, we do provide customization services to modify/enhance the item functionality to suit your needs. We charge $30 per hour. Please email to saleem@tecdiary.com to check availability, estimated cost and time.

Feature Request

Yes, we would love to listen your requests/feedback. Please prepare the details with examples before emailing to saleem@tecdiary.com