Compare commits

..

1 Commits

Author SHA1 Message Date
Steve Ireland
46ef36ced9 Add support for customer balance due tracking. 2021-02-28 13:20:36 -05:00
437 changed files with 4263 additions and 7126 deletions

View File

@@ -1,71 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '21 12 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

1
.gitignore vendored
View File

@@ -13,7 +13,6 @@ generate_langauges.php
dist/
docs/
public/bower_components
npm_modules
*.patch
patches/
translations/

View File

@@ -8,7 +8,7 @@
# disable directory browsing
# For security reasons, Option all cannot be overridden.
Options +SymLinksIfOwnerMatch -Indexes
Options +ExecCGI +Includes +IncludesNOEXEC +SymLinksIfOwnerMatch -Indexes
# prevent folder listing
IndexIgnore *

View File

@@ -1,5 +1,4 @@
sudo: required
if: tag IS blank
branches:
except:
@@ -7,49 +6,31 @@ branches:
services:
- docker
before_install:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- docker --version
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- date=`date +%Y%m%d%H%M%S` && branch=${TRAVIS_BRANCH} && rev=`git rev-parse --short=6
HEAD` && sed -i "s/\$1/\$1.$date.$branch.$rev/g" deployment.json
script:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker run --rm -v $(pwd):/app jekkos/composer composer install
- docker run --rm -v $(pwd):/app jekkos/composer php bin/install.php translations develop
- sed -i "s/'\(dev\)'/'$rev'/g" application/config/config.php
- docker run --rm -it -v $(pwd):/app -w /app opensourcepos/node-grunt-bower
- docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt
sh -c "npm install && bower install && grunt package"
- docker build . --target ospos -t ospos
- docker-compose -f docker-compose.test.yml up --abort-on-container-exit
env:
global:
- DOCKER_COMPOSE_VERSION=1.29.1
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
- date=`date +%Y%m%d%H%M%S` && branch=${TRAVIS_BRANCH} && rev=`git rev-parse --short=6 HEAD`
after_success:
- docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" && docker tag "ospos:latest"
"jekkos/opensourcepos:$TAG" && docker push "jekkos/opensourcepos:$TAG"
before_deploy:
- version=$(grep application_version application/config/config.php | sed "s/.*=\s'\(.*\)';/\1/g")
- TRAVIS_TAG=$(echo $branch.$version)
- git tag -f "$branch.$version"
- sudo mv dist/opensourcepos.zip "dist/opensourcepos.$branch.$version.zip"
- DOCKER_COMPOSE_VERSION=1.21.1
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
after_success:
- 'docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" && docker tag "ospos:latest" "jekkos/opensourcepos:$TAG" && docker push "jekkos/opensourcepos:$TAG"'
deploy:
provider: releases
file: "dist/opensourcepos.$branch.$version.zip"
name: "OpensourcePos $version"
release_notes_file: WHATS_NEW.txt
prerelease: true
file: deployment.json
provider: bintray
skip_cleanup: true
key: ${BINTRAY_API_KEY}
user: jekkos
overwrite: true
api_key:
secure: Ax25mMRDfHVf/HjRwqxYJe2oMnWC4sc2aKIiUxAOviVJJSCl4GMWhcFlUNnFsDcKIg2ofEGMVD6b9cTBuOwPDvymUDFnLNCCgDWve+vRDdWaTkTipn77Qk4c9UO9VvuzlPSKopChefPHlQ0n1rEmAMiKIXuqjUlNGqybW4FLP4E=
on:
all_branches: true

View File

@@ -10,6 +10,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
RUN a2enmod rewrite
RUN docker-php-ext-install mysqli bcmath intl gd
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini
RUN echo -e “$(hostname -i)\t$(hostname) $(hostname).localhost” >> /etc/hosts
WORKDIR /app
COPY . /app
@@ -36,6 +37,6 @@ FROM ospos AS ospos_dev
RUN mkdir -p /app/bower_components && ln -s /app/bower_components /var/www/html/bower_components
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

View File

