Initial commit

This commit is contained in:
pappastech
2014-02-25 17:34:25 -05:00
parent 26fa05cf74
commit f54ce7e1df
475 changed files with 77998 additions and 0 deletions

13
README.txt Normal file
View File

@@ -0,0 +1,13 @@
How to Install
-------------------------
1. Create/locate a new mysql database to install open source point of sale into
2. Execute the file database/database.sql to create the tables needed
3. unzip and upload Open Source Point of Sale files to web server
4. Copy application/config/database.php.tmpl to application/config/database.php
5. Modify application/config/database.php to connect to your database
6. Modify application/config/config.php encryption key with your own
7. Go to your point of sale install via the browser
8. LOGIN using
username: admin
password:pointofsale
9. Enjoy

4
UPGRADE.txt Normal file
View File

@@ -0,0 +1,4 @@
How to Upgrade
-------------------------
1. Replace all code from your point of sale installation with the code downloaded
2. Run the necessary database upgrades from the database folder

12
WHATS_NEW.txt Normal file
View File

@@ -0,0 +1,12 @@
* Ver. 2.1.0
+ Various upgrades, too numerous to list here.
+ Removed dependancy on ofc upload library due to vulnerability found.
-------------------------------------------------------------------------------
* Ver. 2.0.2
+ Fixed multiple giftcards issue per Bug #4 reported on Sourceforge where a
second giftcard added would have its balance set to $0 even if the sale did
not require the total of the second giftcard to pay the remaining amount due.
+ Small code cleanup
-------------------------------------------------------------------------------
* Upgrade to CodeIgniter 2.1.0
* Various small improvements

1
application/.htaccess Normal file
View File

@@ -0,0 +1 @@
Deny from all

1
application/cache/.htaccess vendored Normal file
View File

@@ -0,0 +1 @@
deny from all

10
application/cache/index.html vendored Normal file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| AUTO-LOADER
| -------------------------------------------------------------------
| This file specifies which systems should be loaded by default.
|
| In order to keep the framework as light-weight as possible only the
| absolute minimal resources are loaded by default. For example,
| the database is not connected to automatically since no assumption
| is made regarding whether you intend to use it. This file lets
| you globally define which systems you would like loaded with every
| request.
|
| -------------------------------------------------------------------
| Instructions
| -------------------------------------------------------------------
|
| These are the things you can load automatically:
|
| 1. Packages
| 2. Libraries
| 3. Helper files
| 4. Custom config files
| 5. Language files
| 6. Models
|
*/
/*
| -------------------------------------------------------------------
| Auto-load Packges
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
*/
$autoload['packages'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your application/libraries folder.
|
| Prototype:
|
| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/
$autoload['libraries'] = array('database','form_validation','session','user_agent', 'pagination');
/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array('form','url','table','text','currency', 'html', 'download');
/*
| -------------------------------------------------------------------
| Auto-load Config files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['config'] = array('config1', 'config2');
|
| NOTE: This item is intended for use ONLY if you have created custom
| config files. Otherwise, leave it blank.
|
*/
$autoload['config'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Language files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array('common', 'config', 'customers', 'employees', 'error', 'items', 'login', 'module', 'reports', 'sales','suppliers','receivings','giftcards', 'item_kits');
/*
| -------------------------------------------------------------------
| Auto-load Models
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('model1', 'model2');
|
*/
$autoload['model'] = array('Appconfig','Person','Customer','Employee','Module','Item', 'Item_taxes', 'Sale', 'Sale_suspended', 'Supplier','Inventory','Receiving','Giftcard', 'Item_kit', 'Item_kit_items');
/* End of file autoload.php */
/* Location: ./application/config/autoload.php */

View File

@@ -0,0 +1,375 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Code Version
|--------------------------------------------------------------------------
|
| This is the version of Open Source Point of Sale you're running
|
|
*/
$config['application_version'] = '2.1.1';
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| If this is not set then CodeIgniter will guess the protocol, domain and
| path to your installation.
|
*/
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';
/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of 'AUTO' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'AUTO';
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
| http://codeigniter.com/user_guide/general/urls.html
*/
$config['url_suffix'] = '';
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
|
| This determines which set of language files should be used. Make sure
| there is an available translation if you intend to use something other
| than english.
|
*/
$config['language'] = 'english';
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
*/
$config['charset'] = 'UTF-8';
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = TRUE;
/*
|--------------------------------------------------------------------------
| Class Extension Prefix
|--------------------------------------------------------------------------
|
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
| http://codeigniter.com/user_guide/general/core_classes.html
| http://codeigniter.com/user_guide/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'MY_';
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify with a regular expression which characters are permitted
| within your URLs. When someone tries to submit a URL with disallowed
| characters they will get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
/*
|--------------------------------------------------------------------------
| Enable Query Strings
|--------------------------------------------------------------------------
|
| By default CodeIgniter uses search-engine friendly segment based URLs:
| example.com/who/what/where/
|
| By default CodeIgniter enables access to the $_GET array. If for some
| reason you would like to disable it, set 'allow_get_array' to FALSE.
|
| You can optionally enable standard query string based URLs:
| example.com?who=me&what=something&where=here
|
| Options are: TRUE or FALSE (boolean)
|
| The other items let you set the query string 'words' that will
| invoke your controllers and its functions:
| example.com/index.php?c=controller&m=function
|
| Please note that some of the helpers won't work as expected when
| this feature is enabled, since CodeIgniter is designed primarily to
| use segment based URLs.
|
*/
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd'; // experimental not currently in use
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| If you have enabled error logging, you can set an error threshold to
| determine what gets logged. Threshold options are:
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
/*
|--------------------------------------------------------------------------
| Error Logging Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/logs/ folder. Use a full server path with trailing slash.
|
*/
$config['log_path'] = '';
/*
|--------------------------------------------------------------------------
| Date Format for Logs
|--------------------------------------------------------------------------
|
| Each item that is logged has an associated date. You can use PHP date
| codes to set your own date formatting
|
*/
$config['log_date_format'] = 'Y-m-d H:i:s';
/*
|--------------------------------------------------------------------------
| Cache Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| system/cache/ folder. Use a full server path with trailing slash.
|
*/
$config['cache_path'] = '';
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| If you use the Encryption class or the Session class you
| MUST set an encryption key. See the user guide for info.
|
*/
$config['encryption_key'] = 'PUT_YOUR_ENCRYPTION_KEY_HERE';
/*
|--------------------------------------------------------------------------
| Session Variables
|--------------------------------------------------------------------------
|
| 'sess_cookie_name' = the name you want for the cookie
| 'sess_expiration' = the number of SECONDS you want the session to last.
| by default sessions last 7200 seconds (two hours). Set to zero for no expiration.
| 'sess_expire_on_close' = Whether to cause the session to expire automatically
| when the browser window is closed
| 'sess_encrypt_cookie' = Whether to encrypt the cookie
| 'sess_use_database' = Whether to save the session data to a database
| 'sess_table_name' = The name of the session database table
| 'sess_match_ip' = Whether to match the user's IP address when reading the session data
| 'sess_match_useragent' = Whether to match the User Agent when reading the session data
| 'sess_time_to_update' = how many seconds between CI refreshing Session Information
|
*/
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ospos_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
/*
|--------------------------------------------------------------------------
| Cookie Related Variables
|--------------------------------------------------------------------------
|
| 'cookie_prefix' = Set a prefix if you need to avoid collisions
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
| 'cookie_path' = Typically will be a forward slash
| 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists.
|
*/
$config['cookie_prefix'] = "";
$config['cookie_domain'] = "";
$config['cookie_path'] = "/";
$config['cookie_secure'] = FALSE;
/*
|--------------------------------------------------------------------------
| Global XSS Filtering
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
*/
$config['global_xss_filtering'] = FALSE;
/*
|--------------------------------------------------------------------------
| Cross Site Request Forgery
|--------------------------------------------------------------------------
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
| checked on a submitted form. If you are accepting user data, it is strongly
| recommended CSRF protection be enabled.
|
| 'csrf_token_name' = The token name
| 'csrf_cookie_name' = The cookie name
| 'csrf_expire' = The number in seconds the token should expire.
*/
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
/*
|--------------------------------------------------------------------------
| Output Compression
|--------------------------------------------------------------------------
|
| Enables Gzip output compression for faster page loads. When enabled,
| the output class will test whether your server supports Gzip.
| Even if it does, however, not all browsers support compression
| so enable only if you are reasonably sure your visitors can handle it.
|
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
| means you are prematurely outputting something to your browser. It could
| even be a line of whitespace at the end of one of your scripts. For
| compression to work, nothing can be sent before the output buffer is called
| by the output class. Do not 'echo' any values with compression enabled.
|
*/
$config['compress_output'] = FALSE;
/*
|--------------------------------------------------------------------------
| Master Time Reference
|--------------------------------------------------------------------------
|
| Options are 'local' or 'gmt'. This pref tells the system whether to use
| your server's local time as the master 'now' reference, or convert it to
| GMT. See the 'date helper' page of the user guide for information
| regarding date handling.
|
*/
$config['time_reference'] = 'local';
/*
|--------------------------------------------------------------------------
| Rewrite PHP Short Tags
|--------------------------------------------------------------------------
|
| If your PHP installation does not have short tag support enabled CI
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
| in your view files. Options are TRUE or FALSE (boolean)
|
*/
$config['rewrite_short_tags'] = FALSE;
/*
|--------------------------------------------------------------------------
| Reverse Proxy IPs
|--------------------------------------------------------------------------
|
| If your server is behind a reverse proxy, you must whitelist the proxy IP
| addresses from which CodeIgniter should trust the HTTP_X_FORWARDED_FOR
| header in order to properly identify the visitor's IP address.
| Comma-delimited, e.g. '10.0.1.200,10.0.1.201'
|
*/
$config['proxy_ips'] = '';
/* End of file config.php */
/* Location: ./application/config/config.php */

View File

@@ -0,0 +1,41 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| File and Directory Modes
|--------------------------------------------------------------------------
|
| These prefs are used when checking and setting modes when working
| with the file system. The defaults are fine on servers with proper
| security, but you may wish (or even need) to change the values in
| certain environments (Apache running a separate process for each
| user, PHP under CGI with Apache suEXEC, etc.). Octal values should
| always be used to set the mode correctly.
|
*/
define('FILE_READ_MODE', 0644);
define('FILE_WRITE_MODE', 0666);
define('DIR_READ_MODE', 0755);
define('DIR_WRITE_MODE', 0777);
/*
|--------------------------------------------------------------------------
| File Stream Modes
|--------------------------------------------------------------------------
|
| These modes are used when working with fopen()/popen()
|
*/
define('FOPEN_READ', 'rb');
define('FOPEN_READ_WRITE', 'r+b');
define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
define('FOPEN_WRITE_CREATE', 'ab');
define('FOPEN_READ_WRITE_CREATE', 'a+b');
define('FOPEN_WRITE_CREATE_STRICT', 'xb');
define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
/* End of file constants.php */
/* Location: ./application/config/constants.php */

View File

@@ -0,0 +1,69 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database type. ie: mysql. Currently supported:
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Active Record class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
| NOTE: For MySQL and MySQLi databases, this setting is only used
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
| (and in table creation queries made with DB Forge).
| There is an incompatibility in PHP with mysql_real_escape_string() which
| can make your site vulnerable to SQL injection if you are using a
| multi-byte character set and are running versions lower than these.
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['autoinit'] Whether or not to automatically initialize the database.
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing
|
| The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the 'default' group).
|
| The $active_record variables lets you determine whether or not to load
| the active record class
*/
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'ospos_';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
/* End of file database.php */
/* Location: ./application/config/database.php */

View File

@@ -0,0 +1,15 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$_doctypes = array(
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'
);
/* End of file doctypes.php */
/* Location: ./application/config/doctypes.php */

View File

@@ -0,0 +1,64 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| Foreign Characters
| -------------------------------------------------------------------
| This file contains an array of foreign characters for transliteration
| conversion used by the Text helper
|
*/
$foreign_characters = array(
'/ä|æ|ǽ/' => 'ae',
'/ö|œ/' => 'oe',
'/ü/' => 'ue',
'/Ä/' => 'Ae',
'/Ü/' => 'Ue',
'/Ö/' => 'Oe',
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
'/ç|ć|ĉ|ċ|č/' => 'c',
'/Ð|Ď|Đ/' => 'D',
'/ð|ď|đ/' => 'd',
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
'/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
'/Ĝ|Ğ|Ġ|Ģ/' => 'G',
'/ĝ|ğ|ġ|ģ/' => 'g',
'/Ĥ|Ħ/' => 'H',
'/ĥ|ħ/' => 'h',
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
'/Ĵ/' => 'J',
'/ĵ/' => 'j',
'/Ķ/' => 'K',
'/ķ/' => 'k',
'/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
'/ĺ|ļ|ľ|ŀ|ł/' => 'l',
'/Ñ|Ń|Ņ|Ň/' => 'N',
'/ñ|ń|ņ|ň|ʼn/' => 'n',
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
'/Ŕ|Ŗ|Ř/' => 'R',
'/ŕ|ŗ|ř/' => 'r',
'/Ś|Ŝ|Ş|Š/' => 'S',
'/ś|ŝ|ş|š|ſ/' => 's',
'/Ţ|Ť|Ŧ/' => 'T',
'/ţ|ť|ŧ/' => 't',
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
'/Ý|Ÿ|Ŷ/' => 'Y',
'/ý|ÿ|ŷ/' => 'y',
'/Ŵ/' => 'W',
'/ŵ/' => 'w',
'/Ź|Ż|Ž/' => 'Z',
'/ź|ż|ž/' => 'z',
'/Æ|Ǽ/' => 'AE',
'/ß/'=> 'ss',
'/IJ/' => 'IJ',
'/ij/' => 'ij',
'/Œ/' => 'OE',
'/ƒ/' => 'f'
);
/* End of file foreign_chars.php */
/* Location: ./application/config/foreign_chars.php */

View File

@@ -0,0 +1,21 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
| http://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['post_controller_constructor'] = array(
'class' => '',
'function' => 'load_config',
'filename' => 'load_config.php',
'filepath' => 'hooks'
);
/* End of file hooks.php */
/* Location: ./application/config/hooks.php */

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<?php defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Enable/Disable Migrations
|--------------------------------------------------------------------------
|
| Migrations are disabled by default but should be enabled
| whenever you intend to do a schema migration.
|
*/
$config['migration_enabled'] = FALSE;
/*
|--------------------------------------------------------------------------
| Migrations version
|--------------------------------------------------------------------------
|
| This is used to set migration version that the file system should be on.
| If you run $this->migration->latest() this is the version that schema will
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 0;
/*
|--------------------------------------------------------------------------
| Migrations Path
|--------------------------------------------------------------------------
|
| Path to your migrations folder.
| Typically, it will be within your application path.
| Also, writing permission is required within the migrations path.
|
*/
$config['migration_path'] = APPPATH . 'migrations/';
/* End of file migration.php */
/* Location: ./application/config/migration.php */

View File

@@ -0,0 +1,106 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| MIME TYPES
| -------------------------------------------------------------------
| This file contains an array of mime types. It is used by the
| Upload class to help identify allowed file types.
|
*/
$mimes = array( 'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
'bin' => 'application/macbinary',
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => 'application/x-photoshop',
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/x-download'),
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'php' => 'application/x-httpd-php',
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => 'application/x-javascript',
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-windows-bmp'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'png' => array('image/png', 'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'css' => 'text/css',
'html' => 'text/html',
'htm' => 'text/html',
'shtml' => 'text/html',
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => 'text/xml',
'xsl' => 'text/xml',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => 'video/x-msvideo',
'movie' => 'video/x-sgi-movie',
'doc' => 'application/msword',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json')
);
/* End of file mimes.php */
/* Location: ./application/config/mimes.php */

View File

@@ -0,0 +1,17 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Profiler Sections
| -------------------------------------------------------------------------
| This file lets you determine whether or not various sections of Profiler
| data are displayed when the Profiler is enabled.
| Please see the user guide for info:
|
| http://codeigniter.com/user_guide/general/profiling.html
|
*/
/* End of file profiler.php */
/* Location: ./application/config/profiler.php */

View File

@@ -0,0 +1,63 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| URI ROUTING
| -------------------------------------------------------------------------
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| http://codeigniter.com/user_guide/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
| -------------------------------------------------------------------------
|
| There area two reserved routes:
|
| $route['default_controller'] = 'welcome';
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the "welcome" class
| would be loaded.
|
| $route['404_override'] = 'errors/page_missing';
|
| This route will tell the Router what URI segments to use if those provided
| in the URL cannot be matched to a valid route.
|
*/
$route['default_controller'] = "login";
$route['no_access/(:any)'] = "no_access/index/$1";
$route['reports/(summary_:any)/(:any)/(:any)'] = "reports/$1/$2/$3";
$route['reports/summary_:any'] = "reports/date_input_excel_export";
$route['reports/(graphical_:any)/(:any)/(:any)'] = "reports/$1/$2/$3";
$route['reports/graphical_:any'] = "reports/date_input";
$route['reports/(inventory_:any)/(:any)'] = "reports/$1/$2";
$route['reports/inventory_:any'] = "reports/excel_export";
$route['reports/(detailed_sales)/(:any)/(:any)'] = "reports/$1/$2/$3";
$route['reports/detailed_sales'] = "reports/date_input";
$route['reports/(detailed_receivings)/(:any)/(:any)'] = "reports/$1/$2/$3";
$route['reports/detailed_receivings'] = "reports/date_input";
$route['reports/(specific_:any)/(:any)/(:any)/(:any)'] = "reports/$1/$2/$3/$4";
$route['reports/specific_customer'] = "reports/specific_customer_input";
$route['reports/specific_employee'] = "reports/specific_employee_input";
$route['scaffolding_trigger'] = "";
$route['404_override'] = 'errors/page_missing';
/* End of file routes.php */
/* Location: ./application/config/routes.php */

View File

@@ -0,0 +1,66 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| SMILEYS
| -------------------------------------------------------------------
| This file contains an array of smileys for use with the emoticon helper.
| Individual images can be used to replace multiple simileys. For example:
| :-) and :) use the same image replacement.
|
| Please see user guide for more info:
| http://codeigniter.com/user_guide/helpers/smiley_helper.html
|
*/
$smileys = array(
// smiley image name width height alt
':-)' => array('grin.gif', '19', '19', 'grin'),
':lol:' => array('lol.gif', '19', '19', 'LOL'),
':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
':)' => array('smile.gif', '19', '19', 'smile'),
';-)' => array('wink.gif', '19', '19', 'wink'),
';)' => array('wink.gif', '19', '19', 'wink'),
':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
':-S' => array('confused.gif', '19', '19', 'confused'),
':wow:' => array('surprise.gif', '19', '19', 'surprised'),
':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
'%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
':P' => array('raspberry.gif', '19', '19', 'raspberry'),
':blank:' => array('blank.gif', '19', '19', 'blank stare'),
':long:' => array('longface.gif', '19', '19', 'long face'),
':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
'8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
':down:' => array('downer.gif', '19', '19', 'downer'),
':red:' => array('embarrassed.gif', '19', '19', 'red face'),
':sick:' => array('sick.gif', '19', '19', 'sick'),
':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
':-/' => array('hmm.gif', '19', '19', 'hmmm'),
'>:(' => array('mad.gif', '19', '19', 'mad'),
':mad:' => array('mad.gif', '19', '19', 'mad'),
'>:-(' => array('angry.gif', '19', '19', 'angry'),
':angry:' => array('angry.gif', '19', '19', 'angry'),
':zip:' => array('zip.gif', '19', '19', 'zipper'),
':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
':ahhh:' => array('shock.gif', '19', '19', 'shock'),
':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
':snake:' => array('snake.gif', '19', '19', 'snake'),
':exclaim:' => array('exclaim.gif', '19', '19', 'excaim'),
':question:' => array('question.gif', '19', '19', 'question') // no comma after last item
);
/* End of file smileys.php */
/* Location: ./application/config/smileys.php */

View File

@@ -0,0 +1,178 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| USER AGENT TYPES
| -------------------------------------------------------------------
| This file contains four arrays of user agent data. It is used by the
| User Agent Class to help identify browser, platform, robot, and
| mobile device data. The array keys are used to identify the device
| and the array values are used to set the actual name of the item.
|
*/
$platforms = array (
'windows nt 6.0' => 'Windows Longhorn',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.0' => 'Windows 2000',
'windows nt 5.1' => 'Windows XP',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows' => 'Unknown Windows OS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS'
);
// The order of this array should NOT be changed. Many browsers return
// multiple browser types so we want to identify the sub-type first.
$browsers = array(
'Flock' => 'Flock',
'Chrome' => 'Chrome',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse'
);
$mobiles = array(
// legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm',
'palmsource' => 'Palm',
// 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino',
'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola'
// Phones and Manufacturers
'motorola' => "Motorola",
'nokia' => "Nokia",
'palm' => "Palm",
'iphone' => "Apple iPhone",
'ipad' => "iPad",
'ipod' => "Apple iPod Touch",
'sony' => "Sony Ericsson",
'ericsson' => "Sony Ericsson",
'blackberry' => "BlackBerry",
'cocoon' => "O2 Cocoon",
'blazer' => "Treo",
'lg' => "LG",
'amoi' => "Amoi",
'xda' => "XDA",
'mda' => "MDA",
'vario' => "Vario",
'htc' => "HTC",
'samsung' => "Samsung",
'sharp' => "Sharp",
'sie-' => "Siemens",
'alcatel' => "Alcatel",
'benq' => "BenQ",
'ipaq' => "HP iPaq",
'mot-' => "Motorola",
'playstation portable' => "PlayStation Portable",
'hiptop' => "Danger Hiptop",
'nec-' => "NEC",
'panasonic' => "Panasonic",
'philips' => "Philips",
'sagem' => "Sagem",
'sanyo' => "Sanyo",
'spv' => "SPV",
'zte' => "ZTE",
'sendo' => "Sendo",
// Operating Systems
'symbian' => "Symbian",
'SymbianOS' => "SymbianOS",
'elaine' => "Palm",
'palm' => "Palm",
'series60' => "Symbian S60",
'windows ce' => "Windows CE",
// Browsers
'obigo' => "Obigo",
'netfront' => "Netfront Browser",
'openwave' => "Openwave Browser",
'mobilexplorer' => "Mobile Explorer",
'operamini' => "Opera Mini",
'opera mini' => "Opera Mini",
// Other
'digital paths' => "Digital Paths",
'avantgo' => "AvantGo",
'xiino' => "Xiino",
'novarra' => "Novarra Transcoder",
'vodafone' => "Vodafone",
'docomo' => "NTT DoCoMo",
'o2' => "O2",
// Fallback
'mobile' => "Generic Mobile",
'wireless' => "Generic Mobile",
'j2me' => "Generic Mobile",
'midp' => "Generic Mobile",
'cldc' => "Generic Mobile",
'up.link' => "Generic Mobile",
'up.browser' => "Generic Mobile",
'smartphone' => "Generic Mobile",
'cellphone' => "Generic Mobile"
);
// There are hundreds of bots but these are the most common.
$robots = array(
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'askjeeves' => 'AskJeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos'
);
/* End of file user_agents.php */
/* Location: ./application/config/user_agents.php */

View File

@@ -0,0 +1,14 @@
<?php
class Barcode extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('barcode');
}
}
?>

View File

@@ -0,0 +1,52 @@
<?php
require_once ("secure_area.php");
class Config extends Secure_area
{
function __construct()
{
parent::__construct('config');
}
function index()
{
$this->load->view("config");
}
function save()
{
$batch_save_data=array(
'company'=>$this->input->post('company'),
'address'=>$this->input->post('address'),
'phone'=>$this->input->post('phone'),
'email'=>$this->input->post('email'),
'fax'=>$this->input->post('fax'),
'website'=>$this->input->post('website'),
'default_tax_1_rate'=>$this->input->post('default_tax_1_rate'),
'default_tax_1_name'=>$this->input->post('default_tax_1_name'),
'default_tax_2_rate'=>$this->input->post('default_tax_2_rate'),
'default_tax_2_name'=>$this->input->post('default_tax_2_name'),
'currency_symbol'=>$this->input->post('currency_symbol'),
'currency_side'=>$this->input->post('currency_side'),/**GARRISON ADDED 4/20/2013**/
'return_policy'=>$this->input->post('return_policy'),
'language'=>$this->input->post('language'),
'timezone'=>$this->input->post('timezone'),
'print_after_sale'=>$this->input->post('print_after_sale'),
'custom1_name'=>$this->input->post('custom1_name'),/**GARRISON ADDED 4/20/2013**/
'custom2_name'=>$this->input->post('custom2_name'),/**GARRISON ADDED 4/20/2013**/
'custom3_name'=>$this->input->post('custom3_name'),/**GARRISON ADDED 4/20/2013**/
'custom4_name'=>$this->input->post('custom4_name'),/**GARRISON ADDED 4/20/2013**/
'custom5_name'=>$this->input->post('custom5_name'),/**GARRISON ADDED 4/20/2013**/
'custom6_name'=>$this->input->post('custom6_name'),/**GARRISON ADDED 4/20/2013**/
'custom7_name'=>$this->input->post('custom7_name'),/**GARRISON ADDED 4/20/2013**/
'custom8_name'=>$this->input->post('custom8_name'),/**GARRISON ADDED 4/20/2013**/
'custom9_name'=>$this->input->post('custom9_name'),/**GARRISON ADDED 4/20/2013**/
'custom10_name'=>$this->input->post('custom10_name')/**GARRISON ADDED 4/20/2013**/
);
if( $this->Appconfig->batch_save( $batch_save_data ) )
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('config_saved_successfully')));
}
}
}
?>

View File

