Version 2.0_RC1. Upgrade to CI 2.1.0.

Tom

git-svn-id: svn+ssh://jekkos@svn.code.sf.net/p/opensourcepos/code/@24 c3eb156b-1dc0-44e1-88ae-e38439141b53
This commit is contained in:
pappastech
2012-01-16 02:16:01 +00:00
parent 335982638e
commit ecdf3a5aa1
231 changed files with 24332 additions and 0 deletions

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.0_RC1';
/*
|--------------------------------------------------------------------------
| 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'] = FALSE;
$config['sess_table_name'] = 'ci_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'] = TRUE;
$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,46 @@
<?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'),
'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')
);
if($_SERVER['HTTP_HOST'] !='ospos.pappastech.com' && $this->Appconfig->batch_save($batch_save_data))
{
echo json_encode(array('success'=>true,'message'=>$this->lang->line('config_saved_successfully')));
}
else
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('config_saved_unsuccessfully')));
}
}
}
?>

View File

@@ -0,0 +1,200 @@
<?php
require_once ("person_controller.php");
class Customers extends Person_controller
{
function __construct()
{
parent::__construct('customers');
}
function index()
{
$config['base_url'] = site_url('?c=customers&m=index');
$config['total_rows'] = $this->Customer->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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,142 @@
<?php
require_once ("person_controller.php");
class Employees extends Person_controller
{
function __construct()
{
parent::__construct('employees');
}
function index()
{
$config['base_url'] = site_url('?c=employees&m=index');
$config['total_rows'] = $this->Employee->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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 ($_SERVER['HTTP_HOST'] == 'ospos.pappastech.com' && $employee_id == 1)
{
//failure
echo json_encode(array('success'=>false,'message'=>$this->lang->line('employees_error_updating_demo_admin').' '.
$person_data['first_name'].' '.$person_data['last_name'],'person_id'=>-1));
}
elseif($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 ($_SERVER['HTTP_HOST'] == 'ospos.pappastech.com' && in_array(1,$employees_to_delete))
{
//failure
echo json_encode(array('success'=>false,'message'=>$this->lang->line('employees_error_deleting_demo_admin')));
}
elseif($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,107 @@
<?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('?c=giftcards&m=index');
$config['total_rows'] = $this->Giftcard->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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);
}
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')
);
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,137 @@
<?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('?c=item_kits&m=index');
$config['total_rows'] = $this->Item_kit->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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,427 @@
<?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('?c=items&m=index');
$config['total_rows'] = $this->Item->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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');
$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['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),$this);
$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);
}
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')
);
$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'
);
$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,45 @@
<?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 '#';
}
/*
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,430 @@
<?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;
}
elseif ( ( $this->Giftcard->get_giftcard_value( $this->input->post('amount_tendered') ) - $this->sale_lib->get_total() ) > 0 )
{
$data['warning']='Giftcard balance is '.to_currency( $this->Giftcard->get_giftcard_value( $this->input->post('amount_tendered') ) - $this->sale_lib->get_total() ).' !';
}
$payment_amount=min( $this->sale_lib->get_total(), $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,130 @@
<?php
require_once ("person_controller.php");
class Suppliers extends Person_controller
{
function __construct()
{
parent::__construct('suppliers');
}
function index()
{
$config['base_url'] = site_url('?c=suppliers&m=index');
$config['total_rows'] = $this->Supplier->count_all();
$config['per_page'] = '20';
$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->input->get('per_page')),$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,21 @@
<?php
function to_currency($number)
{
$CI =& get_instance();
$currency_symbol = $CI->config->item('currency_symbol') ? $CI->config->item('currency_symbol') : '$';
if($number >= 0)
{
return $currency_symbol.number_format($number, 2, '.', '');
}
else
{
return '-'.$currency_symbol.number_format(abs($number), 2, '.', '');
}
}
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,344 @@
<?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('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;
}
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->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;
}
/*
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,25 @@
<?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->lang->switch_to($CI->config->item('language'));
}
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,24 @@
<?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';
?>

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,69 @@
<?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_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,79 @@
<?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']='Cost Price';
$lang['items_unit_price']='Unit Price';
$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_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,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';
?>

View File

@@ -0,0 +1,24 @@
<?php
$lang['config_info']='Guarda Información de Configuración';
$lang['config_company']='Nombre de la Compañía';
$lang['config_address']='Dirección de la Compañía';
$lang['config_phone']='Teléfono de la Compañía';
$lang['config_website']='Sitio Web';
$lang['config_fax']='Fax';
$lang['config_default_tax_rate']='% de Impuestos Predeterminada';
$lang['config_default_tax_rate_1']='Tasa de Impuestos 1';
$lang['config_default_tax_rate_2']='Tasa de Impuestos 2';
$lang['config_company_required']='Nombre de la Compañía es requerido';
$lang['config_address_required']='Dirección de la Compañía es requerida';
$lang['config_phone_required']='Teléfono de la Compañía es requerido';
$lang['config_default_tax_rate_required']='La Tasa de Impuestos Predeterminada es requerida';
$lang['config_default_tax_rate_number']='La Taza de Impuestos Predeterminada debe ser un número';
$lang['config_company_website_url']='Sitio Web no es un URL estándard (http://...)';
$lang['config_saved_successfully']='Configuración guardada satisfactoriamente';
$lang['config_saved_unsuccessfully']='Configuración no guardada';
$lang['config_return_policy_required']='Política de Reintegro es requerida';
$lang['config_print_after_sale']='Imprimir recibo después de una venta';
$lang['config_language'] = 'Idioma';
$lang['config_timezone'] = 'Zona Horaria';
$lang['config_currency_symbol'] = 'Currency Symbol';
?>

View File

@@ -0,0 +1,16 @@
<?php
$lang['customers_new']='Nuevo Cliente';
$lang['customers_customer']='Cliente';
$lang['customers_update']='Actualizar Cliente';
$lang['customers_confirm_delete']='¿Estás seguro(a) de que quieres borrar a los clientes seleccionados?';
$lang['customers_none_selected']='No has selccionado clientes para ser borrados';
$lang['customers_error_adding_updating'] = 'Error agregando/actualizando cliente';
$lang['customers_successful_adding']='Has agregado satisfactoriamente al cliente';
$lang['customers_successful_updating']='No se ha podido agregar al cliente';
$lang['customers_successful_deleted']='Has borrado satisfactoriamente a';
$lang['customers_one_or_multiple']='cliente(s)';
$lang['customers_cannot_be_deleted']='No se pudo borrar a los clientes seleccionados. Uno o más de éstos tiene ventas.';
$lang['customers_basic_information']='Información de Clientes';
$lang['customers_account_number']='Cuenta #';
$lang['customers_taxable']='Gravable';
?>

View File

@@ -0,0 +1,27 @@
<?php
$lang['employees_employee']='Empleado';
$lang['employees_new']='Nuevo Empleado';
$lang['employees_update']='Actualizar Empleado';
$lang['employees_confirm_delete']='¿Estás seguro(a) quie quieres borrar a los empleados seleccionados?';
$lang['employees_none_selected']='No has seleccionado empleados para borrar';
$lang['employees_error_adding_updating'] = 'Error al agregar/actualizar empleado';
$lang['employees_successful_adding']='Has agregado al empleado satisfactoriamente';
$lang['employees_successful_updating']='Has actualizado al empleado satisfactoriamente';
$lang['employees_successful_deleted']='Has borrado satisfactoriamente a';
$lang['employees_one_or_multiple']='empleado(s)';
$lang['employees_cannot_be_deleted']='No se pudieron borrar empleados. Uno o másempleados tiene ventas procesadas o estás tratando de borrarte a tí mismo(a).';
$lang['employees_username']='Usuario';
$lang['employees_password']='Contraseña';
$lang['employees_repeat_password']='Contraseña Otra Vez';
$lang['employees_username_required']='Usuario es requerido';
$lang['employees_username_minlength']='El Usuario debe tener, por lo menos, 5 caracteres';
$lang['employees_password_required']='La Contraseña es requerida';
$lang['employees_password_minlength']='La contraseña debe tener, por lo menos, 8 caracteres';
$lang['employees_password_must_match']='Las Contraseñas no coinciden';
$lang['employees_basic_information']='Información Básica de Empleados';
$lang['employees_login_info']='Información de Ingreso del Empleado';
$lang['employees_permission_info']='Permisos y Acceso del Empleado';
$lang['employees_permission_desc']='Activa las cajas debajo para permitir el acceso a los módulos';
$lang['employees_error_updating_demo_admin'] = 'No puedes cambiar el usuario admin del demo';
$lang['employees_error_deleting_demo_admin'] = 'No puedes borrar el usuario admin del demo';
?>

View File

@@ -0,0 +1,4 @@
<?php
$lang['error_no_permission_module']='No tienes permiso para accesar el módulo llamado';
$lang['error_unknown']='desconocido';
?>

View File

@@ -0,0 +1,69 @@
<?php
$lang['giftcards_giftcard_number']='Número de Tarjeta de Regalo';
$lang['giftcards_card_value']='Valor';
$lang['giftcards_basic_information']='Información de Tarjeta de Regalo';
$lang['giftcards_number_required']='Número de Tarjeta de Regalo es requerido';
$lang['giftcards_value_required']='Valor de Tarjeta de Regalo es requerido';
$lang['giftcards_number']='Número de Tarjeta de Regalo debe ser un número';
$lang['giftcards_value']='Valor de Tarjeta de Regalo debe ser un número';
$lang['giftcards_retrive_giftcard_info']='Obtener Info de Tarjeta de Regalo';
$lang['giftcards_description']='Descripción';
$lang['giftcards_amazon']='Amazon';
$lang['giftcards_upc_database']='Base de Datos UPC';
$lang['giftcards_cannot_find_giftcard']='No puedo encontrar información acerca de la tarjeta de regalo';
$lang['giftcards_info_provided_by']='Info provista por';
$lang['giftcards_number_information']='Número de Tarjeta de Regalo';
$lang['giftcards_new']='Nueva Tarjeta de Regalo';
$lang['giftcards_update']='Actualizar Tarjeta de Regalo';
$lang['giftcards_giftcard']='Tarjeta de Regalo';
$lang['giftcards_edit_multiple_giftcards']='Editando Múltiples Tarjetas de Regalo';
$lang['giftcards_category']='Categoría';
$lang['giftcards_cost_price']='Precio de Costo';
$lang['giftcards_unit_price']='Precio Unitario';
$lang['giftcards_tax_1']='Impuesto 1';
$lang['giftcards_tax_2']='Impuesto 2';
$lang['giftcards_sales_tax_1'] = 'Impuesto de Venta 1';
$lang['giftcards_sales_tax_2'] = 'Impuesto de Venta 2';
$lang['giftcards_tax_percent']='Porcentaje de Impuesto';
$lang['giftcards_tax_percents']='Porcentaje de Impuesto(s)';
$lang['giftcards_reorder_level']='Nivel de Reordenamiento';
$lang['giftcards_quantity']='Cantidad';
$lang['giftcards_no_giftcards_to_display']='No Giftcards to display';
$lang['giftcards_bulk_edit']='Edición Múltiple';
$lang['giftcards_confirm_delete']='¿Estás seguro(a) de querer eliminar las tarjetas de regalo seleccionadas?';
$lang['giftcards_none_selected']='No has seleccionado tarjetas de regalo para editar';
$lang['giftcards_confirm_bulk_edit']='¿Estás seguro(a) de querer editar las tarjetas de regalo seleccionadas?';
$lang['giftcards_successful_bulk_edit']='Has actualizado satisfactoriamente las tarjetas de regalo seleccionadas';
$lang['giftcards_error_updating_multiple']='Error actualizando tarjetas de regalo';
$lang['giftcards_edit_fields_you_want_to_update']='Edita los campos que quieras actualizar en TODAS las tarjetas de regalo seleccionadas';
$lang['giftcards_error_adding_updating'] = 'Error agregando/actualizando tarjeta de regalo';
$lang['giftcards_successful_adding']='Has agregado satisfactoriamente una tarjeta de regalo';
$lang['giftcards_successful_updating']='Has actualizado satisfactoriamente una tarjeta de regalo';
$lang['giftcards_successful_deleted']='Has borrado satisfactoriamente';
$lang['giftcards_one_or_multiple']='tarjeta(s) de regalo';
$lang['giftcards_cannot_be_deleted']='No pude borrar las tarjetas seleccionadas. Una o más tiene ventas.';
$lang['giftcards_none'] = 'Ninguno(a)';
$lang['giftcards_supplier'] = 'Proveedor';
$lang['giftcards_generate_barcodes'] = 'Generar Códigos de Barras';
$lang['giftcards_must_select_giftcard_for_barcode'] = 'Debes seleccionar por lo menos 1 tarjeta para generar códigos de barras';
$lang['giftcards_excel_import_failed'] = 'Falló la exportación a Excel';
$lang['giftcards_allow_alt_desciption'] = 'Permitir Descripción Alterna';
$lang['giftcards_is_serialized'] = 'La Tarjeta de Regalo tiene Número de Serie';
$lang['giftcards_low_inventory_giftcards'] = 'Tarjetas con Bajo Inventario';
$lang['giftcards_serialized_giftcards'] = 'Tarjetas Serializadas';
$lang['giftcards_no_description_giftcards'] = 'Tarjetas de Regalo sin Descripción';
$lang['giftcards_inventory_comments']='Comentarios';
$lang['giftcards_count']='Actualizar Inventario';
$lang['giftcards_details_count']='Detalles del Levantamiento de Inventario';
$lang['giftcards_add_minus']='Inventario a agregar/substraer';
$lang['giftcards_current_quantity']='Cantidad Actual';
$lang['giftcards_quantity_required']='Cantidad es requerido. Por favor, haz click en ( X ) para cancelar';
$lang['giftcards_do_nothing'] = 'No hacer nada';
$lang['giftcards_change_all_to_serialized'] = 'Cambiar Todo A Serializado';
$lang['giftcards_change_all_to_unserialized'] = 'Cambiar Todo A Deserializado';
$lang['giftcards_change_all_to_allow_alt_desc'] = 'Permitir Descripción Alternativa En Todos';
$lang['giftcards_change_all_to_not_allow_allow_desc'] = 'No Permitir Descripción Alternativa Para Todos';
$lang['giftcards_use_inventory_menu'] = 'Usar Menú de Inventario';
$lang['giftcards_manually_editing_of_quantity'] = 'Edición Manual de Cantidad';
?>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Prohibido</title>
</head>
<body>
<p>El acceso a los directorios está prohibido.</p>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?php
$lang['item_kits_name'] = 'Nombre del Kit de Artículos';
$lang['item_kits_description'] = 'Descripción del Kit de Artículos';
$lang['item_kits_no_item_kits_to_display'] = 'No hay kits de artículos para mostrar';
$lang['item_kits_update'] = 'Actualizar Kit de Artículos';
$lang['item_kits_new'] = 'Nuevo Kit de Artículos';
$lang['item_kits_none_selected'] = "No has seleccionado kits de artículos";
$lang['item_kits_info'] = 'Info de Kit de Artículos';
$lang['item_kits_successful_adding'] = 'Has agregado satisfactoriamente un Kit de Artículos';
$lang['item_kits_successful_updating'] = 'Has actualizado satisfactoriamente un Kit de Artículos';
$lang['item_kits_error_adding_updating'] = 'Error agregando/actualizando el Kit de Artículos';
$lang['item_kits_successful_deleted'] = 'Has borrado satisfactoriamente';
$lang['item_kits_confirm_delete'] = '¿Estás seguro(a) de querer borrar los kits seleccionados?';
$lang['item_kits_one_or_multiple'] = 'Kit(s) de Artículos';
$lang['item_kits_cannot_be_deleted'] = 'No pude borrar el/los Kit(s) de Artículos';
$lang['item_kits_add_item'] = 'Agregar Artículo';
$lang['item_kits_items'] = 'Artículos';
$lang['item_kits_item'] = 'Artículo';
$lang['item_kits_quantity'] = 'Cantidad';
?>

View File

@@ -0,0 +1,77 @@
<?php
$lang['items_item_number']='UPC/EAN/ISBN';
$lang['items_retrive_item_info']='Obtener Info de Artículo';
$lang['items_description']='Descripción';
$lang['items_amazon']='Amazon';
$lang['items_upc_database']='Base de datos UPC';
$lang['items_cannot_find_item']='No puedo encontrar información acerca del artículo';
$lang['items_info_provided_by']='Info provista por';
$lang['items_basic_information']='Infomación del Artículo';
$lang['items_number_information']='Número del Artículo';
$lang['items_new']='Nuevo Artículo';
$lang['items_update']='Actualizar Artículo';
$lang['items_item']='Artículo';
$lang['items_edit_multiple_items']='Editando Artículos Múltiples';
$lang['items_name']='Nombre del Artículo';
$lang['items_category']='Categoría';
$lang['items_cost_price']='Costo';
$lang['items_unit_price']='Precio Unitario';
$lang['items_tax_1']='Impuesto 1';
$lang['items_tax_2']='Impuesto 2';
$lang['items_sales_tax_1'] = 'Impuesto de Ventas 1';
$lang['items_sales_tax_2'] = 'Impuesto de Ventas 2';
$lang['items_tax_percent']='Porcentaje de Impuesto';
$lang['items_tax_percents']='Porcentaje de Impuesto(s)';
$lang['items_reorder_level']='Nivel de Reordenamiento';
$lang['items_quantity']='Cantidad';
$lang['items_no_items_to_display']='No hay artículos que mostrar';
$lang['items_bulk_edit']='Edición Múltiple';
$lang['items_confirm_delete']='¿Estás seguro(a) de querer borrar los artículos seleccionados?';
$lang['items_none_selected']='No has seleccionado artículos para editar';
$lang['items_confirm_bulk_edit']='¿Estás seguro(a) de querer editar los artículos seleccionados?';
$lang['items_successful_bulk_edit']='Has actualizado satisfactoriamente los artículos seleccionados';
$lang['items_error_updating_multiple']='Error actualizando artículos';
$lang['items_edit_fields_you_want_to_update']='Edita los campos que quieras actualizar en TODOS los artículos seleccionados';
$lang['items_error_adding_updating'] = 'Error agregando/actualizando artículo';
$lang['items_successful_adding']='Has agregado satisfactoriamente un artículo';
$lang['items_successful_updating']='Has actualizando satisfactoriamente un artículo';
$lang['items_successful_deleted']='Has borrado satisfactoriamente';
$lang['items_one_or_multiple']='articulo(s)';
$lang['items_cannot_be_deleted']='No pude borrar los artículos seleccionados. Uno o más tiene(n) ventas.';
$lang['items_name_required']='Nombre de Artículo es requerido';
$lang['items_category_required']='Categoría es requerido';
$lang['items_buy_price_required']='Precio de Compra es requerido';
$lang['items_unit_price_required']='Precio Unitario es requerido';
$lang['items_cost_price_required']='Costo es requerido';
$lang['items_tax_percent_required']='Porcentaje de Impuesto es requerido';
$lang['items_quantity_required']='Cantidad es requerido';
$lang['items_reorder_level_required']='Nivel de Reordenamiento es requerido';
$lang['items_unit_price_number']='Precio unitario debe ser número';
$lang['items_cost_price_number']='Costo debe ser número';
$lang['items_quantity_number']='Cantidad debe ser número';
$lang['items_reorder_level_number']='Nivel de Reordenamiento debe ser número';
$lang['items_none'] = 'Ninguno';
$lang['items_supplier'] = 'Proveedor';
$lang['items_generate_barcodes'] = 'Generar Códigos de Barras';
$lang['items_must_select_item_for_barcode'] = 'Debes seleccionar al menos 1 artículo para generar códigos de barras';
$lang['items_excel_import_failed'] = 'Falló la importación de Excel';
$lang['items_allow_alt_desciption'] = 'Permitir Descripción Alterna';
$lang['items_is_serialized'] = 'El Artículo tiene Número de Serie';
$lang['items_low_inventory_items'] = 'Artículos de Inventario Escaso';
$lang['items_serialized_items'] = 'Artículos Serializados';
$lang['items_no_description_items'] = 'Artículos sin Descripción';
$lang['items_inventory_comments']='Comentarios';
$lang['items_count']='Actualizar Inventario';
$lang['items_details_count']='Detalles de Cuenta de Inventario';
$lang['items_add_minus']='Inventario a agregar/substraer';
$lang['items_current_quantity']='Cantidad Actual';
$lang['items_do_nothing'] = 'Hacer Nada';
$lang['items_change_all_to_serialized'] = 'Cambiar Todo A Serializado';
$lang['items_change_all_to_unserialized'] = 'Cambiar Todo A Deserializado';
$lang['items_change_all_to_allow_alt_desc'] = 'Permitir Descripción Alterna Para Todos';
$lang['items_change_all_to_not_allow_allow_desc'] = 'Denegar Descripción Alterna Para Todos';
$lang['items_use_inventory_menu'] = 'Usar Menú de Inv.';
$lang['items_manually_editing_of_quantity'] = 'Edición Manual de Cantidad';
$lang['items_inventory'] = 'Inventario';
$lang['items_location'] = 'Locación';
?>

View File

@@ -0,0 +1,8 @@
<?php
$lang['login_login']='Iniciar Sesión';
$lang['login_username']='Usuario';
$lang['login_password']='Contraseña';
$lang['login_go']='Ir';
$lang['login_invalid_username_and_password']='Usuario/Contraseña inválidos';
$lang['login_welcome_message']='Bienvenido(a) al Sistema Open Source Point of Sale. Para continuar, inicia sesión usando tu Usuario y Contraseña.';
?>

View File

@@ -0,0 +1,33 @@
<?php
$lang['module_home']='Inicio';
$lang['module_customers']='Clientes';
$lang['module_customers_desc']='Agregar, Actualizar, Borrar y Buscar clientes';
$lang['module_suppliers']='Proveedores';
$lang['module_suppliers_desc']='Agregar, Actualizar, Borrar y Buscar proveedores';
$lang['module_employees']='Empleados';
$lang['module_employees_desc']='Agregar, Actualizar, Borrar y Buscar empleados';
$lang['module_sales']='Ventas';
$lang['module_sales_desc']='Procesar ventas y reintegros';
$lang['module_reports']='Reportes';
$lang['module_reports_desc']='Ver y generar reportes';
$lang['module_items']='Artículos';
$lang['module_items_desc']='Agregar, Actualizar, Borrar y Buscar artículos';
$lang['module_config']='Configuración de la Tienda';
$lang['module_config_desc']='Cambiar la configuración de la tienda';
$lang['module_receivings']='Receivings';
$lang['module_receivings_desc']='Process Purchase orders';
$lang['module_giftcards']='Tarjetas de Regalo';
$lang['module_giftcards_desc']='Agregar, Actualizar, Borrar y Buscar Tarjetas de Regalo';
$lang['module_item_kits']='Kits de Artículos';
$lang['module_item_kits_desc']='Agregar, Actualizar, Borrar y Buscar Kits de Artículos';
?>

View File

@@ -0,0 +1,26 @@
<?php
$lang['recvs_register']='Entrada de Artículos';
$lang['recvs_mode']='Modo de Entradas';
$lang['recvs_receiving']='Recibir';
$lang['recvs_return']='Regresar';
$lang['recvs_total']='Total';
$lang['recvs_cost']='Costo';
$lang['recvs_quantity']='Cant.';
$lang['recvs_discount']='Desc %';
$lang['recvs_edit']='Editar';
$lang['recvs_new_supplier'] = 'Nuevo Proveedor';
$lang['recvs_supplier'] = 'Proveedor';
$lang['recvs_select_supplier']='Seleccionar Proveedor (Opcional)';
$lang['recvs_start_typing_supplier_name']='Empieza a escribir el nombre del proveedor...';
$lang['recvs_unable_to_add_item']='No pude agregar el artículo a la entrada';
$lang['recvs_error_editing_item']='Error al editar artículo';
$lang['recvs_receipt']='Recibo de Entrada';
$lang['recvs_complete_receiving']='Terminar';
$lang['recvs_confirm_finish_receiving'] = '¿Estás seguro(a) de querer procesar esta entrada? Ésto no puede ser des-hecho.';
$lang['recvs_confirm_cancel_receiving'] = '¿Estás seguro(a) de querer limpiar esta entrada? Todos los artículos serán limpiados.';
$lang['recvs_find_or_scan_item']='Encontrar/Escanear Artículo';
$lang['recvs_find_or_scan_item_or_receipt']='Encontrar/Escanear Artículo o Entrada';
$lang['recvs_id']='ID de Entrada';
$lang['recvs_item_name'] = 'Nombre del Artículo';
$lang['receivings_transaction_failed'] = 'Las Transacciones de Entrada Fallaron';
?>

View File

@@ -0,0 +1,85 @@
<?php
$lang['reports_reports'] = 'Reportes';
$lang['reports_report'] = 'Reporte';
$lang['reports_welcome_message'] = 'Bienvenido(a) al panel de reportes. Selecciona un reporte para verlo.';
$lang['reports_sales_summary_report'] = 'Reporte de Resumen de Ventas';
$lang['reports_categories_summary_report'] = 'Reporte de Resumen de Categorías';
$lang['reports_customers_summary_report'] = 'Reporte de Resumen de Clientes';
$lang['reports_suppliers_summary_report'] = 'Reporte de Resumen de Proveedores';
$lang['reports_items_summary_report'] = 'Reporte de Resumen de Artículos';
$lang['reports_employees_summary_report'] = 'Reporte de Resumen de Empleados';
$lang['reports_taxes_summary_report'] = 'Reporte de Resumen de Impuestos';
$lang['reports_date'] = 'Fecha';
$lang['reports_name'] = 'Nombre';
$lang['reports_quantity_purchased'] = 'Cantidad Comprada';
$lang['reports_serial_number'] = 'Serial #';
$lang['reports_description'] = 'Descripción';
$lang['reports_sale_id'] = 'ID de Venta';
$lang['reports_items_purchased'] = 'Artículos Comprados';
$lang['reports_sold_by'] = 'Vendido Por';
$lang['reports_sold_to'] = 'Vendido A';
$lang['reports_category'] = 'Categoría';
$lang['reports_customer'] = 'Cliente';
$lang['reports_employee'] = 'Empleado';
$lang['reports_item'] = 'Artículo';
$lang['reports_items'] = 'Artículos';
$lang['reports_supplier'] = 'Proveedor';
$lang['reports_employees'] = 'Empleados';
$lang['reports_taxes'] = 'Impuestos';
$lang['reports_subtotal'] = 'Subtotal';
$lang['reports_total'] = 'Total';
$lang['reports_tax'] = 'Impuesto';
$lang['reports_profit'] = 'Ganancia';
$lang['reports_report_input'] = 'Entrada de Reporte';
$lang['reports_type'] = 'Tipo';
$lang['reports_date_range'] = 'Rango de Fecha';
$lang['reports_today'] = 'Hoy';
$lang['reports_yesterday'] = 'Ayer';
$lang['reports_last_7'] = 'Últimos 7 Días';
$lang['reports_this_month'] = 'Este Mes';
$lang['reports_last_month'] = 'Mes Pasado';
$lang['reports_this_year'] = 'Este Año';
$lang['reports_last_year'] = 'Año Pasado';
$lang['reports_all_time'] = 'Todos los Tiempos';
$lang['reports_detailed_sales_report'] = 'Reporte de Ventas Detallado';
$lang['reports_comments'] = 'Comentarios';
$lang['reports_discount'] = 'Descuento';
$lang['reports_payment_type'] = 'Tipo de Pago';
$lang['reports_sales'] = 'Ventas';
$lang['reports_categories'] = 'Categorías';
$lang['reports_customers'] = 'Clientes';
$lang['reports_suppliers'] = 'Proveedores';
$lang['reports_items'] = 'Artículos';
$lang['reports_employees'] = 'Empleados';
$lang['reports_customer'] = 'Cliente';
$lang['reports_employee'] = 'Empleado';
$lang['reports_tax_percent'] = 'Porcentaje de Impuestos';
$lang['reports_sales_amount'] = 'Monto de ventas';
$lang['reports_revenue'] = 'Ingresos';
$lang['reports_discounts'] = 'Descuentos';
$lang['reports_discounts_summary_report'] = 'Reporte de Resumen de Descuentos';
$lang['reports_discount_percent'] = 'Porcentaje de Decuento';
$lang['reports_count'] = 'Cuenta';
$lang['reports_summary_reports'] = 'Reportes de Resumen';
$lang['reports_graphical_reports'] = 'Reportes Gráficos';
$lang['reports_detailed_reports'] = 'Reportes Detallados';
$lang['reports_inventory_reports'] = 'Reportes de Inventario';
$lang['reports_low_inventory'] = 'Inventario Escaso';
$lang['reports_inventory_summary'] = 'Resumen de Inventario';
$lang['reports_item_number'] = 'Número de Artículo';
$lang['reports_reorder_level'] = 'Nivel de Reordenamiento';
$lang['reports_low_inventory_report'] = 'Reporte de Inventario Escaso';
$lang['reports_item_name'] = 'Nombre del Artículo';
$lang['reports_inventory_summary_report'] = 'Reporte de Resumen de Inventario';
$lang['reports_payment_type'] = 'Tipo de Pago';
$lang['reports_payments_summary_report'] = 'Reporte de Resumen de Pagos';
$lang['reports_payments'] = 'Pagos';
$lang['reports_receivings'] = 'Entradas';
$lang['reports_received_by'] = 'Recibido por';
$lang['reports_supplied_by'] = 'Provisto por';
$lang['reports_items_received'] = 'Artículos Recibidos';
$lang['reports_detailed_receivings_report'] = 'Reporte Detallado de Entradas';
$lang['reports_sale_type'] = 'Tipo de Venta';
$lang['reports_all'] = 'Todo';
$lang['reports_returns'] = 'Devoluciones';
?>

View File

@@ -0,0 +1,78 @@
<?php
$lang['sales_giftcard_number']='Número de Tarjeta de Regalo';
$lang['sales_giftcard']='Tarjeta de Regalo';
$lang['sales_register']='Registro de Ventas';
$lang['sales_mode']='Modo de Registro';
$lang['sales_new_item'] = 'Artículo Nuevo';
$lang['sales_item_name'] = 'Nombre del Artículo';
$lang['sales_item_number'] = '# del Artículo';
$lang['sales_new_customer'] = 'Cliente Nuevo';
$lang['sales_customer'] = 'cliente';
$lang['sales_no_items_in_cart']='No hay artículos en el carrito';
$lang['sales_total']='Total';
$lang['sales_tax_percent']='% de Impuesto';
$lang['sales_price']='Precio';
$lang['sales_quantity']='Cant.';
$lang['sales_discount']='Desc %';
$lang['sales_edit']='Editar';
$lang['sales_payment']='Tipo de Pago';
$lang['sales_edit_item']='Editar Artículo';
$lang['sales_find_or_scan_item']='Encontrar/Escanear Artículo';
$lang['sales_find_or_scan_item_or_receipt']='Encontrar/Escanear Artículo O Entrada';
$lang['sales_select_customer']='Seleccionar Cliente (Opcional)';
$lang['sales_start_typing_item_name']='Empieza a escribir el nombre del artículo o escanea el código de barras...';
$lang['sales_start_typing_customer_name']='Empieza a escribir el nombre del cliente...';
$lang['sales_sub_total']='Sub Total';
$lang['sales_tax']='Impuesto';
$lang['sales_comment']='Comentario';
$lang['sales_unable_to_add_item']='No pude agregar el artículo a la venta';
$lang['sales_sale_for_customer']='Cliente:';
$lang['sales_remove_customer']='Borrar Cliente';
$lang['sales_error_editing_item']='Error editando artículo';
$lang['sales_complete_sale']='Completar Venta';
$lang['sales_cancel_sale']='Cancelar Venta';
$lang['sales_add_payment']='Agregar Pago';
$lang['sales_receipt']='Recibo de Venta';
$lang['sales_id']='ID de Venta';
$lang['sales_sale']='Venta';
$lang['sales_return']='Regresar';
$lang['sales_confirm_finish_sale'] = '¿Estás seguro(a) de querer procesar esta venta? Ésto no se puede deshacer.';
$lang['sales_confirm_cancel_sale'] = '¿Estás seguro(a) de querer limpiar esta venta? Todos los artículos serán limpiados.';
$lang['sales_cash'] = 'Efectivo';
$lang['sales_check'] = 'Cheque';
$lang['sales_debit'] = 'Tarjeta de Débito';
$lang['sales_credit'] = 'Tarjeta de Crédito';
$lang['sales_amount_tendered'] = 'Cantidad Recibida';
$lang['sales_change_due'] = 'Cambio';
$lang['sales_payment_not_cover_total'] = 'La Cantidad Recibida no cubre el pago total';
$lang['sales_transaction_failed'] = 'La transacción de venta falló';
$lang['sales_must_enter_numeric'] = 'Cantidad Recibida debe ser número';
$lang['sales_must_enter_numeric_giftcard'] = 'Número de Tarjeta de Regalo debe ser número';
$lang['sales_serial'] = 'Serial';
$lang['sales_description_abbrv'] = 'Desc';
$lang['sales_item_out_of_stock'] = 'El artículo está agotado';
$lang['sales_item_insufficient_of_stock'] = 'Hay un número insuficiente de Artículos en existencia';
$lang['sales_quantity_less_than_zero'] = 'Advertencia. La cantidad deseada es insuficiente. Puedes procesar la venta pero checa tu inventario.';
$lang['sales_successfully_updated'] = 'La venta ha sido actualizada satisfactoriamente';
$lang['sales_unsuccessfully_updated'] = 'Ha fallado la actualización de la venta';
$lang['sales_edit_sale'] = 'Editar Venta';
$lang['sales_employee'] = 'Empleado';
$lang['sales_successfully_deleted'] = 'La Venta ha sido borrada satisfactoriamente';
$lang['sales_unsuccessfully_deleted'] = 'Ha fallado la eliminación de la Venta';
$lang['sales_delete_entire_sale'] = 'Borrar la venta completa';
$lang['sales_delete_confirmation'] = '¿Estás seguro(a) de querer borrar esta venta? Esta acción no se puede deshacer.';
$lang['sales_date'] = 'Fecha de Venta';
$lang['sales_delete_successful'] = 'Has borrado satisfactoriamente una venta';
$lang['sales_delete_unsuccessful'] = 'No he podido borrar la venta satisfactoriamente';
$lang['sales_suspend_sale'] = 'Suspender Venta';
$lang['sales_confirm_suspend_sale'] = '¿Estás seguro(a) de querer suspender esta venta?';
$lang['sales_suspended_sales'] = 'Ventas Suspendidas';
$lang['sales_suspended_sale_id'] = 'ID de Venta Suspendida';
$lang['sales_date'] = 'Fecha';
$lang['sales_customer'] = 'Cliente';
$lang['sales_comments'] = 'Comentarios';
$lang['sales_unsuspend_and_delete'] = 'Desuspender y Borrar';
$lang['sales_unsuspend'] = 'Desuspender';
$lang['sales_successfully_suspended_sale'] = 'La venta ha sido suspendida satisfactoriamente';
$lang['sales_email_receipt'] = 'E-Mail Receipt';
?>

View File

@@ -0,0 +1,17 @@
<?php
$lang['suppliers_new']='Nuevo Proveedor';
$lang['suppliers_supplier']='Proveedor';
$lang['suppliers_update']='Actualizar Proveedor';
$lang['suppliers_confirm_delete']='Estás seguro(a) de querer borrar a los proveedores seleccionados?';
$lang['suppliers_none_selected']='No has seleccionado proveedores para borrar';
$lang['suppliers_error_adding_updating'] = 'Error agregando/actualizando proveedor';
$lang['suppliers_successful_adding']='Has agregado al proveedor satisfactoriamente';
$lang['suppliers_successful_updating']='Has actualizado al proveedor satisfactoriamente';
$lang['suppliers_successful_deleted']='Has borrado satisfactoriamente a';
$lang['suppliers_one_or_multiple']='proveedor(es)';
$lang['suppliers_cannot_be_deleted']='No se pudo borrar a los proveedores seleccionados. Uno o más de los seleccionadostiene ventas.';
$lang['suppliers_basic_information']='Información de Proveedores';
$lang['suppliers_account_number']='Cuenta #';
$lang['suppliers_company_name']='Nombre de la Compañía';
$lang['suppliers_company_name_required'] = 'Nombre de la Compañía es requerido';
?>

View File

@@ -0,0 +1,26 @@
<?php
class MY_Language extends CI_Language
{
function MY_Language()
{
parent::CI_Language();
}
function switch_to($idiom)
{
$CI =& get_instance();
if(is_string($idiom))
{
$CI->config->set_item('language',$idiom);
$loaded = $this->is_loaded;
$this->is_loaded = array();
foreach($loaded as $file)
{
$this->load(str_replace('_lang.php','',$file));
}
}
}
}
?>

View File

@@ -0,0 +1,251 @@
<?php
class Receiving_lib
{
var $CI;
function __construct()
{
$this->CI =& get_instance();
}
function get_cart()
{
if(!$this->CI->session->userdata('cartRecv'))
$this->set_cart(array());
return $this->CI->session->userdata('cartRecv');
}
function set_cart($cart_data)
{
$this->CI->session->set_userdata('cartRecv',$cart_data);
}
function get_supplier()
{
if(!$this->CI->session->userdata('supplier'))
$this->set_supplier(-1);
return $this->CI->session->userdata('supplier');
}
function set_supplier($supplier_id)
{
$this->CI->session->set_userdata('supplier',$supplier_id);
}
function get_mode()
{
if(!$this->CI->session->userdata('recv_mode'))
$this->set_mode('receive');
return $this->CI->session->userdata('recv_mode');
}
function set_mode($mode)
{
$this->CI->session->set_userdata('recv_mode',$mode);
}
function add_item($item_id,$quantity=1,$discount=0,$price=null,$description=null,$serialnumber=null)
{
//make sure item exists in database.
if(!$this->CI->Item->exists($item_id))
{
//try to get item id given an item_number
$item_id = $this->CI->Item->get_item_id($item_id);
if(!$item_id)
return false;
}
//Get items in the receiving so far.
$items = $this->get_cart();
//We need to loop through all items in the cart.
//If the item is already there, get it's key($updatekey).
//We also need to get the next key that we are going to use in case we need to add the
//item to the list. Since items can be deleted, we can't use a count. we use the highest key + 1.
$maxkey=0; //Highest key so far
$itemalreadyinsale=FALSE; //We did not find the item yet.
$insertkey=0; //Key to use for new entry.
$updatekey=0; //Key to use to update(quantity)
foreach ($items as $item)
{
//We primed the loop so maxkey is 0 the first time.
//Also, we have stored the key in the element itself so we can compare.
//There is an array function to get the associated key for an element, but I like it better
//like that!
if($maxkey <= $item['line'])
{
$maxkey = $item['line'];
}
if($item['item_id']==$item_id)
{
$itemalreadyinsale=TRUE;
$updatekey=$item['line'];
}
}
$insertkey=$maxkey+1;
//array records are identified by $insertkey and item_id is just another field.
$item = array(($insertkey)=>
array(
'item_id'=>$item_id,
'line'=>$insertkey,
'name'=>$this->CI->Item->get_info($item_id)->name,
'description'=>$description!=null ? $description: $this->CI->Item->get_info($item_id)->description,
'serialnumber'=>$serialnumber!=null ? $serialnumber: '',
'allow_alt_description'=>$this->CI->Item->get_info($item_id)->allow_alt_description,
'is_serialized'=>$this->CI->Item->get_info($item_id)->is_serialized,
'quantity'=>$quantity,
'discount'=>$discount,
'price'=>$price!=null ? $price: $this->CI->Item->get_info($item_id)->cost_price
)
);
//Item already exists
if($itemalreadyinsale)
{
$items[$updatekey]['quantity']+=$quantity;
}
else
{
//add to existing array
$items+=$item;
}
$this->set_cart($items);
return true;
}
function edit_item($line,$description,$serialnumber,$quantity,$discount,$price)
{
$items = $this->get_cart();
if(isset($items[$line]))
{
$items[$line]['description'] = $description;
$items[$line]['serialnumber'] = $serialnumber;
$items[$line]['quantity'] = $quantity;
$items[$line]['discount'] = $discount;
$items[$line]['price'] = $price;
$this->set_cart($items);
}
return false;
}
function is_valid_receipt($receipt_receiving_id)
{
//RECV #
$pieces = explode(' ',$receipt_receiving_id);
if(count($pieces)==2)
{
return $this->CI->Receiving->exists($pieces[1]);
}
return false;
}
function is_valid_item_kit($item_kit_id)
{
//KIT #
$pieces = explode(' ',$item_kit_id);
if(count($pieces)==2)
{
return $this->CI->Item_kit->exists($pieces[1]);
}
return false;
}
function return_entire_receiving($receipt_receiving_id)
{
//POS #
$pieces = explode(' ',$receipt_receiving_id);
$receiving_id = $pieces[1];
$this->empty_cart();
$this->delete_supplier();
foreach($this->CI->Receiving->get_receiving_items($receiving_id)->result() as $row)
{
$this->add_item($row->item_id,-$row->quantity_purchased,$row->discount_percent,$row->item_unit_price,$row->description,$row->serialnumber);
}
$this->set_supplier($this->CI->Receiving->get_supplier($receiving_id)->person_id);
}
function add_item_kit($external_item_kit_id)
{
//KIT #
$pieces = explode(' ',$external_item_kit_id);
$item_kit_id = $pieces[1];
foreach ($this->CI->Item_kit_items->get_info($item_kit_id) as $item_kit_item)
{
$this->add_item($item_kit_item['item_id'], $item_kit_item['quantity']);
}
}
function copy_entire_receiving($receiving_id)
{
$this->empty_cart();
$this->delete_supplier();
foreach($this->CI->Receiving->get_receiving_items($receiving_id)->result() as $row)
{
$this->add_item($row->item_id,$row->quantity_purchased,$row->discount_percent,$row->item_unit_price,$row->description,$row->serialnumber);
}
$this->set_supplier($this->CI->Receiving->get_supplier($receiving_id)->person_id);
}
function delete_item($line)
{
$items=$this->get_cart();
unset($items[$line]);
$this->set_cart($items);
}
function empty_cart()
{
$this->CI->session->unset_userdata('cartRecv');
}
function delete_supplier()
{
$this->CI->session->unset_userdata('supplier');
}
function clear_mode()
{
$this->CI->session->unset_userdata('receiving_mode');
}
function clear_all()
{
$this->clear_mode();
$this->empty_cart();
$this->delete_supplier();
}
function get_total()
{
$total = 0;
foreach($this->get_cart() as $item)
{
$total+=($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100);
}
return $total;
}
}
?>

View File

@@ -0,0 +1,498 @@
<?php
class Sale_lib
{
var $CI;
function __construct()
{
$this->CI =& get_instance();
}
function get_cart()
{
if(!$this->CI->session->userdata('cart'))
$this->set_cart(array());
return $this->CI->session->userdata('cart');
}
function set_cart($cart_data)
{
$this->CI->session->set_userdata('cart',$cart_data);
}
//Alain Multiple Payments
function get_payments()
{
if(!$this->CI->session->userdata('payments'))
$this->set_payments(array());
return $this->CI->session->userdata('payments');
}
//Alain Multiple Payments
function set_payments($payments_data)
{
$this->CI->session->set_userdata('payments',$payments_data);
}
function get_comment()
{
return $this->CI->session->userdata('comment');
}
function set_comment($comment)
{
$this->CI->session->set_userdata('comment', $comment);
}
function clear_comment()
{
$this->CI->session->unset_userdata('comment');
}
function get_email_receipt()
{
return $this->CI->session->userdata('email_receipt');
}
function set_email_receipt($email_receipt)
{
$this->CI->session->set_userdata('email_receipt', $email_receipt);
}
function clear_email_receipt()
{
$this->CI->session->unset_userdata('email_receipt');
}
function add_payment($payment_id,$payment_amount)
{
$payments=$this->get_payments();
$payment = array($payment_id=>
array(
'payment_type'=>$payment_id,
'payment_amount'=>$payment_amount
)
);
//payment_method already exists, add to payment_amount
if(isset($payments[$payment_id]))
{
$payments[$payment_id]['payment_amount']+=$payment_amount;
}
else
{
//add to existing array
$payments+=$payment;
}
$this->set_payments($payments);
return true;
}
//Alain Multiple Payments
function edit_payment($payment_id,$payment_amount)
{
$payments = $this->get_payments();
if(isset($payments[$payment_id]))
{
$payments[$payment_id]['payment_type'] = $payment_id;
$payments[$payment_id]['payment_amount'] = $payment_amount;
$this->set_payments($payment_id);
}
return false;
}
//Alain Multiple Payments
function delete_payment($payment_id)
{
$payments=$this->get_payments();
unset($payments[$payment_id]);
$this->set_payments($payments);
}
//Alain Multiple Payments
function empty_payments()
{
$this->CI->session->unset_userdata('payments');
}
//Alain Multiple Payments
function get_payments_total()
{
$subtotal = 0;
foreach($this->get_payments() as $payments)
{
$subtotal+=$payments['payment_amount'];
}
return to_currency_no_money($subtotal);
}
//Alain Multiple Payments
function get_amount_due()
{
$amount_due=0;
$payment_total = $this->get_payments_total();
$sales_total=$this->get_total();
$amount_due=to_currency_no_money($sales_total - $payment_total);
return $amount_due;
}
function get_customer()
{
if(!$this->CI->session->userdata('customer'))
$this->set_customer(-1);
return $this->CI->session->userdata('customer');
}
function set_customer($customer_id)
{
$this->CI->session->set_userdata('customer',$customer_id);
}
function get_mode()
{
if(!$this->CI->session->userdata('sale_mode'))
$this->set_mode('sale');
return $this->CI->session->userdata('sale_mode');
}
function set_mode($mode)
{
$this->CI->session->set_userdata('sale_mode',$mode);
}
function add_item($item_id,$quantity=1,$discount=0,$price=null,$description=null,$serialnumber=null)
{
//make sure item exists
if(!$this->CI->Item->exists($item_id))
{
//try to get item id given an item_number
$item_id = $this->CI->Item->get_item_id($item_id);
if(!$item_id)
return false;
}
//Alain Serialization and Description
//Get all items in the cart so far...
$items = $this->get_cart();
//We need to loop through all items in the cart.
//If the item is already there, get it's key($updatekey).
//We also need to get the next key that we are going to use in case we need to add the
//item to the cart. Since items can be deleted, we can't use a count. we use the highest key + 1.
$maxkey=0; //Highest key so far
$itemalreadyinsale=FALSE; //We did not find the item yet.
$insertkey=0; //Key to use for new entry.
$updatekey=0; //Key to use to update(quantity)
foreach ($items as $item)
{
//We primed the loop so maxkey is 0 the first time.
//Also, we have stored the key in the element itself so we can compare.
if($maxkey <= $item['line'])
{
$maxkey = $item['line'];
}
if($item['item_id']==$item_id)
{
$itemalreadyinsale=TRUE;
$updatekey=$item['line'];
}
}
$insertkey=$maxkey+1;
//array/cart records are identified by $insertkey and item_id is just another field.
$item = array(($insertkey)=>
array(
'item_id'=>$item_id,
'line'=>$insertkey,
'name'=>$this->CI->Item->get_info($item_id)->name,
'item_number'=>$this->CI->Item->get_info($item_id)->item_number,
'description'=>$description!=null ? $description: $this->CI->Item->get_info($item_id)->description,
'serialnumber'=>$serialnumber!=null ? $serialnumber: '',
'allow_alt_description'=>$this->CI->Item->get_info($item_id)->allow_alt_description,
'is_serialized'=>$this->CI->Item->get_info($item_id)->is_serialized,
'quantity'=>$quantity,
'discount'=>$discount,
'price'=>$price!=null ? $price: $this->CI->Item->get_info($item_id)->unit_price
)
);
//Item already exists and is not serialized, add to quantity
if($itemalreadyinsale && ($this->CI->Item->get_info($item_id)->is_serialized ==0) )
{
$items[$updatekey]['quantity']+=$quantity;
}
else
{
//add to existing array
$items+=$item;
}
$this->set_cart($items);
return true;
}
function out_of_stock($item_id)
{
//make sure item exists
if(!$this->CI->Item->exists($item_id))
{
//try to get item id given an item_number
$item_id = $this->CI->Item->get_item_id($item_id);
if(!$item_id)
return false;
}
$item = $this->CI->Item->get_info($item_id);
$quanity_added = $this->get_quantity_already_added($item_id);
if ($item->quantity - $quanity_added < 0)
{
return true;
}
return false;
}
function get_quantity_already_added($item_id)
{
$items = $this->get_cart();
$quanity_already_added = 0;
foreach ($items as $item)
{
if($item['item_id']==$item_id)
{
$quanity_already_added+=$item['quantity'];
}
}
return $quanity_already_added;
}
function get_item_id($line_to_get)
{
$items = $this->get_cart();
foreach ($items as $line=>$item)
{
if($line==$line_to_get)
{
return $item['item_id'];
}
}
return -1;
}
function edit_item($line,$description,$serialnumber,$quantity,$discount,$price)
{
$items = $this->get_cart();
if(isset($items[$line]))
{
$items[$line]['description'] = $description;
$items[$line]['serialnumber'] = $serialnumber;
$items[$line]['quantity'] = $quantity;
$items[$line]['discount'] = $discount;
$items[$line]['price'] = $price;
$this->set_cart($items);
}
return false;
}
function is_valid_receipt($receipt_sale_id)
{
//POS #
$pieces = explode(' ',$receipt_sale_id);
if(count($pieces)==2)
{
return $this->CI->Sale->exists($pieces[1]);
}
return false;
}
function is_valid_item_kit($item_kit_id)
{
//KIT #
$pieces = explode(' ',$item_kit_id);
if(count($pieces)==2)
{
return $this->CI->Item_kit->exists($pieces[1]);
}
return false;
}
function return_entire_sale($receipt_sale_id)
{
//POS #
$pieces = explode(' ',$receipt_sale_id);
$sale_id = $pieces[1];
$this->empty_cart();
$this->remove_customer();
foreach($this->CI->Sale->get_sale_items($sale_id)->result() as $row)
{
$this->add_item($row->item_id,-$row->quantity_purchased,$row->discount_percent,$row->item_unit_price,$row->description,$row->serialnumber);
}
$this->set_customer($this->CI->Sale->get_customer($sale_id)->person_id);
}
function add_item_kit($external_item_kit_id)
{
//KIT #
$pieces = explode(' ',$external_item_kit_id);
$item_kit_id = $pieces[1];
foreach ($this->CI->Item_kit_items->get_info($item_kit_id) as $item_kit_item)
{
$this->add_item($item_kit_item['item_id'], $item_kit_item['quantity']);
}
}
function copy_entire_sale($sale_id)
{
$this->empty_cart();
$this->remove_customer();
foreach($this->CI->Sale->get_sale_items($sale_id)->result() as $row)
{
$this->add_item($row->item_id,$row->quantity_purchased,$row->discount_percent,$row->item_unit_price,$row->description,$row->serialnumber);
}
foreach($this->CI->Sale->get_sale_payments($sale_id)->result() as $row)
{
$this->add_payment($row->payment_type,$row->payment_amount);
}
$this->set_customer($this->CI->Sale->get_customer($sale_id)->person_id);
}
function copy_entire_suspended_sale($sale_id)
{
$this->empty_cart();
$this->remove_customer();
foreach($this->CI->Sale_suspended->get_sale_items($sale_id)->result() as $row)
{
$this->add_item($row->item_id,$row->quantity_purchased,$row->discount_percent,$row->item_unit_price,$row->description,$row->serialnumber);
}
foreach($this->CI->Sale_suspended->get_sale_payments($sale_id)->result() as $row)
{
$this->add_payment($row->payment_type,$row->payment_amount);
}
$this->set_customer($this->CI->Sale_suspended->get_customer($sale_id)->person_id);
$this->set_comment($this->CI->Sale_suspended->get_comment($sale_id));
}
function delete_item($line)
{
$items=$this->get_cart();
unset($items[$line]);
$this->set_cart($items);
}
function empty_cart()
{
$this->CI->session->unset_userdata('cart');
}
function remove_customer()
{
$this->CI->session->unset_userdata('customer');
}
function clear_mode()
{
$this->CI->session->unset_userdata('sale_mode');
}
function clear_all()
{
$this->clear_mode();
$this->empty_cart();
$this->clear_comment();
$this->clear_email_receipt();
$this->empty_payments();
$this->remove_customer();
}
function get_taxes()
{
$customer_id = $this->get_customer();
$customer = $this->CI->Customer->get_info($customer_id);
//Do not charge sales tax if we have a customer that is not taxable
if (!$customer->taxable and $customer_id!=-1)
{
return array();
}
$taxes = array();
foreach($this->get_cart() as $line=>$item)
{
$tax_info = $this->CI->Item_taxes->get_info($item['item_id']);
foreach($tax_info as $tax)
{
$name = $tax['percent'].'% ' . $tax['name'];
$tax_amount=($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100)*(($tax['percent'])/100);
if (!isset($taxes[$name]))
{
$taxes[$name] = 0;
}
$taxes[$name] += $tax_amount;
}
}
return $taxes;
}
function get_subtotal()
{
$subtotal = 0;
foreach($this->get_cart() as $item)
{
$subtotal+=($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100);
}
return to_currency_no_money($subtotal);
}
function get_total()
{
$total = 0;
foreach($this->get_cart() as $item)
{
$total+=($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100);
}
foreach($this->get_taxes() as $tax)
{
$total+=$tax;
}
return to_currency_no_money($total);
}
}
?>

View File

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

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