@@ -11,14 +11,7 @@ module.exports = function(grunt) {
bower_concat: {
all: {
mainFiles: {
'bootstrap-table': [
"dist/bootstrap-table.min.js",
"dist/bootstrap-table.css",
"dist/extensions/export/bootstrap-table-export.min.js",
"dist/extensions/mobile/bootstrap-table-mobile.min.js",
"dist/extensions/sticky-header/bootstrap-table-sticky-header.min.js",
"dist/extensions/sticky-header/bootstrap-table-sticky-header.css"
],
'bootstrap-table': [ "dist/bootstrap-table.min.js", "dist/bootstrap-table.css", "dist/extensions/export/bootstrap-table-export.min.js", "dist/extensions/mobile/bootstrap-table-mobile.min.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.min.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.css"],
'chartist-plugin-axistitle': [ "./dist/chartist-plugin-axistitle.min.js"]
},
dest: {
@@ -58,55 +51,10 @@ module.exports = function(grunt) {
}
}
},
copy: {
themes: {
files: [
{
expand: true,
cwd: 'node_modules/bootstrap-5/dist/css',
src: ['bootstrap.css', 'bootstrap.min.css'],
dest: 'public/dist/bootswatch-5/bootstrap/',
filter: 'isFile'
},
{
expand: true,
cwd: 'node_modules/bootswatch-5/dist',
src: ['**/bootstrap.css', '**/bootstrap.min.css'],
dest: 'public/dist/bootswatch-5/',
filter: 'isFile'
}
],
},
licenses: {
files: [{
expand: true,
src: 'LICENSE',
dest: 'public/license/',
filter: 'isFile',},
{
expand: true,
cwd: 'node_modules/bootstrap-5',
src: 'LICENSE',
dest: 'public/license/',
rename: function(dest, src) { return dest + src.replace('LICENSE', 'bootstrap-5.license'); },
filter: 'isFile'
},
{
expand: true,
cwd: 'node_modules/bootswatch-5',
src: 'LICENSE',
dest: 'public/license/',
rename: function(dest, src) { return dest + src.replace('LICENSE', 'bootswatch-5.license'); },
filter: 'isFile'
},
],
},
},
cssmin: {
target: {
files: {
'public/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/login.min.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'],
'public/css/login.min.css': ['public/css/login.css']
'public/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css']
}
}
},
@@ -116,7 +64,7 @@ module.exports = function(grunt) {
separator: ';'
},
files: {
'tmp/<%= pkg.name %>.js': ['public/dist/jquery/jquery.js', 'tmp/opensourcepos_bower.js', 'public/js/*.js']
'tmp/<%= pkg.name %>.js': ['tmp/opensourcepos_bower.js', 'public/js/jquery*', 'public/js/*.js']
}
},
sql: {
@@ -159,7 +107,7 @@ module.exports = function(grunt) {
closeTag: '<!-- end css template tags -->',
ignorePath: '../../../public/'
},
src: ['public/css/*.css', '!public/css/login.css', '!public/css/login.min.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'],
src: ['public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'],
dest: 'application/views/partial/header.php',
},
mincss_header: {
@@ -180,7 +128,7 @@ module.exports = function(grunt) {
closeTag: '<!-- end css template tags -->',
ignorePath: '../../public/'
},
src: 'public/css/login.min.css',
src: ['public/css/login.css'],
dest: 'application/views/login.php'
},
js: {
@@ -190,7 +138,7 @@ module.exports = function(grunt) {
closeTag: '<!-- end js template tags -->',
ignorePath: '../../../public/'
},
src: ['public/dist/bootstrap/js/*.min.js', 'public/js/jquery*', 'public/js/*.js'],
src: ['public/js/jquery*', 'public/js/*.js'],
dest: 'application/views/partial/header.php'
},
minjs: {
@@ -204,6 +152,18 @@ module.exports = function(grunt) {
dest: 'application/views/partial/header.php'
}
},
mochaWebdriver: {
options: {
timeout: 1000 * 60 * 3
},
test : {
options: {
usePhantom: true,
usePromises: true
},
src: ['test/**/*.js']
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
@@ -255,6 +215,15 @@ module.exports = function(grunt) {
}
}
},
apigen: {
generate:{
options: {
apigenPath: 'vendor/bin/',
source: 'application',
destination: 'docs'
}
}
},
compress: {
main: {
options: {
@@ -271,8 +240,6 @@ module.exports = function(grunt) {
'!/public/images/menubar/png/',
'!/public/dist/bootswatch/',
'/public/dist/bootswatch/*/*.css',
'!/public/dist/bootswatch-5/',
'/public/dist/bootswatch-5/*/*.css',
'database/**',
'*.txt',
'*.md',
@@ -290,13 +257,16 @@ module.exports = function(grunt) {
});
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('grunt-mocha-webdriver');
grunt.loadNpmTasks('grunt-composer');
grunt.loadNpmTasks('grunt-apigen');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('default', ['wiredep', 'bower_concat', 'bowercopy', 'copy', 'concat', 'uglify', 'cssmin', 'tags', 'cachebreaker']);
grunt.registerTask('default', ['wiredep', 'bower_concat', 'bowercopy', 'concat', 'uglify', 'cssmin', 'tags', 'cachebreaker']);
grunt.registerTask('update', ['composer:update', 'bower:update']);
grunt.registerTask('genlicense', ['clean:license', 'license', 'bower-licensechecker']);
grunt.registerTask('package', ['default', 'compress']);
grunt.registerTask('packages', ['composer:update']);
grunt.registerTask('gendocs', ['apigen:generate']);
};

View File

@@ -17,7 +17,7 @@ Local install
First of all, if you're seeing the message **'system folder missing'** after launching your browser, then that means you have cloned the repository and have not built the project properly.
1. Dowload the latest stable or prerelease for a specific branch [from github](https://github.com/opensourcepos/opensourcepos/releases). A regular repository clone will not work unless you are brave enough to build the whole project!
1. Dowload the latest [stable release](https://github.com/opensourcepos/opensourcepos/releases) from github or [unstable build](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=asc#files) from bintray. A regular repository clone will not work unless you are brave enough to build the whole project!
2. Create/locate a new mysql database to install open source point of sale into
3. Execute the file database/database.sql to create the tables needed
4. unzip and upload Open Source Point of Sale files to web server
@@ -79,3 +79,37 @@ Cloud install
If you choose *DigitalOcean*:
[Through this link](https://m.do.co/c/ac38c262507b), you will get a *$100 credit* for a first month. [Check the wiki](https://github.com/opensourcepos/opensourcepos/wiki/Getting-Started-installations) for further instructions on how to install the necessary components.
cPanel & SSH Install
--------------------
If you own on a **VPS**, **Dedicated Server**, or **Shared Hosting** running on **cPanel** with **SSH** access:
You can run our Stand-alone [WS-OSPOS-Installer](https://github.com/WebShells/WS-OSPOS-Installer.git), it will handle:
. Database.php config files generation.
. Creation of db User & Password depending on user's input of Dbname, Username, Password, & Hostname ( No need for phpmyadmin )
. Imports default Db SQL files in order to run the project.
Usage in **(SSH)**:
git clone https://github.com/WebShells/WS-OSPOS-Installer.git
chmod +x WS-OSPOS-Installer/Get-POS
./WS-OSPOS-Installer/Get-POS
or
wget https://github.com/WebShells/WS-OSPOS-Installer/archive/master.zip
unzip -qq master.zip
chmod +x WS-OSPOS-Installer-master/Get-POS
./WS-OSPOS-Installer-master/Get-POS
Answer **DB required questions** and you are ready to run the project on http://localhost/OSPOS/public (localhost to be replaced by the hostname provided during setup).

28
LICENSE
View File

@@ -26,12 +26,12 @@ Copyright (c) 2013 Ramel
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
@@ -40,12 +40,13 @@ You cannot claim copyright or ownership of the Software.
Versions ≥ 3.3.2:
Footer signatures "© 2010 - 2021 · opensourcepos.org · 3.3.3 - 6909c8"
Footer signatures "© 2010 - 2021 · opensourcepos.org · 3.3.3 - 6909c8"
In the format of: "© 2010 - Current Year · opensourcepos.org · Version - Commit"
and/or
"· opensourcepos.org ·"
with version, hash and URL link to the official website of the project MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
@@ -60,10 +61,9 @@ and/or
with version, hash and URL link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,7 +1,8 @@
[![Build Status](https://travis-ci.com/opensourcepos/opensourcepos.svg?branch=master)](https://travis-ci.org/opensourcepos/opensourcepos)
[![Download](https://api.bintray.com/packages/jekkos/opensourcepos/opensourcepos/images/download.svg?version=3.3.3) ](https://bintray.com/jekkos/opensourcepos/opensourcepos/3.3.3/link)
[![Build Status](https://travis-ci.org/opensourcepos/opensourcepos.svg?branch=master)](https://travis-ci.org/opensourcepos/opensourcepos)
[![Join the chat at https://gitter.im/opensourcepos](https://badges.gitter.im/jekkos/opensourcepos.svg)](https://gitter.im/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![GitHub version](https://badge.fury.io/gh/jekkos%2Fopensourcepos.svg)](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
[![Translation status](http://translate.opensourcepos.org/widgets/opensourcepos/-/svg-badge.svg)](http://translate.opensourcepos.org/engage/opensourcepos/?utm_source=widget)
[![Translation status](http://translate.opensourcepos.org/widgets/opensourcepos/-/svg-badge.svg)](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
Introduction
@@ -139,7 +140,7 @@ If missing information is not provided within a week we will close your issue.
FAQ
---
* If you are seeing the message **system folder missing**, then you have cloned the source using git and you need to run a build *first*. Check [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) for instructions or download latest zip file from [PLACEHOLDER](https://NEWURL) instead.
* If you are seeing the message **system folder missing**, then you have cloned the source using git and you need to run a build *first*. Check [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) for instructions or download latest zip file from [bintray](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=desc#files) instead.
* If at login time you read "The installation is not correct, check your php.ini file.", please check the error_log in public folder to understand what's wrong and make sure you read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md). To know how to enable error_log, please read the comment in [issue 1770](https://github.com/opensourcepos/opensourcepos/issues/1770#issuecomment-355177943).

View File

@@ -1,27 +0,0 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Security Policy](#security-policy)
- [Supported Versions](#supported-versions)
- [Reporting a Vulnerability](#reporting-a-vulnerability)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Security Policy
## Supported Versions
We release patches for security vulnerabilities. Which versions are eligible
receiving such patches depend on the CVSS v3.0 Rating:
| CVSS v3.0 | Supported Versions |
| --------- | -------------------------------------------------- |
| 7.3 | 3.5.5 |
## Reporting a Vulnerability
Please report (suspected) security vulnerabilities to
**[jekkos](mailto:jekkos@opensourcepos.org)**. You will receive a response from
us within 48 hours. If the issue is confirmed, we will release a patch as soon
as possible depending on complexity but historically within a few days.

View File

@@ -1,33 +1,3 @@
Version 3.3.5
-------------
+ Translation updates (Romanian, Ukranian, Vietnamese, Thai, Polish, Swedish, Portugese, Arabic, French, Chinese, Dutch, Tamil, Turkish, Spanish)
+ New login page restyle
+ Partial BS5 upgrade
+ Username verification fix on employee insert/update
+ Minor report fixes
+ Attribute encoding fix
+ Grunt/CI updates
+ Database and performance optimizations
+ CSV item import improvements
+ Fix decimal render
+ Translation fallback in other languages than english
+ Fixes for docker to make it run on Windows
Version 3.3.4
-------------
+ Translation updates (Hungarian, Indonesian, Bosnian, Ukranian, Vietnamese, Spanish)
+ Prevent data wipeout when calling GET directly on save endpoint
+ Cleanup .htaccess
+ Docker compose usability improvements
+ Cookie secure flag fix for Chrome (you can enable csrf protection again now)
+ Use longblob for session storage. This should fix issues preventing a user from adding a large number of items to register
+ Cashrounding bugfixes
+ Fix daily overview cash sale totals
+ Show sale count in transaction report
+ Button disable to prevent double submission
+ Add barcode field to item kits
+ Fix discount register parsing in some specific locales
Version 3.3.3
-------------
+ PHP 7.4 support

View File

@@ -8,7 +8,7 @@
|
|
*/
$config['application_version'] = '3.3.5';
$config['application_version'] = '3.3.3';
/*
|--------------------------------------------------------------------------

View File

@@ -110,7 +110,6 @@ define('ITEM', 0);
define('ITEM_KIT', 1);
define('ITEM_AMOUNT_ENTRY', 2);
define('ITEM_TEMP', 3);
define('NEW_ITEM', -1);
define('PRINT_ALL', 0);
define('PRINT_PRICED', 1);

View File

@@ -26,14 +26,6 @@ $hook['post_controller'] = array(
'filepath' => 'hooks'
);
$hook['pre_controller'][] = array(
'class' => '',
'function' => 'validate_save',
'filename' => 'save_hook.php',
'filepath' => 'hooks'
);
$hook['pre_system'] = function() {
$config_path = APPPATH . (ENVIRONMENT == 'testing') ? 'tests/' : 'config/';
try {

View File

@@ -1,6 +1,6 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once('Secure_Controller.php');
require_once("Secure_Controller.php");
class Attributes extends Secure_Controller
{
@@ -24,16 +24,16 @@ class Attributes extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? definition.definition_name : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$attributes = $this->Attribute->search($search, $limit, $offset, $sort, $order);
$total_rows = $this->Attribute->get_found_rows($search);
$data_rows = [];
$data_rows = array();
foreach($attributes->result() as $attribute)
{
$attribute->definition_flags = $this->get_attributes($attribute->definition_flags);
$attribute->definition_flags = $this->_get_attributes($attribute->definition_flags);
$data_rows[] = get_attribute_definition_data_row($attribute, $this);
}
@@ -42,24 +42,16 @@ class Attributes extends Secure_Controller
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
public function save_attribute_value()
public function save_attribute_value($attribute_value)
{
$success = $this->Attribute->save_value(
$this->input->post('attribute_value'),
$this->input->post('definition_id'),
$this->input->post('item_id'),
$this->input->post('attribute_id')
);
$success = $this->Attribute->save_value(urldecode($attribute_value), $this->input->post('definition_id'), $this->input->post('item_id'), $this->input->post('attribute_id'));
echo json_encode(array('success' => $success != 0));
}
public function delete_attribute_value()
public function delete_attribute_value($attribute_value)
{
$success = $this->Attribute->delete_value(
$this->input->post('attribute_value'),
$this->input->post('definition_id')
);
$success = $this->Attribute->delete_value($attribute_value, $this->input->post('definition_id'));
echo json_encode(array('success' => $success));
}
@@ -68,7 +60,7 @@ class Attributes extends Secure_Controller
{
$definition_flags = 0;
$flags = (empty($this->input->post('definition_flags'))) ? [] : $this->input->post('definition_flags');
$flags = (empty($this->input->post('definition_flags'))) ? array() : $this->input->post('definition_flags');
foreach($flags as $flag)
{
@@ -129,15 +121,15 @@ class Attributes extends Secure_Controller
public function get_row($row_id)
{
$attribute_definition_info = $this->Attribute->get_info($row_id);
$attribute_definition_info->definition_flags = $this->get_attributes($attribute_definition_info->definition_flags);
$attribute_definition_info->definition_flags = $this->_get_attributes($attribute_definition_info->definition_flags);
$data_row = $this->xss_clean(get_attribute_definition_data_row($attribute_definition_info));
echo json_encode($data_row);
}
private function get_attributes($definition_flags = 0)
private function _get_attributes($definition_flags = 0)
{
$definition_flag_names = [];
$definition_flag_names = array();
foreach (Attribute::get_definition_flags() as $id => $term)
{
if ($id & $definition_flags)
@@ -163,11 +155,11 @@ class Attributes extends Secure_Controller
$data['definition_info'] = $info;
$show_all = Attribute::SHOW_IN_ITEMS | Attribute::SHOW_IN_RECEIVINGS | Attribute::SHOW_IN_SALES;
$data['definition_flags'] = $this->get_attributes($show_all);
$data['definition_flags'] = $this->_get_attributes($show_all);
$selected_flags = $info->definition_flags === '' ? $show_all : $info->definition_flags;
$data['selected_definition_flags'] = $this->get_attributes($selected_flags);
$data['selected_definition_flags'] = $this->_get_attributes($selected_flags);
$this->load->view('attributes/form', $data);
$this->load->view("attributes/form", $data);
}
public function delete_value($attribute_id)
@@ -189,4 +181,4 @@ class Attributes extends Secure_Controller
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('attributes_definition_cannot_be_deleted')));
}
}
}
}

View File

@@ -25,7 +25,7 @@ class Cashups extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'cashup_id' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$filters = array(
'start_date' => $this->input->get('start_date'),

View File

@@ -184,7 +184,7 @@ class Config extends Secure_Controller
if($dirinfo->isDir() && !$dirinfo->isDot() && $dirinfo->getFileName() != 'fonts')
{
$file = $this->xss_clean($dirinfo->getFileName());
$themes[$file] = ucfirst($file);
$themes[$file] = $file;
}
}
@@ -283,7 +283,6 @@ class Config extends Secure_Controller
{
$batch_save_data = array(
'theme' => $this->input->post('theme'),
'login_form' => $this->input->post('login_form'),
'default_sales_discount_type' => $this->input->post('default_sales_discount_type') != NULL,
'default_sales_discount' => $this->input->post('default_sales_discount'),
'default_receivings_discount_type' => $this->input->post('default_receivings_discount_type') != NULL,

View File

@@ -38,6 +38,7 @@ class Customers extends Persons
//create object with empty properties.
$stats = new stdClass;
$stats->total = 0;
$stats->balance_due = 0;
$stats->min = 0;
$stats->max = 0;
$stats->average = 0;
@@ -58,7 +59,7 @@ class Customers extends Persons
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$customers = $this->Customer->search($search, $limit, $offset, $sort, $order);
@@ -74,6 +75,7 @@ class Customers extends Persons
//create object with empty properties.
$stats = new stdClass;
$stats->total = 0;
$stats->balance_due = 0;
$stats->min = 0;
$stats->max = 0;
$stats->average = 0;
@@ -260,6 +262,7 @@ class Customers extends Persons
'company_name' => $this->input->post('company_name') == '' ? NULL : $this->input->post('company_name'),
'discount' => $this->input->post('discount') == '' ? 0.00 : $this->input->post('discount'),
'discount_type' => $this->input->post('discount_type') == NULL ? PERCENT : $this->input->post('discount_type'),
'credit_limit' => $this->input->post('credit_limit') == '' ? 0.00 : $this->input->post('credit_limit'),
'package_id' => $this->input->post('package_id') == '' ? NULL : $this->input->post('package_id'),
'taxable' => $this->input->post('taxable') != NULL,
'date' => $date_formatter->format('Y-m-d H:i:s'),

View File

@@ -17,7 +17,7 @@ class Employees extends Persons
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$employees = $this->Employee->search($search, $limit, $offset, $sort, $order);
@@ -60,7 +60,6 @@ class Employees extends Persons
$person_info->$property = $this->xss_clean($value);
}
$data['person_info'] = $person_info;
$data['employee_id'] = $employee_id;
$modules = array();
foreach($this->Module->get_all_modules()->result() as $module)
@@ -191,11 +190,5 @@ class Employees extends Persons
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_cannot_be_deleted')));
}
}
public function check_username($employee_id)
{
$exists = $this->Employee->username_exists($employee_id, $this->input->get('username'));
echo !$exists ? 'true' : 'false';
}
}
?>

View File

@@ -30,7 +30,7 @@ class Expenses extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'expense_id' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$filters = array(
'start_date' => $this->input->get('start_date'),

View File

@@ -24,7 +24,7 @@ class Expenses_categories extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'category_name' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$expense_categories = $this->Expense_category->search($search, $limit, $offset, $sort, $order);

View File

@@ -24,7 +24,7 @@ class Giftcards extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'giftcard_number' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$giftcards = $this->Giftcard->search($search, $limit, $offset, $sort, $order);

View File

@@ -59,7 +59,7 @@ class Item_kits extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? NAME : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$item_kits = $this->Item_kit->search($search, $limit, $offset, $sort, $order);

View File

File diff suppressed because it is too large Load Diff

View File

@@ -125,9 +125,9 @@ class Receivings extends Secure_Controller
$serialnumber = $this->input->post('serialnumber');
$price = parse_decimals($this->input->post('price'));
$quantity = parse_quantity($this->input->post('quantity'));
$discount = parse_decimals($this->input->post('discount'));
$discount_type = $this->input->post('discount_type');
$discount = $discount_type ? parse_quantity($this->input->post('discount')) : parse_decimals($this->input->post('discount'));
$item_location = $this->input->post('location');
$receiving_quantity = $this->input->post('receiving_quantity');
if($this->form_validation->run() != FALSE)

View File

@@ -230,7 +230,6 @@ class Reports extends Secure_Controller
{
$tabular_data[] = $this->xss_clean(array(
'item_name' => $row['name'],
'category' => $row['category'],
'unit_price' => $row['unit_price'],
'quantity' => to_quantity_decimals($row['quantity_purchased']),
'subtotal' => to_currency($row['subtotal']),
@@ -1348,6 +1347,7 @@ class Reports extends Secure_Controller
}
$sale_type_options['canceled'] = $this->lang->line('reports_canceled');
$sale_type_options['returns'] = $this->lang->line('reports_returns');
$sale_type_options['due'] = $this->lang->line('reports_balance_due');
return $sale_type_options;
}
@@ -1388,6 +1388,16 @@ class Reports extends Secure_Controller
$button_label = $this->lang->line('common_delete');
}
$payments = $row['payment_type'];
if($row['due'] > 0)
{
if($row['payment_type'] != "")
{
$payments .= ', ';
}
$payments .= 'Balance ' . to_currency($row['due']);
}
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
@@ -1400,7 +1410,7 @@ class Reports extends Secure_Controller
'total' => to_currency($row['total']),
'cost' => to_currency($row['cost']),
'profit' => to_currency($row['profit']),
'payment_type' => $row['payment_type'],
'payment_type' => $payments,
'comment' => $row['comment'],
'edit' => anchor('sales/edit/'.$row['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class' => 'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))

View File

@@ -54,10 +54,10 @@ class Sales extends Secure_Controller
public function search()
{
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'sales.sale_time' : $this->db->escape($this->input->get('sort'));
$order = $this->input->get('order');
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$filters = array('sale_type' => 'all',
'location_id' => 'all',
@@ -77,7 +77,7 @@ class Sales extends Secure_Controller
$sales = $this->Sale->search($search, $filters, $limit, $offset, $sort, $order);
$total_rows = $this->Sale->get_found_rows($search, $filters);
$payments = $this->Sale->get_payments_summary($search, $filters);
$payment_summary = $this->xss_clean(get_sales_manage_payments_summary($payments));
$payment_summary = $this->xss_clean(get_sales_manage_payments_summary($payments, $sales));
$data_rows = array();
foreach($sales->result() as $sale)
@@ -418,14 +418,7 @@ class Sales extends Secure_Controller
$kit_price_option = $item_kit_info->price_option;
$kit_print_option = $item_kit_info->print_option; // 0-all, 1-priced, 2-kit-only
if($discount_type == $item_kit_info->kit_discount_type)
{
if($item_kit_info->kit_discount > $discount)
{
$discount = $item_kit_info->kit_discount;
}
}
else
if($item_kit_info->kit_discount != 0 && $item_kit_info->kit_discount > $discount)
{
$discount = $item_kit_info->kit_discount;
$discount_type = $item_kit_info->kit_discount_type;
@@ -435,7 +428,7 @@ class Sales extends Secure_Controller
if(!empty($kit_item_id))
{
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_KIT, $kit_price_option, $kit_print_option, $price))
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_STANDARD, NULL, NULL, $price))
{
$data['error'] = $this->lang->line('sales_unable_to_add_item');
}
@@ -483,8 +476,8 @@ class Sales extends Secure_Controller
$serialnumber = $this->input->post('serialnumber');
$price = parse_decimals($this->input->post('price'));
$quantity = parse_quantity($this->input->post('quantity'));
$discount = parse_decimals($this->input->post('discount'));
$discount_type = $this->input->post('discount_type');
$discount = $discount_type ? parse_quantity($this->input->post('discount')) : parse_decimals($this->input->post('discount'));
$item_location = $this->input->post('location');
$discounted_total = $this->input->post('discounted_total') != '' ? $this->input->post('discounted_total') : NULL;

View File

@@ -35,7 +35,7 @@ class Suppliers extends Persons
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$suppliers = $this->Supplier->search($search, $limit, $offset, $sort, $order);

View File

@@ -25,7 +25,7 @@ class Tax_categories extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'tax_category' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$tax_categories = $this->Tax_category->search($search, $limit, $offset, $sort, $order);

View File

@@ -29,7 +29,7 @@ class Tax_codes extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'tax_code_name' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$tax_codes = $this->Tax_code->search($search, $limit, $offset, $sort, $order);

View File

@@ -25,7 +25,7 @@ class Tax_jurisdictions extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'jurisdiction_name' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$tax_jurisdictions = $this->Tax_jurisdiction->search($search, $limit, $offset, $sort, $order);

View File

@@ -57,7 +57,7 @@ class Taxes extends Secure_Controller
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->post('sort') === NULL ? 'tax_code_name' : $this->db->escape($this->input->get('sort'));
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$tax_rates = $this->Tax->search($search, $limit, $offset, $sort, $order);

View File

@@ -10,17 +10,10 @@ class MY_Lang extends CI_Lang
$CI->config->set_item('language', $idiom);
$loaded = $this->is_loaded;
$this->is_loaded = array();
foreach($loaded as $file)
{
$filename = strtr($file, '', '_lang.php');
$this->load($filename, 'english');
$array = $this->load($filename, $idiom, TRUE);
foreach($array as $lang_key => $lang_value) {
if ($lang_value != '') {
$this->language[$lang_key] = $lang_value;
}
}
$this->load(strtr($file, '', '_lang.php'));
}
}
}

View File

@@ -1,20 +1,30 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Generates the header content for the import_items.csv file
*
* @return string Comma separated headers for the CSV file
*/
function generate_import_items_csv($stock_locations,$attributes)
{
$csv_headers = pack('CCC',0xef,0xbb,0xbf); //Encode the Byte-Order Mark (BOM) so that UTF-8 File headers display properly in Microsoft Excel
$csv_headers .= 'Id,Barcode,"Item Name",Category,"Supplier ID","Cost Price","Unit Price","Tax 1 Name","Tax 1 Percent","Tax 2 Name","Tax 2 Percent","Reorder Level",Description,"Allow Alt Description","Item has Serial Number",Image,HSN';
$csv_headers = pack("CCC",0xef,0xbb,0xbf); //Encode the Byte-Order Mark (BOM) so that UTF-8 File headers display properly in Microsoft Excel
$csv_headers .= 'Barcode,"Item Name",Category,"Supplier ID","Cost Price","Unit Price","Tax 1 Name","Tax 1 Percent","Tax 2 Name","Tax 2 Percent","Reorder Level",Description,"Allow Alt Description","Item has Serial Number",item_image,HSN';
$csv_headers .= generate_stock_location_headers($stock_locations);
$csv_headers .= generate_attribute_headers($attributes);
return $csv_headers;
}
/**
* Generates a list of stock location names as a string
*
* @return string Comma-separated list of stock location names
*/
function generate_stock_location_headers($locations)
{
$location_headers = '';
$location_headers = "";
foreach($locations as $location_name)
foreach($locations as $location_id => $location_name)
{
$location_headers .= ',"location_' . $location_name . '"';
}
@@ -22,9 +32,14 @@ function generate_stock_location_headers($locations)
return $location_headers;
}
/**
* Generates a list of attribute names as a string
*
* @return string Comma-separated list of attribute names
*/
function generate_attribute_headers($attribute_names)
{
$attribute_headers = '';
$attribute_headers = "";
unset($attribute_names[-1]);
foreach($attribute_names as $attribute_name)
@@ -35,59 +50,61 @@ function generate_attribute_headers($attribute_names)
return $attribute_headers;
}
/**
* Read the contents of a given CSV formatted file into a two-dimensional array
*
* @param string $file_name Name of the file to read.
* @return boolean|array[][] two-dimensional array with the file contents or FALSE on failure.
*/
function get_csv_file($file_name)
{
//TODO: current implementation reads the entire file in. This is memory intensive for large files.
//We may want to rework the CSV import feature to read the file in chunks, process it and continue.
//It must be done in a way that does not significantly negatively affect performance.
ini_set('auto_detect_line_endings', true);
$csv_rows = FALSE;
ini_set("auto_detect_line_endings", true);
if(($csv_file = fopen($file_name,'r')) !== FALSE)
{
$CI =& get_instance();
$CI->load->helper('security');
$csv_rows = [];
//Skip Byte-Order Mark
if(bom_exists($csv_file) === TRUE)
{
fseek($csv_file, 3);
}
$headers = fgetcsv($csv_file);
while(($row = fgetcsv($csv_file)) !== FALSE)
while (($data = fgetcsv($csv_file)) !== FALSE)
{
//Skip empty lines
if($row !== array(null))
//Skip empty lines
if(array(null) !== $data)
{
$csv_rows[] = array_combine($headers, $CI->security->xss_clean($row));
$line_array[] = $data;
}
}
fclose($csv_file);
}
else
{
return FALSE;
}
return $csv_rows;
return $line_array;
}
/**
* Checks the first three characters of a file for the Byte-Order Mark then returns the file position to the first character.
*
* @param object $file_handle File handle to check
* @return bool Returns TRUE if the BOM exists and FALSE otherwise.
*/
function bom_exists(&$file_handle)
{
$result = FALSE;
$candidate = fread($file_handle, 3);
$str = fread($file_handle,3);
rewind($file_handle);
$bom = pack('CCC', 0xef, 0xbb, 0xbf);
$bom = pack("CCC", 0xef, 0xbb, 0xbf);
if (0 === strncmp($candidate, $bom, 3))
if (0 === strncmp($str, $bom, 3))
{
$result = TRUE;
return TRUE;
}
else
{
return FALSE;
}
return $result;
}
?>

View File

@@ -5,7 +5,6 @@ const DEFAULT_LANGUAGE_CODE = 'en-US';
define('NOW', time());
define('MAX_PRECISION', 1e14);
define('DEFAULT_PRECISION', 2);
define('DEFAULT_DATE', mktime(0, 0, 0, 1, 1, 2010));
define('DEFAULT_DATETIME', mktime(0, 0, 0, 1, 1, 2010));
@@ -59,7 +58,7 @@ function get_languages()
'ar-LB:arabic' => 'Arabic (Lebanon)',
'az-AZ:azerbaijani' => 'Azerbaijani (Azerbaijan)',
'bg:bulgarian' => 'Bulgarian',
'bs-BA:bosnian' => 'Bosnian',
'bs:bosnian' => 'Bosnian',
'cs:czech' => 'Czech',
'da:danish' => 'Danish',
'de:german' => 'German (Germany)',
@@ -88,7 +87,6 @@ function get_languages()
'ro:romanian' => 'Romanian',
'ru:russian' => 'Russian',
'sv:swedish' => 'Swedish',
'ta:tamil' => 'Tamil',
'th:thai' => 'Thai',
'tl-PH:talong' => 'Tagalog (Philippines)',
'tr:turkish' => 'Turkish',
@@ -249,7 +247,7 @@ function get_payment_options()
$config = get_instance()->config;
$lang = get_instance()->lang;
$payments = [];
$payments = array();
if($config->item('payment_options_order') == 'debitcreditcash')
@@ -388,7 +386,7 @@ function to_quantity_decimals($number)
return to_decimals($number, 'quantity_decimals');
}
function to_decimals($number, $decimals = NULL, $type=\NumberFormatter::DECIMAL)
function to_decimals($number, $decimals, $type=\NumberFormatter::DECIMAL)
{
// ignore empty strings and return
// NOTE: do not change it to empty otherwise tables will show a 0 with no decimal nor currency symbol
@@ -399,9 +397,8 @@ function to_decimals($number, $decimals = NULL, $type=\NumberFormatter::DECIMAL)
$config = get_instance()->config;
$fmt = new \NumberFormatter($config->item('number_locale'), $type);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : $config->item($decimals));
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : $config->item($decimals));
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, $config->item($decimals));
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, $config->item($decimals));
if(empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
@@ -424,6 +421,7 @@ function parse_tax($number)
function parse_decimals($number, $decimals = NULL)
{
// ignore empty strings and return
if(empty($number))
{
return $number;
@@ -441,13 +439,15 @@ function parse_decimals($number, $decimals = NULL)
$config = get_instance()->config;
if($decimals === NULL)
if($decimals == NULL)
{
$decimals = $config->item('currency_decimals');
}
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::DECIMAL);
$fmt->setAttribute(\NumberFormatter::FRACTION_DIGITS, $decimals);
if(empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
@@ -599,13 +599,12 @@ function dateformat_bootstrap($php_format)
function valid_date($date)
{
$config = get_instance()->Appconfig;
return (DateTime::createFromFormat($config->get('dateformat'), $date));
return preg_match('/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])(?:( [0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/', $date);
}
function valid_decimal($decimal)
{
return (preg_match('/^(\d*\.)?\d+$/', $decimal) === 1);
return preg_match('/^(\d*\.)?\d+$/', $decimal);
}
?>

View File

@@ -147,20 +147,27 @@ function get_sale_data_last_row($sales)
/*
Get the sales payments summary
*/
function get_sales_manage_payments_summary($payments)
function get_sales_manage_payments_summary($payments, $sales)
{
$CI =& get_instance();
$table = '<div id="report_summary">';
$total = 0;
foreach($payments as $key=>$payment)
{
$amount = $payment['payment_amount'];
$total = bcadd($total, $amount);
// WARNING: the strong assumption here is that if a change is due it was a cash transaction always
// therefore we remove from the total cash amount any change due
if($payment['payment_type'] == $CI->lang->line('sales_cash'))
{
foreach($sales->result_array() as $key=>$sale)
{
$amount -= $sale['change_due'];
}
}
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency($amount) . '</div>';
}
$table .= '<div class="summary_row">' . $CI->lang->line('sales_total') . ': ' . to_currency($total) . '</div>';
$table .= '</div>';
return $table;

View File

@@ -26,8 +26,8 @@ function load_config()
$CI->config->set_item('language_code', 'en-US');
}
_load_language_files($CI, '../vendor/codeigniter/framework/system/language', current_language(), FALSE);
_load_language_files($CI, '../application/language', current_language_code(), TRUE);
_load_language_files($CI, '../vendor/codeigniter/framework/system/language', current_language());
_load_language_files($CI, '../application/language', current_language_code());
//Set timezone from config database
if($CI->config->item('timezone'))
@@ -46,33 +46,16 @@ function load_config()
* @param $CI
* @param $path
* @param $language
* @param $fallback
*/
function _load_language_files($CI, $path, $language, $fallback)
function _load_language_files($CI, $path, $language)
{
$map = directory_map($path . DIRECTORY_SEPARATOR . $language);
foreach($map as $file)
{
if(!is_array($file) && substr(strrchr($file, '.'), 1) == 'php')
{
$filename = strtr($file, '', '_lang.php');
if ($fallback) {
$CI->lang->load($filename, 'en-US');
$array = $CI->lang->load($filename, $language, TRUE);
foreach($array as $lang_key => $lang_value) {
if ($lang_value !== '') {
$CI->lang->language[$lang_key] = $lang_value;
}
}
}
else
{
$CI->lang->load($filename, $language);
}
$CI->lang->load(strtr($file, '', '_lang.php'), $language);
}
}
}

View File

@@ -1,16 +0,0 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function validate_save()
{
$url = $_SERVER['REQUEST_URI'];
$is_save = preg_match('/save\/\d*?/', $url);
if($is_save && $_SERVER["REQUEST_METHOD"] != "POST" && empty($_POST))
{
echo "Method not allowed";
die;
}
}

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "النوع";
$lang["common_gender_female"] = "أنثى";
$lang["common_gender_male"] = "ذكر";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "كود";
$lang["common_import"] = "استيراد";
$lang["common_import_change_file"] = "تغيير";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "الاسم الأخير مطلوب.";
$lang["common_last_page"] = "الأخيرة";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
$lang["common_list_of"] = "قائمة بـ";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "خروج";
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
$lang["common_new"] = "جديد";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "سياسة الاسترجاع";
$lang["common_search"] = "بحث";
$lang["common_search_options"] = "خيارات البحث";
$lang["common_searched_for"] = "بحث عن";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "المحافظة";
$lang["common_submit"] = "حفظ";
$lang["common_total_spent"] = "مجموع الصرف";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1 مايو";
$lang["config_financial_year_nov"] = "1 نوفمبر";
$lang["config_financial_year_oct"] = "1 أكتوبر";
$lang["config_financial_year_sep"] = "1 سبتمبر";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "صفحة تسجيل الدخول ريكابتشا";
$lang["config_gcaptcha_secret_key"] = "مفتاح السرية ريكابتشا";
$lang["config_gcaptcha_secret_key_required"] = "مفتاح السرية ريكابتشا هو حقل مطلوب";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
$lang["config_info"] = "معلومات";
$lang["config_info_configuration"] = "معلومات الشركة";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "التكامل";
$lang["config_integrations_configuration"] = "تكامل";
$lang["config_invoice"] = "الفاتورة";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "معلومات التهيئة الإقليمية"
$lang["config_location"] = "المخزون";
$lang["config_location_configuration"] = "أماكن المخزون";
$lang["config_location_info"] = "معلومات تهيئة الأماكن";
$lang["config_login_form"] = "";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.";
$lang["config_mailchimp"] = "mailchimp ميل تشامب";
$lang["config_mailchimp_api_key"] = "mailchimp مفتاح";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
$lang["config_tax_id"] = "الرقم الضريبي";
$lang["config_tax_included"] = "شامل الضريبة";
$lang["config_theme"] = "السمة";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "فاصل الاف";
$lang["config_timezone"] = "المنطقة الزمنية";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "رمز التحقق غير صحيح.";
$lang["login_invalid_installation"] = "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.";
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح.";
$lang["login_login"] = "دخول";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "كلمة السر";
$lang["login_username"] = "اسم المستخدم";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "المبلغ المدفوع";
$lang["sales_authorized_signature"] = "توقيع معتمد";
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
$lang["sales_cash"] = "نقدى";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "ايداع نقدي";
$lang["sales_cash_filter"] = "نقدى";
$lang["sales_change_due"] = "الباقى";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "النوع";
$lang["common_gender_female"] = "أنثى";
$lang["common_gender_male"] = "ذكر";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "كود";
$lang["common_import"] = "استيراد";
$lang["common_import_change_file"] = "تغيير";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "الاسم الأخير مطلوب.";
$lang["common_last_page"] = "الأخيرة";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
$lang["common_list_of"] = "قائمة بـ";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "خروج";
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
$lang["common_new"] = "جديد";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "سياسة الاسترجاع";
$lang["common_search"] = "بحث";
$lang["common_search_options"] = "خيارات البحث";
$lang["common_searched_for"] = "بحث عن";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "المحافظة";
$lang["common_submit"] = "حفظ";
$lang["common_total_spent"] = "مجموع الصرف";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1 مايو";
$lang["config_financial_year_nov"] = "1 نوفمبر";
$lang["config_financial_year_oct"] = "1 أكتوبر";
$lang["config_financial_year_sep"] = "1 سبتمبر";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "صفحة تسجيل الدخول ريكابتشا";
$lang["config_gcaptcha_secret_key"] = "مفتاح السرية ريكابتشا";
$lang["config_gcaptcha_secret_key_required"] = "مفتاح السرية ريكابتشا هو حقل مطلوب";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
$lang["config_info"] = "معلومات";
$lang["config_info_configuration"] = "معلومات الشركة";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "التكامل";
$lang["config_integrations_configuration"] = "تكامل";
$lang["config_invoice"] = "الفاتورة";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "معلومات التهيئة الإقليمية"
$lang["config_location"] = "المخزون";
$lang["config_location_configuration"] = "أماكن المخزون";
$lang["config_location_info"] = "معلومات تهيئة الأماكن";
$lang["config_login_form"] = "";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.";
$lang["config_mailchimp"] = "mailchimp ميل تشامب";
$lang["config_mailchimp_api_key"] = "mailchimp مفتاح";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
$lang["config_tax_id"] = "الرقم الضريبي";
$lang["config_tax_included"] = "شامل الضريبة";
$lang["config_theme"] = "السمة";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "فاصل الاف";
$lang["config_timezone"] = "المنطقة الزمنية";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "رمز التحقق غير صحيح.";
$lang["login_invalid_installation"] = "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.";
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح.";
$lang["login_login"] = "دخول";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "كلمة السر";
$lang["login_username"] = "اسم المستخدم";
$lang["login_welcome"] = "";

View File

@@ -10,11 +10,10 @@ $lang["sales_amount_tendered"] = "المبلغ المدفوع";
$lang["sales_authorized_signature"] = "توقيع معتمد";
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
$lang["sales_cash"] = "نقدى";
$lang["sales_cash_adjustment"] = "تعديل الدفع";
$lang["sales_cash_deposit"] = "ايداع نقدي";
$lang["sales_cash_filter"] = "نقدى";
$lang["sales_change_due"] = "الباقى";
$lang["sales_change_price"] = "تغيير سعر البيع";
$lang["sales_change_price"] = "";
$lang["sales_check"] = "شيك";
$lang["sales_check_balance"] = "تذكير بموعد الشيك";
$lang["sales_check_filter"] = "شيك";
@@ -26,13 +25,13 @@ $lang["sales_confirm_delete"] = "هل تريد حذف عمليات البيع ا
$lang["sales_confirm_restore"] = "هل انت متاكد من استعادة عملية البيع؟";
$lang["sales_credit"] = "بطاقة إئتمانية";
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
$lang["sales_credit_filter"] = "بطاقة بنكية";
$lang["sales_credit_filter"] = "";
$lang["sales_customer"] = "العميل";
$lang["sales_customer_address"] = "العنوان";
$lang["sales_customer_discount"] = "الخصم";
$lang["sales_customer_email"] = "البريد الإلكترونى";
$lang["sales_customer_location"] = "المكان";
$lang["sales_customer_mailchimp_status"] = "حالة بريد ميل تشيمب";
$lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
$lang["sales_customer_optional"] = "(مطلوب للدفعات المستحقة)";
$lang["sales_customer_required"] = "(اجباري)";
$lang["sales_customer_total"] = "المجموع";
@@ -54,26 +53,26 @@ $lang["sales_discount_included"] = "% خصم";
$lang["sales_discount_short"] = "%";
$lang["sales_due"] = "مستحق";
$lang["sales_due_filter"] = "مستحق";
$lang["sales_edit"] = "تعديل";
$lang["sales_edit_item"] = "تعديل مادة";
$lang["sales_edit_sale"] = "تعديل عملية بيع";
$lang["sales_edit"] = "تحرير";
$lang["sales_edit_item"] = "تحرير صنف";
$lang["sales_edit_sale"] = "تحرير عملية بيع";
$lang["sales_email_receipt"] = "إرسال الايصال بالبريد الالكترونى";
$lang["sales_employee"] = "الموظف";
$lang["sales_entry"] = "ادخال";
$lang["sales_error_editing_item"] = "خطاء فى تعديل المادة";
$lang["sales_find_or_scan_item"] = "بحث/مسح باركود المادة";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود المادة أو الايصال";
$lang["sales_error_editing_item"] = "خطاء فى تحرير الصنف";
$lang["sales_find_or_scan_item"] = "بحث/مسح باركود صنف";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو ايصال";
$lang["sales_giftcard"] = "بطاقة هدية";
$lang["sales_giftcard_balance"] = "رصيد بطاقة الهدية";
$lang["sales_giftcard_number"] = "رقم بطاقة الهدية";
$lang["sales_group_by_category"] = "ترتيب حسب الفئة";
$lang["sales_group_by_type"] = "ترتيب حسب النوع";
$lang["sales_group_by_category"] = "تصفية حسب الفئة";
$lang["sales_group_by_type"] = "تجميع حسب النوع";
$lang["sales_hsn"] = "رمز نظام منسق";
$lang["sales_id"] = "رقم عملية البيع";
$lang["sales_id"] = "كود عملية البيع";
$lang["sales_include_prices"] = "يشمل الاسعار؟";
$lang["sales_invoice"] = "فاتورة";
$lang["sales_invoice_confirm"] = "هذه الفاتورة سوف ترسل إلى";
$lang["sales_invoice_enable"] = "رقم فاتورة";
$lang["sales_invoice_enable"] = "إنشاء فاتورة";
$lang["sales_invoice_filter"] = "الفواتير";
$lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد الكترونى صالح.";
$lang["sales_invoice_number"] = "فاتورة رقم #";
@@ -86,32 +85,32 @@ $lang["sales_invoice_type_invoice"] = "الفاتورة (invoice.php)";
$lang["sales_invoice_type_tax_invoice"] = "الفاتورة الضريبية (tax_invoice.php)";
$lang["sales_invoice_unsent"] = "فشل إرسال الفاتورة إلى";
$lang["sales_invoice_update"] = "إعادة العد";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من المادة.";
$lang["sales_item_name"] = "اسم المادة";
$lang["sales_item_number"] = "مادة رقم #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من المادة.";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف.";
$lang["sales_item_name"] = "اسم الصنف";
$lang["sales_item_number"] = "صنف #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف.";
$lang["sales_mode"] = "وضع التسجيل";
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع.";
$lang["sales_must_enter_numeric_giftcard"] = "رمز بطاقة الهدية يجب أن يكتون ارقام فقط.";
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
$lang["sales_new_customer"] = "عميل جديد";
$lang["sales_new_item"] = "مادة جديدة";
$lang["sales_new_item"] = "صنف جديد";
$lang["sales_no_description"] = "بدون وصف";
$lang["sales_no_filter"] = "الكل";
$lang["sales_no_items_in_cart"] = "لايوجد اي مادة فى السلة.";
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة.";
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها.";
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها.";
$lang["sales_nontaxed_ind"] = "";
$lang["sales_not_authorized"] = "ليس لديك صلاحية.";
$lang["sales_not_authorized"] = "هذه العملية لا يمكن فعلها لعدم تخويلك.";
$lang["sales_one_or_multiple"] = "عمليات بيع";
$lang["sales_payment"] = "طريقة الدفع";
$lang["sales_payment_amount"] = "القيمة";
$lang["sales_payment_amount"] = "المبلغ";
$lang["sales_payment_not_cover_total"] = "المبلغ المدفوع لايغطى المبلغ الإجمالى.";
$lang["sales_payment_type"] = "طريقة";
$lang["sales_payments_total"] = "إجمالى المدفوعات";
$lang["sales_price"] = "السعر";
$lang["sales_print_after_sale"] = "اطبع بعد عملية البيع";
$lang["sales_quantity"] = "الكمية";
$lang["sales_quantity_less_than_reorder_level"] = "تحذير: الكمية أقل من الحد المطلوب لهذه المادة.";
$lang["sales_quantity_less_than_reorder_level"] = "تحذير: الكمية/العدد المطلوب غير متوفر لهذا الصنف.";
$lang["sales_quantity_less_than_zero"] = "تحذير! الكمية المطلوبة غير كافية، بإمكانك إتمام عملية البيع ، لكن تحقق من مخزنك.";
$lang["sales_quantity_of_items"] = "عدد ال 1% من الاصناف";
$lang["sales_quote"] = "عرض اسعار";
@@ -124,10 +123,10 @@ $lang["sales_receipt_no_email"] = "هذا العميل ليس له اي بريد
$lang["sales_receipt_number"] = "إيصال بيع";
$lang["sales_receipt_sent"] = "تم إرسال الإيصال إلى";
$lang["sales_receipt_unsent"] = "فشل إرسال الإيصال إلى";
$lang["sales_refund"] = "نوع/سبب الاسترجاع";
$lang["sales_register"] = "سجل المبيعات";
$lang["sales_refund"] = "";
$lang["sales_register"] = "مسجل المبيعات";
$lang["sales_remove_customer"] = "حذف عميل";
$lang["sales_return"] = "إسترجاع";
$lang["sales_return"] = "إرتجاع";
$lang["sales_rewards"] = "نقاط المكافئة";
$lang["sales_rewards_balance"] = "رصيد نقاط المكافئة";
$lang["sales_sale"] = "بيع";
@@ -146,7 +145,7 @@ $lang["sales_show_receipt"] = "عرض الإيصال";
$lang["sales_start_typing_customer_name"] = "ابداء بكتابة اسم العميل...";
$lang["sales_start_typing_item_name"] = "ابداء بكتابة اسم أو مسح باركود الصنف...";
$lang["sales_stock"] = "المخزن";
$lang["sales_stock_location"] = "موقع التخزين";
$lang["sales_stock_location"] = "مكان المخزون";
$lang["sales_sub_total"] = "المجموع الفرعي";
$lang["sales_successfully_deleted"] = "لقد تم الحذف بنجاح";
$lang["sales_successfully_restored"] = "لقد تمت عملية الاستعادة بنجاح";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Cins";
$lang["common_gender_female"] = "Q";
$lang["common_gender_male"] = "K";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "ID";
$lang["common_import"] = "Daxil et";
$lang["common_import_change_file"] = "Dəyiş";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Soyad tələb olunur.";
$lang["common_last_page"] = "Son";
$lang["common_learn_about_project"] = "Proyekt haqqında ən son məlumatı öyrənmək.";
$lang["common_list_of"] = "Siyahısı";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Çıxış";
$lang["common_migration_needed"] = "Girişdən sonra bazaya %1 köçməsi başlayacaq.";
$lang["common_new"] = "Yenisi";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Qaytarma siyasəti";
$lang["common_search"] = "Axtarış";
$lang["common_search_options"] = "Axtarış variantları";
$lang["common_searched_for"] = "Axtarıldı";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Əyalət";
$lang["common_submit"] = "Təsdiqlə";
$lang["common_total_spent"] = "Ümumi xərc";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1 May";
$lang["config_financial_year_nov"] = "1 Noyabr";
$lang["config_financial_year_oct"] = "1 Oktyabr";
$lang["config_financial_year_sep"] = "1 Sentyabr";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Giriş Səyfəsi reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Gizli Açarı";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Gizli Açar olan sahə boş qala bilməz";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "Şəkil yükləmə məhdudiyyətləri";
$lang["config_include_hsn"] = "HSN Kodlarına dəstək verin";
$lang["config_info"] = "Məlumat";
$lang["config_info_configuration"] = "Dükan İnformasiyası";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "İnteqrasiya";
$lang["config_integrations_configuration"] = "Üçüncü tərəf inteqrasiya";
$lang["config_invoice"] = "Faktura";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Lokallaşdırma Konfiqurasiya Məlumatı";
$lang["config_location"] = "Fond";
$lang["config_location_configuration"] = "Anbar Yerləri";
$lang["config_location_info"] = "Yer Konfiqurasiya Məlumatı";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Çıxışdan əvvəl məlumatlari ehtiyat bazasına köçürmək istəyirsinizmi? Çıxış üçün Bekap və ya [Ləğv] üçün [OK]' düyməsinə basın.";
$lang["config_mailchimp"] = "Mailçimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Açarı";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Vaxt";
$lang["config_tax_id"] = "Vergi İD";
$lang["config_tax_included"] = "Vergi Daxildir";
$lang["config_theme"] = "Vebsayt";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Minliklər Ayıran";
$lang["config_timezone"] = "Vaxt Zonası";
$lang["config_timezone_error"] = "OSPOS Saat qurşağı Yerli saat qurşağınızdan fərqlidir.";

View File

@@ -14,7 +14,7 @@ $lang["item_kits_error_adding_updating"] = "Malı yeniləməkdə və ya əlavə
$lang["item_kits_find_kit_item"] = "Mal Dəsti";
$lang["item_kits_info"] = "Mal Dəsti haqqında informasiya";
$lang["item_kits_item"] = "Maddə";
$lang["item_kits_item_kit_number"] = "Barkod";
$lang["item_kits_item_kit_number"] = "";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "";
$lang["item_kits_items"] = "Mallar";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "Yanlış, Mən robot deyiləm.";
$lang["login_invalid_installation"] = "Quraşdırma düzgün deyil, php.ini faylını yoxlayın.";
$lang["login_invalid_username_and_password"] = "Ad və ya şifrə səhvdir.";
$lang["login_login"] = "Giriş";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Şifrə";
$lang["login_username"] = "İstifadəçi";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Ödənilən məbləğ";
$lang["sales_authorized_signature"] = "Səlahiyyətli İmza";
$lang["sales_cancel_sale"] = "İmtina";
$lang["sales_cash"] = "Nəğd pullar";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "Nağd depozit";
$lang["sales_cash_filter"] = "Nəğd Pul";
$lang["sales_change_due"] = "Qalıq";

View File

@@ -1,6 +1,6 @@
<?php
$lang["tables_all"] = "Всичко";
$lang["tables_all"] = "Всичко";
$lang["tables_columns"] = "Колони";
$lang["tables_hide_show_pagination"] = "Скриване / Показване на страници";
$lang["tables_loading"] = "Зареждане, моля изчакайте...";

View File

@@ -8,7 +8,7 @@ $lang["common_comments"] = "Коментари";
$lang["common_common"] = "Често срещани";
$lang["common_confirm_search"] = "Избрали сте един или повече редове, след търсене няма да бъдат избрани. Наистина ли искате да подадете това търсене?";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "Моля, коригирайте установените грешки преди записване";
$lang["common_correct_errors"] = "";
$lang["common_country"] = "Държава";
$lang["common_date"] = "Дата";
$lang["common_delete"] = "Изтриване";
@@ -28,7 +28,6 @@ $lang["common_gender"] = "Пол";
$lang["common_gender_female"] = "Ж";
$lang["common_gender_male"] = "М";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Номер";
$lang["common_import"] = "Внос";
$lang["common_import_change_file"] = "Промяна";
@@ -42,14 +41,12 @@ $lang["common_last_name_required"] = "Фамилия е задължително
$lang["common_last_page"] = "Последна";
$lang["common_learn_about_project"] = "за да научите най-новата информация за проекта.";
$lang["common_list_of"] = "Списък с";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Излизане от профила";
$lang["common_migration_needed"] = "Мигриране на база данни ще започне след влизане.";
$lang["common_migration_needed"] = "";
$lang["common_new"] = "Нов";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "Няма хора за показване.";
$lang["common_none_selected_text"] = "Нищо не е избрано";
$lang["common_none_selected_text"] = "Нищо не е избрано.";
$lang["common_or"] = "Или";
$lang["common_phone_number"] = "Телефонен номер";
$lang["common_phone_number_required"] = "";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Условия за връщане";
$lang["common_search"] = "Търсене";
$lang["common_search_options"] = "Опции за търсене";
$lang["common_searched_for"] = "Търсене за";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Щат";
$lang["common_submit"] = "Изпращане";
$lang["common_total_spent"] = "Общо изразходвани";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1st of May";
$lang["config_financial_year_nov"] = "1st of November";
$lang["config_financial_year_oct"] = "1st of October";
$lang["config_financial_year_sep"] = "1st of September";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Login Page reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Secret Key";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key is a required field";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "";
$lang["config_integrations_configuration"] = "";
$lang["config_invoice"] = "Invoice";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Localization Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_timezone_error"] = "";

View File

@@ -19,9 +19,9 @@ $lang["customers_csv_import_success"] = "Вносът на клиенти е у
$lang["customers_customer"] = "Клиент";
$lang["customers_date"] = "Дата";
$lang["customers_discount"] = "Отстъпка";
$lang["customers_discount_fixed"] = "Фиксирана отстъпка";
$lang["customers_discount_percent"] = "Процент отстъпка";
$lang["customers_discount_type"] = "Вид отстъпка";
$lang["customers_discount_fixed"] = "";
$lang["customers_discount_percent"] = "";
$lang["customers_discount_type"] = "";
$lang["customers_email_duplicate"] = "Имейл адресът вече е в базата данни.";
$lang["customers_employee"] = "Служител";
$lang["customers_error_adding_updating"] = "Добавянето или актуализирането на клиента е неуспешно.";
@@ -47,7 +47,7 @@ $lang["customers_successful_adding"] = "Успешно добавихте кли
$lang["customers_successful_deleted"] = "Вие успешно сте изтрили";
$lang["customers_successful_updating"] = "Актуализирахте успешно клиента си";
$lang["customers_tax_code"] = "Данъчен код";
$lang["customers_tax_id"] = "Данъчен номер";
$lang["customers_tax_id"] = "";
$lang["customers_taxable"] = "Облагаем";
$lang["customers_total"] = "Общо изразходвани средства";
$lang["customers_update"] = "Актуализиране на клиента";

View File

@@ -1,13 +1,10 @@
<?php
$lang["login_gcaptcha"] = "Не съм робот.";
$lang["login_gcaptcha"] = "I'm not a robot.";
$lang["login_go"] = "Go";
$lang["login_invalid_gcaptcha"] = "Invalid I'm not a robot.";
$lang["login_invalid_installation"] = "The installation is not correct, check your php.ini file.";
$lang["login_invalid_username_and_password"] = "Invalid Username or Password.";
$lang["login_login"] = "Login";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Password";
$lang["login_username"] = "Username";
$lang["login_welcome"] = "";

View File

@@ -10,11 +10,10 @@ $lang["sales_amount_tendered"] = "Предоставена сума";
$lang["sales_authorized_signature"] = "Оторизиран подпис";
$lang["sales_cancel_sale"] = "Отказ";
$lang["sales_cash"] = "В брой";
$lang["sales_cash_adjustment"] = "Корекция на пари в брой";
$lang["sales_cash_deposit"] = "Депозит в брой";
$lang["sales_cash_filter"] = "В брой";
$lang["sales_change_due"] = "Промяна на дължимото";
$lang["sales_change_price"] = "Промяна на продажната цена";
$lang["sales_change_price"] = "";
$lang["sales_check"] = "Проверка";
$lang["sales_check_balance"] = "Проверете остатъка";
$lang["sales_check_filter"] = "Проверка";
@@ -26,7 +25,7 @@ $lang["sales_confirm_delete"] = "Наистина ли искате да изт
$lang["sales_confirm_restore"] = "Наистина ли искате да възстановите избраната Продажба (и)?";
$lang["sales_credit"] = "Кредитна карта";
$lang["sales_credit_deposit"] = "Кредитен депозит";
$lang["sales_credit_filter"] = "Кредитна карта";
$lang["sales_credit_filter"] = "";
$lang["sales_customer"] = "Име";
$lang["sales_customer_address"] = "Адрес";
$lang["sales_customer_discount"] = "Намаление";
@@ -68,7 +67,7 @@ $lang["sales_giftcard_balance"] = "Gift Card Баланс";
$lang["sales_giftcard_number"] = "Gift Card Номер";
$lang["sales_group_by_category"] = "Групирайте по категория";
$lang["sales_group_by_type"] = "Групиране по тип";
$lang["sales_hsn"] = "HSN";
$lang["sales_hsn"] = "";
$lang["sales_id"] = "Номер на продажба";
$lang["sales_include_prices"] = "Включва цени?";
$lang["sales_invoice"] = "Фактура";
@@ -81,9 +80,9 @@ $lang["sales_invoice_number_duplicate"] = "Номерът на фактурит
$lang["sales_invoice_sent"] = "Фактура, изпратена до";
$lang["sales_invoice_total"] = "Фактура общо";
$lang["sales_invoice_type_custom_invoice"] = "Ръчна фактура";
$lang["sales_invoice_type_custom_tax_invoice"] = "Фактура по избор(custom_tax_invoice.php)";
$lang["sales_invoice_type_custom_tax_invoice"] = "";
$lang["sales_invoice_type_invoice"] = "Фактура";
$lang["sales_invoice_type_tax_invoice"] = "Данъчна фактура (tax_invoice.php)";
$lang["sales_invoice_type_tax_invoice"] = "";
$lang["sales_invoice_unsent"] = "Фактурата не можа да бъде изпратена до";
$lang["sales_invoice_update"] = "Преизчисляване";
$lang["sales_item_insufficient_of_stock"] = "Елементът има недостатъчен запас.";
@@ -100,7 +99,7 @@ $lang["sales_no_filter"] = "Всичко";
$lang["sales_no_items_in_cart"] = "В количката няма продукти.";
$lang["sales_no_sales_to_display"] = "Няма продажби за показване .";
$lang["sales_none_selected"] = "Не сте избрали каквито и да е Продажби за изтриване.";
$lang["sales_nontaxed_ind"] = " sales nontaxed ind ";
$lang["sales_nontaxed_ind"] = "";
$lang["sales_not_authorized"] = "Това действие не е разрешено.";
$lang["sales_one_or_multiple"] = "Продажба (и)";
$lang["sales_payment"] = "Вид плащане";
@@ -124,7 +123,7 @@ $lang["sales_receipt_no_email"] = "Този клиент няма валиден
$lang["sales_receipt_number"] = "Продажба #";
$lang["sales_receipt_sent"] = "Разписката е изпратена до";
$lang["sales_receipt_unsent"] = "Разписката не бе изпратена до";
$lang["sales_refund"] = "Вид на въстановяването";
$lang["sales_refund"] = "";
$lang["sales_register"] = "Регистър на продажбите";
$lang["sales_remove_customer"] = "Премахване на клиент";
$lang["sales_return"] = "Връщане";
@@ -159,8 +158,8 @@ $lang["sales_suspended_sales"] = "Преустановен";
$lang["sales_table"] = "Маса";
$lang["sales_takings"] = "Ежедневни продажби";
$lang["sales_tax"] = "Данък";
$lang["sales_tax_id"] = "Данъчен номер";
$lang["sales_tax_invoice"] = "Данъчна фактура";
$lang["sales_tax_id"] = "";
$lang["sales_tax_invoice"] = "";
$lang["sales_tax_percent"] = "Данък %";
$lang["sales_taxed_ind"] = "";
$lang["sales_total"] = "Обща сума";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Pol";
$lang["common_gender_female"] = "Ž";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Id";
$lang["common_import"] = "Uvoz";
$lang["common_import_change_file"] = "Promjena";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Prezime je obavezno";
$lang["common_last_page"] = "Poslednja";
$lang["common_learn_about_project"] = "da biste saznali najnovije informacije o projektu";
$lang["common_list_of"] = "Lista";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Odjava";
$lang["common_migration_needed"] = "Premještanje baze podataka na %1 počinje nakon prijave.";
$lang["common_new"] = "Novi";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Povratna informacija";
$lang["common_search"] = "Traži";
$lang["common_search_options"] = "Opcije pretrage";
$lang["common_searched_for"] = "Traženo";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Entitet";
$lang["common_submit"] = "Prihvati";
$lang["common_total_spent"] = "Ukupno potrošeno";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1. Maj";
$lang["config_financial_year_nov"] = "1. Novembar";
$lang["config_financial_year_oct"] = "1. Oktobar";
$lang["config_financial_year_sep"] = "1. Septembar";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Stranica za prijavu reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA tajni ključ";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA tajni ključ je obavezno polje";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "Ograničenja za učitavanje slike";
$lang["config_include_hsn"] = "Uključite podršku za HSN kodove";
$lang["config_info"] = "Informacije";
$lang["config_info_configuration"] = "Info o web trgovini";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "Integracije";
$lang["config_integrations_configuration"] = "Integracije trećih strana";
$lang["config_invoice"] = "Faktura";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Info o lokalnoj konfiguraciji";
$lang["config_location"] = "Skladište";
$lang["config_location_configuration"] = "Lokacije skladišta";
$lang["config_location_info"] = "Informacije o konfiguraciji lokacije";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Zar ne želite da napravite rezervnu kopiju prije odjave? Kliknite [OK] za sigurnosnu kopiju, [Cancel] da biste se odjavili.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API ključ";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Poreske decimale";
$lang["config_tax_id"] = "Poreska identifikacija";
$lang["config_tax_included"] = "Uključen porez";
$lang["config_theme"] = "Tema";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Separator za hiljade";
$lang["config_timezone"] = "Vremenska zona";
$lang["config_timezone_error"] = "Vremenska zona OSPOS razlikuje se od vaše lokalne vremenske zone.";

View File

@@ -12,10 +12,6 @@ $lang["customers_confirm_delete"] = "Želite li izbrisati izabranog kupca?";
$lang["customers_confirm_restore"] = "Da li ste sigurni da želite da povratite izabranog kupca?";
$lang["customers_consent"] = "Pristanak na registraciju";
$lang["customers_consent_required"] = "Prihvatanje registracije je obavezno polje.";
$lang["customers_csv_import_failed"] = "Greška kod uvoza iz CSV-a";
$lang["customers_csv_import_nodata_wrongformat"] = "Vaša učitana datoteka nema podataka ili je pogrešnog formata";
$lang["customers_csv_import_partially_failed"] = "Većina kupaca je uvezena. Ali neki nisu, evo liste";
$lang["customers_csv_import_success"] = "Uvoz kupaca je uspješan";
$lang["customers_customer"] = "Kupac";
$lang["customers_date"] = "Datum";
$lang["customers_discount"] = "Popust";
@@ -25,6 +21,10 @@ $lang["customers_discount_type"] = "Tip popusta";
$lang["customers_email_duplicate"] = "E-mail adresa već postoji u bazi podataka.";
$lang["customers_employee"] = "Zaposlenik";
$lang["customers_error_adding_updating"] = "Greška kod dodavanja/ažuriranja kupca";
$lang["customers_csv_import_failed"] = "Greška kod uvoza iz CSV-a";
$lang["customers_csv_import_nodata_wrongformat"] = "Vaša učitana datoteka nema podataka ili je pogrešnog formata";
$lang["customers_csv_import_partially_failed"] = "Većina kupaca je uvezena. Ali neki nisu, evo liste";
$lang["customers_csv_import_success"] = "Uvoz kupaca je uspješan";
$lang["customers_import_items_csv"] = "Uvezi kupce iz CSV datoteke";
$lang["customers_mailchimp_activity_click"] = "Klik na e-mail";
$lang["customers_mailchimp_activity_lastopen"] = "Zadnji otvoreni e-mail";

View File

@@ -42,8 +42,8 @@ $lang["items_image"] = "Slika";
$lang["items_import_items_csv"] = "Uvezi artikle iz CSV datoteke";
$lang["items_info_provided_by"] = "Informacije pruža";
$lang["items_inventory"] = "Zaliha";
$lang["items_inventory_CSV_import_quantity"] = "Količina uvezena iz CSV-a";
$lang["items_inventory_comments"] = "Komentari";
$lang["items_inventory_CSV_import_quantity"] = "Količina uvezena iz CSV-a";
$lang["items_inventory_data_tracking"] = "Praćenje podataka zalihe";
$lang["items_inventory_date"] = "Datum";
$lang["items_inventory_employee"] = "Zaposlenik";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "Pogrešno ja nisam robot.";
$lang["login_invalid_installation"] = "Instalacija nije ispravna, provjerite vašu php.ini datoteku.";
$lang["login_invalid_username_and_password"] = "Pogrešno korisničko ime ili lozinka";
$lang["login_login"] = "Prijava";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Lozinka";
$lang["login_username"] = "Korisničko ime";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Ponuđeni iznos";
$lang["sales_authorized_signature"] = "Ovlašćeni potpis";
$lang["sales_cancel_sale"] = "Otkaži";
$lang["sales_cash"] = "Gotovina";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "Polog gotovine";
$lang["sales_cash_filter"] = "Gotovina";
$lang["sales_change_due"] = "Kusur";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Pohlaví";
$lang["common_gender_female"] = "Ž";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Změnit";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Příjmení je vyžadováno.";
$lang["common_last_page"] = "Poslední";
$lang["common_learn_about_project"] = "pro získání dalších informací k projektu.";
$lang["common_list_of"] = "Seznam";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Odhlásit";
$lang["common_migration_needed"] = "";
$lang["common_new"] = "Nový";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Podmínky pro vrácení";
$lang["common_search"] = "Hledat";
$lang["common_search_options"] = "Volby pro hledání";
$lang["common_searched_for"] = "Hledat";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Stát";
$lang["common_submit"] = "Odeslat";
$lang["common_total_spent"] = "Celkem utraceno";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "";
$lang["config_financial_year_nov"] = "";
$lang["config_financial_year_oct"] = "";
$lang["config_financial_year_sep"] = "";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "";
$lang["config_gcaptcha_secret_key"] = "";
$lang["config_gcaptcha_secret_key_required"] = "";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "";
$lang["config_info"] = "";
$lang["config_info_configuration"] = "";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "";
$lang["config_integrations_configuration"] = "";
$lang["config_invoice"] = "";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "";
$lang["config_location"] = "";
$lang["config_location_configuration"] = "";
$lang["config_location_info"] = "";
$lang["config_login_form"] = "";
$lang["config_logout"] = "";
$lang["config_mailchimp"] = "";
$lang["config_mailchimp_api_key"] = "";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "";
$lang["config_tax_id"] = "";
$lang["config_tax_included"] = "";
$lang["config_theme"] = "";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "";
$lang["config_timezone"] = "";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "Špatné zadání.";
$lang["login_invalid_installation"] = "Instalace není v pořádku, zkontrolujte soubor php.ini.";
$lang["login_invalid_username_and_password"] = "Neplatné jméno nebo heslo.";
$lang["login_login"] = "Login";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Heslo";
$lang["login_username"] = "Uživatelské jméno";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Uhrazeno";
$lang["sales_authorized_signature"] = "";
$lang["sales_cancel_sale"] = "Zrušit";
$lang["sales_cash"] = "Hotovost";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "";
$lang["sales_cash_filter"] = "Hotově";
$lang["sales_change_due"] = "Zbývá";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Køn";
$lang["common_gender_female"] = "Kvinde";
$lang["common_gender_male"] = "Mand";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Skift";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Efternavn er et obligatorisk felt.";
$lang["common_last_page"] = "Sidste";
$lang["common_learn_about_project"] = "for at lære det seneste information om projektet.";
$lang["common_list_of"] = "Liste af";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Log ud";
$lang["common_migration_needed"] = "En database migration til %1 vil starte efter du er logget ind.";
$lang["common_new"] = "Ny";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Returpolitik";
$lang["common_search"] = "Søg";
$lang["common_search_options"] = "Søgeindstillinger";
$lang["common_searched_for"] = "Søgt efter";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Stat";
$lang["common_submit"] = "Indsend";
$lang["common_total_spent"] = "Samlet brugt";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1st of May";
$lang["config_financial_year_nov"] = "1st of November";
$lang["config_financial_year_oct"] = "1st of October";
$lang["config_financial_year_sep"] = "1st of September";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Login Page reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Secret Key";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key is a required field";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "Include Support for HSN Codes";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "Integrations";
$lang["config_integrations_configuration"] = "Third Party Integrations";
$lang["config_invoice"] = "Invoice";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Localization Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "Tax Id";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "";
$lang["login_invalid_installation"] = "";
$lang["login_invalid_username_and_password"] = "";
$lang["login_login"] = "";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "";
$lang["login_username"] = "";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "";
$lang["sales_authorized_signature"] = "";
$lang["sales_cancel_sale"] = "";
$lang["sales_cash"] = "";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "";
$lang["sales_cash_filter"] = "";
$lang["sales_change_due"] = "";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Geschlecht";
$lang["common_gender_female"] = "F";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Change";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Nachname ist erforderlich";
$lang["common_last_page"] = "Letzte";
$lang["common_learn_about_project"] = "für neueste Nachrichten zum Projekt";
$lang["common_list_of"] = "Liste von";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Logout";
$lang["common_migration_needed"] = "";
$lang["common_new"] = "Neu";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Rücknahmepolitik";
$lang["common_search"] = "Suche";
$lang["common_search_options"] = "Suchkriterien";
$lang["common_searched_for"] = "Gescuht nach";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "BL/Kanton";
$lang["common_submit"] = "Senden";
$lang["common_total_spent"] = "";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "";
$lang["config_financial_year_nov"] = "";
$lang["config_financial_year_oct"] = "";
$lang["config_financial_year_sep"] = "";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "";
$lang["config_gcaptcha_secret_key"] = "";
$lang["config_gcaptcha_secret_key_required"] = "";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "";
$lang["config_info"] = "Instellungen";
$lang["config_info_configuration"] = "Instellungen";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "";
$lang["config_integrations_configuration"] = "";
$lang["config_invoice"] = "Rechnungs";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Info Länderkonfiguration";
$lang["config_location"] = "Lagerort";
$lang["config_location_configuration"] = "Lagerort";
$lang["config_location_info"] = "Lagerort-Information";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Wollen Sie eine Sicherung machen vor dem Beenden? Klicke [OK] für Sicherung";
$lang["config_mailchimp"] = "";
$lang["config_mailchimp_api_key"] = "";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "";
$lang["config_tax_included"] = "MWSt inbegriffen";
$lang["config_theme"] = "Design";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Tausendertrennzeichen";
$lang["config_timezone"] = "Zeitzone";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "";
$lang["login_invalid_installation"] = "";
$lang["login_invalid_username_and_password"] = "Ungültiger Benutzername/Passwort";
$lang["login_login"] = "Login";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Passwort";
$lang["login_username"] = "Benutzername";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Erhalten";
$lang["sales_authorized_signature"] = "";
$lang["sales_cancel_sale"] = "Annullieren";
$lang["sales_cash"] = "Bar";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "";
$lang["sales_cash_filter"] = "Bar";
$lang["sales_change_due"] = "Wechselgeld";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Geschlecht";
$lang["common_gender_female"] = "W";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "ID";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Ändern";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Nachname ist erforderlich.";
$lang["common_last_page"] = "Letzte";
$lang["common_learn_about_project"] = "für neueste Nachrichten zum Projekt.";
$lang["common_list_of"] = "Liste von";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Ausloggen";
$lang["common_migration_needed"] = "Eine Datenbankmigration auf %1 wird nach der Anmeldung gestartet.";
$lang["common_new"] = "Neu";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Rücknahmeerklärung";
$lang["common_search"] = "Suche";
$lang["common_search_options"] = "Suchkriterien";
$lang["common_searched_for"] = "Gescuht nach";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "BL/Kanton";
$lang["common_submit"] = "Senden";
$lang["common_total_spent"] = "Gesamtausgaben";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1. Mai";
$lang["config_financial_year_nov"] = "1. November";
$lang["config_financial_year_oct"] = "1. Oktober";
$lang["config_financial_year_sep"] = "1. September";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Login reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA: Geheimer Schlüssel";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key wird benötigt";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "Unterstützung für HSN-Codes einbinden";
$lang["config_info"] = "Informationen";
$lang["config_info_configuration"] = "Generelle Einstellungen";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "Integrationen";
$lang["config_integrations_configuration"] = "Drittanbieter Integrationen";
$lang["config_invoice"] = "Rechnungs";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "Info Länderkonfiguration";
$lang["config_location"] = "Lagerort";
$lang["config_location_configuration"] = "Lagerort";
$lang["config_location_info"] = "Lagerort-Information";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Wollen Sie vor dem Beenden eine Sicherung erstellen? Klicke [OK] für Sicherung.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Schlüssel";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Steuer Dezimalstellen";
$lang["config_tax_id"] = "Steuer ID";
$lang["config_tax_included"] = "MWSt inbegriffen";
$lang["config_theme"] = "Design";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Tausendertrennzeichen";
$lang["config_timezone"] = "Zeitzone";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "Ich bin kein Roboter ist ungültig.";
$lang["login_invalid_installation"] = "Die Installation ist nicht korrekt, überprüfen Sie Ihre php.ini-Datei.";
$lang["login_invalid_username_and_password"] = "Ungültiger Benutzername oder Passwort.";
$lang["login_login"] = "Login";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "Passwort";
$lang["login_username"] = "Benutzername";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Erhalten";
$lang["sales_authorized_signature"] = "Unterschrift";
$lang["sales_cancel_sale"] = "Annullieren";
$lang["sales_cash"] = "Bar";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "Bareinzahlung";
$lang["sales_cash_filter"] = "Bar";
$lang["sales_change_due"] = "Wechselgeld";

View File

@@ -28,7 +28,6 @@ $lang["common_gender"] = "Φύλο";
$lang["common_gender_female"] = "Θ";
$lang["common_gender_male"] = "Α";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Id";
$lang["common_import"] = "Εισαγωγή";
$lang["common_import_change_file"] = "Αλλαγή";
@@ -42,8 +41,6 @@ $lang["common_last_name_required"] = "Το Επίθετο απαιτείται."
$lang["common_last_page"] = "Τελευταίο";
$lang["common_learn_about_project"] = "ώστε να ενημερωθείτε για τις τελευταίες πληροφορίες του έργου.";
$lang["common_list_of"] = "Λίστα από";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Έξοδος";
$lang["common_migration_needed"] = "Η ενσωμάτωση της βάσης δεδομένων σε %1 θα ξεκινήσει μετά την είσοδο.";
$lang["common_new"] = "Νέο";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Πολιτική Επιστροφών";
$lang["common_search"] = "Αναζήτηση";
$lang["common_search_options"] = "Επιλογές αναζήτησης";
$lang["common_searched_for"] = "Αναζητήσατε για";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Περιοχή/Νομός";
$lang["common_submit"] = "Καταχώριση";
$lang["common_total_spent"] = "Σύνολο εξόδων";

View File

@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "";
$lang["config_financial_year_nov"] = "";
$lang["config_financial_year_oct"] = "";
$lang["config_financial_year_sep"] = "";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "";
$lang["config_gcaptcha_secret_key"] = "";
$lang["config_gcaptcha_secret_key_required"] = "";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "";
$lang["config_info"] = "";
$lang["config_info_configuration"] = "";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "";
$lang["config_integrations_configuration"] = "";
$lang["config_invoice"] = "";
@@ -177,7 +175,6 @@ $lang["config_locale_info"] = "";
$lang["config_location"] = "";
$lang["config_location_configuration"] = "";
$lang["config_location_info"] = "";
$lang["config_login_form"] = "";
$lang["config_logout"] = "";
$lang["config_mailchimp"] = "";
$lang["config_mailchimp_api_key"] = "";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "";
$lang["config_tax_id"] = "";
$lang["config_tax_included"] = "";
$lang["config_theme"] = "";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "";
$lang["config_timezone"] = "";
$lang["config_timezone_error"] = "";

View File

@@ -6,8 +6,5 @@ $lang["login_invalid_gcaptcha"] = "";
$lang["login_invalid_installation"] = "";
$lang["login_invalid_username_and_password"] = "";
$lang["login_login"] = "";
$lang["login_logout"] = "";
$lang["login_migration_needed"] = "";
$lang["login_password"] = "";
$lang["login_username"] = "";
$lang["login_welcome"] = "";

View File

@@ -10,7 +10,6 @@ $lang["sales_amount_tendered"] = "Ποσό Είσπραξης";
$lang["sales_authorized_signature"] = "Εγκεκριμένη Υπογραφή";
$lang["sales_cancel_sale"] = "Ακύρωση";
$lang["sales_cash"] = "Μετρητά";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "Προκαταβολή Μετρητών";
$lang["sales_cash_filter"] = "Μετρητά";
$lang["sales_change_due"] = "Ποσό Επιστροφής";

View File

@@ -1,4 +1,5 @@
<?php
<?php
$lang["common_address_1"] = "Address 1";
$lang["common_address_2"] = "Address 2";
$lang["common_city"] = "City";
@@ -27,12 +28,11 @@ $lang["common_gender"] = "Gender";
$lang["common_gender_female"] = "F";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "Icon";
$lang["common_id"] = "ID";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Change";
$lang["common_import_csv"] = "CSV Import";
$lang["common_import_full_path"] = "Full path to CSV file required";
$lang["common_import_full_path"] = "Full path to csv file required";
$lang["common_import_remove_file"] = "Remove";
$lang["common_import_select_file"] = "Select file";
$lang["common_inv"] = "inv";
@@ -41,8 +41,6 @@ $lang["common_last_name_required"] = "Last Name is a required field";
$lang["common_last_page"] = "Last";
$lang["common_learn_about_project"] = "to learn the latest information about the project";
$lang["common_list_of"] = "List of";
$lang["common_logo"] = "Logo";
$lang["common_logo_mark"] = "Mark";
$lang["common_logout"] = "Logout";
$lang["common_migration_needed"] = "A database migration to %1 will start after login";
$lang["common_new"] = "New";
@@ -63,8 +61,6 @@ $lang["common_return_policy"] = "Return Policy";
$lang["common_search"] = "Search";
$lang["common_search_options"] = "Search options";
$lang["common_searched_for"] = "Searched for";
$lang["common_software_short"] = "OSPOS";
$lang["common_software_title"] = "Open Source Point of Sale";
$lang["common_state"] = "County";
$lang["common_submit"] = "Submit";
$lang["common_total_spent"] = "Total Spent";

View File

@@ -1,4 +1,5 @@
<?php
<?php
$lang["config_address"] = "Company Address";
$lang["config_address_required"] = "Company Address is a required field";
$lang["config_all_set"] = "All file permissions are set correctly!";
@@ -126,7 +127,6 @@ $lang["config_financial_year_may"] = "1st of May";
$lang["config_financial_year_nov"] = "1st of November";
$lang["config_financial_year_oct"] = "1st of October";
$lang["config_financial_year_sep"] = "1st of September";
$lang["config_floating_labels"] = "Floating Labels";
$lang["config_gcaptcha_enable"] = "Login Page reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Secret Key";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key is a required field";
@@ -146,7 +146,6 @@ $lang["config_image_restrictions"] = "Image Upload Restrictions";
$lang["config_include_hsn"] = "Include Support for HSN Codes";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Shop Information";
$lang["config_input_groups"] = "Input Groups";
$lang["config_integrations"] = "Integrations";
$lang["config_integrations_configuration"] = "Third Party Integrations";
$lang["config_invoice"] = "Invoice";
@@ -176,14 +175,13 @@ $lang["config_locale_info"] = "Localisation Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_login_form"] = "Login Form Style";
$lang["config_logout"] = "Don't you want to make a backup before logging out? Click [OK] to backup, [Cancel] to logout";
$lang["config_mailchimp"] = "MailChimp";
$lang["config_mailchimp_api_key"] = "MailChimp API Key";
$lang["config_mailchimp_configuration"] = "MailChimp Configuration";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
$lang["config_mailchimp_configuration"] = "Mailchimp Configuration";
$lang["config_mailchimp_key_successfully"] = "Valid API Key";
$lang["config_mailchimp_key_unsuccessfully"] = "Invalid API Key";
$lang["config_mailchimp_lists"] = "MailChimp List(s)";
$lang["config_mailchimp_lists"] = "Mailchimp List(s)";
$lang["config_mailchimp_tooltip"] = "Click the icon for an API key";
$lang["config_message"] = "Message";
$lang["config_message_configuration"] = "Message Configuration";
@@ -291,7 +289,6 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "Tax Id";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_theme_preview"] = "Preview Theme:";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_timezone_error"] = "OSPOS Timezone is Different from your Local Timezone.";

View File

@@ -12,6 +12,7 @@ $lang["customers_confirm_delete"] = "Are you sure you want to delete the selecte
$lang["customers_confirm_restore"] = "Are you sure you want to restore the selected Customers(s)?";
$lang["customers_consent"] = "Registration consent";
$lang["customers_consent_required"] = "Registration consent is a required field";
$lang["customers_credit_limit"] = "Credit Limit";
$lang["customers_csv_import_failed"] = "The csv import failed";
$lang["customers_csv_import_nodata_wrongformat"] = "The uploaded file has no data or is incorrectly formatted";
$lang["customers_csv_import_partially_failed"] = "Customer import successful with some failures:";
@@ -32,7 +33,7 @@ $lang["customers_mailchimp_activity_open"] = "Email open";
$lang["customers_mailchimp_activity_total"] = "Email sent";
$lang["customers_mailchimp_activity_unopen"] = "Email unopen";
$lang["customers_mailchimp_email_client"] = "Email client";
$lang["customers_mailchimp_info"] = "MailChimp";
$lang["customers_mailchimp_info"] = "Mailchimp";
$lang["customers_mailchimp_member_rating"] = "Rating";
$lang["customers_mailchimp_status"] = "Status";
$lang["customers_mailchimp_vip"] = "VIP";

View File

@@ -8,7 +8,6 @@ $lang["employees_confirm_restore"] = "Are you sure you want to restore the selec
$lang["employees_current_password"] = "Current Password";
$lang["employees_current_password_invalid"] = "Current Password is invalid";
$lang["employees_employee"] = "Employee";
$lang["employees_username_duplicate"] = "Employee username is already in use. Please choose another one.";
$lang["employees_error_adding_updating"] = "Employee add or update failed";
$lang["employees_error_deleting_demo_admin"] = "You cannot delete the demo admin user";
$lang["employees_error_updating_demo_admin"] = "You cannot change the demo admin user";

View File

@@ -12,8 +12,8 @@ $lang["expenses_categories_name"] = "Category";
$lang["expenses_category_required"] = "category is a required field";
$lang["expenses_check"] = "Check";
$lang["expenses_check_filter"] = "Check";
$lang["expenses_confirm_delete"] = "Are you sure you want to delete the selected Expense(s)?";
$lang["expenses_confirm_restore"] = "Are you sure you want to restore the selected Expense(s)?";
$lang["expenses_confirm_delete"] = "Are you sure you want to delete the selected Expense?";
$lang["expenses_confirm_restore"] = "Are you sure you want to restore the selected Expense?";
$lang["expenses_credit"] = "Credit Card";
$lang["expenses_credit_filter"] = "Credit Card";
$lang["expenses_date"] = "Date";

View File

@@ -14,8 +14,8 @@ $lang["item_kits_error_adding_updating"] = "Item Kit add or update failed";
$lang["item_kits_find_kit_item"] = "Kit Item";
$lang["item_kits_info"] = "Item Kit Info";
$lang["item_kits_item"] = "Item";
$lang["item_kits_item_kit_number"] = "Barcode";
$lang["item_kits_item_kit_number_duplicate"] = "Item Kit Number is already present in the database.";
$lang["item_kits_item_kit_number"] = "";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "Barcode";
$lang["item_kits_items"] = "Items";
$lang["item_kits_kit"] = "Kit ID";

View File

@@ -1,12 +1,10 @@
<?php
<?php
$lang["login_gcaptcha"] = "I'm not a robot";
$lang["login_go"] = "Go";
$lang["login_invalid_gcaptcha"] = "Please verify that you are not a robot.";
$lang["login_invalid_gcaptcha"] = "Invalid I'm not a robot";
$lang["login_invalid_installation"] = "The installation is not correct, check your php.ini file";
$lang["login_invalid_username_and_password"] = "Invalid username and/or password.";
$lang["login_invalid_username_and_password"] = "Invalid Username or Password";
$lang["login_login"] = "Login";
$lang["login_logout"] = "Logout";
$lang["login_migration_needed"] = "A database migration to %1 will start after login.";
$lang["login_password"] = "Password";
$lang["login_username"] = "Username";
$lang["login_welcome"] = "Welcome to %1!";

View File

@@ -2,6 +2,7 @@
$lang["reports_all"] = "All";
$lang["reports_authority"] = "Authority";
$lang["reports_balance_due"] = "Balance Due";
$lang["reports_canceled"] = "Cancelled";
$lang["reports_categories"] = "Categories";
$lang["reports_categories_summary_report"] = "Categories Summary Report";

View File

@@ -32,7 +32,7 @@ $lang["sales_customer_address"] = "Address";
$lang["sales_customer_discount"] = "Discount";
$lang["sales_customer_email"] = "Email";
$lang["sales_customer_location"] = "Location";
$lang["sales_customer_mailchimp_status"] = "MailChimp status";
$lang["sales_customer_mailchimp_status"] = "Mailchimp status";
$lang["sales_customer_optional"] = "(Required for Due Payments)";
$lang["sales_customer_required"] = "(Required)";
$lang["sales_customer_total"] = "Total";
@@ -162,7 +162,7 @@ $lang["sales_tax"] = "Tax";
$lang["sales_tax_id"] = "Tax Id";
$lang["sales_tax_invoice"] = "Tax Invoice";
$lang["sales_tax_percent"] = "Tax %";
$lang["sales_taxed_ind"] = "Sales tax indicator";
$lang["sales_taxed_ind"] = "T";
$lang["sales_total"] = "Total";
$lang["sales_total_tax_exclusive"] = "Tax excluded";
$lang["sales_transaction_failed"] = "Sales Transaction failed";

View File

@@ -28,12 +28,11 @@ $lang["common_gender"] = "Gender";
$lang["common_gender_female"] = "F";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "Icon";
$lang["common_id"] = "ID";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Change";
$lang["common_import_csv"] = "CSV Import";
$lang["common_import_full_path"] = "Full path to CSV file required";
$lang["common_import_full_path"] = "Full path to csv file required";
$lang["common_import_remove_file"] = "Remove";
$lang["common_import_select_file"] = "Select file";
$lang["common_inv"] = "inv";
@@ -42,10 +41,8 @@ $lang["common_last_name_required"] = "Last Name is a required field.";
$lang["common_last_page"] = "Last";
$lang["common_learn_about_project"] = "to learn the latest information about the project.";
$lang["common_list_of"] = "List of";
$lang["common_logo"] = "Logo";
$lang["common_logo_mark"] = "Mark";
$lang["common_logout"] = "";
$lang["common_migration_needed"] = "";
$lang["common_logout"] = "Logout";
$lang["common_migration_needed"] = "A database migration to %1 will start after login.";
$lang["common_new"] = "New";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "There are no people to display.";
@@ -64,8 +61,6 @@ $lang["common_return_policy"] = "Return Policy";
$lang["common_search"] = "Search";
$lang["common_search_options"] = "Search options";
$lang["common_searched_for"] = "Searched for";
$lang["common_software_short"] = "OSPOS";
$lang["common_software_title"] = "Open Source Point of Sale";
$lang["common_state"] = "State";
$lang["common_submit"] = "Submit";
$lang["common_total_spent"] = "Total Spent";

View File

@@ -27,7 +27,7 @@ $lang["config_barcode_page_width"] = "Display page width";
$lang["config_barcode_price"] = "Price";
$lang["config_barcode_second_row"] = "Row 2";
$lang["config_barcode_third_row"] = "Row 3";
$lang["config_barcode_tooltip"] = "Warning: This feature can cause duplicate items to be imported or created. Do not use if you do not want duplicate barcodes.";
$lang["config_barcode_tooltip"] = "Warning: This feature can cause duplicate items to be imported or created. Do not use if you do not want duplicate barcodes.";
$lang["config_barcode_type"] = "Barcode Type";
$lang["config_barcode_width"] = "Width (px)";
$lang["config_bottom"] = "Bottom";
@@ -127,7 +127,6 @@ $lang["config_financial_year_may"] = "1st of May";
$lang["config_financial_year_nov"] = "1st of November";
$lang["config_financial_year_oct"] = "1st of October";
$lang["config_financial_year_sep"] = "1st of September";
$lang["config_floating_labels"] = "Floating Labels";
$lang["config_gcaptcha_enable"] = "Login Page reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Secret Key";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key is a required field";
@@ -147,7 +146,6 @@ $lang["config_image_restrictions"] = "Image Upload Restrictions";
$lang["config_include_hsn"] = "Include Support for HSN Codes";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_input_groups"] = "Input Groups";
$lang["config_integrations"] = "Integrations";
$lang["config_integrations_configuration"] = "Third Party Integrations";
$lang["config_invoice"] = "Invoice";
@@ -177,14 +175,13 @@ $lang["config_locale_info"] = "Localization Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_login_form"] = "Login Form Style";
$lang["config_logout"] = "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.";
$lang["config_mailchimp"] = "MailChimp";
$lang["config_mailchimp_api_key"] = "MailChimp API Key";
$lang["config_mailchimp_configuration"] = "MailChimp Configuration";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
$lang["config_mailchimp_configuration"] = "Mailchimp Configuration";
$lang["config_mailchimp_key_successfully"] = "API Key is valid.";
$lang["config_mailchimp_key_unsuccessfully"] = "API Key is invalid.";
$lang["config_mailchimp_lists"] = "MailChimp List(s)";
$lang["config_mailchimp_lists"] = "Mailchimp List(s)";
$lang["config_mailchimp_tooltip"] = "Click the icon for an API Key.";
$lang["config_message"] = "Message";
$lang["config_message_configuration"] = "Message Configuration";
@@ -292,7 +289,6 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "Tax Id";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_theme_preview"] = "Preview Theme:";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_timezone_error"] = "OSPOS Timezone is Different from your Local Timezone.";

View File

@@ -12,6 +12,7 @@ $lang["customers_confirm_delete"] = "Are you sure you want to delete the selecte
$lang["customers_confirm_restore"] = "Are you sure you want to restore selected customers(s)?";
$lang["customers_consent"] = "Registration consent";
$lang["customers_consent_required"] = "Registration consent is a required field.";
$lang["customers_credit_limit"] = "Credit Limit";
$lang["customers_csv_import_failed"] = "CSV import failed";
$lang["customers_csv_import_nodata_wrongformat"] = "The uploaded file has no data or is incorrectly formatted.";
$lang["customers_csv_import_partially_failed"] = "Customer import successful with some failures:";
@@ -32,7 +33,7 @@ $lang["customers_mailchimp_activity_open"] = "Email open";
$lang["customers_mailchimp_activity_total"] = "Email sent";
$lang["customers_mailchimp_activity_unopen"] = "Email unopen";
$lang["customers_mailchimp_email_client"] = "Email client";
$lang["customers_mailchimp_info"] = "MailChimp";
$lang["customers_mailchimp_info"] = "Mailchimp";
$lang["customers_mailchimp_member_rating"] = "Rating";
$lang["customers_mailchimp_status"] = "Status";
$lang["customers_mailchimp_vip"] = "VIP";

View File

@@ -8,7 +8,6 @@ $lang["employees_confirm_restore"] = "Are you sure you want to restore selected
$lang["employees_current_password"] = "Current Password";
$lang["employees_current_password_invalid"] = "Current Password is invalid.";
$lang["employees_employee"] = "Employee";
$lang["employees_username_duplicate"] = "Employee username is already in use. Please choose another one.";
$lang["employees_error_adding_updating"] = "Employee add or update failed.";
$lang["employees_error_deleting_demo_admin"] = "You can not delete the demo admin user.";
$lang["employees_error_updating_demo_admin"] = "You can not change the demo admin user.";

View File

@@ -12,8 +12,8 @@ $lang["expenses_categories_name"] = "Category";
$lang["expenses_category_required"] = "category is a required field";
$lang["expenses_check"] = "Check";
$lang["expenses_check_filter"] = "Check";
$lang["expenses_confirm_delete"] = "Are you sure you want to delete the selected Expense(s)?";
$lang["expenses_confirm_restore"] = "Are you sure you want to restore the selected Expense(s)?";
$lang["expenses_confirm_delete"] = "Are you sure you want to delete the selected Expense?";
$lang["expenses_confirm_restore"] = "Are you sure you want to restore the selected Expenses(s)?";
$lang["expenses_credit"] = "Credit Card";
$lang["expenses_credit_filter"] = "Credit Card";
$lang["expenses_date"] = "Date";

View File

@@ -80,7 +80,7 @@ $lang["items_remove_image"] = "Remove Image";
$lang["items_reorder_level"] = "Reorder Level";
$lang["items_reorder_level_number"] = "Reorder Level must be a number.";
$lang["items_reorder_level_required"] = "Reorder Level is a required field.";
$lang["items_retrive_item_info"] = "Retrieve Item Info";
$lang["items_retrive_item_info"] = "Retrive Item Info";
$lang["items_sales_tax_1"] = "Sales Tax";
$lang["items_sales_tax_2"] = "Sales Tax 2";
$lang["items_search_attributes"] = "Search Attributes";

View File

@@ -2,12 +2,9 @@
$lang["login_gcaptcha"] = "I'm not a robot.";
$lang["login_go"] = "Go";
$lang["login_invalid_gcaptcha"] = "Please verify that you are not a robot.";
$lang["login_invalid_gcaptcha"] = "Invalid I'm not a robot.";
$lang["login_invalid_installation"] = "The installation is not correct, check your php.ini file.";
$lang["login_invalid_username_and_password"] = "Invalid username and/or password.";
$lang["login_invalid_username_and_password"] = "Invalid Username or Password.";
$lang["login_login"] = "Login";
$lang["login_logout"] = "Logout";
$lang["login_migration_needed"] = "A database migration to %1 will start after login.";
$lang["login_password"] = "Password";
$lang["login_username"] = "Username";
$lang["login_welcome"] = "Welcome to %1!";

View File

@@ -2,6 +2,7 @@
$lang["reports_all"] = "All";
$lang["reports_authority"] = "Authority";
$lang["reports_balance_due"] = "Balance Due";
$lang["reports_canceled"] = "Canceled";
$lang["reports_categories"] = "Categories";
$lang["reports_categories_summary_report"] = "Categories Summary Report";

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