@@ -0,0 +1,201 @@
<?php
require_once ("person_controller.php");
class Customers extends Person_controller
{
function __construct()
{
parent::__construct('customers');
}
function index()
{
$config['base_url'] = site_url('/customers/index');
$config['total_rows'] = $this->Customer->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_people_manage_table( $this->Customer->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('people/manage',$data);
}
/*
Returns customer table data rows. This will be called with AJAX.
*/
function search()
{
$search=$this->input->post('search');
$data_rows=get_people_manage_table_data_rows($this->Customer->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Customer->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/*
Loads the customer edit form
*/
function view($customer_id=-1)
{
$data['person_info']=$this->Customer->get_info($customer_id);
$this->load->view("customers/form",$data);
}
/*
Inserts/updates a customer
*/
function save($customer_id=-1)
{
$person_data = array(
'first_name'=>$this->input->post('first_name'),
'last_name'=>$this->input->post('last_name'),
'email'=>$this->input->post('email'),
'phone_number'=>$this->input->post('phone_number'),
'address_1'=>$this->input->post('address_1'),
'address_2'=>$this->input->post('address_2'),
'city'=>$this->input->post('city'),
'state'=>$this->input->post('state'),
'zip'=>$this->input->post('zip'),
'country'=>$this->input->post('country'),
'comments'=>$this->input->post('comments')
);
$customer_data=array(
'account_number'=>$this->input->post('account_number')=='' ? null:$this->input->post('account_number'),
'taxable'=>$this->input->post('taxable')=='' ? 0:1,
);
if($this->Customer->save($person_data,$customer_data,$customer_id))
{
//New customer
if($customer_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('customers_successful_adding').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>$customer_data['person_id']));
}
else //previous customer
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('customers_successful_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>$customer_id));
}
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('customers_error_adding_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>-1));
}
}
/*
This deletes customers from the customers table
*/
function delete()
{
$customers_to_delete=$this->input->post('ids');
if($this->Customer->delete_list($customers_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('customers_successful_deleted').' '.
count($customers_to_delete).' '.$this->lang->line('customers_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('customers_cannot_be_deleted')));
}
}
function excel()
{
$data = file_get_contents("import_customers.csv");
$name = 'import_customers.csv';
force_download($name, $data);
}
function excel_import()
{
$this->load->view("customers/excel_import", null);
}
function do_excel_import()
{
$msg = 'do_excel_import';
$failCodes = array();
if ($_FILES['file_path']['error']!=UPLOAD_ERR_OK)
{
$msg = $this->lang->line('items_excel_import_failed');
echo json_encode( array('success'=>false,'message'=>$msg) );
return;
}
else
{
if (($handle = fopen($_FILES['file_path']['tmp_name'], "r")) !== FALSE)
{
//Skip first row
fgetcsv($handle);
$i=1;
while (($data = fgetcsv($handle)) !== FALSE)
{
$person_data = array(
'first_name'=>$data[0],
'last_name'=>$data[1],
'email'=>$data[2],
'phone_number'=>$data[3],
'address_1'=>$data[4],
'address_2'=>$data[5],
'city'=>$data[6],
'state'=>$data[7],
'zip'=>$data[8],
'country'=>$data[9],
'comments'=>$data[10]
);
$customer_data=array(
'account_number'=>$data[11]=='' ? null:$data[11],
'taxable'=>$data[12]=='' ? 0:1,
);
if(!$this->Customer->save($person_data,$customer_data))
{
$failCodes[] = $i;
}
$i++;
}
}
else
{
echo json_encode( array('success'=>false,'message'=>'Your upload file has no data or not in supported format.') );
return;
}
}
$success = true;
if(count($failCodes) > 1)
{
$msg = "Most customers imported. But some were not, here is list of their CODE (" .count($failCodes) ."): ".implode(", ", $failCodes);
$success = false;
}
else
{
$msg = "Import Customers successful";
}
echo json_encode( array('success'=>$success,'message'=>$msg) );
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 350;
}
}
?>

View File

@@ -0,0 +1,132 @@
<?php
require_once ("person_controller.php");
class Employees extends Person_controller
{
function __construct()
{
parent::__construct('employees');
}
function index()
{
$config['base_url'] = site_url('/employees/index');
$config['total_rows'] = $this->Employee->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_people_manage_table( $this->Employee->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('people/manage',$data);
}
/*
Returns employee table data rows. This will be called with AJAX.
*/
function search()
{
$search=$this->input->post('search');
$data_rows=get_people_manage_table_data_rows($this->Employee->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Employee->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/*
Loads the employee edit form
*/
function view($employee_id=-1)
{
$data['person_info']=$this->Employee->get_info($employee_id);
$data['all_modules']=$this->Module->get_all_modules();
$this->load->view("employees/form",$data);
}
/*
Inserts/updates an employee
*/
function save($employee_id=-1)
{
$person_data = array(
'first_name'=>$this->input->post('first_name'),
'last_name'=>$this->input->post('last_name'),
'email'=>$this->input->post('email'),
'phone_number'=>$this->input->post('phone_number'),
'address_1'=>$this->input->post('address_1'),
'address_2'=>$this->input->post('address_2'),
'city'=>$this->input->post('city'),
'state'=>$this->input->post('state'),
'zip'=>$this->input->post('zip'),
'country'=>$this->input->post('country'),
'comments'=>$this->input->post('comments')
);
$permission_data = $this->input->post("permissions")!=false ? $this->input->post("permissions"):array();
//Password has been changed OR first time password set
if($this->input->post('password')!='')
{
$employee_data=array(
'username'=>$this->input->post('username'),
'password'=>md5($this->input->post('password'))
);
}
else //Password not changed
{
$employee_data=array('username'=>$this->input->post('username'));
}
if($this->Employee->save($person_data,$employee_data,$permission_data,$employee_id))
{
//New employee
if($employee_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('employees_successful_adding').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>$employee_data['person_id']));
}
else //previous employee
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('employees_successful_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>$employee_id));
}
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('employees_error_adding_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>-1));
}
}
/*
This deletes employees from the employees table
*/
function delete()
{
$employees_to_delete=$this->input->post('ids');
if($this->Employee->delete_list($employees_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('employees_successful_deleted').' '.
count($employees_to_delete).' '.$this->lang->line('employees_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('employees_cannot_be_deleted')));
}
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 650;
}
}
?>

View File

@@ -0,0 +1,117 @@
<?php
require_once ("secure_area.php");
require_once ("interfaces/idata_controller.php");
class Giftcards extends Secure_area implements iData_controller
{
function __construct()
{
parent::__construct('giftcards');
}
function index()
{
$config['base_url'] = site_url('/giftcards/index');
$config['total_rows'] = $this->Giftcard->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_giftcards_manage_table( $this->Giftcard->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('giftcards/manage',$data);
}
function search()
{
$search=$this->input->post('search');
$data_rows=get_giftcards_manage_table_data_rows($this->Giftcard->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Giftcard->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/** GARRISON ADDED 5/3/2013 **/
/*
Gives search suggestions for person_id based on what is being searched for
*/
function suggest_person()
{
$suggestions = $this->Giftcard->get_person_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/** END GARRISON ADDED **/
function get_row()
{
$giftcard_id = $this->input->post('row_id');
$data_row=get_giftcard_data_row($this->Giftcard->get_info($giftcard_id),$this);
echo $data_row;
}
function view($giftcard_id=-1)
{
$data['giftcard_info']=$this->Giftcard->get_info($giftcard_id);
$this->load->view("giftcards/form",$data);
}
function save($giftcard_id=-1)
{
$giftcard_data = array(
'giftcard_number'=>$this->input->post('giftcard_number'),
'value'=>$this->input->post('value'),
'person_id'=>$this->input->post('person_id')/**GARRISON ADDED 4/22/2013**/
);
if( $this->Giftcard->save( $giftcard_data, $giftcard_id ) )
{
//New giftcard
if($giftcard_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('giftcards_successful_adding').' '.
$giftcard_data['giftcard_number'],'giftcard_id'=>$giftcard_data['giftcard_id']));
$giftcard_id = $giftcard_data['giftcard_id'];
}
else //previous giftcard
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('giftcards_successful_updating').' '.
$giftcard_data['giftcard_number'],'giftcard_id'=>$giftcard_id));
}
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('giftcards_error_adding_updating').' '.
$giftcard_data['giftcard_number'],'giftcard_id'=>-1));
}
}
function delete()
{
$giftcards_to_delete=$this->input->post('ids');
if($this->Giftcard->delete_list($giftcards_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('giftcards_successful_deleted').' '.
count($giftcards_to_delete).' '.$this->lang->line('giftcards_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('giftcards_cannot_be_deleted')));
}
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 360;
}
}
?>

View File

@@ -0,0 +1,21 @@
<?php
require_once ("secure_area.php");
class Home extends Secure_area
{
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view("home");
}
function logout()
{
$this->Employee->logout();
}
}
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,17 @@
<?php
/*
This interface is implemented by any controller that keeps track of data items, such
as the customers, employees, and items controllers.
*/
interface iData_controller
{
public function index();
public function search();
public function suggest();
public function get_row();
public function view($data_item_id=-1);
public function save($data_item_id=-1);
public function delete();
public function get_form_width();
}
?>

View File

@@ -0,0 +1,11 @@
<?php
/*
This interface is implemented by any controller that keeps track of people, such
as customers and employees.
*/
require_once("idata_controller.php");
interface iPerson_controller extends iData_controller
{
public function mailto();
}
?>

View File

@@ -0,0 +1,138 @@
<?php
require_once ("secure_area.php");
require_once ("interfaces/idata_controller.php");
class Item_kits extends Secure_area implements iData_controller
{
function __construct()
{
parent::__construct('item_kits');
}
function index()
{
$config['base_url'] = site_url('/item_kits/index');
$config['total_rows'] = $this->Item_kit->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_item_kits_manage_table( $this->Item_kit->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('item_kits/manage',$data);
}
function search()
{
$search=$this->input->post('search');
$data_rows=get_item_kits_manage_table_data_rows($this->Item_kit->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Item_kit->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
function get_row()
{
$item_kit_id = $this->input->post('row_id');
$data_row=get_item_kit_data_row($this->Item_kit->get_info($item_kit_id),$this);
echo $data_row;
}
function view($item_kit_id=-1)
{
$data['item_kit_info']=$this->Item_kit->get_info($item_kit_id);
$this->load->view("item_kits/form",$data);
}
function save($item_kit_id=-1)
{
$item_kit_data = array(
'name'=>$this->input->post('name'),
'description'=>$this->input->post('description')
);
if($this->Item_kit->save($item_kit_data,$item_kit_id))
{
//New item kit
if($item_kit_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('item_kits_successful_adding').' '.
$item_kit_data['name'],'item_kit_id'=>$item_kit_data['item_kit_id']));
$item_kit_id = $item_kit_data['item_kit_id'];
}
else //previous item
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('item_kits_successful_updating').' '.
$item_kit_data['name'],'item_kit_id'=>$item_kit_id));
}
if ($this->input->post('item_kit_item'))
{
$item_kit_items = array();
foreach($this->input->post('item_kit_item') as $item_id => $quantity)
{
$item_kit_items[] = array(
'item_id' => $item_id,
'quantity' => $quantity
);
}
$this->Item_kit_items->save($item_kit_items, $item_kit_id);
}
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('item_kits_error_adding_updating').' '.
$item_kit_data['name'],'item_kit_id'=>-1));
}
}
function delete()
{
$item_kits_to_delete=$this->input->post('ids');
if($this->Item_kit->delete_list($item_kits_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('item_kits_successful_deleted').' '.
count($item_kits_to_delete).' '.$this->lang->line('item_kits_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('item_kits_cannot_be_deleted')));
}
}
function generate_barcodes($item_kit_ids)
{
$result = array();
$item_kit_ids = explode(':', $item_kit_ids);
foreach ($item_kit_ids as $item_kid_id)
{
$item_kit_info = $this->Item_kit->get_info($item_kid_id);
$result[] = array('name' =>$item_kit_info->name, 'id'=> 'KIT '.$item_kid_id);
}
$data['items'] = $result;
$this->load->view("barcode_sheet", $data);
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 360;
}
}
?>

View File

@@ -0,0 +1,551 @@
<?php
require_once ("secure_area.php");
require_once ("interfaces/idata_controller.php");
class Items extends Secure_area implements iData_controller
{
function __construct()
{
parent::__construct('items');
}
function index()
{
$config['base_url'] = site_url('/items/index');
$config['total_rows'] = $this->Item->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_items_manage_table( $this->Item->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('items/manage',$data);
}
function refresh()
{
$low_inventory=$this->input->post('low_inventory');
$is_serialized=$this->input->post('is_serialized');
$no_description=$this->input->post('no_description');
$search_custom=$this->input->post('search_custom');//GARRISON ADDED 4/13/2013
$data['search_section_state']=$this->input->post('search_section_state');
$data['low_inventory']=$this->input->post('low_inventory');
$data['is_serialized']=$this->input->post('is_serialized');
$data['no_description']=$this->input->post('no_description');
$data['search_custom']=$this->input->post('search_custom');//GARRISON ADDED 4/13/2013
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_items_manage_table($this->Item->get_all_filtered($low_inventory,$is_serialized,$no_description,$search_custom),$this);//GARRISON MODIFIED 4/13/2013
$this->load->view('items/manage',$data);
}
function find_item_info()
{
$item_number=$this->input->post('scan_item_number');
echo json_encode($this->Item->find_item_info($item_number));
}
function search()
{
$search=$this->input->post('search');
$data_rows=get_items_manage_table_data_rows($this->Item->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Item->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
function item_search()
{
$suggestions = $this->Item->get_item_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_category()
{
$suggestions = $this->Item->get_category_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/**GARRISON ADDED 5/18/2013**/
/*
Gives search suggestions based on what is being searched for
*/
function suggest_location()
{
$suggestions = $this->Item->get_location_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom1()
{
$suggestions = $this->Item->get_custom1_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom2()
{
$suggestions = $this->Item->get_custom2_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom3()
{
$suggestions = $this->Item->get_custom3_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom4()
{
$suggestions = $this->Item->get_custom4_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom5()
{
$suggestions = $this->Item->get_custom5_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom6()
{
$suggestions = $this->Item->get_custom6_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom7()
{
$suggestions = $this->Item->get_custom7_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom8()
{
$suggestions = $this->Item->get_custom8_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom9()
{
$suggestions = $this->Item->get_custom9_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest_custom10()
{
$suggestions = $this->Item->get_custom10_suggestions($this->input->post('q'));
echo implode("\n",$suggestions);
}
/**END GARRISON ADDED**/
function get_row()
{
$item_id = $this->input->post('row_id');
$data_row=get_item_data_row($this->Item->get_info($item_id),$this);
echo $data_row;
}
function view($item_id=-1)
{
$data['item_info']=$this->Item->get_info($item_id);
$data['item_tax_info']=$this->Item_taxes->get_info($item_id);
$suppliers = array('' => $this->lang->line('items_none'));
foreach($this->Supplier->get_all()->result_array() as $row)
{
$suppliers[$row['person_id']] = $row['company_name'] .' ('.$row['first_name'] .' '. $row['last_name'].')';
}
$data['suppliers']=$suppliers;
$data['selected_supplier'] = $this->Item->get_info($item_id)->supplier_id;
$data['default_tax_1_rate']=($item_id==-1) ? $this->Appconfig->get('default_tax_1_rate') : '';
$data['default_tax_2_rate']=($item_id==-1) ? $this->Appconfig->get('default_tax_2_rate') : '';
$this->load->view("items/form",$data);
}
//Ramel Inventory Tracking
function inventory($item_id=-1)
{
$data['item_info']=$this->Item->get_info($item_id);
$this->load->view("items/inventory",$data);
}
function count_details($item_id=-1)
{
$data['item_info']=$this->Item->get_info($item_id);
$this->load->view("items/count_details",$data);
} //------------------------------------------- Ramel
function generate_barcodes($item_ids)
{
$result = array();
$item_ids = explode(':', $item_ids);
foreach ($item_ids as $item_id)
{
$item_info = $this->Item->get_info($item_id);
$result[] = array('name' =>$item_info->name, 'id'=> $item_id);
}
$data['items'] = $result;
$this->load->view("barcode_sheet", $data);
}
function bulk_edit()
{
$data = array();
$suppliers = array('' => $this->lang->line('items_none'));
foreach($this->Supplier->get_all()->result_array() as $row)
{
$suppliers[$row['person_id']] = $row['first_name'] .' '. $row['last_name'];
}
$data['suppliers'] = $suppliers;
$data['allow_alt_desciption_choices'] = array(
''=>$this->lang->line('items_do_nothing'),
1 =>$this->lang->line('items_change_all_to_allow_alt_desc'),
0 =>$this->lang->line('items_change_all_to_not_allow_allow_desc'));
$data['serialization_choices'] = array(
''=>$this->lang->line('items_do_nothing'),
1 =>$this->lang->line('items_change_all_to_serialized'),
0 =>$this->lang->line('items_change_all_to_unserialized'));
$this->load->view("items/form_bulk", $data);
}
function save($item_id=-1)
{
$item_data = array(
'name'=>$this->input->post('name'),
'description'=>$this->input->post('description'),
'category'=>$this->input->post('category'),
'supplier_id'=>$this->input->post('supplier_id')=='' ? null:$this->input->post('supplier_id'),
'item_number'=>$this->input->post('item_number')=='' ? null:$this->input->post('item_number'),
'cost_price'=>$this->input->post('cost_price'),
'unit_price'=>$this->input->post('unit_price'),
'quantity'=>$this->input->post('quantity'),
'reorder_level'=>$this->input->post('reorder_level'),
'location'=>$this->input->post('location'),
'allow_alt_description'=>$this->input->post('allow_alt_description'),
'is_serialized'=>$this->input->post('is_serialized'),
'custom1'=>$this->input->post('custom1'), /**GARRISON ADDED 4/21/2013**/
'custom2'=>$this->input->post('custom2'),/**GARRISON ADDED 4/21/2013**/
'custom3'=>$this->input->post('custom3'),/**GARRISON ADDED 4/21/2013**/
'custom4'=>$this->input->post('custom4'),/**GARRISON ADDED 4/21/2013**/
'custom5'=>$this->input->post('custom5'),/**GARRISON ADDED 4/21/2013**/
'custom6'=>$this->input->post('custom6'),/**GARRISON ADDED 4/21/2013**/
'custom7'=>$this->input->post('custom7'),/**GARRISON ADDED 4/21/2013**/
'custom8'=>$this->input->post('custom8'),/**GARRISON ADDED 4/21/2013**/
'custom9'=>$this->input->post('custom9'),/**GARRISON ADDED 4/21/2013**/
'custom10'=>$this->input->post('custom10')/**GARRISON ADDED 4/21/2013**/
);
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$cur_item_info = $this->Item->get_info($item_id);
if($this->Item->save($item_data,$item_id))
{
//New item
if($item_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_adding').' '.
$item_data['name'],'item_id'=>$item_data['item_id']));
$item_id = $item_data['item_id'];
}
else //previous item
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_updating').' '.
$item_data['name'],'item_id'=>$item_id));
}
$inv_data = array
(
'trans_date'=>date('Y-m-d H:i:s'),
'trans_items'=>$item_id,
'trans_user'=>$employee_id,
'trans_comment'=>$this->lang->line('items_manually_editing_of_quantity'),
'trans_inventory'=>$cur_item_info ? $this->input->post('quantity') - $cur_item_info->quantity : $this->input->post('quantity')
);
$this->Inventory->insert($inv_data);
$items_taxes_data = array();
$tax_names = $this->input->post('tax_names');
$tax_percents = $this->input->post('tax_percents');
for($k=0;$k<count($tax_percents);$k++)
{
if (is_numeric($tax_percents[$k]))
{
$items_taxes_data[] = array('name'=>$tax_names[$k], 'percent'=>$tax_percents[$k] );
}
}
$this->Item_taxes->save($items_taxes_data, $item_id);
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('items_error_adding_updating').' '.
$item_data['name'],'item_id'=>-1));
}
}
//Ramel Inventory Tracking
function save_inventory($item_id=-1)
{
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$cur_item_info = $this->Item->get_info($item_id);
$inv_data = array
(
'trans_date'=>date('Y-m-d H:i:s'),
'trans_items'=>$item_id,
'trans_user'=>$employee_id,
'trans_comment'=>$this->input->post('trans_comment'),
'trans_inventory'=>$this->input->post('newquantity')
);
$this->Inventory->insert($inv_data);
//Update stock quantity
$item_data = array(
'quantity'=>$cur_item_info->quantity + $this->input->post('newquantity')
);
if($this->Item->save($item_data,$item_id))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_updating').' '.
$cur_item_info->name,'item_id'=>$item_id));
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('items_error_adding_updating').' '.
$cur_item_info->name,'item_id'=>-1));
}
}//---------------------------------------------------------------------Ramel
function bulk_update()
{
$items_to_update=$this->input->post('item_ids');
$item_data = array();
foreach($_POST as $key=>$value)
{
//This field is nullable, so treat it differently
if ($key == 'supplier_id')
{
$item_data["$key"]=$value == '' ? null : $value;
}
elseif($value!='' and !(in_array($key, array('item_ids', 'tax_names', 'tax_percents'))))
{
$item_data["$key"]=$value;
}
}
//Item data could be empty if tax information is being updated
if(empty($item_data) || $this->Item->update_multiple($item_data,$items_to_update))
{
$items_taxes_data = array();
$tax_names = $this->input->post('tax_names');
$tax_percents = $this->input->post('tax_percents');
for($k=0;$k<count($tax_percents);$k++)
{
if (is_numeric($tax_percents[$k]))
{
$items_taxes_data[] = array('name'=>$tax_names[$k], 'percent'=>$tax_percents[$k] );
}
}
$this->Item_taxes->save_multiple($items_taxes_data, $items_to_update);
echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_bulk_edit')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('items_error_updating_multiple')));
}
}
function delete()
{
$items_to_delete=$this->input->post('ids');
if($this->Item->delete_list($items_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_deleted').' '.
count($items_to_delete).' '.$this->lang->line('items_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('items_cannot_be_deleted')));
}
}
function excel()
{
$data = file_get_contents("import_items.csv");
$name = 'import_items.csv';
force_download($name, $data);
}
function excel_import()
{
$this->load->view("items/excel_import", null);
}
function do_excel_import()
{
$msg = 'do_excel_import';
$failCodes = array();
if ($_FILES['file_path']['error']!=UPLOAD_ERR_OK)
{
$msg = $this->lang->line('items_excel_import_failed');
echo json_encode( array('success'=>false,'message'=>$msg) );
return;
}
else
{
if (($handle = fopen($_FILES['file_path']['tmp_name'], "r")) !== FALSE)
{
//Skip first row
fgetcsv($handle);
$i=1;
while (($data = fgetcsv($handle)) !== FALSE)
{
$item_data = array(
'name' => $data[1],
'description' => $data[13],
'location' => $data[12],
'category' => $data[2],
'cost_price' => $data[4],
'unit_price' => $data[5],
'quantity' => $data[10],
'reorder_level' => $data[11],
'supplier_id' => $this->Supplier->exists($data[3]) ? $data[3] : null,
'allow_alt_description' => $data[14] != '' ? '1' : '0',
'is_serialized' => $data[15] != '' ? '1' : '0',
'custom1' => $data[16], /** GARRISON ADDED 5/6/2013 **/
'custom2' => $data[17], /** GARRISON ADDED 5/6/2013 **/
'custom3' => $data[18], /** GARRISON ADDED 5/6/2013 **/
'custom4' => $data[19], /** GARRISON ADDED 5/6/2013 **/
'custom5' => $data[20], /** GARRISON ADDED 5/6/2013 **/
'custom6' => $data[21], /** GARRISON ADDED 5/6/2013 **/
'custom7' => $data[22], /** GARRISON ADDED 5/6/2013 **/
'custom8' => $data[23], /** GARRISON ADDED 5/6/2013 **/
'custom9' => $data[24], /** GARRISON ADDED 5/6/2013 **/
'custom10' => $data[25] /** GARRISON ADDED 5/6/2013 **/
);
$item_number = $data[0];
if ($item_number != "")
{
$item_data['item_number'] = $item_number;
}
if($this->Item->save($item_data))
{
$items_taxes_data = null;
//tax 1
if( is_numeric($data[7]) && $data[6]!='' )
{
$items_taxes_data[] = array('name'=>$data[6], 'percent'=>$data[7] );
}
//tax 2
if( is_numeric($data[9]) && $data[8]!='' )
{
$items_taxes_data[] = array('name'=>$data[8], 'percent'=>$data[9] );
}
// save tax values
if(count($items_taxes_data) > 0)
{
$this->Item_taxes->save($items_taxes_data, $item_data['item_id']);
}
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$emp_info=$this->Employee->get_info($employee_id);
$comment ='Qty CSV Imported';
$excel_data = array
(
'trans_items'=>$item_data['item_id'],
'trans_user'=>$employee_id,
'trans_comment'=>$comment,
'trans_inventory'=>$data[10]
);
$this->db->insert('inventory',$excel_data);
//------------------------------------------------Ramel
}
else//insert or update item failure
{
$failCodes[] = $i;
}
}
$i++;
}
else
{
echo json_encode( array('success'=>false,'message'=>'Your upload file has no data or not in supported format.') );
return;
}
}
$success = true;
if(count($failCodes) > 1)
{
$msg = "Most items imported. But some were not, here is list of their CODE (" .count($failCodes) ."): ".implode(", ", $failCodes);
$success = false;
}
else
{
$msg = "Import items successful";
}
echo json_encode( array('success'=>$success,'message'=>$msg) );
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 360;
}
}
?>

View File

@@ -0,0 +1,192 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
// ---------------------------------------------------------------------
class Languagecheck extends CI_Controller {
/*
* use this language as comparison reference.
* this should be the one that is complete.
*/
private $reference = 'english';
private $lang_path = 'language';
// -----------------------------------------------------------------
/*
* controller constructor
*/
function Languagecheck()
{
parent::Controller();
}
// -----------------------------------------------------------------
/*
* use remap to capture all calls to this controller
*/
function _remap()
{
// load the required helpers
$this->load->helper('directory');
// for simplicity, we don't use views
$this->output('h1', 'Open Source Point of Sale - Language file checking and validation');
// determine the language file path
if ( ! is_dir($this->lang_path) )
{
$this->lang_path = APPPATH . $this->lang_path;
if ( ! is_dir($this->lang_path) )
{
$this->output('h2', 'Defined language path "'.$this->lang_path.'" not found!', TRUE);
exit;
}
}
// fetch the languages directory map
$languages = directory_map( $this->lang_path, TRUE );
// is our reference language present?
if ( ! in_array($this->reference, $languages ) )
{
$this->output('h2', 'Reference language "'.$this->reference.'" not found!', TRUE);
exit;
}
// load the list of language files for the reference language
$references = directory_map( $this->lang_path . '/' . $this->reference, TRUE );
// now process the list
foreach( $references as $reference )
{
// skip non-language files in the language directory
if ( strpos($reference, '_lang'.EXT) === FALSE )
{
continue;
}
// process it
$this->output('h2', 'Processing '.$this->reference . ' &raquo; ' .$reference);
// load the language file
include $this->lang_path . '/' . $this->reference . '/' . $reference;
// did the file contain any language strings?
if ( empty($lang) )
{
// language file was empty or not properly defined
$this->output('h3', 'Language file doesn\'t contain any language strings. Skipping file!', TRUE);
continue;
}
// store the loaded language strings
$lang_ref = $lang;
unset($lang);
// now loop through the available languages
foreach ( $languages as $language )
{
// skip the reference language
if ( $language == $this->reference )
{
continue;
}
// language file to check
$file = $this->lang_path . '/' . $language . '/' . $reference;
// check if the language file exists for this language
if ( ! file_exists( $file ) )
{
// file not found
$this->output('h3', 'Language file doesn\'t exist for the language '.$language.'!', TRUE);
}
else
{
// load the file to compare
include $file;
// did the file contain any language strings?
if ( empty($lang) )
{
// language file was empty or not properly defined
$this->output('h3', 'Language file for the language '.$language.' doesn\'t contain any language strings!', TRUE);
}
else
{
// start comparing
$this->output('h3', 'Comparing with the '.$language.' version:');
// assume all goes well
$failures = 0;
// start comparing language keys
foreach( $lang_ref as $key => $value )
{
if ( ! isset($lang[$key]) )
{
// report the missing key
$this->output('', 'Missing language string "'.$key.'"', TRUE);
// increment the failure counter
$failures++;
}
}
if ( ! $failures )
{
$this->output('', 'The two language files have matching strings.');
}
}
// make sure the lang array is deleted before the next check
if ( isset($lang) )
{
unset($lang);
}
}
}
}
$this->output('h2', 'Language file checking and validation completed');
}
// -----------------------------------------------------------------
private function output($type = '', $line = '', $highlight = FALSE)
{
switch ($type)
{
case 'h1':
$html = "<h1>{line}</h1>\n<hr />\n";
break;
case 'h2':
$html = "<h2>{line}</h2>\n";
break;
case 'h3':
$html = "<h3>&nbsp;&nbsp;&nbsp;{line}</h3>\n";
break;
default:
$html = "&nbsp;&nbsp;&nbsp;&nbsp;&raquo;&nbsp;{line}<br />";
break;
}
if ( $highlight )
{
$line = '<span style="color:red;font-weight:bold;">' . $line . '</span>';
}
echo str_replace('{line}', $line, $html);
}
// -----------------------------------------------------------------
}
/* End of file languagecheck.php */
/* Location: ./application/controllers/languagecheck.php */

View File

@@ -0,0 +1,43 @@
<?php
class Login extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
if($this->Employee->is_logged_in())
{
redirect('home');
}
else
{
$this->form_validation->set_rules('username', 'lang:login_undername', 'callback_login_check');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
if($this->form_validation->run() == FALSE)
{
$this->load->view('login');
}
else
{
redirect('home');
}
}
}
function login_check($username)
{
$password = $this->input->post("password");
if(!$this->Employee->login($username,$password))
{
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_username_and_password'));
return false;
}
return true;
}
}
?>

View File

@@ -0,0 +1,15 @@
<?php
class No_Access extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index($module_id='')
{
$data['module_name']=$this->Module->get_module_name($module_id);
$this->load->view('no_access',$data);
}
}
?>

View File

@@ -0,0 +1,54 @@
<?php
require_once ("interfaces/iperson_controller.php");
require_once ("secure_area.php");
abstract class Person_controller extends Secure_area implements iPerson_controller
{
function __construct($module_id=null)
{
parent::__construct($module_id);
}
/*
This returns a mailto link for persons with a certain id. This is called with AJAX.
*/
function mailto()
{
$people_to_email=$this->input->post('ids');
if($people_to_email!=false)
{
$mailto_url='mailto:';
foreach($this->Person->get_multiple_info($people_to_email)->result() as $person)
{
$mailto_url.=$person->email.',';
}
//remove last comma
$mailto_url=substr($mailto_url,0,strlen($mailto_url)-1);
echo $mailto_url;
exit;
}
echo '#';
}
/** GARRISON ADDED 4/25/2013 IN PROGRESS **/
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Person->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/*
Gets one row for a person manage table. This is called using AJAX to update one row.
*/
function get_row()
{
$person_id = $this->input->post('row_id');
$data_row=get_person_data_row($this->Person->get_info($person_id),$this);
echo $data_row;
}
}
?>

View File

@@ -0,0 +1,197 @@
<?php
require_once ("secure_area.php");
class Receivings extends Secure_area
{
function __construct()
{
parent::__construct('receivings');
$this->load->library('receiving_lib');
}
function index()
{
$this->_reload();
}
function item_search()
{
$suggestions = $this->Item->get_item_search_suggestions($this->input->post('q'),$this->input->post('limit'));
$suggestions = array_merge($suggestions, $this->Item_kit->get_item_kit_search_suggestions($this->input->post('q'),$this->input->post('limit')));
echo implode("\n",$suggestions);
}
function supplier_search()
{
$suggestions = $this->Supplier->get_suppliers_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
function select_supplier()
{
$supplier_id = $this->input->post("supplier");
$this->receiving_lib->set_supplier($supplier_id);
$this->_reload();
}
function change_mode()
{
$mode = $this->input->post("mode");
$this->receiving_lib->set_mode($mode);
$this->_reload();
}
function add()
{
$data=array();
$mode = $this->receiving_lib->get_mode();
$item_id_or_number_or_item_kit_or_receipt = $this->input->post("item");
$quantity = $mode=="receive" ? 1:-1;
if($this->receiving_lib->is_valid_receipt($item_id_or_number_or_item_kit_or_receipt) && $mode=='return')
{
$this->receiving_lib->return_entire_receiving($item_id_or_number_or_item_kit_or_receipt);
}
elseif($this->receiving_lib->is_valid_item_kit($item_id_or_number_or_item_kit_or_receipt))
{
$this->receiving_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt);
}
elseif(!$this->receiving_lib->add_item($item_id_or_number_or_item_kit_or_receipt,$quantity))
{
$data['error']=$this->lang->line('recvs_unable_to_add_item');
}
$this->_reload($data);
}
function edit_item($item_id)
{
$data= array();
$this->form_validation->set_rules('price', 'lang:items_price', 'required|numeric');
$this->form_validation->set_rules('quantity', 'lang:items_quantity', 'required|integer');
$this->form_validation->set_rules('discount', 'lang:items_discount', 'required|integer');
$description = $this->input->post("description");
$serialnumber = $this->input->post("serialnumber");
$price = $this->input->post("price");
$quantity = $this->input->post("quantity");
$discount = $this->input->post("discount");
if ($this->form_validation->run() != FALSE)
{
$this->receiving_lib->edit_item($item_id,$description,$serialnumber,$quantity,$discount,$price);
}
else
{
$data['error']=$this->lang->line('recvs_error_editing_item');
}
$this->_reload($data);
}
function delete_item($item_number)
{
$this->receiving_lib->delete_item($item_number);
$this->_reload();
}
function delete_supplier()
{
$this->receiving_lib->delete_supplier();
$this->_reload();
}
function complete()
{
$data['cart']=$this->receiving_lib->get_cart();
$data['total']=$this->receiving_lib->get_total();
$data['receipt_title']=$this->lang->line('recvs_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a');
$supplier_id=$this->receiving_lib->get_supplier();
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$comment = $this->input->post('comment');
$emp_info=$this->Employee->get_info($employee_id);
$payment_type = $this->input->post('payment_type');
$data['payment_type']=$this->input->post('payment_type');
if ($this->input->post('amount_tendered'))
{
$data['amount_tendered'] = $this->input->post('amount_tendered');
$data['amount_change'] = to_currency($data['amount_tendered'] - round($data['total'], 2));
}
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;
if($supplier_id!=-1)
{
$suppl_info=$this->Supplier->get_info($supplier_id);
$data['supplier']=$suppl_info->first_name.' '.$suppl_info->last_name;
}
//SAVE receiving to database
$data['receiving_id']='RECV '.$this->Receiving->save($data['cart'], $supplier_id,$employee_id,$comment,$payment_type);
if ($data['receiving_id'] == 'RECV -1')
{
$data['error_message'] = $this->lang->line('receivings_transaction_failed');
}
$this->load->view("receivings/receipt",$data);
$this->receiving_lib->clear_all();
}
function receipt($receiving_id)
{
$receiving_info = $this->Receiving->get_info($receiving_id)->row_array();
$this->receiving_lib->copy_entire_receiving($receiving_id);
$data['cart']=$this->receiving_lib->get_cart();
$data['total']=$this->receiving_lib->get_total();
$data['receipt_title']=$this->lang->line('recvs_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a', strtotime($receiving_info['receiving_time']));
$supplier_id=$this->receiving_lib->get_supplier();
$emp_info=$this->Employee->get_info($receiving_info['employee_id']);
$data['payment_type']=$receiving_info['payment_type'];
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;
if($supplier_id!=-1)
{
$supplier_info=$this->Supplier->get_info($supplier_id);
$data['supplier']=$supplier_info->first_name.' '.$supplier_info->last_name;
}
$data['receiving_id']='RECV '.$receiving_id;
$this->load->view("receivings/receipt",$data);
$this->receiving_lib->clear_all();
}
function _reload($data=array())
{
$person_info = $this->Employee->get_logged_in_employee_info();
$data['cart']=$this->receiving_lib->get_cart();
$data['modes']=array('receive'=>$this->lang->line('recvs_receiving'),'return'=>$this->lang->line('recvs_return'));
$data['mode']=$this->receiving_lib->get_mode();
$data['total']=$this->receiving_lib->get_total();
$data['items_module_allowed'] = $this->Employee->has_permission('items', $person_info->person_id);
$data['payment_options']=array(
$this->lang->line('sales_cash') => $this->lang->line('sales_cash'),
$this->lang->line('sales_check') => $this->lang->line('sales_check'),
$this->lang->line('sales_debit') => $this->lang->line('sales_debit'),
$this->lang->line('sales_credit') => $this->lang->line('sales_credit')
);
$supplier_id=$this->receiving_lib->get_supplier();
if($supplier_id!=-1)
{
$info=$this->Supplier->get_info($supplier_id);
$data['supplier']=$info->first_name.' '.$info->last_name;
}
$this->load->view("receivings/receiving",$data);
}
function cancel_receiving()
{
$this->receiving_lib->clear_all();
$this->_reload();
}
}
?>

View File

@@ -0,0 +1,827 @@
<?php
require_once ("secure_area.php");
require_once (APPPATH."libraries/ofc-library/open-flash-chart.php");
class Reports extends Secure_area
{
function __construct()
{
parent::__construct('reports');
$this->load->helper('report');
}
//Initial report listing screen
function index()
{
$this->load->view("reports/listing",array());
}
function _get_common_report_data()
{
$data = array();
$data['report_date_range_simple'] = get_simple_date_ranges();
$data['months'] = get_months();
$data['days'] = get_days();
$data['years'] = get_years();
$data['selected_month']=date('n');
$data['selected_day']=date('d');
$data['selected_year']=date('Y');
return $data;
}
//Input for reports that require only a date range and an export to excel. (see routes.php to see that all summary reports route here)
function date_input_excel_export()
{
$data = $this->_get_common_report_data();
$this->load->view("reports/date_input_excel_export",$data);
}
//Summary sales report
function summary_sales($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_sales');
$model = $this->Summary_sales;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['sale_date'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_sales_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary categories report
function summary_categories($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_categories');
$model = $this->Summary_categories;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['category'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_categories_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary customers report
function summary_customers($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_customers');
$model = $this->Summary_customers;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['customer'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_customers_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary suppliers report
function summary_suppliers($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_suppliers');
$model = $this->Summary_suppliers;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['supplier'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_suppliers_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary items report
function summary_items($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_items');
$model = $this->Summary_items;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array(character_limiter($row['name'], 16), $row['quantity_purchased'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_items_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary employees report
function summary_employees($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_employees');
$model = $this->Summary_employees;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['employee'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']));
}
$data = array(
"title" => $this->lang->line('reports_employees_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary taxes report
function summary_taxes($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_taxes');
$model = $this->Summary_taxes;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['percent'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']));
}
$data = array(
"title" => $this->lang->line('reports_taxes_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Summary discounts report
function summary_discounts($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_discounts');
$model = $this->Summary_discounts;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['discount_percent'],$row['count']);
}
$data = array(
"title" => $this->lang->line('reports_discounts_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
function summary_payments($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Summary_payments');
$model = $this->Summary_payments;
$tabular_data = array();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
foreach($report_data as $row)
{
$tabular_data[] = array($row['payment_type'],to_currency($row['payment_amount']));
}
$data = array(
"title" => $this->lang->line('reports_payments_summary_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
//Input for reports that require only a date range. (see routes.php to see that all graphical summary reports route here)
function date_input()
{
$data = $this->_get_common_report_data();
$this->load->view("reports/date_input",$data);
}
//Graphical summary sales report
function graphical_summary_sales($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_sales');
$model = $this->Summary_sales;
$data = array(
"title" => $this->lang->line('reports_sales_summary_report'),
"data_file" => site_url("reports/graphical_summary_sales_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_sales_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_sales');
$model = $this->Summary_sales;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[date('m/d/Y', strtotime($row['sale_date']))]= $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_sales_summary_report'),
"yaxis_label"=>$this->lang->line('reports_revenue'),
"xaxis_label"=>$this->lang->line('reports_date'),
"data" => $graph_data
);
$this->load->view("reports/graphs/line",$data);
}
//Graphical summary items report
function graphical_summary_items($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_items');
$model = $this->Summary_items;
$data = array(
"title" => $this->lang->line('reports_items_summary_report'),
"data_file" => site_url("reports/graphical_summary_items_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_items_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_items');
$model = $this->Summary_items;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['name']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_items_summary_report'),
"xaxis_label"=>$this->lang->line('reports_revenue'),
"yaxis_label"=>$this->lang->line('reports_items'),
"data" => $graph_data
);
$this->load->view("reports/graphs/hbar",$data);
}
//Graphical summary customers report
function graphical_summary_categories($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_categories');
$model = $this->Summary_categories;
$data = array(
"title" => $this->lang->line('reports_categories_summary_report'),
"data_file" => site_url("reports/graphical_summary_categories_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_categories_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_categories');
$model = $this->Summary_categories;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['category']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_categories_summary_report'),
"data" => $graph_data
);
$this->load->view("reports/graphs/pie",$data);
}
function graphical_summary_suppliers($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_suppliers');
$model = $this->Summary_suppliers;
$data = array(
"title" => $this->lang->line('reports_suppliers_summary_report'),
"data_file" => site_url("reports/graphical_summary_suppliers_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_suppliers_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_suppliers');
$model = $this->Summary_suppliers;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['supplier']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_suppliers_summary_report'),
"data" => $graph_data
);
$this->load->view("reports/graphs/pie",$data);
}
function graphical_summary_employees($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_employees');
$model = $this->Summary_employees;
$data = array(
"title" => $this->lang->line('reports_employees_summary_report'),
"data_file" => site_url("reports/graphical_summary_employees_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_employees_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_employees');
$model = $this->Summary_employees;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['employee']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_employees_summary_report'),
"data" => $graph_data
);
$this->load->view("reports/graphs/pie",$data);
}
function graphical_summary_taxes($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_taxes');
$model = $this->Summary_taxes;
$data = array(
"title" => $this->lang->line('reports_taxes_summary_report'),
"data_file" => site_url("reports/graphical_summary_taxes_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_taxes_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_taxes');
$model = $this->Summary_taxes;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['percent']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_taxes_summary_report'),
"data" => $graph_data
);
$this->load->view("reports/graphs/pie",$data);
}
//Graphical summary customers report
function graphical_summary_customers($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_customers');
$model = $this->Summary_customers;
$data = array(
"title" => $this->lang->line('reports_customers_summary_report'),
"data_file" => site_url("reports/graphical_summary_customers_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_customers_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_customers');
$model = $this->Summary_customers;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['customer']] = $row['total'];
}
$data = array(
"title" => $this->lang->line('reports_customers_summary_report'),
"xaxis_label"=>$this->lang->line('reports_revenue'),
"yaxis_label"=>$this->lang->line('reports_customers'),
"data" => $graph_data
);
$this->load->view("reports/graphs/hbar",$data);
}
//Graphical summary discounts report
function graphical_summary_discounts($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_discounts');
$model = $this->Summary_discounts;
$data = array(
"title" => $this->lang->line('reports_discounts_summary_report'),
"data_file" => site_url("reports/graphical_summary_discounts_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_discounts_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_discounts');
$model = $this->Summary_discounts;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['discount_percent']] = $row['count'];
}
$data = array(
"title" => $this->lang->line('reports_discounts_summary_report'),
"yaxis_label"=>$this->lang->line('reports_count'),
"xaxis_label"=>$this->lang->line('reports_discount_percent'),
"data" => $graph_data
);
$this->load->view("reports/graphs/bar",$data);
}
function graphical_summary_payments($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_payments');
$model = $this->Summary_payments;
$data = array(
"title" => $this->lang->line('reports_payments_summary_report'),
"data_file" => site_url("reports/graphical_summary_payments_graph/$start_date/$end_date/$sale_type"),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type))
);
$this->load->view("reports/graphical",$data);
}
//The actual graph data
function graphical_summary_payments_graph($start_date, $end_date, $sale_type)
{
$this->load->model('reports/Summary_payments');
$model = $this->Summary_payments;
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$graph_data = array();
foreach($report_data as $row)
{
$graph_data[$row['payment_type']] = $row['payment_amount'];
}
$data = array(
"title" => $this->lang->line('reports_payments_summary_report'),
"yaxis_label"=>$this->lang->line('reports_revenue'),
"xaxis_label"=>$this->lang->line('reports_payment_type'),
"data" => $graph_data
);
$this->load->view("reports/graphs/pie",$data);
}
function specific_customer_input()
{
$data = $this->_get_common_report_data();
$data['specific_input_name'] = $this->lang->line('reports_customer');
$customers = array();
foreach($this->Customer->get_all()->result() as $customer)
{
$customers[$customer->person_id] = $customer->first_name .' '.$customer->last_name;
}
$data['specific_input_data'] = $customers;
$this->load->view("reports/specific_input",$data);
}
function specific_customer($start_date, $end_date, $customer_id, $sale_type, $export_excel=0)
{
$this->load->model('reports/Specific_customer');
$model = $this->Specific_customer;
$headers = $model->getDataColumns();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'customer_id' =>$customer_id, 'sale_type' => $sale_type));
$summary_data = array();
$details_data = array();
foreach($report_data['summary'] as $key=>$row)
{
$summary_data[] = array(anchor('sales/edit/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target' => '_blank')), $row['sale_date'], $row['items_purchased'], $row['employee_name'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']), $row['payment_type'], $row['comment']);
foreach($report_data['details'][$key] as $drow)
{
$details_data[$key][] = array($drow['name'], $drow['category'], $drow['serialnumber'], $drow['description'], $drow['quantity_purchased'], to_currency($drow['subtotal']), to_currency($drow['total']), to_currency($drow['tax']),to_currency($drow['profit']), $drow['discount_percent'].'%');
}
}
$customer_info = $this->Customer->get_info($customer_id);
$data = array(
"title" => $customer_info->first_name .' '. $customer_info->last_name.' '.$this->lang->line('reports_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"summary_data" => $summary_data,
"details_data" => $details_data,
"overall_summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date,'customer_id' =>$customer_id, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular_details",$data);
}
function specific_employee_input()
{
$data = $this->_get_common_report_data();
$data['specific_input_name'] = $this->lang->line('reports_employee');
$employees = array();
foreach($this->Employee->get_all()->result() as $employee)
{
$employees[$employee->person_id] = $employee->first_name .' '.$employee->last_name;
}
$data['specific_input_data'] = $employees;
$this->load->view("reports/specific_input",$data);
}
function specific_employee($start_date, $end_date, $employee_id, $sale_type, $export_excel=0)
{
$this->load->model('reports/Specific_employee');
$model = $this->Specific_employee;
$headers = $model->getDataColumns();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'employee_id' =>$employee_id, 'sale_type' => $sale_type));
$summary_data = array();
$details_data = array();
foreach($report_data['summary'] as $key=>$row)
{
$summary_data[] = array(anchor('sales/edit/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target' => '_blank')), $row['sale_date'], $row['items_purchased'], $row['customer_name'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']), $row['payment_type'], $row['comment']);
foreach($report_data['details'][$key] as $drow)
{
$details_data[$key][] = array($drow['name'], $drow['category'], $drow['serialnumber'], $drow['description'], $drow['quantity_purchased'], to_currency($drow['subtotal']), to_currency($drow['total']), to_currency($drow['tax']),to_currency($drow['profit']), $drow['discount_percent'].'%');
}
}
$employee_info = $this->Employee->get_info($employee_id);
$data = array(
"title" => $employee_info->first_name .' '. $employee_info->last_name.' '.$this->lang->line('reports_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"summary_data" => $summary_data,
"details_data" => $details_data,
"overall_summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date,'employee_id' =>$employee_id, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular_details",$data);
}
function detailed_sales($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Detailed_sales');
$model = $this->Detailed_sales;
$headers = $model->getDataColumns();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$summary_data = array();
$details_data = array();
foreach($report_data['summary'] as $key=>$row)
{
$summary_data[] = array(anchor('sales/edit/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target' => '_blank')), $row['sale_date'], $row['items_purchased'], $row['employee_name'], $row['customer_name'], to_currency($row['subtotal']), to_currency($row['total']), to_currency($row['tax']),to_currency($row['profit']), $row['payment_type'], $row['comment']);
foreach($report_data['details'][$key] as $drow)
{
$details_data[$key][] = array($drow['name'], $drow['category'], $drow['serialnumber'], $drow['description'], $drow['quantity_purchased'], to_currency($drow['subtotal']), to_currency($drow['total']), to_currency($drow['tax']),to_currency($drow['profit']), $drow['discount_percent'].'%');
}
}
$data = array(
"title" =>$this->lang->line('reports_detailed_sales_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"summary_data" => $summary_data,
"details_data" => $details_data,
"overall_summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular_details",$data);
}
function detailed_receivings($start_date, $end_date, $sale_type, $export_excel=0)
{
$this->load->model('reports/Detailed_receivings');
$model = $this->Detailed_receivings;
$headers = $model->getDataColumns();
$report_data = $model->getData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type));
$summary_data = array();
$details_data = array();
foreach($report_data['summary'] as $key=>$row)
{
$summary_data[] = array(anchor('receivings/receipt/'.$row['receiving_id'], 'RECV '.$row['receiving_id'], array('target' => '_blank')), $row['receiving_date'], $row['items_purchased'], $row['employee_name'], $row['supplier_name'], to_currency($row['total']), $row['payment_type'], $row['comment']);
foreach($report_data['details'][$key] as $drow)
{
$details_data[$key][] = array($drow['name'], $drow['category'], $drow['quantity_purchased'], to_currency($drow['total']), $drow['discount_percent'].'%');
}
}
$data = array(
"title" =>$this->lang->line('reports_detailed_receivings_report'),
"subtitle" => date('m/d/Y', strtotime($start_date)) .'-'.date('m/d/Y', strtotime($end_date)),
"headers" => $model->getDataColumns(),
"summary_data" => $summary_data,
"details_data" => $details_data,
"overall_summary_data" => $model->getSummaryData(array('start_date'=>$start_date, 'end_date'=>$end_date, 'sale_type' => $sale_type)),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular_details",$data);
}
function excel_export()
{
$this->load->view("reports/excel_export",array());
}
function inventory_low($export_excel=0)
{
$this->load->model('reports/Inventory_low');
$model = $this->Inventory_low;
$tabular_data = array();
$report_data = $model->getData(array());
foreach($report_data as $row)
{
$tabular_data[] = array($row['name'], $row['item_number'], $row['description'], $row['quantity'], $row['reorder_level']);
}
$data = array(
"title" => $this->lang->line('reports_low_inventory_report'),
"subtitle" => '',
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array()),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
function inventory_summary($export_excel=0)
{
$this->load->model('reports/Inventory_summary');
$model = $this->Inventory_summary;
$tabular_data = array();
$report_data = $model->getData(array());
foreach($report_data as $row)
{
$tabular_data[] = array($row['name'], $row['item_number'], $row['description'], $row['quantity'], $row['reorder_level']);
}
$data = array(
"title" => $this->lang->line('reports_inventory_summary_report'),
"subtitle" => '',
"headers" => $model->getDataColumns(),
"data" => $tabular_data,
"summary_data" => $model->getSummaryData(array()),
"export_excel" => $export_excel
);
$this->load->view("reports/tabular",$data);
}
}
?>

View File

@@ -0,0 +1,431 @@
<?php
require_once ("secure_area.php");
class Sales extends Secure_area
{
function __construct()
{
parent::__construct('sales');
$this->load->library('sale_lib');
}
function index()
{
$this->_reload();
}
function item_search()
{
$suggestions = $this->Item->get_item_search_suggestions($this->input->post('q'),$this->input->post('limit'));
$suggestions = array_merge($suggestions, $this->Item_kit->get_item_kit_search_suggestions($this->input->post('q'),$this->input->post('limit')));
echo implode("\n",$suggestions);
}
function customer_search()
{
$suggestions = $this->Customer->get_customer_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
function select_customer()
{
$customer_id = $this->input->post("customer");
$this->sale_lib->set_customer($customer_id);
$this->_reload();
}
function change_mode()
{
$mode = $this->input->post("mode");
$this->sale_lib->set_mode($mode);
$this->_reload();
}
function set_comment()
{
$this->sale_lib->set_comment($this->input->post('comment'));
}
function set_email_receipt()
{
$this->sale_lib->set_email_receipt($this->input->post('email_receipt'));
}
//Alain Multiple Payments
function add_payment()
{
$data = array();
$this->form_validation->set_rules( 'amount_tendered', 'lang:sales_amount_tendered', 'numeric' );
if ( $this->form_validation->run() == FALSE )
{
if ( $this->input->post( 'payment_type' ) == $this->lang->line( 'sales_gift_card' ) )
$data['error']=$this->lang->line('sales_must_enter_numeric_giftcard');
else
$data['error']=$this->lang->line('sales_must_enter_numeric');
$this->_reload( $data );
return;
}
$payment_type = $this->input->post( 'payment_type' );
if ( $payment_type == $this->lang->line( 'sales_giftcard' ) )
{
$payments = $this->sale_lib->get_payments();
$payment_type = $this->input->post( 'payment_type' ) . ':' . $payment_amount = $this->input->post( 'amount_tendered' );
$current_payments_with_giftcard = isset( $payments[$payment_type] ) ? $payments[$payment_type]['payment_amount'] : 0;
$cur_giftcard_value = $this->Giftcard->get_giftcard_value( $this->input->post( 'amount_tendered' ) ) - $current_payments_with_giftcard;
if ( $cur_giftcard_value <= 0 )
{
$data['error'] = 'Giftcard balance is ' . to_currency( $this->Giftcard->get_giftcard_value( $this->input->post( 'amount_tendered' ) ) ) . ' !';
$this->_reload( $data );
return;
}
$new_giftcard_value = $this->Giftcard->get_giftcard_value( $this->input->post( 'amount_tendered' ) ) - $this->sale_lib->get_amount_due( );
$new_giftcard_value = ( $new_giftcard_value >= 0 ) ? $new_giftcard_value : 0;
$data['warning'] = 'Giftcard ' . $this->input->post( 'amount_tendered' ) . ' balance is ' . to_currency( $new_giftcard_value ) . ' !';
$payment_amount = min( $this->sale_lib->get_amount_due( ), $this->Giftcard->get_giftcard_value( $this->input->post( 'amount_tendered' ) ) );
}
else
{
$payment_amount = $this->input->post( 'amount_tendered' );
}
if( !$this->sale_lib->add_payment( $payment_type, $payment_amount ) )
{
$data['error']='Unable to Add Payment! Please try again!';
}
$this->_reload($data);
}
//Alain Multiple Payments
function delete_payment( $payment_id )
{
$this->sale_lib->delete_payment( $payment_id );
$this->_reload();
}
function add()
{
$data=array();
$mode = $this->sale_lib->get_mode();
$item_id_or_number_or_item_kit_or_receipt = $this->input->post("item");
$quantity = $mode=="sale" ? 1:-1;
if($this->sale_lib->is_valid_receipt($item_id_or_number_or_item_kit_or_receipt) && $mode=='return')
{
$this->sale_lib->return_entire_sale($item_id_or_number_or_item_kit_or_receipt);
}
elseif($this->sale_lib->is_valid_item_kit($item_id_or_number_or_item_kit_or_receipt))
{
$this->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt);
}
elseif(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt,$quantity))
{
$data['error']=$this->lang->line('sales_unable_to_add_item');
}
if($this->sale_lib->out_of_stock($item_id_or_number_or_item_kit_or_receipt))
{
$data['warning'] = $this->lang->line('sales_quantity_less_than_zero');
}
$this->_reload($data);
}
function edit_item($line)
{
$data= array();
$this->form_validation->set_rules('price', 'lang:items_price', 'required|numeric');
$this->form_validation->set_rules('quantity', 'lang:items_quantity', 'required|numeric');
$description = $this->input->post("description");
$serialnumber = $this->input->post("serialnumber");
$price = $this->input->post("price");
$quantity = $this->input->post("quantity");
$discount = $this->input->post("discount");
if ($this->form_validation->run() != FALSE)
{
$this->sale_lib->edit_item($line,$description,$serialnumber,$quantity,$discount,$price);
}
else
{
$data['error']=$this->lang->line('sales_error_editing_item');
}
if($this->sale_lib->out_of_stock($this->sale_lib->get_item_id($line)))
{
$data['warning'] = $this->lang->line('sales_quantity_less_than_zero');
}
$this->_reload($data);
}
function delete_item($item_number)
{
$this->sale_lib->delete_item($item_number);
$this->_reload();
}
function remove_customer()
{
$this->sale_lib->remove_customer();
$this->_reload();
}
function complete()
{
$data['cart']=$this->sale_lib->get_cart();
$data['subtotal']=$this->sale_lib->get_subtotal();
$data['taxes']=$this->sale_lib->get_taxes();
$data['total']=$this->sale_lib->get_total();
$data['receipt_title']=$this->lang->line('sales_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a');
$customer_id=$this->sale_lib->get_customer();
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$comment = $this->sale_lib->get_comment();
$emp_info=$this->Employee->get_info($employee_id);
$data['payments']=$this->sale_lib->get_payments();
$data['amount_change']=to_currency($this->sale_lib->get_amount_due() * -1);
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;
if($customer_id!=-1)
{
$cust_info=$this->Customer->get_info($customer_id);
$data['customer']=$cust_info->first_name.' '.$cust_info->last_name;
}
//SAVE sale to database
$data['sale_id']='POS '.$this->Sale->save($data['cart'], $customer_id,$employee_id,$comment,$data['payments']);
if ($data['sale_id'] == 'POS -1')
{
$data['error_message'] = $this->lang->line('sales_transaction_failed');
}
else
{
if ($this->sale_lib->get_email_receipt() && !empty($cust_info->email))
{
$this->load->library('email');
$config['mailtype'] = 'html';
$this->email->initialize($config);
$this->email->from($this->config->item('email'), $this->config->item('company'));
$this->email->to($cust_info->email);
$this->email->subject($this->lang->line('sales_receipt'));
$this->email->message($this->load->view("sales/receipt_email",$data, true));
$this->email->send();
}
}
$this->load->view("sales/receipt",$data);
$this->sale_lib->clear_all();
}
function receipt($sale_id)
{
$sale_info = $this->Sale->get_info($sale_id)->row_array();
$this->sale_lib->copy_entire_sale($sale_id);
$data['cart']=$this->sale_lib->get_cart();
$data['payments']=$this->sale_lib->get_payments();
$data['subtotal']=$this->sale_lib->get_subtotal();
$data['taxes']=$this->sale_lib->get_taxes();
$data['total']=$this->sale_lib->get_total();
$data['receipt_title']=$this->lang->line('sales_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a', strtotime($sale_info['sale_time']));
$customer_id=$this->sale_lib->get_customer();
$emp_info=$this->Employee->get_info($sale_info['employee_id']);
$data['payment_type']=$sale_info['payment_type'];
$data['amount_change']=to_currency($this->sale_lib->get_amount_due() * -1);
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;
if($customer_id!=-1)
{
$cust_info=$this->Customer->get_info($customer_id);
$data['customer']=$cust_info->first_name.' '.$cust_info->last_name;
}
$data['sale_id']='POS '.$sale_id;
$this->load->view("sales/receipt",$data);
$this->sale_lib->clear_all();
}
function edit($sale_id)
{
$data = array();
$data['customers'] = array('' => 'No Customer');
foreach ($this->Customer->get_all()->result() as $customer)
{
$data['customers'][$customer->person_id] = $customer->first_name . ' '. $customer->last_name;
}
$data['employees'] = array();
foreach ($this->Employee->get_all()->result() as $employee)
{
$data['employees'][$employee->person_id] = $employee->first_name . ' '. $employee->last_name;
}
$data['sale_info'] = $this->Sale->get_info($sale_id)->row_array();
$this->load->view('sales/edit', $data);
}
function delete($sale_id)
{
$data = array();
if ($this->Sale->delete($sale_id))
{
$data['success'] = true;
}
else
{
$data['success'] = false;
}
$this->load->view('sales/delete', $data);
}
function save($sale_id)
{
$sale_data = array(
'sale_time' => date('Y-m-d', strtotime($this->input->post('date'))),
'customer_id' => $this->input->post('customer_id') ? $this->input->post('customer_id') : null,
'employee_id' => $this->input->post('employee_id'),
'comment' => $this->input->post('comment')
);
if ($this->Sale->update($sale_data, $sale_id))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('sales_successfully_updated')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('sales_unsuccessfully_updated')));
}
}
function _payments_cover_total()
{
$total_payments = 0;
foreach($this->sale_lib->get_payments() as $payment)
{
$total_payments += $payment['payment_amount'];
}
/* Changed the conditional to account for floating point rounding */
if ( ( $this->sale_lib->get_mode() == 'sale' ) && ( ( to_currency_no_money( $this->sale_lib->get_total() ) - $total_payments ) > 1e-6 ) )
{
return false;
}
return true;
}
function _reload($data=array())
{
$person_info = $this->Employee->get_logged_in_employee_info();
$data['cart']=$this->sale_lib->get_cart();
$data['modes']=array('sale'=>$this->lang->line('sales_sale'),'return'=>$this->lang->line('sales_return'));
$data['mode']=$this->sale_lib->get_mode();
$data['subtotal']=$this->sale_lib->get_subtotal();
$data['taxes']=$this->sale_lib->get_taxes();
$data['total']=$this->sale_lib->get_total();
$data['items_module_allowed'] = $this->Employee->has_permission('items', $person_info->person_id);
$data['comment'] = $this->sale_lib->get_comment();
$data['email_receipt'] = $this->sale_lib->get_email_receipt();
$data['payments_total']=$this->sale_lib->get_payments_total();
$data['amount_due']=$this->sale_lib->get_amount_due();
$data['payments']=$this->sale_lib->get_payments();
$data['payment_options']=array(
$this->lang->line('sales_cash') => $this->lang->line('sales_cash'),
$this->lang->line('sales_check') => $this->lang->line('sales_check'),
$this->lang->line('sales_giftcard') => $this->lang->line('sales_giftcard'),
$this->lang->line('sales_debit') => $this->lang->line('sales_debit'),
$this->lang->line('sales_credit') => $this->lang->line('sales_credit')
);
$customer_id=$this->sale_lib->get_customer();
if($customer_id!=-1)
{
$info=$this->Customer->get_info($customer_id);
$data['customer']=$info->first_name.' '.$info->last_name;
$data['customer_email']=$info->email;
}
$data['payments_cover_total'] = $this->_payments_cover_total();
$this->load->view("sales/register",$data);
}
function cancel_sale()
{
$this->sale_lib->clear_all();
$this->_reload();
}
function suspend()
{
$data['cart']=$this->sale_lib->get_cart();
$data['subtotal']=$this->sale_lib->get_subtotal();
$data['taxes']=$this->sale_lib->get_taxes();
$data['total']=$this->sale_lib->get_total();
$data['receipt_title']=$this->lang->line('sales_receipt');
$data['transaction_time']= date('m/d/Y h:i:s a');
$customer_id=$this->sale_lib->get_customer();
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$comment = $this->input->post('comment');
$emp_info=$this->Employee->get_info($employee_id);
$payment_type = $this->input->post('payment_type');
$data['payment_type']=$this->input->post('payment_type');
//Alain Multiple payments
$data['payments']=$this->sale_lib->get_payments();
$data['amount_change']=to_currency($this->sale_lib->get_amount_due() * -1);
$data['employee']=$emp_info->first_name.' '.$emp_info->last_name;
if($customer_id!=-1)
{
$cust_info=$this->Customer->get_info($customer_id);
$data['customer']=$cust_info->first_name.' '.$cust_info->last_name;
}
$total_payments = 0;
foreach($data['payments'] as $payment)
{
$total_payments += $payment['payment_amount'];
}
//SAVE sale to database
$data['sale_id']='POS '.$this->Sale_suspended->save($data['cart'], $customer_id,$employee_id,$comment,$data['payments']);
if ($data['sale_id'] == 'POS -1')
{
$data['error_message'] = $this->lang->line('sales_transaction_failed');
}
$this->sale_lib->clear_all();
$this->_reload(array('success' => $this->lang->line('sales_successfully_suspended_sale')));
}
function suspended()
{
$data = array();
$data['suspended_sales'] = $this->Sale_suspended->get_all()->result_array();
$this->load->view('sales/suspended', $data);
}
function unsuspend()
{
$sale_id = $this->input->post('suspended_sale_id');
$this->sale_lib->clear_all();
$this->sale_lib->copy_entire_suspended_sale($sale_id);
$this->Sale_suspended->delete($sale_id);
$this->_reload();
}
}
?>

View File

@@ -0,0 +1,29 @@
<?php
class Secure_area extends CI_Controller
{
/*
Controllers that are considered secure extend Secure_area, optionally a $module_id can
be set to also check if a user can access a particular module in the system.
*/
function __construct($module_id=null)
{
parent::__construct();
$this->load->model('Employee');
if(!$this->Employee->is_logged_in())
{
redirect('login');
}
if(!$this->Employee->has_permission($module_id,$this->Employee->get_logged_in_employee_info()->person_id))
{
redirect('no_access/'.$module_id);
}
//load up global data
$logged_in_employee_info=$this->Employee->get_logged_in_employee_info();
$data['allowed_modules']=$this->Module->get_allowed_modules($logged_in_employee_info->person_id);
$data['user_info']=$logged_in_employee_info;
$this->load->vars($data);
}
}
?>

View File

@@ -0,0 +1,131 @@
<?php
require_once ("person_controller.php");
class Suppliers extends Person_controller
{
function __construct()
{
parent::__construct('suppliers');
}
function index()
{
$config['base_url'] = site_url('/suppliers/index');
$config['total_rows'] = $this->Supplier->count_all();
$config['per_page'] = '20';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['controller_name']=strtolower(get_class());
$data['form_width']=$this->get_form_width();
$data['manage_table']=get_supplier_manage_table( $this->Supplier->get_all( $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
$this->load->view('suppliers/manage',$data);
}
/*
Returns supplier table data rows. This will be called with AJAX.
*/
function search()
{
$search=$this->input->post('search');
$data_rows=get_supplier_manage_table_data_rows($this->Supplier->search($search),$this);
echo $data_rows;
}
/*
Gives search suggestions based on what is being searched for
*/
function suggest()
{
$suggestions = $this->Supplier->get_search_suggestions($this->input->post('q'),$this->input->post('limit'));
echo implode("\n",$suggestions);
}
/*
Loads the supplier edit form
*/
function view($supplier_id=-1)
{
$data['person_info']=$this->Supplier->get_info($supplier_id);
$this->load->view("suppliers/form",$data);
}
/*
Inserts/updates a supplier
*/
function save($supplier_id=-1)
{
$person_data = array(
'first_name'=>$this->input->post('first_name'),
'last_name'=>$this->input->post('last_name'),
'email'=>$this->input->post('email'),
'phone_number'=>$this->input->post('phone_number'),
'address_1'=>$this->input->post('address_1'),
'address_2'=>$this->input->post('address_2'),
'city'=>$this->input->post('city'),
'state'=>$this->input->post('state'),
'zip'=>$this->input->post('zip'),
'country'=>$this->input->post('country'),
'comments'=>$this->input->post('comments')
);
$supplier_data=array(
'company_name'=>$this->input->post('company_name'),
'account_number'=>$this->input->post('account_number')=='' ? null:$this->input->post('account_number'),
);
if($this->Supplier->save($person_data,$supplier_data,$supplier_id))
{
//New supplier
if($supplier_id==-1)
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('suppliers_successful_adding').' '.
$supplier_data['company_name'],'person_id'=>$supplier_data['person_id']));
}
else //previous supplier
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('suppliers_successful_updating').' '.
$supplier_data['company_name'],'person_id'=>$supplier_id));
}
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('suppliers_error_adding_updating').' '.
$supplier_data['company_name'],'person_id'=>-1));
}
}
/*
This deletes suppliers from the suppliers table
*/
function delete()
{
$suppliers_to_delete=$this->input->post('ids');
if($this->Supplier->delete_list($suppliers_to_delete))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('suppliers_successful_deleted').' '.
count($suppliers_to_delete).' '.$this->lang->line('suppliers_one_or_multiple')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('suppliers_cannot_be_deleted')));
}
}
/*
Gets one row for a supplier manage table. This is called using AJAX to update one row.
*/
function get_row()
{
$person_id = $this->input->post('row_id');
$data_row=get_supplier_data_row($this->Supplier->get_info($person_id),$this);
echo $data_row;
}
/*
get the width for the add/edit form
*/
function get_form_width()
{
return 360;
}
}
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>404 Page Not Found</title>
<style type="text/css">
::selection{ background-color: #E13300; color: white; }
::moz-selection{ background-color: #E13300; color: white; }
::webkit-selection{ background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
-webkit-box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Database Error</title>
<style type="text/css">
::selection{ background-color: #E13300; color: white; }
::moz-selection{ background-color: #E13300; color: white; }
::webkit-selection{ background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
-webkit-box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Error</title>
<style type="text/css">
::selection{ background-color: #E13300; color: white; }
::moz-selection{ background-color: #E13300; color: white; }
::webkit-selection{ background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
-webkit-box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: <?php echo $severity; ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $filepath; ?></p>
<p>Line Number: <?php echo $line; ?></p>
</div>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,28 @@
<?php
/** GARRISON MODIFIED 4/20/2013 **/
function to_currency($number)
{
$CI =& get_instance();
$currency_symbol = $CI->config->item('currency_symbol') ? $CI->config->item('currency_symbol') : '$';
if($number >= 0)
{
if($CI->config->item('currency_side') !== 'currency_side')
return $currency_symbol.number_format($number, 2, '.', '');
else
return number_format($number, 2, '.', '').$currency_symbol;
}
else
{
if($CI->config->item('currency_side') !== 'currency_side')
return '-'.$currency_symbol.number_format(abs($number), 2, '.', '');
else
return '-'.number_format(abs($number), 2, '.', '').$currency_symbol;
}
}
/** END MODIFIED **/
function to_currency_no_money($number)
{
return number_format($number, 2, '.', '');
}
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,87 @@
<?php
function get_simple_date_ranges()
{
$CI =& get_instance();
$CI->load->language('reports');
$today = date('Y-m-d');
$yesterday = date('Y-m-d', mktime(0,0,0,date("m"),date("d")-1,date("Y")));
$six_days_ago = date('Y-m-d', mktime(0,0,0,date("m"),date("d")-6,date("Y")));
$start_of_this_month = date('Y-m-d', mktime(0,0,0,date("m"),1,date("Y")));
$end_of_this_month = date('Y-m-d',strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00'))));
$start_of_last_month = date('Y-m-d', mktime(0,0,0,date("m")-1,1,date("Y")));
$end_of_last_month = date('Y-m-d',strtotime('-1 second',strtotime('+1 month',strtotime((date('m') - 1).'/01/'.date('Y').' 00:00:00'))));
$start_of_this_year = date('Y-m-d', mktime(0,0,0,1,1,date("Y")));
$end_of_this_year = date('Y-m-d', mktime(0,0,0,12,31,date("Y")));
$start_of_last_year = date('Y-m-d', mktime(0,0,0,1,1,date("Y")-1));
$end_of_last_year = date('Y-m-d', mktime(0,0,0,12,31,date("Y")-1));
$start_of_time = date('Y-m-d', 0);
return array(
$today. '/' . $today => $CI->lang->line('reports_today'),
$yesterday. '/' . $yesterday => $CI->lang->line('reports_yesterday'),
$six_days_ago. '/' . $today => $CI->lang->line('reports_last_7'),
$start_of_this_month . '/' . $end_of_this_month => $CI->lang->line('reports_this_month'),
$start_of_last_month . '/' . $end_of_last_month => $CI->lang->line('reports_last_month'),
$start_of_this_year . '/' . $end_of_this_year => $CI->lang->line('reports_this_year'),
$start_of_last_year . '/' . $end_of_last_year => $CI->lang->line('reports_last_year'),
$start_of_time . '/' . $today => $CI->lang->line('reports_all_time'),
);
}
function get_months()
{
$months = array();
for($k=1;$k<=12;$k++)
{
$cur_month = mktime(0, 0, 0, $k, 1, 2000);
$months[date("m", $cur_month)] = date("M",$cur_month);
}
return $months;
}
function get_days()
{
$days = array();
for($k=1;$k<=31;$k++)
{
$cur_day = mktime(0, 0, 0, 1, $k, 2000);
$days[date('d',$cur_day)] = date('j',$cur_day);
}
return $days;
}
function get_years()
{
$years = array();
for($k=0;$k<10;$k++)
{
$years[date("Y")-$k] = date("Y")-$k;
}
return $years;
}
function get_random_colors($how_many)
{
$colors = array();
for($k=0;$k<$how_many;$k++)
{
$colors[] = '#'.random_color();
}
return $colors;
}
function random_color()
{
mt_srand((double)microtime()*1000000);
$c = '';
while(strlen($c)<6){
$c .= sprintf("%02X", mt_rand(0, 255));
}
return $c;
}

View File

View File

@@ -0,0 +1,350 @@
<?php
/*
Gets the html table to manage people.
*/
function get_people_manage_table($people,$controller)
{
$CI =& get_instance();
$table='<table class="tablesorter" id="sortable_table">';
$headers = array('<input type="checkbox" id="select_all" />',
$CI->lang->line('common_last_name'),
$CI->lang->line('common_first_name'),
$CI->lang->line('common_email'),
$CI->lang->line('common_phone_number'),
'&nbsp');
$table.='<thead><tr>';
foreach($headers as $header)
{
$table.="<th>$header</th>";
}
$table.='</tr></thead><tbody>';
$table.=get_people_manage_table_data_rows($people,$controller);
$table.='</tbody></table>';
return $table;
}
/*
Gets the html data rows for the people.
*/
function get_people_manage_table_data_rows($people,$controller)
{
$CI =& get_instance();
$table_data_rows='';
foreach($people->result() as $person)
{
$table_data_rows.=get_person_data_row($person,$controller);
}
if($people->num_rows()==0)
{
$table_data_rows.="<tr><td colspan='6'><div class='warning_message' style='padding:7px;'>".$CI->lang->line('common_no_persons_to_display')."</div></tr></tr>";
}
return $table_data_rows;
}
function get_person_data_row($person,$controller)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
$width = $controller->get_form_width();
$table_data_row='<tr>';
$table_data_row.="<td width='5%'><input type='checkbox' id='person_$person->person_id' value='".$person->person_id."'/></td>";
$table_data_row.='<td width="20%">'.character_limiter($person->last_name,13).'</td>';
$table_data_row.='<td width="20%">'.character_limiter($person->first_name,13).'</td>';
$table_data_row.='<td width="30%">'.mailto($person->email,character_limiter($person->email,22)).'</td>';
$table_data_row.='<td width="20%">'.character_limiter($person->phone_number,13).'</td>';
$table_data_row.='<td width="5%">'.anchor($controller_name."/view/$person->person_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).'</td>';
$table_data_row.='</tr>';
return $table_data_row;
}
/*
Gets the html table to manage suppliers.
*/
function get_supplier_manage_table($suppliers,$controller)
{
$CI =& get_instance();
$table='<table class="tablesorter" id="sortable_table">';
$headers = array('<input type="checkbox" id="select_all" />',
$CI->lang->line('suppliers_company_name'),
$CI->lang->line('common_last_name'),
$CI->lang->line('common_first_name'),
$CI->lang->line('common_email'),
$CI->lang->line('common_phone_number'),
'&nbsp');
$table.='<thead><tr>';
foreach($headers as $header)
{
$table.="<th>$header</th>";
}
$table.='</tr></thead><tbody>';
$table.=get_supplier_manage_table_data_rows($suppliers,$controller);
$table.='</tbody></table>';
return $table;
}
/*
Gets the html data rows for the supplier.
*/
function get_supplier_manage_table_data_rows($suppliers,$controller)
{
$CI =& get_instance();
$table_data_rows='';
foreach($suppliers->result() as $supplier)
{
$table_data_rows.=get_supplier_data_row($supplier,$controller);
}
if($suppliers->num_rows()==0)
{
$table_data_rows.="<tr><td colspan='7'><div class='warning_message' style='padding:7px;'>".$CI->lang->line('common_no_persons_to_display')."</div></tr></tr>";
}
return $table_data_rows;
}
function get_supplier_data_row($supplier,$controller)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
$width = $controller->get_form_width();
$table_data_row='<tr>';
$table_data_row.="<td width='5%'><input type='checkbox' id='person_$supplier->person_id' value='".$supplier->person_id."'/></td>";
$table_data_row.='<td width="17%">'.character_limiter($supplier->company_name,13).'</td>';
$table_data_row.='<td width="17%">'.character_limiter($supplier->last_name,13).'</td>';
$table_data_row.='<td width="17%">'.character_limiter($supplier->first_name,13).'</td>';
$table_data_row.='<td width="22%">'.mailto($supplier->email,character_limiter($supplier->email,22)).'</td>';
$table_data_row.='<td width="17%">'.character_limiter($supplier->phone_number,13).'</td>';
$table_data_row.='<td width="5%">'.anchor($controller_name."/view/$supplier->person_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).'</td>';
$table_data_row.='</tr>';
return $table_data_row;
}
/*
Gets the html table to manage items.
*/
function get_items_manage_table($items,$controller)
{
$CI =& get_instance();
$table='<table class="tablesorter" id="sortable_table">';
$headers = array('<input type="checkbox" id="select_all" />',
$CI->lang->line('items_item_number'),
$CI->lang->line('items_name'),
$CI->lang->line('items_category'),
$CI->lang->line('items_cost_price'),
$CI->lang->line('items_unit_price'),
$CI->lang->line('items_tax_percents'),
$CI->lang->line('items_quantity'),
'&nbsp;',
$CI->lang->line('items_inventory')
);
$table.='<thead><tr>';
foreach($headers as $header)
{
$table.="<th>$header</th>";
}
$table.='</tr></thead><tbody>';
$table.=get_items_manage_table_data_rows($items,$controller);
$table.='</tbody></table>';
return $table;
}
/*
Gets the html data rows for the items.
*/
function get_items_manage_table_data_rows($items,$controller)
{
$CI =& get_instance();
$table_data_rows='';
foreach($items->result() as $item)
{
$table_data_rows.=get_item_data_row($item,$controller);
}
if($items->num_rows()==0)
{
$table_data_rows.="<tr><td colspan='11'><div class='warning_message' style='padding:7px;'>".$CI->lang->line('items_no_items_to_display')."</div></tr></tr>";
}
return $table_data_rows;
}
function get_item_data_row($item,$controller)
{
$CI =& get_instance();
$item_tax_info=$CI->Item_taxes->get_info($item->item_id);
$tax_percents = '';
foreach($item_tax_info as $tax_info)
{
$tax_percents.=$tax_info['percent']. '%, ';
}
$tax_percents=substr($tax_percents, 0, -2);
$controller_name=strtolower(get_class($CI));
$width = $controller->get_form_width();
$table_data_row='<tr>';
$table_data_row.="<td width='3%'><input type='checkbox' id='item_$item->item_id' value='".$item->item_id."'/></td>";
$table_data_row.='<td width="15%">'.$item->item_number.'</td>';
$table_data_row.='<td width="20%">'.$item->name.'</td>';
$table_data_row.='<td width="14%">'.$item->category.'</td>';
$table_data_row.='<td width="14%">'.to_currency($item->cost_price).'</td>';
$table_data_row.='<td width="14%">'.to_currency($item->unit_price).'</td>';
$table_data_row.='<td width="14%">'.$tax_percents.'</td>';
$table_data_row.='<td width="14%">'.$item->quantity.'</td>';
$table_data_row.='<td width="5%">'.anchor($controller_name."/view/$item->item_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).'</td>';
//Ramel Inventory Tracking
$table_data_row.='<td width="10%">'.anchor($controller_name."/inventory/$item->item_id/width:$width", $CI->lang->line('common_inv'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_count')))./*'</td>';//inventory count
$table_data_row.='<td width="5%">'*/'&nbsp;&nbsp;&nbsp;&nbsp;'.anchor($controller_name."/count_details/$item->item_id/width:$width", $CI->lang->line('common_det'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_details_count'))).'</td>';//inventory details
$table_data_row.='</tr>';
return $table_data_row;
}
/*
Gets the html table to manage giftcards.
*/
function get_giftcards_manage_table( $giftcards, $controller )
{
$CI =& get_instance();
$table='<table class="tablesorter" id="sortable_table">';
$headers = array('<input type="checkbox" id="select_all" />',
$CI->lang->line('common_last_name'),
$CI->lang->line('common_first_name'),
$CI->lang->line('giftcards_giftcard_number'),
$CI->lang->line('giftcards_card_value'),
'&nbsp',
);
$table.='<thead><tr>';
foreach($headers as $header)
{
$table.="<th>$header</th>";
}
$table.='</tr></thead><tbody>';
$table.=get_giftcards_manage_table_data_rows( $giftcards, $controller );
$table.='</tbody></table>';
return $table;
}
/*
Gets the html data rows for the giftcard.
*/
function get_giftcards_manage_table_data_rows( $giftcards, $controller )
{
$CI =& get_instance();
$table_data_rows='';
foreach($giftcards->result() as $giftcard)
{
$table_data_rows.=get_giftcard_data_row( $giftcard, $controller );
}
if($giftcards->num_rows()==0)
{
$table_data_rows.="<tr><td colspan='11'><div class='warning_message' style='padding:7px;'>".$CI->lang->line('giftcards_no_giftcards_to_display')."</div></tr></tr>";
}
return $table_data_rows;
}
/** GARRISON MODIFIED 4/25/2013 **/
function get_giftcard_data_row($giftcard,$controller)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
$width = $controller->get_form_width();
$table_data_row='<tr>';
$table_data_row.="<td width='3%'><input type='checkbox' id='giftcard_$giftcard->giftcard_id' value='".$giftcard->giftcard_id."'/></td>";
$table_data_row.='<td width="15%">'.$giftcard->last_name.'</td>';
$table_data_row.='<td width="15%">'.$giftcard->first_name.'</td>';
$table_data_row.='<td width="15%">'.$giftcard->giftcard_number.'</td>';
$table_data_row.='<td width="20%">'.to_currency($giftcard->value).'</td>';
$table_data_row.='<td width="5%">'.anchor($controller_name."/view/$giftcard->giftcard_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).'</td>';
$table_data_row.='</tr>';
return $table_data_row;
}
/** END GARRISON MODIFIED **/
/*
Gets the html table to manage item kits.
*/
function get_item_kits_manage_table( $item_kits, $controller )
{
$CI =& get_instance();
$table='<table class="tablesorter" id="sortable_table">';
$headers = array('<input type="checkbox" id="select_all" />',
$CI->lang->line('item_kits_name'),
$CI->lang->line('item_kits_description'),
'&nbsp',
);
$table.='<thead><tr>';
foreach($headers as $header)
{
$table.="<th>$header</th>";
}
$table.='</tr></thead><tbody>';
$table.=get_item_kits_manage_table_data_rows( $item_kits, $controller );
$table.='</tbody></table>';
return $table;
}
/*
Gets the html data rows for the item kits.
*/
function get_item_kits_manage_table_data_rows( $item_kits, $controller )
{
$CI =& get_instance();
$table_data_rows='';
foreach($item_kits->result() as $item_kit)
{
$table_data_rows.=get_item_kit_data_row( $item_kit, $controller );
}
if($item_kits->num_rows()==0)
{
$table_data_rows.="<tr><td colspan='11'><div class='warning_message' style='padding:7px;'>".$CI->lang->line('item_kits_no_item_kits_to_display')."</div></tr></tr>";
}
return $table_data_rows;
}
function get_item_kit_data_row($item_kit,$controller)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
$width = $controller->get_form_width();
$table_data_row='<tr>';
$table_data_row.="<td width='3%'><input type='checkbox' id='item_kit_$item_kit->item_kit_id' value='".$item_kit->item_kit_id."'/></td>";
$table_data_row.='<td width="15%">'.$item_kit->name.'</td>';
$table_data_row.='<td width="20%">'.character_limiter($item_kit->description, 25).'</td>';
$table_data_row.='<td width="5%">'.anchor($controller_name."/view/$item_kit->item_kit_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).'</td>';
$table_data_row.='</tr>';
return $table_data_row;
}
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<?php
//Loads configuration from database into global CI config
function load_config()
{
$CI =& get_instance();
foreach( $CI->Appconfig->get_all()->result() as $app_config )
{
$CI->config->set_item( $app_config->key, $app_config->value );
}
if ( $CI->config->item( 'language' ) )
{
$CI->config->set_item( 'language', $CI->config->item( 'language' ) );
$loaded = $CI->lang->is_loaded;
$CI->lang->is_loaded = array();
foreach($loaded as $file)
{
$CI->lang->load( str_replace( '_lang.php', '', $file ) );
}
}
if ( $CI->config->item( 'timezone' ) )
{
date_default_timezone_set( $CI->config->item( 'timezone' ) );
}
else
{
date_default_timezone_set( 'America/New_York' );
}
}
?>

10
application/index.html Normal file
View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<?php
$lang['common_common']='common';
$lang['common_submit']='Submit';
$lang['common_or']='OR';
$lang['common_powered_by']='Powered by';
$lang['common_welcome']='Welcome';
$lang['common_logout']='Logout';
$lang['common_list_of']='List of';
$lang['common_first_name']='First Name';
$lang['common_last_name']='Last Name';
$lang['common_email']='E-Mail';
$lang['common_phone_number']='Phone Number';
$lang['common_address_1']='Address 1';
$lang['common_address_2']='Address 2';
$lang['common_city']='City';
$lang['common_state']='State';
$lang['common_zip']='Zip';
$lang['common_country']='Country';
$lang['common_comments']='Comments';
$lang['common_edit']='edit';
$lang['common_search']='Search';
$lang['common_delete']='Delete';
$lang['common_remove']='Remove';
$lang['common_view_recent_sales']='View Recent Sales';
$lang['common_you_are_using_ospos']='You are using Open Source Point Of Sale Version';
$lang['common_please_visit_my']='Please visit my';
$lang['common_website']='website';
$lang['common_fields_required_message']='Fields in red are required';
$lang['common_learn_about_project']='to learn the lastest information about the project';
$lang['common_searched_for']='Searched for';
$lang['common_first_name_required']='The first name is a required field.';
$lang['common_last_name_required']='The last name is a required field';
$lang['common_email_invalid_format']='The e-mail address is not in the proper format';
$lang['common_confirm_search']='You have selected one or more rows, these will no longer be selected after your search. Are you sure you want to submit this search?';
$lang['common_no_persons_to_display']='There are no people to display';
$lang['common_return_policy']='Return Policy';
$lang['common_price']='Price';
$lang['common_welcome_message']= 'Welcome to Open Source Point Of Sale, click a module below to get started!';
$lang['common_inv']='inv';
$lang['common_det']='details';
?>

View File

@@ -0,0 +1,35 @@
<?php
$lang['config_info']='Store Configuration Information';
$lang['config_company']='Company Name';
$lang['config_address']='Company Address';
$lang['config_phone']='Company Phone';
$lang['config_website']='Website';
$lang['config_fax']='Fax';
$lang['config_default_tax_rate']='Default Tax Rate %';
$lang['config_default_tax_rate_1']='Tax 1 Rate';
$lang['config_default_tax_rate_2']='Tax 2 Rate';
$lang['config_company_required']='Company name is a required field';
$lang['config_address_required']='Company address is a required field';
$lang['config_phone_required']='Company phone is a required field';
$lang['config_default_tax_rate_required']='The default tax rate is a required field';
$lang['config_default_tax_rate_number']='The default tax rate must be a number';
$lang['config_company_website_url']='Company website is not a valid URL (http://...)';
$lang['config_saved_successfully']='Configuration saved successfully';
$lang['config_saved_unsuccessfully']='Configuration saved unsuccessfully';
$lang['config_return_policy_required']='Return policy is a required field';
$lang['config_print_after_sale']='Print receipt after sale';
$lang['config_language'] = 'Language';
$lang['config_timezone'] = 'Timezone';
$lang['config_currency_symbol'] = 'Currency Symbol';
$lang['config_currency_side'] = 'Right side'; //GARRISON ADDED 4/20/2013
$lang['config_custom1'] = 'Custom Field 1'; //GARRISON ADDED 4/21/2013
$lang['config_custom2'] = 'Custom Field 2'; //GARRISON ADDED 4/21/2013
$lang['config_custom3'] = 'Custom Field 3'; //GARRISON ADDED 4/21/2013
$lang['config_custom4'] = 'Custom Field 4'; //GARRISON ADDED 4/21/2013
$lang['config_custom5'] = 'Custom Field 5'; //GARRISON ADDED 4/21/2013
$lang['config_custom6'] = 'Custom Field 6'; //GARRISON ADDED 4/21/2013
$lang['config_custom7'] = 'Custom Field 7'; //GARRISON ADDED 4/21/2013
$lang['config_custom8'] = 'Custom Field 8'; //GARRISON ADDED 4/21/2013
$lang['config_custom9'] = 'Custom Field 9'; //GARRISON ADDED 4/21/2013
$lang['config_custom10'] = 'Custom Field 10'; //GARRISON ADDED 4/21/2013
?>

View File

@@ -0,0 +1,16 @@
<?php
$lang['customers_new']='New Customer';
$lang['customers_customer']='Customer';
$lang['customers_update']='Update Customer';
$lang['customers_confirm_delete']='Are you sure you want to delete the selected customers?';
$lang['customers_none_selected']='You have not selected any customers to delete';
$lang['customers_error_adding_updating'] = 'Error adding/updating customer';
$lang['customers_successful_adding']='You have successfully added customer';
$lang['customers_successful_updating']='You have successfully updated customer';
$lang['customers_successful_deleted']='You have successfully deleted';
$lang['customers_one_or_multiple']='customer(s)';
$lang['customers_cannot_be_deleted']='Could not deleted selected customers, one or more of the selected customers has sales.';
$lang['customers_basic_information']='Customer Information';
$lang['customers_account_number']='Account #';
$lang['customers_taxable']='Taxable';
?>

View File

@@ -0,0 +1,27 @@
<?php
$lang['employees_employee']='Employee';
$lang['employees_new']='New Employee';
$lang['employees_update']='Update Employee';
$lang['employees_confirm_delete']='Are you sure you want to delete the selected employees?';
$lang['employees_none_selected']='You have not selected any employees to delete';
$lang['employees_error_adding_updating'] = 'Error adding/updating employee';
$lang['employees_successful_adding']='You have successfully added employee';
$lang['employees_successful_updating']='You have successfully updated employee';
$lang['employees_successful_deleted']='You have successfully deleted';
$lang['employees_one_or_multiple']='employee(s)';
$lang['employees_cannot_be_deleted']='Could not deleted selected employees, one or more of the employees has processed sales or you are trying to delete yourself :)';
$lang['employees_username']='Username';
$lang['employees_password']='Password';
$lang['employees_repeat_password']='Password Again';
$lang['employees_username_required']='Username is a required field';
$lang['employees_username_minlength']='The username must be at least 5 characters';
$lang['employees_password_required']='Password is required';
$lang['employees_password_minlength']='Passwords must be at least 8 characters';
$lang['employees_password_must_match']='Passwords do not match';
$lang['employees_basic_information']='Employee Basic Information';
$lang['employees_login_info']='Employee Login Info';
$lang['employees_permission_info']='Employee Permissions and Access';
$lang['employees_permission_desc']='Check the boxes below to grant access to modules';
$lang['employees_error_updating_demo_admin'] = 'You can not change the demo admin user';
$lang['employees_error_deleting_demo_admin'] = 'You can not delete the demo admin user';
?>

View File

@@ -0,0 +1,4 @@
<?php
$lang['error_no_permission_module']='You do not have permission to access the module named';
$lang['error_unknown']='unknown';
?>

View File

@@ -0,0 +1,70 @@
<?php
$lang['giftcards_giftcard_number']='Giftcard Number';
$lang['giftcards_card_value']='Value';
$lang['giftcards_basic_information']='Giftcard Information';
$lang['giftcards_number_required']='Giftcard Number is a required field';
$lang['giftcards_value_required']='Giftcard Value is a required field';
$lang['giftcards_number']='Giftcard Number must be a number';
$lang['giftcards_value']='Giftcard Value must be a number';
$lang['giftcards_person_id']='Customer';
$lang['giftcards_retrive_giftcard_info']='Retrive Giftcard Info';
$lang['giftcards_description']='Description';
$lang['giftcards_amazon']='Amazon';
$lang['giftcards_upc_database']='UPC Database';
$lang['giftcards_cannot_find_giftcard']='Cannot find any information about giftcard';
$lang['giftcards_info_provided_by']='Info provided by';
$lang['giftcards_number_information']='Giftcard Number';
$lang['giftcards_new']='New Giftcard';
$lang['giftcards_update']='Update Giftcard';
$lang['giftcards_giftcard']='Giftcard';
$lang['giftcards_edit_multiple_giftcards']='Editing Multiple Giftcards';
$lang['giftcards_category']='Category';
$lang['giftcards_cost_price']='Cost Price';
$lang['giftcards_unit_price']='Unit Price';
$lang['giftcards_tax_1']='Tax 1';
$lang['giftcards_tax_2']='Tax 2';
$lang['giftcards_sales_tax_1'] = 'Sales Tax';
$lang['giftcards_sales_tax_2'] = 'Sales Tax 2';
$lang['giftcards_tax_percent']='Tax Percent';
$lang['giftcards_tax_percents']='Tax Percent(s)';
$lang['giftcards_reorder_level']='Reorder Level';
$lang['giftcards_quantity']='Quantity';
$lang['giftcards_no_giftcards_to_display']='No Giftcards to display';
$lang['giftcards_bulk_edit']='Bulk Edit';
$lang['giftcards_confirm_delete']='Are you sure you want to delete the selected giftcards?';
$lang['giftcards_none_selected']='You have not selected any giftcards to edit';
$lang['giftcards_confirm_bulk_edit']='Are you sure you want to edit all the giftcards selected?';
$lang['giftcards_successful_bulk_edit']='You have successfully updated the selected giftcards';
$lang['giftcards_error_updating_multiple']='Error updating giftcards';
$lang['giftcards_edit_fields_you_want_to_update']='Edit the fields you want to edit for ALL selected giftcards';
$lang['giftcards_error_adding_updating'] = 'Error adding/updating giftcard';
$lang['giftcards_successful_adding']='You have successfully added giftcard';
$lang['giftcards_successful_updating']='You have successfully updated giftcard';
$lang['giftcards_successful_deleted']='You have successfully deleted';
$lang['giftcards_one_or_multiple']='giftcard(s)';
$lang['giftcards_cannot_be_deleted']='Could not deleted selected giftcards, one or more of the selected giftcards has sales.';
$lang['giftcards_none'] = 'None';
$lang['giftcards_supplier'] = 'Supplier';
$lang['giftcards_generate_barcodes'] = 'Generate Barcodes';
$lang['giftcards_must_select_giftcard_for_barcode'] = 'You must select at least 1 giftcard to generate barcodes';
$lang['giftcards_excel_import_failed'] = 'Excel import failed';
$lang['giftcards_allow_alt_desciption'] = 'Allow Alt Description';
$lang['giftcards_is_serialized'] = 'Giftcard has Serial Number';
$lang['giftcards_low_inventory_giftcards'] = 'Low Inventory Giftcards';
$lang['giftcards_serialized_giftcards'] = 'Serialized Giftcards';
$lang['giftcards_no_description_giftcards'] = 'No Description Giftcards';
$lang['giftcards_inventory_comments']='Comments';
$lang['giftcards_count']='Update Inventory';
$lang['giftcards_details_count']='Inventory Count Details';
$lang['giftcards_add_minus']='Inventory to add/subtract';
$lang['giftcards_current_quantity']='Current Quantity';
$lang['giftcards_quantity_required']='Quantity is a required field. Please Close ( X ) to cancel';
$lang['giftcards_do_nothing'] = 'Do Nothing';
$lang['giftcards_change_all_to_serialized'] = 'Change All To Serialized';
$lang['giftcards_change_all_to_unserialized'] = 'Change All To Unserialized';
$lang['giftcards_change_all_to_allow_alt_desc'] = 'Allow Alt Desc For All';
$lang['giftcards_change_all_to_not_allow_allow_desc'] = 'Not Allow Alt Desc For All';
$lang['giftcards_use_inventory_menu'] = 'Use Inv. Menu';
$lang['giftcards_manually_editing_of_quantity'] = 'Manual Edit of Quantity';
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
$lang['item_kits_name'] = 'Item Kit Name';
$lang['item_kits_description'] = 'Item Kit Description';
$lang['item_kits_no_item_kits_to_display'] = 'No item kits to display';
$lang['item_kits_update'] = 'Update Item Kit';
$lang['item_kits_new'] = 'New Item Kit';
$lang['item_kits_none_selected'] = "You have not selected any item kits";
$lang['item_kits_info'] = 'Item Kit Info';
$lang['item_kits_successful_adding'] = 'You have successfully added Item Kit';
$lang['item_kits_successful_updating'] = 'You have successfully updated Item Kit';
$lang['item_kits_error_adding_updating'] = 'Error adding/updating Item Kit';
$lang['item_kits_successful_deleted'] = 'You have successfully deleted';
$lang['item_kits_confirm_delete'] = 'Are you sure you want to delete the selected item kits?';
$lang['item_kits_one_or_multiple'] = 'Item Kit(s)';
$lang['item_kits_cannot_be_deleted'] = 'Could not delete item kit(s)';
$lang['item_kits_add_item'] = 'Add Item';
$lang['item_kits_items'] = 'Items';
$lang['item_kits_item'] = 'Item';
$lang['item_kits_quantity'] = 'Quantity';
?>

View File

@@ -0,0 +1,80 @@
<?php
$lang['items_item_number']='UPC/EAN/ISBN';
$lang['items_retrive_item_info']='Retrive Item Info';
$lang['items_description']='Description';
$lang['items_amazon']='Amazon';
$lang['items_upc_database']='UPC Database';
$lang['items_cannot_find_item']='Cannot find any information about item';
$lang['items_info_provided_by']='Info provided by';
$lang['items_basic_information']='Item Information';
$lang['items_number_information']='Item Number';
$lang['items_new']='New Item';
$lang['items_update']='Update Item';
$lang['items_item']='Item';
$lang['items_edit_multiple_items']='Editing Multiple Items';
$lang['items_name']='Item Name';
$lang['items_category']='Category';
$lang['items_cost_price']='Wholesale Price';//GARRISON ADDED 4/21/2013
$lang['items_unit_price']='Retail Price';//GARRISON ADDED 4/21/2013
$lang['items_tax_1']='Tax 1';
$lang['items_tax_2']='Tax 2';
$lang['items_sales_tax_1'] = 'Sales Tax';
$lang['items_sales_tax_2'] = 'Sales Tax 2';
$lang['items_tax_percent']='Tax Percent';
$lang['items_tax_percents']='Tax Percent(s)';
$lang['items_reorder_level']='Reorder Level';
$lang['items_quantity']='Quantity';
$lang['items_reorder_level']='Reorder Level';
$lang['items_no_items_to_display']='No Items to display';
$lang['items_bulk_edit']='Bulk Edit';
$lang['items_confirm_delete']='Are you sure you want to delete the selected items?';
$lang['items_none_selected']='You have not selected any items to edit';
$lang['items_confirm_bulk_edit']='Are you sure you want to edit all the items selected?';
$lang['items_successful_bulk_edit']='You have successfully updated the selected items';
$lang['items_error_updating_multiple']='Error updating items';
$lang['items_edit_fields_you_want_to_update']='Edit the fields you want to edit for ALL selected items';
$lang['items_error_adding_updating'] = 'Error adding/updating item';
$lang['items_successful_adding']='You have successfully added item';
$lang['items_successful_updating']='You have successfully updated item';
$lang['items_successful_deleted']='You have successfully deleted';
$lang['items_one_or_multiple']='item(s)';
$lang['items_cannot_be_deleted']='Could not deleted selected items, one or more of the selected items has sales.';
$lang['items_name_required']='Item Name is a required field';
$lang['items_category_required']='Category is a required field';
$lang['items_buy_price_required']='Buy price is a required field';
$lang['items_unit_price_required']='Selling Price is a required field';
$lang['items_cost_price_required']='Cost Price is a required field';
$lang['items_tax_percent_required']='Tax Percent is a required field';
$lang['items_quantity_required']='Quantity is a required field';
$lang['items_reorder_level_required']='Reorder level is a required field';
$lang['items_unit_price_number']='Unit price must be a number';
$lang['items_cost_price_number']='Cost price must be a number';
$lang['items_quantity_number']='Quantity must be a number';
$lang['items_reorder_level_number']='Reorder level must be a number';
$lang['items_none'] = 'None';
$lang['items_supplier'] = 'Supplier';
$lang['items_generate_barcodes'] = 'Generate Barcodes';
$lang['items_must_select_item_for_barcode'] = 'You must select at least 1 item to generate barcodes';
$lang['items_excel_import_failed'] = 'Excel import failed';
$lang['items_allow_alt_desciption'] = 'Allow Alt Description';
$lang['items_is_serialized'] = 'Item has Serial Number';
$lang['items_low_inventory_items'] = 'Low Inventory Items';
$lang['items_serialized_items'] = 'Serialized Items';
$lang['items_no_description_items'] = 'No Description Items';
$lang['items_search_custom_items'] = 'Search Custom Fields';//GARRISON ADDED
$lang['items_inventory_comments']='Comments';
$lang['items_count']='Update Inventory';
$lang['items_details_count']='Inventory Count Details';
$lang['items_add_minus']='Inventory to add/subtract';
$lang['items_current_quantity']='Current Quantity';
$lang['items_quantity_required']='Quantity is a required field. Please Close ( X ) to cancel';
$lang['items_do_nothing'] = 'Do Nothing';
$lang['items_change_all_to_serialized'] = 'Change All To Serialized';
$lang['items_change_all_to_unserialized'] = 'Change All To Unserialized';
$lang['items_change_all_to_allow_alt_desc'] = ' Allow Alt Desc For All';
$lang['items_change_all_to_not_allow_allow_desc'] = 'Not Allow Alt Desc For All';
$lang['items_use_inventory_menu'] = 'Use Inv. Menu';
$lang['items_manually_editing_of_quantity'] = 'Manual Edit of Quantity';
$lang['items_inventory'] = 'Inventory';
$lang['items_location'] = 'Location';
?>

View File

@@ -0,0 +1,8 @@
<?php
$lang['login_login']='Login';
$lang['login_username']='Username';
$lang['login_password']='Password';
$lang['login_go']='Go';
$lang['login_invalid_username_and_password']='Invalid username/password';
$lang['login_welcome_message']='Welcome to the Open Source Point of Sale System. To continue, please login using your username and password below.';
?>

View File

@@ -0,0 +1,34 @@
<?php
$lang['module_home']='Home';
$lang['module_customers']='Customers';
$lang['module_customers_desc']='Add, Update, Delete, and Search customers';
$lang['module_suppliers']='Suppliers';
$lang['module_suppliers_desc']='Add, Update, Delete, and Search suppliers';
$lang['module_employees']='Employees';
$lang['module_employees_desc']='Add, Update, Delete, and Search employees';
$lang['module_sales']='Sales';
$lang['module_sales_desc']='Process sales and returns';
$lang['module_reports']='Reports';
$lang['module_reports_desc']='View and generate reports';
$lang['module_items']='Items';
$lang['module_items_desc']='Add, Update, Delete, and Search items';
$lang['module_config']='Store Config';
$lang['module_config_desc']='Change the store\'s configuration';
$lang['module_receivings']='Receivings';
$lang['module_receivings_desc']='Process Purchase orders';
$lang['module_giftcards']='Gift Cards';
$lang['module_giftcards_desc']='Add, Update, Delete and Search gift cards';
$lang['module_item_kits']='Item Kits';
$lang['module_item_kits_desc']='Add, Update, Delete and Search Item Kits';
?>

View File

@@ -0,0 +1,26 @@
<?php
$lang['recvs_register']='Items Receiving';
$lang['recvs_mode']='Receiving Mode';
$lang['recvs_receiving']='Receive';
$lang['recvs_return']='Return';
$lang['recvs_total']='Total';
$lang['recvs_cost']='Cost';
$lang['recvs_quantity']='Qty.';
$lang['recvs_discount']='Disc %';
$lang['recvs_edit']='Edit';
$lang['recvs_new_supplier'] = 'New Supplier';
$lang['recvs_supplier'] = 'Supplier';
$lang['recvs_select_supplier']='Select Supplier (Optional)';
$lang['recvs_start_typing_supplier_name']='Start Typing supplier\'s name...';
$lang['recvs_unable_to_add_item']='Unable to add item to receiving';
$lang['recvs_error_editing_item']='Error editing item';
$lang['recvs_receipt']='Receivings Receipt';
$lang['recvs_complete_receiving']='Finish';
$lang['recvs_confirm_finish_receiving'] = 'Are you sure you want to submit this receiving? This cannot be undone.';
$lang['recvs_confirm_cancel_receiving'] = 'Are you sure you want to clear this receiving? All items will cleared.';
$lang['recvs_find_or_scan_item']='Find/Scan Item';
$lang['recvs_find_or_scan_item_or_receipt']='Find/Scan Item OR Receipt';
$lang['recvs_id']='Receiving ID';
$lang['recvs_item_name'] = 'Item Name';
$lang['receivings_transaction_failed'] = 'Receivings Transactions Failed';
?>

View File

@@ -0,0 +1,87 @@
<?php
$lang['reports_reports'] = 'Reports';
$lang['reports_report'] = 'Report';
$lang['reports_welcome_message'] = 'Welcome to the reports panel. Please select a report to view.';
$lang['reports_sales_summary_report'] = 'Sales Summary Report';
$lang['reports_categories_summary_report'] = 'Categories Summary Report';
$lang['reports_customers_summary_report'] = 'Customers Summary Report';
$lang['reports_suppliers_summary_report'] = 'Suppliers Summary Report';
$lang['reports_items_summary_report'] = 'Items Summary Report';
$lang['reports_employees_summary_report'] = 'Employees Summary Report';
$lang['reports_taxes_summary_report'] = 'Taxes Summary Report';
$lang['reports_date'] = 'Date';
$lang['reports_name'] = 'Name';
$lang['reports_quantity_purchased'] = 'Quantity Purchased';
$lang['reports_sale_id'] = 'Sale ID';
$lang['reports_items_purchased'] = 'Items Purchased';
$lang['reports_sold_by'] = 'Sold By';
$lang['reports_sold_to'] = 'Sold To';
$lang['reports_category'] = 'Category';
$lang['reports_customer'] = 'Customer';
$lang['reports_employee'] = 'Employee';
$lang['reports_item'] = 'Item';
$lang['reports_items'] = 'Items';
$lang['reports_supplier'] = 'Supplier';
$lang['reports_employees'] = 'Employees';
$lang['reports_subtotal'] = 'Subtotal';
$lang['reports_total'] = 'Total';
$lang['reports_tax'] = 'Tax';
$lang['reports_profit'] = 'Profit';
$lang['reports_report_input'] = 'Report Input';
$lang['reports_type'] = 'Type';
$lang['reports_date_range'] = 'Date Range';
$lang['reports_today'] = 'Today';
$lang['reports_yesterday'] = 'Yesterday';
$lang['reports_last_7'] = 'Last 7 Days';
$lang['reports_this_month'] = 'This Month';
$lang['reports_last_month'] = 'Last Month';
$lang['reports_this_year'] = 'This Year';
$lang['reports_last_year'] = 'Last Year';
$lang['reports_all_time'] = 'All Time';
$lang['reports_detailed_sales_report'] = 'Detailed Sales Report';
$lang['reports_comments'] = 'Comments';
$lang['reports_discount'] = 'Discount';
$lang['reports_payment_type'] = 'Payment Type';
$lang['reports_sales'] = 'Sales';
$lang['reports_categories'] = 'Categories';
$lang['reports_customers'] = 'Customers';
$lang['reports_suppliers'] = 'Suppliers';
$lang['reports_items'] = 'Items';
$lang['reports_employees'] = 'Employees';
$lang['reports_taxes'] = 'Taxes';
$lang['reports_customer'] = 'Customer';
$lang['reports_employee'] = 'Employee';
$lang['reports_tax_percent'] = 'Tax Percent';
$lang['reports_quantity_purchased'] = 'Quantity Purchased';
$lang['reports_serial_number'] = 'Serial #';
$lang['reports_description'] = 'Description';
$lang['reports_date'] = 'Date';
$lang['reports_sales_amount'] = 'Sales amount';
$lang['reports_revenue'] = 'Revenue';
$lang['reports_discounts'] = 'Discounts';
$lang['reports_discounts_summary_report'] = 'Discounts Summary Report';
$lang['reports_discount_percent'] = 'Discount Percent';
$lang['reports_count'] = 'Count';
$lang['reports_summary_reports'] = 'Summary Reports';
$lang['reports_graphical_reports'] = 'Graphical Reports';
$lang['reports_detailed_reports'] = 'Detailed Reports';
$lang['reports_inventory_reports'] = 'Inventory Reports';
$lang['reports_low_inventory'] = 'Low Inventory';
$lang['reports_inventory_summary'] = ' Inventory Summary';
$lang['reports_item_number'] = 'Item Number';
$lang['reports_reorder_level'] = 'Reorder Level';
$lang['reports_low_inventory_report'] = 'Low Inventory Report';
$lang['reports_item_name'] = 'Item Name';
$lang['reports_inventory_summary_report'] = 'Inventory Summary Report';
$lang['reports_payment_type'] = 'Payment Type';
$lang['reports_payments_summary_report'] = 'Payments Summary Report';
$lang['reports_payments'] = 'Payments';
$lang['reports_receivings'] = 'Receivings';
$lang['reports_received_by'] = 'Received By';
$lang['reports_supplied_by'] = 'Supplied by';
$lang['reports_items_received'] = 'Items Received';
$lang['reports_detailed_receivings_report'] = 'Detailed Receivings Report';
$lang['reports_sale_type'] = 'Sale Type';
$lang['reports_all'] = 'All';
$lang['reports_returns'] = 'Returns';
?>

View File

@@ -0,0 +1,79 @@
<?php
$lang['sales_giftcard_number']='Gift Card Number';
$lang['sales_giftcard']='Gift Card';
$lang['sales_register']='Sales Register';
$lang['sales_mode']='Register Mode';
$lang['sales_new_item'] = 'New Item';
$lang['sales_item_name'] = 'Item Name';
$lang['sales_item_number'] = 'Item #';
$lang['sales_new_customer'] = 'New Customer';
$lang['sales_customer'] = 'Customer';
$lang['sales_no_items_in_cart']='There are no items in the cart';
$lang['sales_total']='Total';
$lang['sales_tax_percent']='Tax %';
$lang['sales_price']='Price';
$lang['sales_quantity']='Qty.';
$lang['sales_discount']='Disc %';
$lang['sales_edit']='Edit';
$lang['sales_payment']='Payment Type';
$lang['sales_edit_item']='Edit Item';
$lang['sales_find_or_scan_item']='Find/Scan Item';
$lang['sales_find_or_scan_item_or_receipt']='Find/Scan Item OR Receipt';
$lang['sales_select_customer']='Select Customer (Optional)';
$lang['sales_start_typing_item_name']='Start Typing item\'s name or scan barcode...';
$lang['sales_start_typing_customer_name']='Start Typing customer\'s name...';
$lang['sales_sub_total']='Sub Total';
$lang['sales_tax']='Tax';
$lang['sales_comment']='Comment';
$lang['sales_unable_to_add_item']='Unable to add item to sale';
$lang['sales_sale_for_customer']='Customer:';
$lang['sales_remove_customer']='Remove Customer';
$lang['sales_error_editing_item']='Error editing item';
$lang['sales_complete_sale']='Complete Sale';
$lang['sales_cancel_sale']='Cancel Sale';
$lang['sales_add_payment']='Add Payment';
$lang['sales_receipt']='Sales Receipt';
$lang['sales_id']='Sale ID';
$lang['sales_sale']='Sale';
$lang['sales_return']='Return';
$lang['sales_confirm_finish_sale'] = 'Are you sure you want to submit this sale? This cannot be undone.';
$lang['sales_confirm_cancel_sale'] = 'Are you sure you want to clear this sale? All items will cleared.';
$lang['sales_cash'] = 'Cash';
$lang['sales_check'] = 'Check';
$lang['sales_debit'] = 'Debit Card';
$lang['sales_credit'] = 'Credit Card';
$lang['sales_giftcard'] = 'Gift Card';
$lang['sales_amount_tendered'] = 'Amount Tendered';
$lang['sales_change_due'] = 'Change Due';
$lang['sales_payment_not_cover_total'] = 'Payment Amount does not cover Total';
$lang['sales_transaction_failed'] = 'Sales Transaction Failed';
$lang['sales_must_enter_numeric'] = 'Must enter numeric value for amount tendered';
$lang['sales_must_enter_numeric_giftcard'] = 'Must enter numeric value for giftcard number';
$lang['sales_serial'] = 'Serial';
$lang['sales_description_abbrv'] = 'Desc';
$lang['sales_item_out_of_stock'] = 'Item is Out of Stock';
$lang['sales_item_insufficient_of_stock'] = 'Item is Insufficient of Stock';
$lang['sales_quantity_less_than_zero'] = 'Warning, Desired Quantity is Insufficient. You can still process the sale, but check your inventory';
$lang['sales_successfully_updated'] = 'Sale successfully updated';
$lang['sales_unsuccessfully_updated'] = 'Sale unsuccessfully updated';
$lang['sales_edit_sale'] = 'Edit Sale';
$lang['sales_employee'] = 'Employee';
$lang['sales_successfully_deleted'] = 'Sale successfully deleted';
$lang['sales_unsuccessfully_deleted'] = 'Sale unsuccessfully deleted';
$lang['sales_delete_entire_sale'] = 'Delete entire sale';
$lang['sales_delete_confirmation'] = 'Are you sure you want to delete this sale, this action cannot be undone';
$lang['sales_date'] = 'Sale Date';
$lang['sales_delete_successful'] = 'You have successfully deleted a sale';
$lang['sales_delete_unsuccessful'] = 'You have unsuccessfully deleted a sale';
$lang['sales_suspend_sale'] = 'Suspend Sale';
$lang['sales_confirm_suspend_sale'] = 'Are you sure you want to suspend this sale?';
$lang['sales_suspended_sales'] = 'Suspended Sales';
$lang['sales_suspended_sale_id'] = 'Suspended Sale ID';
$lang['sales_date'] = 'Date';
$lang['sales_customer'] = 'Customer';
$lang['sales_comments'] = 'Comments';
$lang['sales_unsuspend_and_delete'] = 'Unsuspend and Delete';
$lang['sales_unsuspend'] = 'Unsuspend';
$lang['sales_successfully_suspended_sale'] = 'Your sale has been successfully suspended';
$lang['sales_email_receipt'] = 'E-Mail Receipt';
?>

View File

@@ -0,0 +1,17 @@
<?php
$lang['suppliers_new']='New Supplier';
$lang['suppliers_supplier']='Supplier';
$lang['suppliers_update']='Update Supplier';
$lang['suppliers_confirm_delete']='Are you sure you want to delete the selected suppliers?';
$lang['suppliers_none_selected']='You have not selected any suppliers to delete';
$lang['suppliers_error_adding_updating'] = 'Error adding/updating supplier';
$lang['suppliers_successful_adding']='You have successfully added supplier';
$lang['suppliers_successful_updating']='You have successfully updated supplier';
$lang['suppliers_successful_deleted']='You have successfully deleted';
$lang['suppliers_one_or_multiple']='supplier(s)';
$lang['suppliers_cannot_be_deleted']='Could not deleted selected suppliers, one or more of the selected suppliers has sales.';
$lang['suppliers_basic_information']='Supplier Information';
$lang['suppliers_account_number']='Account #';
$lang['suppliers_company_name']='Company Name';
$lang['suppliers_company_name_required'] = 'Company Name is a required field';
?>

View File

@@ -0,0 +1,41 @@
<?php
$lang['common_common']='biasa';
$lang['common_submit']='Kirim';
$lang['common_or']='ATAU';
$lang['common_powered_by']='Disponsori oleh';
$lang['common_welcome']='Selamat Datang';
$lang['common_logout']='Logout';
$lang['common_list_of']='Daftar';
$lang['common_first_name']='Nama Pertama';
$lang['common_last_name']='Nama Belakang';
$lang['common_email']='E-Mail';
$lang['common_phone_number']='Telepon';
$lang['common_address_1']='Alamat 1';
$lang['common_address_2']='Alamat 2';
$lang['common_city']='Kota';
$lang['common_state']='Provinsi';
$lang['common_state']='Provinsi';
$lang['common_zip']='KODEPOS';
$lang['common_country']='Negara';
$lang['common_comments']='Catatan';
$lang['common_edit']='ubah';
$lang['common_search']='Cari';
$lang['common_delete']='Hapus';
$lang['common_view_recent_sales']='Lihat Penjualan Terkini';
$lang['common_you_are_using_ospos']='Anda menggunakan Open Source Point Of Sale Versi';
$lang['common_please_visit_my']='SIlakan kunjungi';
$lang['common_website']='situs';
$lang['common_fields_required_message']='bagian yang ditandai merah wajib diisi';
$lang['common_learn_about_project']='untuk belajar informasi terbaru tentang proyek ini';
$lang['common_searched_for']='Mencari untuk';
$lang['common_first_name_required']='Nama pertama wajib diisi.';
$lang['common_last_name_required']='Nama belakang wajib diisi.';
$lang['common_email_invalid_format']='Format alamat e-mail tidak benar';
$lang['common_confirm_search']='Anda telah memilih satu atau lebih baris, ini tidak akan lagi dipilih setelah pencarian Anda. Apakah Anda yakin ingin mengirimkan pencarian ini?';
$lang['common_no_persons_to_display']='Tidak ada orang untuk ditampilkan';
$lang['common_return_policy']='Kebijakan Retur';
$lang['common_price']='Harga';
$lang['common_welcome_message']= 'Selamat Datang di Open Source Point Of Sale, klik modul di bawah ini untuk memulai!';
$lang['common_inv']='inv';
$lang['common_det']='details';
?>

View File

@@ -0,0 +1,24 @@
<?php
$lang['config_info']='Informasi Konfigurasi Toko';
$lang['config_company']='Nama Perusahaan';
$lang['config_address']='Alamat Perusahaan';
$lang['config_phone']='Telepon Perusahaan';
$lang['config_website']='Situs Perusahaan';
$lang['config_fax']='Fax';
$lang['config_default_tax_rate']='Tarif Pajak Biasa%';
$lang['config_default_tax_rate_1']='Tarif Pajak 1';
$lang['config_default_tax_rate_2']='Tarif Pajak 2';
$lang['config_company_required']='Nama Perusahaan wajib diisi';
$lang['config_address_required']='Alamat Perusahaan wajib diisi';
$lang['config_phone_required']='Telepon Perusahaan wajib diisi';
$lang['config_default_tax_rate_required']='Tarif Pajak Biasa wajib diisi';
$lang['config_default_tax_rate_number']='Tarif Pajak Biasa harus angka';
$lang['config_company_website_url']='Situs Perusahaan bukan URL yang benar(http://...)';
$lang['config_saved_successfully']='Konfigurasi berhasil disimpan';
$lang['config_saved_unsuccessfully']='Konfigurasi tidak berhasil disimpan';
$lang['config_return_policy_required']='Kebiajak retur wajib diisi';
$lang['config_print_after_sale']='Cetak bon setelah penjualan';
$lang['config_language'] = 'Language';
$lang['config_timezone'] = 'Timezone';
$lang['config_currency_symbol'] = 'Currency Symbol';
?>

View File

@@ -0,0 +1,16 @@
<?php
$lang['customers_new']='Pelanggan Baru';
$lang['customers_customer']='Pelanggan';
$lang['customers_update']='Ubah Pelanggan';
$lang['customers_confirm_delete']='Apakah Anda yakin ingin menghapus pelanggan yang dipilih?';
$lang['customers_none_selected']='Anda belum memilih pelanggan untuk dihapus';
$lang['customers_error_adding_updating'] = 'Error menambah / memperbarui pelanggan';
$lang['customers_successful_adding']='Anda telah berhasil menambah pelanggan';
$lang['customers_successful_updating']='Anda telah berhasil memperbarui pelanggan';
$lang['customers_successful_deleted']='Anda telah berhasil menghapus';
$lang['customers_one_or_multiple']='pelanggan';
$lang['customers_cannot_be_deleted']='pelanggan terpilih tidak bisa dihapus; satu atau lebih dari pelanggan yang dipilih memiliki penjualan.';
$lang['customers_basic_information']='Informasi Pelanggan';
$lang['customers_account_number']='Nomor Akun';
$lang['customers_taxable']='Dapat dikenakan pajak';
?>

View File

@@ -0,0 +1,27 @@
<?php
$lang['employees_employee']='Karyawan';
$lang['employees_new']='Karyawan Baru';
$lang['employees_update']='Ubah Karyawan';
$lang['employees_confirm_delete']='Apakah Anda yakin ingin menghapus karyawan yang dipilih?';
$lang['employees_none_selected']='Anda belum memilih karyawan untuk menghapus';
$lang['employees_error_adding_updating'] = 'Error menambah / memperbarui karyawan';
$lang['employees_successful_adding']='Anda telah berhasil menambahkan karyawan';
$lang['employees_successful_updating']='Anda telah berhasil memperbarui karyawan';
$lang['employees_successful_deleted']='Anda telah berhasil menghapus';
$lang['employees_one_or_multiple']='karyawan';
$lang['employees_cannot_be_deleted']='karyawan terpilih tidak bisa dihapus; satu atau lebih dari para pekerja telah memproses penjualan atau Anda mencoba untuk menghapus diri Anda sendiri:)';
$lang['employees_username']='Username';
$lang['employees_password']='Password';
$lang['employees_repeat_password']='Password Lagi';
$lang['employees_username_required']='Username wajib diisi';
$lang['employees_username_minlength']='Username minimal 5 huruf';
$lang['employees_password_required']='Password wajib diisi';
$lang['employees_password_minlength']='Passwords minimal 8 huruf/angka';
$lang['employees_password_must_match']='Passwords tidak cocok';
$lang['employees_basic_information']='Informasi Karyawan';
$lang['employees_login_info']='Info Login Karyawan';
$lang['employees_permission_info']='Hak Akses Karyawan';
$lang['employees_permission_desc']='Tandai kotak di bawah ini untuk memberikan akses ke modul';
$lang['employees_error_updating_demo_admin'] = 'You can not change the demo admin user';
$lang['employees_error_deleting_demo_admin'] = 'You can not delete the demo admin user';
?>

View File

@@ -0,0 +1,4 @@
<?php
$lang['error_no_permission_module']='Anda tidak memiliki izin untuk mengakses modul ini';
$lang['error_unknown']='tidak dikenal';
?>

View File

@@ -0,0 +1,71 @@
<?php
$lang['giftcards_giftcard_number']='Giftcard Number';
$lang['giftcards_card_value']='Value';
$lang['giftcards_basic_information']='Giftcard Information';
$lang['giftcards_number_required']='Giftcard Number is a required field';
$lang['giftcards_value_required']='Giftcard Value is a required field';
$lang['giftcards_number']='Giftcard Number must be a number';
$lang['giftcards_value']='Giftcard Value must be a number';
$lang['giftcards_retrive_giftcard_info']='Retrive Giftcard Info';
$lang['giftcards_description']='Description';
$lang['giftcards_amazon']='Amazon';
$lang['giftcards_upc_database']='UPC Database';
$lang['giftcards_cannot_find_giftcard']='Cannot find any information about giftcard';
$lang['giftcards_info_provided_by']='Info provided by';
$lang['giftcards_number_information']='Giftcard Number';
$lang['giftcards_new']='New Giftcard';
$lang['giftcards_update']='Update Giftcard';
$lang['giftcards_giftcard']='Giftcard';
$lang['giftcards_edit_multiple_giftcards']='Editing Multiple Giftcards';
$lang['giftcards_category']='Category';
$lang['giftcards_cost_price']='Cost Price';
$lang['giftcards_unit_price']='Unit Price';
$lang['giftcards_tax_1']='Tax 1';
$lang['giftcards_tax_2']='Tax 2';
$lang['giftcards_sales_tax_1'] = 'Sales Tax';
$lang['giftcards_sales_tax_2'] = 'Sales Tax 2';
$lang['giftcards_tax_percent']='Tax Percent';
$lang['giftcards_tax_percents']='Tax Percent(s)';
$lang['giftcards_reorder_level']='Reorder Level';
$lang['giftcards_quantity']='Quantity';
$lang['giftcards_reorder_level']='Reorder Level';
$lang['giftcards_no_giftcards_to_display']='No Giftcards to display';
$lang['giftcards_bulk_edit']='Bulk Edit';
$lang['giftcards_confirm_delete']='Are you sure you want to delete the selected giftcards?';
$lang['giftcards_none_selected']='You have not selected any giftcards to edit';
$lang['giftcards_confirm_bulk_edit']='Are you sure you want to edit all the giftcards selected?';
$lang['giftcards_successful_bulk_edit']='You have successfully updated the selected giftcards';
$lang['giftcards_error_updating_multiple']='Error updating giftcards';
$lang['giftcards_edit_fields_you_want_to_update']='Edit the fields you want to edit for ALL selected giftcards';
$lang['giftcards_error_adding_updating'] = 'Error adding/updating giftcard';
$lang['giftcards_successful_adding']='You have successfully added giftcard';
$lang['giftcards_successful_updating']='You have successfully updated giftcard';
$lang['giftcards_successful_deleted']='You have successfully deleted';
$lang['giftcards_one_or_multiple']='giftcard(s)';
$lang['giftcards_cannot_be_deleted']='Could not deleted selected giftcards, one or more of the selected giftcards has sales.';
$lang['giftcards_none'] = 'None';
$lang['giftcards_supplier'] = 'Supplier';
$lang['giftcards_generate_barcodes'] = 'Generate Barcodes';
$lang['giftcards_must_select_giftcard_for_barcode'] = 'You must select at least 1 giftcard to generate barcodes';
$lang['giftcards_excel_import_failed'] = 'Excel import failed';
$lang['giftcards_allow_alt_desciption'] = 'Allow Alt Description';
$lang['giftcards_is_serialized'] = 'Giftcard has Serial Number';
$lang['giftcards_low_inventory_giftcards'] = 'Low Inventory Giftcards';
$lang['giftcards_serialized_giftcards'] = 'Serialized Giftcards';
$lang['giftcards_no_description_giftcards'] = 'No Description Giftcards';
$lang['giftcards_inventory_comments']='Comments';
$lang['giftcards_count']='Update Inventory';
$lang['giftcards_details_count']='Inventory Count Details';
$lang['giftcards_add_minus']='Inventory to add/subtract';
$lang['giftcards_current_quantity']='Current Quantity';
$lang['giftcards_quantity_required']='Quantity is a required field. Please Close ( X ) to cancel';
$lang['giftcards_do_nothing'] = 'Do Nothing';
$lang['giftcards_change_all_to_serialized'] = 'Change All To Serialized';
$lang['giftcards_change_all_to_unserialized'] = 'Change All To Unserialized';
$lang['giftcards_change_all_to_allow_alt_desc'] = ' Allow Alt Desc For All';
$lang['giftcards_change_all_to_not_allow_allow_desc'] = 'Not Allow Alt Desc For All';
$lang['giftcards_use_inventory_menu'] = 'Use Inv. Menu';
$lang['giftcards_manually_editing_of_quantity'] = 'Manual Edit of Quantity';
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Dilarang</title>
</head>
<body>
<p>Akses direktori dilarang.</p>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
$lang['item_kits_name'] = 'Item Kit Name';
$lang['item_kits_description'] = 'Item Kit Description';
$lang['item_kits_no_item_kits_to_display'] = 'No item kits to display';
$lang['item_kits_update'] = 'Update Item Kit';
$lang['item_kits_new'] = 'New Item Kit';
$lang['item_kits_none_selected'] = "You have not selected any item kits";
$lang['item_kits_info'] = 'Item Kit Info';
$lang['item_kits_successful_adding'] = 'You have successfully added Item Kit';
$lang['item_kits_successful_updating'] = 'You have successfully updated Item Kit';
$lang['item_kits_error_adding_updating'] = 'Error adding/updating Item Kit';
$lang['item_kits_successful_deleted'] = 'You have successfully deleted';
$lang['item_kits_confirm_delete'] = 'Are you sure you want to delete the selected item kits?';
$lang['item_kits_one_or_multiple'] = 'Item Kit(s)';
$lang['item_kits_cannot_be_deleted'] = 'Could not delete item kit(s)';
$lang['item_kits_add_item'] = 'Add Item';
$lang['item_kits_items'] = 'Items';
$lang['item_kits_item'] = 'Item';
$lang['item_kits_quantity'] = 'Quantity';
?>

View File

@@ -0,0 +1,78 @@
<?php
$lang['items_item_number']='UPC/EAN/ISBN';
$lang['items_retrive_item_info']='Dapatkan Info Produk/Item';
$lang['items_description']='Deskripsi';
$lang['items_amazon']='Amazon';
$lang['items_upc_database']='Database UPC';
$lang['items_cannot_find_item']='Tidak dapat menemukan informasi apapun tentang item';
$lang['items_info_provided_by']='Info disediakan oleh';
$lang['items_basic_information']='Informasi Item';
$lang['items_number_information']='Nomor Item';
$lang['items_new']='Item Baru';
$lang['items_update']='Ubah Item';
$lang['items_item']='Item';
$lang['items_edit_multiple_items']='Ubah Beberapa Item';
$lang['items_name']='Nama Item';
$lang['items_category']='Kategori';
$lang['items_cost_price']='Biaya Item';
$lang['items_unit_price']='Harga Satuan';
$lang['items_tax_1']='Pajak 1';
$lang['items_tax_2']='Pajak 2';
$lang['items_sales_tax_1'] = 'Pajak Penjualan';
$lang['items_sales_tax_2'] = 'Pajak Penjualan2';
$lang['items_tax_percent']='Tarif Pajak';
$lang['items_tax_percents']='Tarif Pajak';
$lang['items_reorder_level']='Batas pesan ulang';
$lang['items_quantity']='Jumlah';
$lang['items_reorder_level']='Batas pesan ulang';
$lang['items_no_items_to_display']='Tidak ada item untuk ditampilkan';
$lang['items_bulk_edit']='Ubah Massal';
$lang['items_confirm_delete']='Apakah Anda yakin ingin menghapus item yang dipilih?';
$lang['items_none_selected']='Anda belum memilih item untuk diubah';
$lang['items_confirm_bulk_edit']='Apakah Anda yakin ingin mengubah semua item yang dipilih?';
$lang['items_successful_bulk_edit']='Anda telah berhasil memperbarui item yang dipilih';
$lang['items_error_updating_multiple']='Error ketika memperbaharui item';
$lang['items_edit_fields_you_want_to_update']='Ubah bagian yang ingin Anda edit untuk SEMUA item yang dipilih';
$lang['items_error_adding_updating'] = 'Error ketika menambahkan/memperbaharui item';
$lang['items_successful_adding']='Anda telah berhasil menambahkan item';
$lang['items_successful_updating']='Anda telah berhasil memperbarui item';
$lang['items_successful_deleted']='Anda telah berhasil menghapus';
$lang['items_one_or_multiple']='item';
$lang['items_cannot_be_deleted']='Tidak dapat menghapus item terpilih, satu atau lebih item yang dipilih memiliki penjualan.';
$lang['items_name_required']='Nama item wajib diisi';
$lang['items_category_required']='Kategori wajib diisi';
$lang['items_buy_price_required']='Harga Beli wajib diisi';
$lang['items_unit_price_required']='Harga Jual wajib diisi';
$lang['items_cost_price_required']='Biaya Item wajib diisi';
$lang['items_tax_percent_required']='Tarif Pajak wajib diisi';
$lang['items_quantity_required']='Jumlah wajib diisi';
$lang['items_reorder_level_required']='Batas pesan ulang wajib diisi';
$lang['items_unit_price_number']='Harga satuan harus angka';
$lang['items_cost_price_number']='Biaya Item harus angka';
$lang['items_quantity_number']='Jumlah harus angka';
$lang['items_reorder_level_number']='Batas pesan ulang harus angka';
$lang['items_none'] = 'Kosong';
$lang['items_supplier'] = 'Pemasok';
$lang['items_generate_barcodes'] = 'Hasilkan Barcode';
$lang['items_must_select_item_for_barcode'] = 'Anda harus memilih setidaknya 1 item untuk menghasilkan barcode';
$lang['items_excel_import_failed'] = 'Excel import failed';
$lang['items_allow_alt_desciption'] = 'Allow Alternate Description';
$lang['items_is_serialized'] = 'Item has Serial Number';
$lang['items_low_inventory_items'] = 'Low Inventory Items';
$lang['items_serialized_items'] = 'Serialized Items';
$lang['items_no_description_items'] = 'No Description Items';
$lang['items_inventory_comments']='Comments';
$lang['items_count']='Update Inventory';
$lang['items_details_count']='Inventory Count Details';
$lang['items_add_minus']='Inventory to add/subtract';
$lang['items_current_quantity']='Current Quantity';
$lang['items_do_nothing'] = 'Do Nothing';
$lang['items_change_all_to_serialized'] = 'Change All To Serialized';
$lang['items_change_all_to_unserialized'] = 'Change All To Unserialized';
$lang['items_change_all_to_allow_alt_desc'] = ' Allow Alt Desc For All';
$lang['items_change_all_to_not_allow_allow_desc'] = 'Not Allow Alt Desc For All';
$lang['items_use_inventory_menu'] = 'Use Inv. Menu';
$lang['items_manually_editing_of_quantity'] = 'Manual Edit of Quantity';
$lang['items_inventory'] = 'Inventory';
$lang['items_location'] = 'Location';
?>

View File

@@ -0,0 +1,8 @@
<?php
$lang['login_login']='Masuk';
$lang['login_username']='Nama pengguna';
$lang['login_password']='Kata kunci';
$lang['login_go']='Lanjutkan';
$lang['login_invalid_username_and_password']='nama pengguna/kata kunci salah';
$lang['login_welcome_message']='Selamat datang di Open Source Point of Sale System. Untuk melanjutkan, silakan login menggunakan form nama pengguna dan kata kunci di bawah ini.';
?>

View File

@@ -0,0 +1,33 @@
<?php
$lang['module_home']='Beranda';
$lang['module_customers']='Pelanggan';
$lang['module_customers_desc']='Tambah, Update, Hapus, dan Cari pelanggan ';
$lang['module_suppliers']='Pemasok';
$lang['module_suppliers_desc']='Tambah, Update, Hapus, dan Cari pemasok';
$lang['module_employees']='Karyawan';
$lang['module_employees_desc']='Tambah, Update, Hapus, dan Cari karyawan';
$lang['module_sales']='Penjualan';
$lang['module_sales_desc']='Proses penjualan dan retur';
$lang['module_reports']='Laporan';
$lang['module_reports_desc']='Lihat dan Hasilkan laporan';
$lang['module_items']='Produk/Item';
$lang['module_items_desc']='Tambah, Update, Hapus, dan Cari produk/items';
$lang['module_config']='Konfigurasi Toko';
$lang['module_config_desc']='Ubah konfigurasi toko';
$lang['module_receivings']='Receivings';
$lang['module_receivings_desc']='Process Purchase orders';
$lang['module_giftcards']='Gift Cards';
$lang['module_giftcards_desc']='Add, Update, Delete and Search gift cards';
$lang['module_item_kits']='Item Kits';
$lang['module_item_kits_desc']='Add, Update, Delete and Search Item Kits';
?>

View File

@@ -0,0 +1,26 @@
<?php
$lang['recvs_register']='Items Receiving';
$lang['recvs_mode']='Receiving Mode';
$lang['recvs_receiving']='Receive';
$lang['recvs_return']='Return';
$lang['recvs_total']='Total';
$lang['recvs_cost']='Cost';
$lang['recvs_quantity']='Qty.';
$lang['recvs_discount']='Disc %';
$lang['recvs_edit']='Edit';
$lang['recvs_new_supplier'] = 'New Supplier';
$lang['recvs_supplier'] = 'Supplier';
$lang['recvs_select_supplier']='Select Supplier (Optional)';
$lang['recvs_start_typing_supplier_name']='Start Typing supplier\'s name...';
$lang['recvs_unable_to_add_item']='Unable to add item to receiving';
$lang['recvs_error_editing_item']='Error editing item';
$lang['recvs_receipt']='Receivings Receipt';
$lang['recvs_complete_receiving']='Finish';
$lang['recvs_confirm_finish_receiving'] = 'Are you sure you want to submit this receiving? This cannot be undone.';
$lang['recvs_confirm_cancel_receiving'] = 'Are you sure you want to clear this receiving? All items will cleared.';
$lang['recvs_find_or_scan_item']='Find/Scan Item';
$lang['recvs_find_or_scan_item_or_receipt']='Find/Scan Item OR Receipt';
$lang['recvs_id']='Receiving ID';
$lang['recvs_item_name'] = 'Item Name';
$lang['receivings_transaction_failed'] = 'Receivings Transactions Failed';
?>

View File

@@ -0,0 +1,85 @@
<?php
$lang['reports_reports'] = 'Laporan';
$lang['reports_report'] = 'Laporan';
$lang['reports_welcome_message'] = 'Selamat Datang ke panel laporan. Silakan pilih laporan untuk melihat.';
$lang['reports_sales_summary_report'] = 'Laporan Ringkasan Penjualan';
$lang['reports_categories_summary_report'] = 'Laporan Ringkasan Kategori';
$lang['reports_customers_summary_report'] = 'Laporan Ringkasan Pelanggan';
$lang['reports_suppliers_summary_report'] = 'Laporan Ringkasan Pemasok';
$lang['reports_items_summary_report'] = 'Laporan Ringkasan Produk/Item';
$lang['reports_employees_summary_report'] = 'Laporan Ringkasan Karyawan';
$lang['reports_taxes_summary_report'] = 'Taxes Summary Report';
$lang['reports_date'] = 'Tanggal';
$lang['reports_name'] = 'Nama';
$lang['reports_quantity_purchased'] = 'Jumlah Dibeli';
$lang['reports_serial_number'] = 'Serial #';
$lang['reports_description'] = 'Description';
$lang['reports_sale_id'] = 'ID Penjualan ';
$lang['reports_items_purchased'] = 'Produk Dibeli';
$lang['reports_sold_by'] = 'Dijual Oleh';
$lang['reports_sold_to'] = 'Dijual Kepada';
$lang['reports_category'] = 'Kategori';
$lang['reports_customer'] = 'Pelanggan';
$lang['reports_employee'] = 'Karyawan';
$lang['reports_item'] = 'Produk/Item';
$lang['reports_items'] = 'Produk/Item';
$lang['reports_supplier'] = 'Pemasok';
$lang['reports_employees'] = 'Karyawan';
$lang['reports_taxes'] = 'Taxes';
$lang['reports_subtotal'] = 'Subtotal';
$lang['reports_total'] = 'Total';
$lang['reports_tax'] = 'Pajak';
$lang['reports_profit'] = 'Profit';
$lang['reports_report_input'] = 'Input Laporan';
$lang['reports_type'] = 'Tipe';
$lang['reports_date_range'] = 'Rentang Tanggal';
$lang['reports_today'] = 'Hari ini';
$lang['reports_yesterday'] = 'Kemarin';
$lang['reports_last_7'] = '7 Hari Terakhir';
$lang['reports_this_month'] = 'Bulan ini';
$lang['reports_last_month'] = 'Bulan lalu';
$lang['reports_this_year'] = 'Tahun ini';
$lang['reports_last_year'] = 'Tahun lalu';
$lang['reports_all_time'] = 'Semua Waktu';
$lang['reports_detailed_sales_report'] = 'Laporan Penjualan Rinci';
$lang['reports_comments'] = 'Catatan';
$lang['reports_discount'] = 'Diskon';
$lang['reports_payment_type'] = 'Tipe Pembayaran';
$lang['reports_sales'] = 'Penjualan';
$lang['reports_categories'] = 'Kategori';
$lang['reports_customers'] = 'Pelanggan';
$lang['reports_suppliers'] = 'Pemasok';
$lang['reports_items'] = 'Item';
$lang['reports_employees'] = 'Karyawan';
$lang['reports_customer'] = 'Pelanggan';
$lang['reports_employee'] = 'Karyawan';
$lang['reports_tax_percent'] = 'Tax Percent';
$lang['reports_sales_amount'] = 'Sales amount';
$lang['reports_revenue'] = 'Revenue';
$lang['reports_discounts'] = 'Discounts';
$lang['reports_discounts_summary_report'] = 'Discounts Summary Report';
$lang['reports_discount_percent'] = 'Discount Percent';
$lang['reports_count'] = 'Count';
$lang['reports_summary_reports'] = 'Summary Reports';
$lang['reports_graphical_reports'] = 'Graphical Reports';
$lang['reports_detailed_reports'] = 'Detailed Reports';
$lang['reports_inventory_reports'] = 'Inventory Reports';
$lang['reports_low_inventory'] = 'Low Inventory';
$lang['reports_inventory_summary'] = ' Inventory Summary';
$lang['reports_item_number'] = 'Item Number';
$lang['reports_reorder_level'] = 'Reorder Level';
$lang['reports_low_inventory_report'] = 'Low Inventory Report';
$lang['reports_item_name'] = 'Item Name';
$lang['reports_inventory_summary_report'] = 'Inventory Summary Report';
$lang['reports_payment_type'] = 'Payment Type';
$lang['reports_payments_summary_report'] = 'Payments Summary Report';
$lang['reports_payments'] = 'Payments';
$lang['reports_receivings'] = 'Receivings';
$lang['reports_received_by'] = 'Received By';
$lang['reports_supplied_by'] = 'Supplied by';
$lang['reports_items_received'] = 'Items Received';
$lang['reports_detailed_receivings_report'] = 'Detailed Receivings Report';
$lang['reports_sale_type'] = 'Sale Type';
$lang['reports_all'] = 'All';
$lang['reports_returns'] = 'Returns';
?>

View File

@@ -0,0 +1,78 @@
<?php
$lang['sales_giftcard_number']='Gift Card Number';
$lang['sales_giftcard']='Gift Card';
$lang['sales_register']='Daftar Penjualan';
$lang['sales_mode']='Mode Daftar';
$lang['sales_new_item'] = 'Item baru';
$lang['sales_item_name'] = 'Nama item ';
$lang['sales_item_number'] = 'Item #';
$lang['sales_new_customer'] = 'Pelanggan Baru';
$lang['sales_customer'] = 'Pelanggan';
$lang['sales_no_items_in_cart']='Tidak ada item dalam keranjang';
$lang['sales_total']='Total';
$lang['sales_tax_percent']='Pajak %';
$lang['sales_price']='Harga';
$lang['sales_quantity']='Jumlah.';
$lang['sales_discount']='Diskon %';
$lang['sales_edit']='Ubah';
$lang['sales_payment']='Jenis Pembayaran';
$lang['sales_edit_item']='Ubah Item';
$lang['sales_find_or_scan_item']='Cari/Scan Item';
$lang['sales_find_or_scan_item_or_receipt']='Cari/Scan Item ATAU Bon';
$lang['sales_select_customer']='Pilih Pelanggan (Opsional)';
$lang['sales_start_typing_item_name']='Mulai ketik nama item atau scan barcode...';
$lang['sales_start_typing_customer_name']='Mulai ketik nama pelanggan...';
$lang['sales_sub_total']='Sub Total';
$lang['sales_tax']='Pajak';
$lang['sales_comment']='Catatan';
$lang['sales_unable_to_add_item']='Tidak dapat menambahkan item dengan penjualan';
$lang['sales_sale_for_customer']='Pelanggan:';
$lang['sales_remove_customer']='Hapus Pelanggan';
$lang['sales_error_editing_item']='Error mengubah item';
$lang['sales_complete_sale']='Entri penjualan';
$lang['sales_cancel_sale']='Cancel Sale';
$lang['sales_add_payment']='Add Payment';
$lang['sales_receipt']='Bon penjualan';
$lang['sales_id']='ID Penjualan';
$lang['sales_sale']='Penjualan';
$lang['sales_return']='Retur';
$lang['sales_confirm_finish_sale'] = 'Anda yakin Anda ingin mengirimkan penjualan ini? Proses tidak dapat dibatalkan.';
$lang['sales_confirm_cancel_sale'] = 'Anda yakin Anda ingin menghapus transaksi penjualan ini? Semua item akan dihapus';
$lang['sales_cash'] = 'Tunai';
$lang['sales_check'] = 'Cek';
$lang['sales_debit'] = 'Kartu Debit';
$lang['sales_credit'] = 'Kartu Credit';
$lang['sales_amount_tendered'] = 'Nilai Pembayaran';
$lang['sales_change_due'] = 'Piutang';
$lang['sales_payment_not_cover_total'] = 'Payment Amount does not cover Total';
$lang['sales_transaction_failed'] = 'Sales Transaction Failed';
$lang['sales_must_enter_numeric'] = 'Must enter numeric value for amount tendered';
$lang['sales_must_enter_numeric_giftcard'] = 'Must enter numeric value for giftcard number';
$lang['sales_serial'] = 'Serial';
$lang['sales_description_abbrv'] = 'Desc';
$lang['sales_item_out_of_stock'] = 'Item is Out of Stock';
$lang['sales_item_insufficient_of_stock'] = 'Item is Insufficient of Stock';
$lang['sales_quantity_less_than_zero'] = 'Warning, Desired Quantity is Insufficient. You can still process the sale, but check your inventory';
$lang['sales_successfully_updated'] = 'Sale sucessfully updated';
$lang['sales_unsuccessfully_updated'] = 'Sale unsucessfully updated';
$lang['sales_edit_sale'] = 'Edit Sale';
$lang['sales_employee'] = 'Employee';
$lang['sales_successfully_deleted'] = 'Sale sucessfully deleted';
$lang['sales_unsuccessfully_deleted'] = 'Sale unsucessfully deleted';
$lang['sales_delete_entire_sale'] = 'Delete entire sale';
$lang['sales_delete_confirmation'] = 'Are you sure you want to delete this sale, this action cannot be undone';
$lang['sales_date'] = 'Sale Date';
$lang['sales_delete_successful'] = 'You have successfully deleted a sale';
$lang['sales_delete_unsuccessful'] = 'You have unsuccessfully deleted a sale';
$lang['sales_suspend_sale'] = 'Suspend Sale';
$lang['sales_confirm_suspend_sale'] = 'Are you sure you want to suspend this sale?';
$lang['sales_suspended_sales'] = 'Suspended Sales';
$lang['sales_suspended_sale_id'] = 'Suspended Sale ID';
$lang['sales_date'] = 'Date';
$lang['sales_customer'] = 'Customer';
$lang['sales_comments'] = 'Comments';
$lang['sales_unsuspend_and_delete'] = 'Unsuspend and Delete';
$lang['sales_unsuspend'] = 'Unsuspend';
$lang['sales_successfully_suspended_sale'] = 'Your sale has been successfully suspended';
$lang['sales_email_receipt'] = 'E-Mail Receipt';
?>

View File

@@ -0,0 +1,17 @@
<?php
$lang['suppliers_new']='Pemasok Baru';
$lang['suppliers_supplier']='Pemasok';
$lang['suppliers_update']='Update Pemasok';
$lang['suppliers_confirm_delete']='Apakah Anda yakin ingin menghapus pemasok yang dipilih?';
$lang['suppliers_none_selected']='Anda belum memilih pemasok untuk menghapus';
$lang['suppliers_error_adding_updating'] = 'Error menambah / memperbarui pemasok';
$lang['suppliers_successful_adding']='Anda telah berhasil menambahkan pemasok';
$lang['suppliers_successful_updating']='Anda telah berhasil memperbarui pemasok';
$lang['suppliers_successful_deleted']='Anda telah berhasil menghapus pemasok';
$lang['suppliers_one_or_multiple']='pemasok';
$lang['suppliers_cannot_be_deleted']='Tidak bisa dihapus pemasok yang dipilih, satu atau lebih dari pemasok yang dipilih memiliki penjualan.';
$lang['suppliers_basic_information']='Informasi Pemasok ';
$lang['suppliers_account_number']='Nomor Akun';
$lang['suppliers_company_name']='Company Name';
$lang['suppliers_company_name_required'] = 'Company Name is a required field';
?>

View File

@@ -0,0 +1,41 @@
<?php
$lang['common_common']='общественно';
$lang['common_submit']='Подавать';
$lang['common_or']='ИЛИ';
$lang['common_powered_by']='самоходные из';
$lang['common_welcome']='Добро пожаловать';
$lang['common_logout']='Выход';
$lang['common_list_of']='Список';
$lang['common_first_name']='Имя';
$lang['common_last_name']='Фамилия';
$lang['common_email']='Электронная почта';
$lang['common_phone_number']='Номер телефона';
$lang['common_address_1']='Адрес 1';
$lang['common_address_2']='Адрес 2';
$lang['common_city']='Город';
$lang['common_state']='Штат';
$lang['common_zip']='Почтовый индекс';
$lang['common_country']='Страна';
$lang['common_comments']='Комментарии';
$lang['common_edit']='редактировать';
$lang['common_search']='Пойск';
$lang['common_delete']='Удалить';
$lang['common_remove']='Снимать';
$lang['common_view_recent_sales']='Посмотреть Недавние Продажи';
$lang['common_you_are_using_ospos']='Вы использоваете Open Source Point Of Sale Версия';
$lang['common_please_visit_my']='пожалуйста, посетите';
$lang['common_website']='веб-сайт';
$lang['common_fields_required_message']='Красные пробела обязательно';
$lang['common_learn_about_project']=', чтобы узнать самую последнюю информацию о проекте';
$lang['common_searched_for']='Искали за';
$lang['common_first_name_required']='Имя обязательный пробел';
$lang['common_last_name_required']='Фамилия обязательный пробел';
$lang['common_email_invalid_format']='Это электронная почта не в нужный формат';
$lang['common_confirm_search']='Вы выбрали одну или несколько строк, это больше не будет быть выбрано после поиска. Вы уверены, что хотите, чтобы представить этот поиск?';
$lang['common_no_persons_to_display']='Там нет людей, чтобы отобразить';
$lang['common_return_policy']='Возвратний полис';
$lang['common_price']='Цена';
$lang['common_welcome_message']= 'Добро пожаловать в Open Source Point Of Sale, нажмите модуля ниже, чтобы начать!';
$lang['common_inv']='инв';
$lang['common_det']='детали';
?>

View File

@@ -0,0 +1,35 @@
<?php
$lang['config_info']='информация о магазин конфигурация';
$lang['config_company']='Название Компании';
$lang['config_address']='Адрес Компании';
$lang['config_phone']='Телефон Компании';
$lang['config_website']='Веб-сайт';
$lang['config_fax']='Факс';
$lang['config_default_tax_rate']='Обычный ставка налога %';
$lang['config_default_tax_rate_1']='ставка налога 1';
$lang['config_default_tax_rate_2']='ставка налога 2';
$lang['config_company_required']='Имя Компании обязательный пробел';
$lang['config_address_required']='Адрес Компании обязательный пробел';
$lang['config_phone_required']='Телефон Компании обязательный пробел';
$lang['config_default_tax_rate_required']='Обычный ставка налога обязательный пробел';
$lang['config_default_tax_rate_number']='Обычный ставка налога должен быть цифра';
$lang['config_company_website_url']='Веб-сайт Компании не является допустимым URL (http://...)';
$lang['config_saved_successfully']='Конфигурация успешно сохранена';
$lang['config_saved_unsuccessfully']='Конфигурация сохраненная безуспешно';
$lang['config_return_policy_required']='Возвратний полис обязательный пробел';
$lang['config_print_after_sale']='Распечатать квитанцию ​​после продажи';
$lang['config_language'] = 'Язик';
$lang['config_timezone'] = 'Часовой пояс';
$lang['config_currency_symbol'] = 'Символ валюты';
$lang['config_currency_side'] = 'Правая сторона'; //GARRISON ADDED 4/20/2013
$lang['config_custom1'] = 'Изготовленный пробел 1'; //GARRISON ADDED 4/21/2013
$lang['config_custom2'] = 'Изготовленный пробел 2'; //GARRISON ADDED 4/21/2013
$lang['config_custom3'] = 'Изготовленный пробел 3'; //GARRISON ADDED 4/21/2013
$lang['config_custom4'] = 'Изготовленный пробел 4'; //GARRISON ADDED 4/21/2013
$lang['config_custom5'] = 'Изготовленный пробел 5'; //GARRISON ADDED 4/21/2013
$lang['config_custom6'] = 'Изготовленный пробел 6'; //GARRISON ADDED 4/21/2013
$lang['config_custom7'] = 'Изготовленный пробел 7'; //GARRISON ADDED 4/21/2013
$lang['config_custom8'] = 'Изготовленный пробел 8'; //GARRISON ADDED 4/21/2013
$lang['config_custom9'] = 'Изготовленный пробел 9'; //GARRISON ADDED 4/21/2013
$lang['config_custom10'] = 'Изготовленный пробел 10'; //GARRISON ADDED 4/21/2013
?>

View File

@@ -0,0 +1,16 @@
<?php
$lang['customers_new']='Новый Клиент';
$lang['customers_customer']='Клиент';
$lang['customers_update']='Обновлять Клиент';
$lang['customers_confirm_delete']='Вы уверены, что хотите удалить выбранных клиентов?';
$lang['customers_none_selected']='Вы не выбрали ни клиентов, чтобы удалить.';
$lang['customers_error_adding_updating'] = 'Ошибка при добавлении/обновлении клиента';
$lang['customers_successful_adding']='Вы успешно добавили клиентов';
$lang['customers_successful_updating']='Вы успешно обновили клиент';
$lang['customers_successful_deleted']='Вы успешно удалили';
$lang['customers_one_or_multiple']='клиент(ов)';
$lang['customers_cannot_be_deleted']='Невозможно удалить выбранных клиентов, один или более из них имеет продаж.';
$lang['customers_basic_information']='Информация о клиенте';
$lang['customers_account_number']='Номер счота';
$lang['customers_taxable']='облагаемый';
?>

View File

@@ -0,0 +1,27 @@
<?php
$lang['employees_employee']='Сотрудник';
$lang['employees_new']='Новый Сотрудник';
$lang['employees_update']='Обновлять Сотрудник';
$lang['employees_confirm_delete']='Вы уверены, что хотите удалить выбранную сотрудников?';
$lang['employees_none_selected']='Вы не выбрали ни сотрудников для удаления';
$lang['employees_error_adding_updating'] = 'Ошибка при добавлении/обновлении сотрудника';
$lang['employees_successful_adding']='Вы успешно добавили сотрудника';
$lang['employees_successful_updating']='Вы успешно обновили сотрудника';
$lang['employees_successful_deleted']='Вы успешно удалили';
$lang['employees_one_or_multiple']='сотрудник(ов)';
$lang['employees_cannot_be_deleted']='Не возможно удалить выбранный сотрудников, одного или более работников обработал продаж или вы пытаетесь удалить себя';
$lang['employees_username']='Имя пользователя';
$lang['employees_password']='Пароль';
$lang['employees_repeat_password']='Повторяете пароль';
$lang['employees_username_required']='Имя пользователи обязательный пробел';
$lang['employees_username_minlength']='Имя пользователя должна быть не менее 5 символов';
$lang['employees_password_required']='Пароль обязательно';
$lang['employees_password_minlength']='Пароль должен быть не менее 8 символов';
$lang['employees_password_must_match']='Пароли не совпадают';
$lang['employees_basic_information']='Сотрудник Базовая Информация';
$lang['employees_login_info']='Информация для сотрудников Входа';
$lang['employees_permission_info']='Сотрудник разрешениями и правами доступа';
$lang['employees_permission_desc']='Отметьте флажками ниже, чтобы предоставить доступ к модулям';
$lang['employees_error_updating_demo_admin'] = 'Вы не можете изменить пользователь демонстрация аккаунт';
$lang['employees_error_deleting_demo_admin'] = 'Вы не можете удалить пользователь демонстрация аккаунт';
?>

View File

@@ -0,0 +1,4 @@
<?php
$lang['error_no_permission_module']='У вас нет разрешения на доступ к модуля называется';
$lang['error_unknown']='неизвестный';
?>

View File

@@ -0,0 +1,70 @@
<?php
$lang['giftcards_giftcard_number']='Номер Подарочную карту';
$lang['giftcards_card_value']='стоимость';
$lang['giftcards_basic_information']='информация Подарочную карту';
$lang['giftcards_number_required']='Номер Подарочную карту обязательный пробел';
$lang['giftcards_value_required']='стоимость Подарочную карту обязательный пробел';
$lang['giftcards_number']='Номер Подарочную карту должна быть цифрая';
$lang['giftcards_value']='стоимость Подарочную карту должна быть цифрая';
$lang['giftcards_person_id']='Клиент';
$lang['giftcards_retrive_giftcard_info']='находить и подавать информация Подарочную карту';
$lang['giftcards_description']='Описание';
$lang['giftcards_amazon']='Amazon';
$lang['giftcards_upc_database']='UPC база данных';
$lang['giftcards_cannot_find_giftcard']='Не можете найти любую информацию о Подарочную карту';
$lang['giftcards_info_provided_by']='Информация предоставлена';
$lang['giftcards_number_information']='Номер Подарочную карту';
$lang['giftcards_new']='Новая Подарочная карта';
$lang['giftcards_update']='Обновлять Подарочная карта';
$lang['giftcards_giftcard']='Подарочная карта';
$lang['giftcards_edit_multiple_giftcards']='Редактирование нескольких Подарочные карты';
$lang['giftcards_category']='категория';
$lang['giftcards_cost_price']='Оптовая Цена';
$lang['giftcards_unit_price']='Розничная Цена';
$lang['giftcards_tax_1']='Налог 1';
$lang['giftcards_tax_2']='Налог 2';
$lang['giftcards_sales_tax_1'] = 'Налог с продаж';
$lang['giftcards_sales_tax_2'] = 'Налог с продаж 2';
$lang['giftcards_tax_percent']='процент налога';
$lang['giftcards_tax_percents']='процент налога';
$lang['giftcards_reorder_level']='минимальный уровень для перезаказ';
$lang['giftcards_quantity']='Количество';
$lang['giftcards_no_giftcards_to_display']='Нет Подарочные карты для отображения';
$lang['giftcards_bulk_edit']='Массовое изменение';
$lang['giftcards_confirm_delete']='Вы уверены, что хотите удалить выбранную Подарочные карты?';
$lang['giftcards_none_selected']='Вы не выбрали ни Подарочные карты для редактирования';
$lang['giftcards_confirm_bulk_edit']='Вы уверены, что хотите редактировать все выбранные Подарочные карты?';
$lang['giftcards_successful_bulk_edit']='Вы успешно обновили выбранной Подарочные карты';
$lang['giftcards_error_updating_multiple']='Ошибка при обновлении Подарочные карты';
$lang['giftcards_edit_fields_you_want_to_update']='Отредактируйте поля вы хотите изменить для всех выбранных Подарочные карты';
$lang['giftcards_error_adding_updating'] = 'Ошибка при добавлении/обновлении подарочную карту';
$lang['giftcards_successful_adding']='Вы успешно добавили подарочную карту';
$lang['giftcards_successful_updating']='Вы успешно обновили подарочную карту';
$lang['giftcards_successful_deleted']='Вы успешно удален';
$lang['giftcards_one_or_multiple']='подарочную карту';
$lang['giftcards_cannot_be_deleted']='Не удалось удалить выбранные подарочные карты, одну или несколько из выбранных подарочные карты имеет продаж.';
$lang['giftcards_none'] = 'Ни один';
$lang['giftcards_supplier'] = 'Поставщик';
$lang['giftcards_generate_barcodes'] = 'Создание штрих-кодов';
$lang['giftcards_must_select_giftcard_for_barcode'] = 'Вы должны выбрать хотя бы 1 подарочная карта для создания штрих-кодов';
$lang['giftcards_excel_import_failed'] = 'Ошибка импорта Excel';
$lang['giftcards_allow_alt_desciption'] = 'Разрешить альтернативные Описание';
$lang['giftcards_is_serialized'] = 'Подарочная карта имеет серийный номер';
$lang['giftcards_low_inventory_giftcards'] = 'Низкий Подарочные карты инвентаризации';
$lang['giftcards_serialized_giftcards'] = 'Сериализованные Подарочные карты';
$lang['giftcards_no_description_giftcards'] = 'Нет Описание Подарочные карты';
$lang['giftcards_inventory_comments']='Комментарии';
$lang['giftcards_count']='Обновление перечня';
$lang['giftcards_details_count']='Подробная инвентаризация';
$lang['giftcards_add_minus']='Инвентарь для сложения/вычитания';
$lang['giftcards_current_quantity']='Токовые';
$lang['giftcards_quantity_required']='Количество является обязательным полем. Пожалуйста, закройте (X), чтобы отменить';
$lang['giftcards_do_nothing'] = 'Ничего не делать';
$lang['giftcards_change_all_to_serialized'] = 'Заменить все в сериализованную';
$lang['giftcards_change_all_to_unserialized'] = 'Чтобы изменить все десериализуются';
$lang['giftcards_change_all_to_allow_alt_desc'] = 'Разрешить альтернативные Описание Для всех';
$lang['giftcards_change_all_to_not_allow_allow_desc'] = 'Не позволяйте Альтернативные Описание Для всех';
$lang['giftcards_use_inventory_menu'] = 'Используйте меню инвентаря';
$lang['giftcards_manually_editing_of_quantity'] = 'Руководство Изменить количество';
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
$lang['item_kits_name'] = 'Наименование товара комплект';
$lang['item_kits_description'] = 'Описание товара Комплект';
$lang['item_kits_no_item_kits_to_display'] = 'Нет товара комплекты для отображения';
$lang['item_kits_update'] = 'Обновить товар комплекта';
$lang['item_kits_new'] = 'Новый товар комплект';
$lang['item_kits_none_selected'] = "Вы не выбрали ни одной товар комплекты";
$lang['item_kits_info'] = 'Информация о товаре комплекта';
$lang['item_kits_successful_adding'] = 'Вы успешно добавлен товар комплекта';
$lang['item_kits_successful_updating'] = 'Вы успешно обновленного товар комплекта';
$lang['item_kits_error_adding_updating'] = 'Ошибка при добавлении/обновлении товара комплекта';
$lang['item_kits_successful_deleted'] = 'Вы успешно удален';
$lang['item_kits_confirm_delete'] = 'Вы уверены, что хотите удалить выбранные товар? комплекты';
$lang['item_kits_one_or_multiple'] = 'Товара комплект (ы)';
$lang['item_kits_cannot_be_deleted'] = 'Не могу удалить Товара комплект (ы)';
$lang['item_kits_add_item'] = 'Добавить товар';
$lang['item_kits_items'] = 'товары';
$lang['item_kits_item'] = 'товар';
$lang['item_kits_quantity'] = 'количество';
?>

View File

@@ -0,0 +1,80 @@
<?php
$lang['items_item_number']='UPC/EAN/ISBN';
$lang['items_retrive_item_info']='Получить Детальная информация';
$lang['items_description']='Описание';
$lang['items_amazon']='Amazon';
$lang['items_upc_database']='UPC база данных';
$lang['items_cannot_find_item']='не могу найти любую информацию о товаре';
$lang['items_info_provided_by']='Информация, представленная';
$lang['items_basic_information']='информацию о товаре';
$lang['items_number_information']='Номер Товара';
$lang['items_new']='Новый Товар';
$lang['items_update']='Обновить Товар';
$lang['items_item']='Товар';
$lang['items_edit_multiple_items']='Редактирование нескольких товаров';
$lang['items_name']='название товара';
$lang['items_category']='Категория';
$lang['items_cost_price']='Оптовая Цена';//GARRISON ADDED 4/21/2013
$lang['items_unit_price']='Розничная Цена';//GARRISON ADDED 4/21/2013
$lang['items_tax_1']='Налог 1';
$lang['items_tax_2']='Налог 2';
$lang['items_sales_tax_1'] = 'Налог на покупку';
$lang['items_sales_tax_2'] = 'Налог на покупку 2';
$lang['items_tax_percent']='процент налога';
$lang['items_tax_percents']='процент налога(и)';
$lang['items_reorder_level']='Минимальный уровень перед заказом';
$lang['items_quantity']='Количество';
$lang['items_reorder_level']='Минимальный уровень перед заказом';
$lang['items_no_items_to_display']='Нет товаров для отображения';
$lang['items_bulk_edit']='Массовое изменение';
$lang['items_confirm_delete']='Вы уверены, что хотите удалить выбранные товари?';
$lang['items_none_selected']='Вы не выбрали ни одной товари для редактирования';
$lang['items_confirm_bulk_edit']='Вы уверены, что хотите редактировать все товари выбраны?';
$lang['items_successful_bulk_edit']='Вы успешно обновили выбранных товаров';
$lang['items_error_updating_multiple']='Ошибка при обновлении товаров';
$lang['items_edit_fields_you_want_to_update']='Отредактируйте пробела вы хотите изменить для всех выбранных товаров';
$lang['items_error_adding_updating'] = 'Ошибка при добавлении/обновлении товара';
$lang['items_successful_adding']='Вы успешно добавлен товар';
$lang['items_successful_updating']='Вы успешно обновленного товара';
$lang['items_successful_deleted']='Вы успешно удалили';
$lang['items_one_or_multiple']='товар(а)';
$lang['items_cannot_be_deleted']='Невозможно удалить выбранные товари, один или более из выбранных товаров имеет продаж.';
$lang['items_name_required']='Название товара обязательное пробелья';
$lang['items_category_required']='Категория обязательное пробелья';
$lang['items_buy_price_required']='Цена покупки обязательное пробелья';
$lang['items_unit_price_required']='Розничная цена обязательное пробелья';
$lang['items_cost_price_required']='Оптовая цена обязательное пробелья';
$lang['items_tax_percent_required']='Процент Налоги обязательное пробелья';
$lang['items_quantity_required']='Количество обязательное пробелья';
$lang['items_reorder_level_required']='Минимальный уровень перед заказом обязательное пробелья';
$lang['items_unit_price_number']='Розничная Цена должно быть число';
$lang['items_cost_price_number']='Оптовая цена должно быть число';
$lang['items_quantity_number']='Количество должно быть число';
$lang['items_reorder_level_number']='Минимальный уровень перед заказом должно быть число';
$lang['items_none'] = 'Ничего';
$lang['items_supplier'] = 'Поставщик';
$lang['items_generate_barcodes'] = 'Создайте штрих-кодов';
$lang['items_must_select_item_for_barcode'] = 'Вы должны выбрать хотя бы 1 товар для создания штрих-кодов';
$lang['items_excel_import_failed'] = 'Ошибка импорта Excel';
$lang['items_allow_alt_desciption'] = 'Разрешить альтернативные описания';
$lang['items_is_serialized'] = 'Товар имеет серийный номер';
$lang['items_low_inventory_items'] = 'Низкий инвентаризации товары';
$lang['items_serialized_items'] = 'Сериализованные товары';
$lang['items_no_description_items'] = 'без Описание товары';
$lang['items_search_custom_items'] = 'Искать в дополнительных товарях';//GARRISON ADDED
$lang['items_inventory_comments']='Комментарии';
$lang['items_count']='Обновление инвентории';
$lang['items_details_count']='детали инвентаризацего количество';
$lang['items_add_minus']='Инвентарь для сложения/вычитания';
$lang['items_current_quantity']='Количество Сейчас';
$lang['items_quantity_required']='Количество обязательное пробелья. Пожалуйста, закройте (X), чтобы отменить';
$lang['items_do_nothing'] = 'Ничего не делать';
$lang['items_change_all_to_serialized'] = 'Изменить все в сериализованную';
$lang['items_change_all_to_unserialized'] = 'Изменить все в несериализованную';
$lang['items_change_all_to_allow_alt_desc'] = 'Разрешить альтернативные Описание для всех';
$lang['items_change_all_to_not_allow_allow_desc'] = 'Не разрешить альтернативные Описание для всех';
$lang['items_use_inventory_menu'] = 'Используйте меню инвентаря';
$lang['items_manually_editing_of_quantity'] = 'Руководство Изменить количество';
$lang['items_inventory'] = 'инвентаризация';
$lang['items_location'] = 'место';
?>

View File

@@ -0,0 +1,8 @@
<?php
$lang['login_login']='Вход';
$lang['login_username']='Имя';
$lang['login_password']='Пароль';
$lang['login_go']='ходите';
$lang['login_invalid_username_and_password']='Неправелная Имя/Пароль';
$lang['login_welcome_message']='Добро пожаловать в Open Source Point of Sale. Чтобы продолжить, пожалуйста войдите на сайт, используя имя и пароль.';
?>

View File

@@ -0,0 +1,34 @@
<?php
$lang['module_home']='Дома';
$lang['module_customers']='Клиенты';
$lang['module_customers_desc']='Добавление, обновление, удаление и поиск клиентов';
$lang['module_suppliers']='Поставщики';
$lang['module_suppliers_desc']='Добавление, обновление, удаление и поиск suppliers';
$lang['module_employees']='Сотрудники';
$lang['module_employees_desc']='Добавление, обновление, удаление и поиск сотрудники';
$lang['module_sales']='Продажа';
$lang['module_sales_desc']='Процесс продажи и возвращается';
$lang['module_reports']='Отчеты';
$lang['module_reports_desc']='Просмотр и создание отчетов';
$lang['module_items']='Товары';
$lang['module_items_desc']='Добавление, обновление, удаление и поиск товары';
$lang['module_config']='Конфигурацию магазина';
$lang['module_config_desc']='Изменить конфигурацию магазина';
$lang['module_receivings']='получении';
$lang['module_receivings_desc']='Процесс покупки заказов';
$lang['module_giftcards']='Подарочные карты';
$lang['module_giftcards_desc']='Добавление, обновление, удаление и поиск подарочные карты';
$lang['module_item_kits']='товара комплекти';
$lang['module_item_kits_desc']='Добавление, обновление, удаление и поиск товара комплекти';
?>

View File

@@ -0,0 +1,26 @@
<?php
$lang['recvs_register']='Получение товаров';
$lang['recvs_mode']='получая режим';
$lang['recvs_receiving']='получать';
$lang['recvs_return']='возвращать';
$lang['recvs_total']='сумма';
$lang['recvs_cost']='стоимость';
$lang['recvs_quantity']='Кол-во.';
$lang['recvs_discount']='Скидка %';
$lang['recvs_edit']='редактировать';
$lang['recvs_new_supplier'] = 'Новый поставщик';
$lang['recvs_supplier'] = 'поставщик';
$lang['recvs_select_supplier']='Выберите поставщика (необязательно)';
$lang['recvs_start_typing_supplier_name']='Начните вводить название поставщика...';
$lang['recvs_unable_to_add_item']='Невозможно добавить товар на получение';
$lang['recvs_error_editing_item']='Ошибка редактирования товар';
$lang['recvs_receipt']='квитанция о получении';
$lang['recvs_complete_receiving']='заканчивать';
$lang['recvs_confirm_finish_receiving'] = 'Вы уверены, что хотите представить это получение? Это не может быть отменено.';
$lang['recvs_confirm_cancel_receiving'] = 'Вы уверены, что хотите удалить это получение? Все детали будут очищены.';
$lang['recvs_find_or_scan_item']='Найти/Сканировать товар';
$lang['recvs_find_or_scan_item_or_receipt']='Найти/Сканировать товар ИЛИ квитанция';
$lang['recvs_id']='получение ID';
$lang['recvs_item_name'] = 'Название товара';
$lang['receivings_transaction_failed'] = 'Ошибка Получение транзакции';
?>

View File

@@ -0,0 +1,87 @@
<?php
$lang['reports_reports'] = 'Отчеты';
$lang['reports_report'] = 'Отчет';
$lang['reports_welcome_message'] = 'Добро пожаловать в панель отчетов. Пожалуйста, выберите отчет для просмотра.';
$lang['reports_sales_summary_report'] = 'Продажи Сводный отчет';
$lang['reports_categories_summary_report'] = 'Сводный отчет Категории';
$lang['reports_customers_summary_report'] = 'Сводный отчет клиентов';
$lang['reports_suppliers_summary_report'] = 'Сводный отчет Поставщики';
$lang['reports_items_summary_report'] = 'Сводный отчет товары';
$lang['reports_employees_summary_report'] = 'Сводный отчет Сотрудники';
$lang['reports_taxes_summary_report'] = 'Сводный отчет налоги';
$lang['reports_date'] = 'число';
$lang['reports_name'] = 'название';
$lang['reports_quantity_purchased'] = 'купенный количество';
$lang['reports_sale_id'] = 'ID Продажа';
$lang['reports_items_purchased'] = 'купенный товары';
$lang['reports_sold_by'] = 'Продавал через';
$lang['reports_sold_to'] = 'Продано к';
$lang['reports_category'] = 'категория';
$lang['reports_customer'] = 'клиент';
$lang['reports_employee'] = 'Сотрудник';
$lang['reports_item'] = 'товар';
$lang['reports_items'] = 'товары';
$lang['reports_supplier'] = 'Поставщик';
$lang['reports_employees'] = 'Сотрудники';
$lang['reports_subtotal'] = 'Промежуточная сумма';
$lang['reports_total'] = 'сумма';
$lang['reports_tax'] = 'налог';
$lang['reports_profit'] = 'прибыль';
$lang['reports_report_input'] = 'отчет входного';
$lang['reports_type'] = 'тип';
$lang['reports_date_range'] = 'размах числа';
$lang['reports_today'] = 'сегодня';
$lang['reports_yesterday'] = 'вчера';
$lang['reports_last_7'] = 'Последние 7 дней';
$lang['reports_this_month'] = 'В этом месяце';
$lang['reports_last_month'] = 'Последний месяц';
$lang['reports_this_year'] = 'В этом году';
$lang['reports_last_year'] = 'в прошлом году';
$lang['reports_all_time'] = 'за все время';
$lang['reports_detailed_sales_report'] = 'Подробный отчет о продажах';
$lang['reports_comments'] = 'Комментарии';
$lang['reports_discount'] = 'скидка';
$lang['reports_payment_type'] = 'Вид оплаты';
$lang['reports_sales'] = 'Продажа';
$lang['reports_categories'] = 'Категории';
$lang['reports_customers'] = 'Клиенты';
$lang['reports_suppliers'] = 'Поставщики';
$lang['reports_items'] = 'Товары';
$lang['reports_employees'] = 'Сотрудники';
$lang['reports_taxes'] = 'Налоги';
$lang['reports_customer'] = 'Клиент';
$lang['reports_employee'] = 'Сотрудник';
$lang['reports_tax_percent'] = 'процент налога';
$lang['reports_quantity_purchased'] = 'покупенно количества';
$lang['reports_serial_number'] = 'серийный номер';
$lang['reports_description'] = 'описание';
$lang['reports_date'] = 'число';
$lang['reports_sales_amount'] = 'сумма продаж';
$lang['reports_revenue'] = 'доход';
$lang['reports_discounts'] = 'Скидки';
$lang['reports_discounts_summary_report'] = 'Скидки Сводный отчет';
$lang['reports_discount_percent'] = 'процентную скидку';
$lang['reports_count'] = 'подсчет';
$lang['reports_summary_reports'] = 'Сводные отчеты';
$lang['reports_graphical_reports'] = 'графических отчетов';
$lang['reports_detailed_reports'] = 'Подробные отчеты';
$lang['reports_inventory_reports'] = 'Инвентаризация Отчеты';
$lang['reports_low_inventory'] = 'Низкий инвентаризации';
$lang['reports_inventory_summary'] = ' Сводка инвентаризации';
$lang['reports_item_number'] = 'Номер Товара';
$lang['reports_reorder_level'] = 'минимальный уровень';
$lang['reports_low_inventory_report'] = 'отчет Низкии инвентаризации';
$lang['reports_item_name'] = 'Название товара';
$lang['reports_inventory_summary_report'] = 'Отчет Сводка инвентаризации';
$lang['reports_payment_type'] = 'Вид оплаты';
$lang['reports_payments_summary_report'] = 'Платежей Сводный отчет';
$lang['reports_payments'] = 'Оплаты';
$lang['reports_receivings'] = 'Получении';
$lang['reports_received_by'] = 'получило за';
$lang['reports_supplied_by'] = 'Поставлял за';
$lang['reports_items_received'] = 'полученные Товары';
$lang['reports_detailed_receivings_report'] = 'Детальный отчет о поступлениях';
$lang['reports_sale_type'] = 'Вид Продажи';
$lang['reports_all'] = 'все';
$lang['reports_returns'] = 'Возвраты';
?>

View File

@@ -0,0 +1,79 @@
<?php
$lang['sales_giftcard_number']='Номер подарочных карт';
$lang['sales_giftcard']='Подарочная карта';
$lang['sales_register']='Продажи журнала';
$lang['sales_mode']='режим журнала';
$lang['sales_new_item'] = 'Новый Товар';
$lang['sales_item_name'] = 'Название товара';
$lang['sales_item_number'] = 'Номер товара';
$lang['sales_new_customer'] = 'Новый клиент';
$lang['sales_customer'] = 'клиент';
$lang['sales_no_items_in_cart']='Там нет товаров в корзине';
$lang['sales_total']='сумма';
$lang['sales_tax_percent']='Налоговые %';
$lang['sales_price']='цена';
$lang['sales_quantity']='Кол-во.';
$lang['sales_discount']='скидка %';
$lang['sales_edit']='редактировать';
$lang['sales_payment']='Вид оплаты';
$lang['sales_edit_item']='Редактировать Товар';
$lang['sales_find_or_scan_item']='Найти/Сканировать Товара';
$lang['sales_find_or_scan_item_or_receipt']='Найти/Сканировать Товара ИЛИ Квитанция';
$lang['sales_select_customer']='Выберите клиента (необязательно)';
$lang['sales_start_typing_item_name']='Начните печатать название товара или сканировайте штрих-кода...';
$lang['sales_start_typing_customer_name']='Начните печатать название клиента...';
$lang['sales_sub_total']='промежуточный итог';
$lang['sales_tax']='налог';
$lang['sales_comment']='комментировать';
$lang['sales_unable_to_add_item']='Невозможно добавить товар продажи';
$lang['sales_sale_for_customer']='Клиент:';
$lang['sales_remove_customer']='Удалите клиентов';
$lang['sales_error_editing_item']='Ошибка редактирования товара';
$lang['sales_complete_sale']='Завершить продажу';
$lang['sales_cancel_sale']='Отменить продажу';
$lang['sales_add_payment']='Добавить оплаты';
$lang['sales_receipt']='товарный чек';
$lang['sales_id']='Номер Продажы';
$lang['sales_sale']='Продажа';
$lang['sales_return']='возвращать';
$lang['sales_confirm_finish_sale'] = 'Вы уверены, что хотите заверщить эту продажу? Не может быть отменено.';
$lang['sales_confirm_cancel_sale'] = 'Вы уверены, что хотите удалить эту продажу? Все детали будут очищены.';
$lang['sales_cash'] = 'наличные деньги';
$lang['sales_check'] = 'банковский чек';
$lang['sales_debit'] = 'Дебетовая карта';
$lang['sales_credit'] = 'кредитная карта';
$lang['sales_giftcard'] = 'Подарочная карта';
$lang['sales_amount_tendered'] = 'предложенная сумма';
$lang['sales_change_due'] = 'сдача должное';
$lang['sales_payment_not_cover_total'] = 'оплачиваемая сумма недостаточно';
$lang['sales_transaction_failed'] = 'Транзакция не удалось';
$lang['sales_must_enter_numeric'] = 'числовое значение необходимое для предложенная сумма';
$lang['sales_must_enter_numeric_giftcard'] = 'числовое значение необходимое для число подарочную карту';
$lang['sales_serial'] = 'серийный номер';
$lang['sales_description_abbrv'] = 'описание';
$lang['sales_item_out_of_stock'] = 'Товар распродано';
$lang['sales_item_insufficient_of_stock'] = 'Товар недостаточно на складе';
$lang['sales_quantity_less_than_zero'] = 'Внимание Желаемое количество является недостаточным. Вы все еще можете обрабатывать продажи, но проверить ваш инвентарь';
$lang['sales_successfully_updated'] = 'Продажа успешно обновлен';
$lang['sales_unsuccessfully_updated'] = 'Продажа безуспешно обновлен';
$lang['sales_edit_sale'] = 'Редактировать продажи';
$lang['sales_employee'] = 'сотрудник';
$lang['sales_successfully_deleted'] = 'продажи успешно удален';
$lang['sales_unsuccessfully_deleted'] = 'продажи безуспешно удален';
$lang['sales_delete_entire_sale'] = 'Удалить всего продажи';
$lang['sales_delete_confirmation'] = 'Вы уверены, что хотите удалить эту продажу, это действие не может быть отменено';
$lang['sales_date'] = 'число продажи';
$lang['sales_delete_successful'] = 'Вы успешно удален продаже';
$lang['sales_delete_unsuccessful'] = 'Вы безуспешно удален продаже';
$lang['sales_suspend_sale'] = 'Приостановить продажи';
$lang['sales_confirm_suspend_sale'] = 'Вы уверены, что хотите приостановить эту продажу?';
$lang['sales_suspended_sales'] = 'приостановила продажи';
$lang['sales_suspended_sale_id'] = 'приостановила продажи ID';
$lang['sales_date'] = 'Число';
$lang['sales_customer'] = 'Клиент';
$lang['sales_comments'] = 'Комментарии';
$lang['sales_unsuspend_and_delete'] = 'Разблокировать и удалить';
$lang['sales_unsuspend'] = 'Разблокировать';
$lang['sales_successfully_suspended_sale'] = 'Ваши продажи успешно приостановлена';
$lang['sales_email_receipt'] = 'послать квитанция по E-Mail';
?>

View File

@@ -0,0 +1,17 @@
<?php
$lang['suppliers_new']='Новый поставщик';
$lang['suppliers_supplier']='поставщик';
$lang['suppliers_update']='Обновить поставщика';
$lang['suppliers_confirm_delete']='Вы уверены, что хотите удалить выбранных поставщиков?';
$lang['suppliers_none_selected']='Вы не выбрали ни поставщики удалить';
$lang['suppliers_error_adding_updating'] = 'Ошибка при добавлении/обновлении поставщиком';
$lang['suppliers_successful_adding']='Вы успешно добавили поставщиком';
$lang['suppliers_successful_updating']='Вы успешно обновляли поставщиком';
$lang['suppliers_successful_deleted']='Вы успешно удален';
$lang['suppliers_one_or_multiple']='поставщик (а)';
$lang['suppliers_cannot_be_deleted']='Не удалось удалить выбранные поставщиков, один или более из выбранных поставщиков имеет продаж.';
$lang['suppliers_basic_information']='Информация о поставщике';
$lang['suppliers_account_number']='№ счета';
$lang['suppliers_company_name']='Название компании';
$lang['suppliers_company_name_required'] = 'Название компании является обязательным полем';
?>

View File

@@ -0,0 +1,40 @@
<?php
$lang['common_common']='común';
$lang['common_submit']='Enviar';
$lang['common_or']='Ó';
$lang['common_powered_by']='Empoderado por';
$lang['common_welcome']='Bienvenido(a)';
$lang['common_logout']='Salir';
$lang['common_list_of']='Lista de';
$lang['common_first_name']='Nombre';
$lang['common_last_name']='Apellidos';
$lang['common_email']='E-Mail';
$lang['common_phone_number']='Teléfono';
$lang['common_address_1']='Dirección 1';
$lang['common_address_2']='Dirección 2';
$lang['common_city']='Ciudad';
$lang['common_state']='Estado';
$lang['common_zip']='C.P.';
$lang['common_country']='País';
$lang['common_comments']='Comentarios';
$lang['common_edit']='editar';
$lang['common_search']='Buscar';
$lang['common_delete']='Borrar';
$lang['common_view_recent_sales']='Ver Ventas Recientes';
$lang['common_you_are_using_ospos']='Estás usando Open Source Point Of Sale Versión';
$lang['common_please_visit_my']='Por favor, visita mi';
$lang['common_website']='sitio';
$lang['common_fields_required_message']='Los campos en rojo son requeridos';
$lang['common_learn_about_project']='para leer la información más reciente acerca del proyecto';
$lang['common_searched_for']='Buscaste';
$lang['common_first_name_required']='Nombre es un campo requerido';
$lang['common_last_name_required']='Apellidos es un campo requerido';
$lang['common_email_invalid_format']='El e-mail no está en el formato requerido';
$lang['common_confirm_search']='Has seleccionado una o más filas. Éstas no estarán seleccionadas después de tu búsqueda. ¿Seguro(a) que quieres hacer esta búsqueda?';
$lang['common_no_persons_to_display']='No hay gente que mostrar';
$lang['common_return_policy']='Política de reintegro';
$lang['common_price']='Precio';
$lang['common_welcome_message']= 'Bienvenido(a) a Open Source Point Of Sale. ¡Haz click en algún módulo; debajo, para empezar!';
$lang['common_inv']='inv';
$lang['common_det']='detalles';
?>

Some files were not shown because too many files have changed in this diff Show More