mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-11-08 23:43:32 -05:00
Merge remote-tracking branch 'OpensourcePOS/master' into plugin-system-fresh
Resolve language-file conflicts by taking master's English-removal cleanup across non-English locales, while stripping the MailChimp keys master reintroduced (already moved to MailchimpPlugin on this branch) and reapplying this branch's plugins/integrations rename and new Module.php plugins keys where master lacked them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
3b36c20f68
843 files changed
+11667
-11155
No files matched your search
@@ -35,8 +35,6 @@ git-svn-diff.py
|
||||
branding/
|
||||
|
||||
# Build configs (not needed at runtime)
|
||||
composer.json
|
||||
composer.lock
|
||||
package.json
|
||||
package-lock.json
|
||||
gulpfile.js
|
||||
|
||||
@@ -81,6 +81,7 @@ body:
|
||||
label: 🔧 PHP Version
|
||||
description: What version of PHP are you running?
|
||||
options:
|
||||
- PHP 8.5
|
||||
- PHP 8.4
|
||||
- PHP 8.3
|
||||
- PHP 8.2
|
||||
|
||||
@@ -50,12 +50,12 @@ The `GITHUB_TOKEN` is automatically provided by GitHub Actions.
|
||||
|
||||
This repository also has these workflows:
|
||||
- `.github/workflows/main.yml` - PHP linting with PHP-CS-Fixer
|
||||
- `.github/workflows/phpunit.yml` - PHPUnit tests (runs on all PHP versions 8.1-8.4)
|
||||
- `.github/workflows/phpunit.yml` - PHPUnit tests (runs on all PHP versions 8.2-8.5)
|
||||
- `.github/workflows/php-linter.yml` - PHP linting
|
||||
|
||||
## Testing
|
||||
|
||||
PHPUnit tests are run separately via `.github/workflows/phpunit.yml` on every push and pull request, testing against PHP 8.1, 8.2, 8.3, and 8.4.
|
||||
PHPUnit tests are run separately via `.github/workflows/phpunit.yml` on every push and pull request, testing against PHP 8.2, 8.3, 8.4, and 8.5.
|
||||
|
||||
To test the build workflow:
|
||||
1. Add the required secrets
|
||||
|
||||
@@ -40,16 +40,6 @@ jobs:
|
||||
extensions: intl, mbstring, mysqli, gd, bcmath, zip
|
||||
coverage: none
|
||||
|
||||
- name: Verify PHP patch level
|
||||
run: |
|
||||
MIN="8.2.35"
|
||||
ACTUAL=$(php -r 'echo PHP_VERSION;')
|
||||
if [ "$(printf '%s\n' "$MIN" "$ACTUAL" | sort -V | head -1)" != "$MIN" ]; then
|
||||
echo "::error::PHP $ACTUAL is below patched minimum $MIN (CVE-2026-109618 / CVE-2026-109619)"
|
||||
exit 1
|
||||
fi
|
||||
echo "PHP $ACTUAL meets minimum $MIN"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
@@ -203,6 +193,7 @@ jobs:
|
||||
context: .
|
||||
target: ospos
|
||||
platforms: linux/amd64,linux/arm64
|
||||
pull: true
|
||||
push: true
|
||||
tags: ${{ steps.tags.outputs.tags }}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ jobs:
|
||||
- '8.2'
|
||||
- '8.3'
|
||||
- '8.4'
|
||||
- '8.5'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -43,22 +44,6 @@ jobs:
|
||||
extensions: tokenizer
|
||||
coverage: none
|
||||
|
||||
- name: Verify PHP patch level
|
||||
run: |
|
||||
ACTUAL=$(php -r 'echo PHP_VERSION;')
|
||||
case "${ACTUAL%.*}" in
|
||||
8.2) MIN="8.2.35" ;;
|
||||
8.3) MIN="8.3.36" ;;
|
||||
8.4) MIN="8.4.27" ;;
|
||||
8.5) MIN="8.5.12" ;;
|
||||
*) echo "::error::Unsupported PHP branch: $ACTUAL"; exit 1 ;;
|
||||
esac
|
||||
if [ "$(printf '%s\n' "$MIN" "$ACTUAL" | sort -V | head -1)" != "$MIN" ]; then
|
||||
echo "::error::PHP $ACTUAL is below patched minimum $MIN (CVE-2026-109618 / CVE-2026-109619)"
|
||||
exit 1
|
||||
fi
|
||||
echo "PHP $ACTUAL meets minimum $MIN"
|
||||
|
||||
- name: Get composer cache directory
|
||||
run: echo "COMPOSER_CACHE_FILES_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
|
||||
|
||||
|
||||
@@ -2,25 +2,41 @@ name: PHP Linting
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
phplint:
|
||||
|
||||
name: PHP Lint ${{ matrix.php-version }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-version:
|
||||
- '8.2'
|
||||
- '8.3'
|
||||
- '8.4'
|
||||
- '8.5'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: PHP Lint 8.2
|
||||
uses: dbfx/github-phplint/8.2@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
- name: PHP Lint 8.3
|
||||
uses: dbfx/github-phplint/8.3@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
- name: PHP Lint 8.4
|
||||
uses: dbfx/github-phplint/8.4@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
php-version: ${{ matrix.php-version }}
|
||||
coverage: none
|
||||
|
||||
- name: Run PHP Lint
|
||||
run: |
|
||||
if [ "${{ matrix.php-version }}" = "8.2" ]; then
|
||||
find . -type f -name "*.php" ! -path "./vendor/*" ! -path "./node_modules/*" -exec sh -c 'for file do php -l "$file" || exit 1; done' sh {} +
|
||||
else
|
||||
find . -type f -name "*.php" ! -path "./vendor/*" ! -path "./node_modules/*" -exec php -l {} +
|
||||
fi
|
||||
php -l spark
|
||||
@@ -28,7 +28,7 @@ permissions:
|
||||
jobs:
|
||||
test:
|
||||
name: PHP ${{ matrix.php-version }} / ${{ matrix.db-image }} Tests
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -37,6 +37,7 @@ jobs:
|
||||
- '8.2'
|
||||
- '8.3'
|
||||
- '8.4'
|
||||
- '8.5'
|
||||
db-image:
|
||||
- 'mariadb:10.5'
|
||||
- 'mariadb:10.6'
|
||||
@@ -56,41 +57,6 @@ jobs:
|
||||
extensions: intl, mbstring, mysqli
|
||||
coverage: none
|
||||
|
||||
- name: Verify PHP patch level
|
||||
run: |
|
||||
ACTUAL=$(php -r 'echo PHP_VERSION;')
|
||||
case "${ACTUAL%.*}" in
|
||||
8.2) MIN="8.2.35" ;;
|
||||
8.3) MIN="8.3.36" ;;
|
||||
8.4) MIN="8.4.27" ;;
|
||||
8.5) MIN="8.5.12" ;;
|
||||
*) echo "::error::Unsupported PHP branch: $ACTUAL"; exit 1 ;;
|
||||
esac
|
||||
if [ "$(printf '%s\n' "$MIN" "$ACTUAL" | sort -V | head -1)" != "$MIN" ]; then
|
||||
echo "::error::PHP $ACTUAL is below patched minimum $MIN (CVE-2026-109618 / CVE-2026-109619)"
|
||||
exit 1
|
||||
fi
|
||||
echo "PHP $ACTUAL meets minimum $MIN"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
|
||||
- name: Get npm cache directory
|
||||
run: echo "NPM_CACHE_DIR=$(npm config get cache)" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache npm dependencies
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ env.NPM_CACHE_DIR }}
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-node-
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Start database
|
||||
run: |
|
||||
docker run -d --name mysql \
|
||||
@@ -124,7 +90,7 @@ jobs:
|
||||
run: echo "COMPOSER_CACHE_FILES_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ env.COMPOSER_CACHE_FILES_DIR }}
|
||||
key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
|
||||
|
||||
@@ -212,16 +212,34 @@ No changes to `composer.json` are needed — `App\Plugins\{Name}\Tests\*` resolv
|
||||
|
||||
## Localization
|
||||
|
||||
- When adding new keys to language files, add the key to all `app/Language/*/` variants
|
||||
- **New keys must be inserted in alphabetical order** within the language array
|
||||
- Non-English files must use an empty string (`''`) as the value when no translation is provided — CodeIgniter automatically falls back to the default (`en`) language. This applies only when a translation genuinely isn't available yet.
|
||||
- **When explicitly asked to translate a phrase for a non-English language file, always provide the actual translation** — never leave the value as an empty string, and never leave source English text in a non-English language file
|
||||
- Never copy English text from a neighboring key as a value for a non-English language file, even if that neighboring key is already untranslated — evaluate each key independently
|
||||
- Only `app/Language/en/` and `app/Language/en-GB/` should contain English strings
|
||||
- When translating a string containing placeholders (e.g. `{filePath}`, `{reason}`) or literal filenames/keys (e.g. `throttle.key`, `.env`), keep that placeholder or filename text unchanged and untranslated — move it to whatever position is grammatically correct in the translated sentence
|
||||
- Plugin language files (`app/Plugins/*/Language/`) follow the same localization rules as `app/Language/`
|
||||
- Use `'` to encapsulate key and string values. If the value contains `'` then it should be escaped as `\'`
|
||||
- Align the `=>` of a newly inserted key with the `=>` column already used by the rest of the file, if that file pads keys to a fixed column (not all do — some files have no padding at all). If the new key is longer than the widest existing key and would push the alignment column further right, reformat the whole file to the new wider column rather than leaving only the new line at a different width
|
||||
- **Key Parity**: All catalogs must maintain the exact same keys as `app/Language/en/` (no extra or missing keys). Adding a key requires adding it to `en/` with the English source text, and to all other `app/Language/*/` files (using `''` if untranslated, including `en-GB`).
|
||||
- **Alphabetical Ordering**: All catalogs must be sorted alphabetically by key, **except `Calendar.php`** (ordered chronologically by day and month sequences).
|
||||
- **Direct Fallback to `en`**: Non-English files use `''` for untranslated strings to trigger dynamic fallback to `en` (`nl-NL > en`, `nl-BE > en`, `hr > en`, `en-GB > en`).
|
||||
- **British English (`en-GB`)**: Only include strings differing in UK spelling/vocabulary (*Cheque*, *Centre*, *Post Code*). Keep identical strings as `''` to inherit updates from `en`.
|
||||
- **Locale Naming (BCP 47)**:
|
||||
- **General languages**: Use bare ISO language codes (`hr` not `hr-HR`, `fr`, `it`, `da`, `ckb`). Do not add redundant country tags when a language has no regional distinction.
|
||||
- **Regional / dialect variants**: Use `{lang}-{REGION}` when targeting a specific regional dialect (`nl-NL` & `nl-BE`, `de-DE` & `de-CH`, `es-ES` & `es-MX`, `en-GB`, `pt-BR`). Chinese uses script subtags (`zh-Hans`, `zh-Hant`).
|
||||
- **Locale Registration**: Register new locales in both `app/Config/App.php` (`$supportedLocales`) and `app/Helpers/locale_helper.php` (`get_languages()`, format: `'code:name' => 'English Name'`).
|
||||
- **Calendar Convention (`may` vs `mayl`)**: `may` is the 3-letter abbreviation; `mayl` is the full month name (*May* long). Datepickers and full-month arrays must reference `lang('Calendar.mayl')`, while short-month arrays reference `lang('Calendar.may')`.
|
||||
- **Translation Integrity**:
|
||||
- When deprecating or renaming keys, always migrate existing non-English human translations to the new key/module. If a legacy translation references the wrong entity (e.g. 'item' in Attributes), reset it to `''`.
|
||||
- When an English string in `app/Language/en/` is changed or rewritten, reset the corresponding non-English strings in `app/Language/*/` to `''` so they dynamically fall back to the updated English text and signal to translators that a new translation is required.
|
||||
- **Placeholders & ICU Formatting**:
|
||||
- Interpolate user-facing strings with `lang()` and **named** placeholders (e.g. `{company}`) rather than string concatenation or positional placeholders (`{0}`).
|
||||
- Translations must preserve all placeholders (`{0}`, `{name}`) and literal keys/filenames untranslated (reordering within the sentence to fit natural grammar is encouraged); never omit them.
|
||||
- Placeholder-bearing translations use ICU `MessageFormatter`: double literal braces (`{{`/`}}`) and apostrophes (`''`) to avoid syntax warnings.
|
||||
- **Punctuation & Wrappers**:
|
||||
- No leading or trailing whitespace in strings; never rely on trailing spaces for concatenation.
|
||||
- If an English string is enclosed in brackets `[...]` or parentheses `(...)`, translations must preserve that enclosure (or localized fullwidth equivalents like `【...】` / `(...)`).
|
||||
- Watch for duplicate punctuation typos (e.g. `::` or `..` instead of ellipsis `...`).
|
||||
- Indicator flags (`taxed_ind`, `nontaxed_ind`) and report badges (`Reports.code_*`) must be kept compact (single characters or short abbreviations, never full sentences or punctuation placeholders like `'-'`, `'.'`). Untranslated indicators must remain `''` to inherit from `en`.
|
||||
- **Language File Syntax & Formatting**:
|
||||
- Only `app/Language/en/` and `app/Language/en-GB/` may contain English prose. Universal brand names and acronyms (`ID`, `SMS`, `POS`, `Mailchimp`, `CSV`) are acceptable in non-English files, but never copy English sentences or phrases; leave as `''` to inherit from `en`.
|
||||
- `Datepicker.weekstart` is a numeric calendar setting (`0` = Sunday, `1` = Monday, `6` = Saturday), not English text — never wipe it to `''`.
|
||||
- Enclose keys and strings in `'` (escape internal quotes as `\'`). Array keys must be unique.
|
||||
- Align `=>` to match the file's standard column padding (e.g. column 40). Avoid unnecessarily re-padding entire catalogs for a single long key.
|
||||
- Plugin language files (`app/Plugins/*/Language/`) follow the same rules.
|
||||
- **Validation**: Run `vendor/bin/phpunit tests/LanguageFilesTest.php` to verify syntax, key parity, sorting, duplicate rejection, and locale registration.
|
||||
|
||||
## Security
|
||||
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ All notable changes to this project will be documented in this file.
|
||||
- refactor(gulp): modernize build pipeline and streamline dependencies (#4759) by @BudsieBuds
|
||||
- refactor(tests): normalize test namespaces to PSR-4 and clean up composer dependencies (#4758) by @BudsieBuds
|
||||
- fix(ci): trigger PHP linting workflow on pull requests (#4764) by @BudsieBuds
|
||||
- fix(security): pin patched PHP 8.2.35+ for CVE-2026-109618/109619 (#4767) by @jekkos
|
||||
- fix(security): pin patched PHP 8.2.35+ (#4767) by @jekkos
|
||||
|
||||
## [3.4.2] - 2026-09-30
|
||||
- Fix writable folder permission check (#4270) (#4273) by @jekkos
|
||||
|
||||
+12
-4
@@ -1,4 +1,4 @@
|
||||
FROM php:8.2.35-apache AS ospos
|
||||
FROM php:8.2-apache AS ospos
|
||||
LABEL maintainer="jekkos"
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
@@ -9,11 +9,19 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& a2enmod rewrite
|
||||
|
||||
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini
|
||||
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini \
|
||||
&& echo "expose_php = Off" > /usr/local/etc/php/conf.d/security.ini
|
||||
|
||||
WORKDIR /app
|
||||
COPY --chown=www-data:www-data . /app
|
||||
RUN chmod 750 /app/writable/logs /app/writable/uploads /app/writable/cache /app/public/uploads /app/public/uploads/item_pics \
|
||||
COPY . /app
|
||||
|
||||
RUN --mount=type=bind,from=composer:2,source=/usr/bin/composer,target=/usr/local/bin/composer \
|
||||
composer --no-interaction --no-plugins --no-scripts check-platform-reqs --lock --no-dev
|
||||
|
||||
RUN chown -R root:www-data /app \
|
||||
&& chmod -R go-w,o= /app \
|
||||
&& chown -R www-data:www-data /app/writable /app/public/uploads \
|
||||
&& chmod 750 /app/writable/logs /app/writable/uploads /app/writable/cache /app/public/uploads /app/public/uploads/item_pics \
|
||||
&& chmod 640 /app/writable/uploads/importCustomers.csv \
|
||||
&& ln -s /app/*[^public] /var/www \
|
||||
&& rm -rf /var/www/html \
|
||||
|
||||
+4
-1
@@ -175,11 +175,12 @@ class App extends BaseConfig
|
||||
'fa',
|
||||
'fr',
|
||||
'he',
|
||||
'hr-HR',
|
||||
'hr',
|
||||
'hu',
|
||||
'hy',
|
||||
'id',
|
||||
'it',
|
||||
'ka',
|
||||
'km',
|
||||
'lo',
|
||||
'ml',
|
||||
@@ -191,6 +192,8 @@ class App extends BaseConfig
|
||||
'ro',
|
||||
'ru',
|
||||
'sv',
|
||||
'sw-KE',
|
||||
'sw-TZ',
|
||||
'ta',
|
||||
'th',
|
||||
'tl',
|
||||
|
||||
@@ -127,7 +127,7 @@ class Database extends Config
|
||||
case 'testing':
|
||||
$this->defaultGroup = 'tests';
|
||||
break;
|
||||
case 'development';
|
||||
case 'development':
|
||||
$this->defaultGroup = 'development';
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ use Config\Database;
|
||||
class OSPOS extends BaseConfig
|
||||
{
|
||||
public array $settings = [];
|
||||
public string $commit_sha1 = 'dev'; // TODO: Travis scripts need to be updated to replace this with the commit hash on build
|
||||
public string $commit_sha1 = 'dev';
|
||||
private CacheInterface $cache;
|
||||
|
||||
public function __construct()
|
||||
|
||||
@@ -86,8 +86,6 @@ class OSPOSRules
|
||||
|
||||
$result = curl_exec($ch);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
$status = json_decode($result, true);
|
||||
|
||||
if (!empty($status['success'])) {
|
||||
|
||||
+275
-166
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\TransferObjects\Cashups\CashupAmounts;
|
||||
use App\Models\Cashup;
|
||||
use App\Models\Expense;
|
||||
use App\Models\Reports\Summary_payments;
|
||||
@@ -53,200 +54,300 @@ class Cashups extends Secure_Controller
|
||||
$sort = $this->sanitizeSortColumn(cashup_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'cashup_id');
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$filters = [
|
||||
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS), // TODO: Is this the best way to filter dates
|
||||
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'end_date' => $this->request->getGet('end_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'is_deleted' => false
|
||||
];
|
||||
|
||||
// Check if any filter is set in the multiselect dropdown
|
||||
$request_filters = array_fill_keys($this->request->getGet('filters', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? [], true);
|
||||
$filters = array_merge($filters, $request_filters);
|
||||
$cash_ups = $this->cashup->search($search, $filters, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->cashup->get_found_rows($search, $filters);
|
||||
$data_rows = [];
|
||||
foreach ($cash_ups->getResult() as $cash_up) {
|
||||
$data_rows[] = get_cash_up_data_row($cash_up);
|
||||
$requestFilters = array_fill_keys($this->request->getGet('filters', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? [], true);
|
||||
$filters = array_merge($filters, $requestFilters);
|
||||
$cashUps = $this->cashup->search($search, $filters, $limit, $offset, $sort, $order);
|
||||
$totalRows = $this->cashup->get_found_rows($search, $filters);
|
||||
$dataRows = [];
|
||||
foreach ($cashUps->getResult() as $cashUp) {
|
||||
$dataRows[] = get_cash_up_data_row($cashUp);
|
||||
}
|
||||
|
||||
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
|
||||
return $this->response->setJSON(['total' => $totalRows, 'rows' => $dataRows]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $cashup_id
|
||||
* @param int $cashupId
|
||||
* @return string
|
||||
*/
|
||||
public function getView(int $cashup_id = NEW_ENTRY): string
|
||||
public function getView(int $cashupId = NEW_ENTRY): string
|
||||
{
|
||||
$data = [];
|
||||
$data['employees'] = $this->buildEmployeeLookup();
|
||||
|
||||
$data['employees'] = [];
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
foreach (get_object_vars($employee) as $property => $value) {
|
||||
$employee->$property = $value;
|
||||
}
|
||||
|
||||
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
}
|
||||
|
||||
$cash_ups_info = $this->cashup->get_info($cashup_id);
|
||||
|
||||
foreach (get_object_vars($cash_ups_info) as $property => $value) {
|
||||
$cash_ups_info->$property = $value;
|
||||
}
|
||||
$cashUpsInfo = $this->normalizeCashupInfo($cashupId);
|
||||
|
||||
// Open cashup
|
||||
if ($cash_ups_info->cashup_id == NEW_ENTRY) {
|
||||
$cash_ups_info->open_date = date('Y-m-d H:i:s');
|
||||
$cash_ups_info->close_date = $cash_ups_info->open_date;
|
||||
$cash_ups_info->open_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$cash_ups_info->close_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
if ($cashUpsInfo->cashup_id == NEW_ENTRY) {
|
||||
$this->initializeNewCashup($cashUpsInfo);
|
||||
}
|
||||
// If all the amounts are null or 0 that means it's a close cashup
|
||||
elseif (
|
||||
floatval($cash_ups_info->closed_amount_cash) == 0
|
||||
&& floatval($cash_ups_info->closed_amount_due) == 0
|
||||
&& floatval($cash_ups_info->closed_amount_card) == 0
|
||||
&& floatval($cash_ups_info->closed_amount_check) == 0
|
||||
) {
|
||||
// Set the close date and time to the actual as this is a close session
|
||||
$cash_ups_info->close_date = date('Y-m-d H:i:s');
|
||||
|
||||
// The closed amount starts with the open amount -/+ any trasferred amount
|
||||
$cash_ups_info->closed_amount_cash = $cash_ups_info->open_amount_cash + $cash_ups_info->transfer_amount_cash;
|
||||
|
||||
// If it's date mode only and not date & time truncate the open and end date to date only
|
||||
if (empty($this->config['date_or_time_format'])) {
|
||||
if ($cash_ups_info->open_date != null) {
|
||||
$start_date = substr($cash_ups_info->open_date, 0, 10);
|
||||
} else {
|
||||
$start_date = null;
|
||||
}
|
||||
if ($cash_ups_info->close_date != null) {
|
||||
$end_date = substr($cash_ups_info->close_date, 0, 10);
|
||||
} else {
|
||||
$end_date = null;
|
||||
}
|
||||
// Search for all the payments given the time range
|
||||
$inputs = [
|
||||
'start_date' => $start_date,
|
||||
'end_date' => $end_date,
|
||||
'sale_type' => 'complete',
|
||||
'location_id' => 'all'
|
||||
];
|
||||
} else {
|
||||
// Search for all the payments given the time range
|
||||
$inputs = [
|
||||
'start_date' => $cash_ups_info->open_date,
|
||||
'end_date' => $cash_ups_info->close_date,
|
||||
'sale_type' => 'complete',
|
||||
'location_id' => 'all'
|
||||
];
|
||||
}
|
||||
|
||||
// Get all the transactions payment summaries
|
||||
$reports_data = $this->summary_payments->getData($inputs);
|
||||
|
||||
foreach ($reports_data as $row) {
|
||||
if ($row['trans_group'] == lang('Reports.trans_payments')) {
|
||||
if ($row['trans_type'] == lang('Sales.cash')) {
|
||||
$cash_ups_info->closed_amount_cash += $row['trans_amount'];
|
||||
} elseif ($row['trans_type'] == lang('Sales.due')) {
|
||||
$cash_ups_info->closed_amount_due += $row['trans_amount'];
|
||||
} elseif (
|
||||
$row['trans_type'] == lang('Sales.debit') ||
|
||||
$row['trans_type'] == lang('Sales.credit')
|
||||
) {
|
||||
$cash_ups_info->closed_amount_card += $row['trans_amount'];
|
||||
} elseif ($row['trans_type'] == lang('Sales.check')) {
|
||||
$cash_ups_info->closed_amount_check += $row['trans_amount'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Lookup expenses paid in cash
|
||||
$filters = [
|
||||
'only_cash' => true,
|
||||
'only_due' => false,
|
||||
'only_check' => false,
|
||||
'only_credit' => false,
|
||||
'only_debit' => false,
|
||||
'is_deleted' => false
|
||||
];
|
||||
|
||||
$payments = $this->expense->get_payments_summary('', array_merge($inputs, $filters));
|
||||
|
||||
foreach ($payments as $row) {
|
||||
$cash_ups_info->closed_amount_cash -= $row['amount'];
|
||||
}
|
||||
|
||||
$cash_ups_info->closed_amount_total = $this->_calculate_total($cash_ups_info->open_amount_cash, $cash_ups_info->transfer_amount_cash, $cash_ups_info->closed_amount_cash, $cash_ups_info->closed_amount_due, $cash_ups_info->closed_amount_card, $cash_ups_info->closed_amount_check);
|
||||
elseif ($this->isPendingClose($cashUpsInfo)) {
|
||||
$this->closeCashup($cashUpsInfo);
|
||||
}
|
||||
|
||||
$data['cash_ups_info'] = $cash_ups_info;
|
||||
$data['cash_ups_info'] = $cashUpsInfo;
|
||||
|
||||
return view("cashups/form", $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $row_id
|
||||
* @return ResponseInterface
|
||||
* @return array
|
||||
*/
|
||||
public function getRow(int $row_id): ResponseInterface
|
||||
private function buildEmployeeLookup(): array
|
||||
{
|
||||
$cash_ups_info = $this->cashup->get_info($row_id);
|
||||
$data_row = get_cash_up_data_row($cash_ups_info);
|
||||
$employees = [];
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
foreach (get_object_vars($employee) as $property => $value) {
|
||||
$employee->$property = $value;
|
||||
}
|
||||
|
||||
return $this->response->setJSON($data_row);
|
||||
$employees[$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
}
|
||||
|
||||
return $employees;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $cashup_id
|
||||
* @return ResponseInterface
|
||||
* @param int $cashupId
|
||||
* @return object
|
||||
*/
|
||||
public function postSave(int $cashup_id = NEW_ENTRY): ResponseInterface
|
||||
private function normalizeCashupInfo(int $cashupId): object
|
||||
{
|
||||
$open_date = $this->request->getPost('open_date');
|
||||
$open_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $open_date);
|
||||
$cashUpsInfo = $this->cashup->get_info($cashupId);
|
||||
|
||||
$close_date = $this->request->getPost('close_date');
|
||||
$close_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $close_date);
|
||||
foreach (get_object_vars($cashUpsInfo) as $property => $value) {
|
||||
$cashUpsInfo->$property = $value;
|
||||
}
|
||||
|
||||
$open_amount_cash = parse_decimals($this->request->getPost('open_amount_cash'));
|
||||
$transfer_amount_cash = parse_decimals($this->request->getPost('transfer_amount_cash'));
|
||||
$closed_amount_cash = parse_decimals($this->request->getPost('closed_amount_cash'));
|
||||
$closed_amount_due = parse_decimals($this->request->getPost('closed_amount_due'));
|
||||
$closed_amount_card = parse_decimals($this->request->getPost('closed_amount_card'));
|
||||
$closed_amount_check = parse_decimals($this->request->getPost('closed_amount_check'));
|
||||
return $cashUpsInfo;
|
||||
}
|
||||
|
||||
$logged_in_employee = $this->employee->get_logged_in_employee_info();
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @return void
|
||||
*/
|
||||
private function initializeNewCashup(object $cashUpsInfo): void
|
||||
{
|
||||
$cashUpsInfo->open_date = date('Y-m-d H:i:s');
|
||||
$cashUpsInfo->close_date = $cashUpsInfo->open_date;
|
||||
$cashUpsInfo->open_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$cashUpsInfo->close_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
}
|
||||
|
||||
$cash_up_data = [
|
||||
'open_date' => $open_date_formatter->format('Y-m-d H:i:s'),
|
||||
'close_date' => $close_date_formatter->format('Y-m-d H:i:s'),
|
||||
'open_amount_cash' => $open_amount_cash,
|
||||
'transfer_amount_cash' => $transfer_amount_cash,
|
||||
'closed_amount_cash' => $closed_amount_cash,
|
||||
'closed_amount_due' => $closed_amount_due,
|
||||
'closed_amount_card' => $closed_amount_card,
|
||||
'closed_amount_check' => $closed_amount_check,
|
||||
'closed_amount_total' => $this->_calculate_total($open_amount_cash, $transfer_amount_cash, $closed_amount_due, $closed_amount_cash, $closed_amount_card, $closed_amount_check),
|
||||
'note' => $this->request->getPost('note') != null,
|
||||
'description' => $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'open_employee_id' => $logged_in_employee->person_id,
|
||||
'close_employee_id' => $logged_in_employee->person_id,
|
||||
'deleted' => $this->request->getPost('deleted') != null
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @return bool
|
||||
*/
|
||||
private function isPendingClose(object $cashUpsInfo): bool
|
||||
{
|
||||
return floatval($cashUpsInfo->closed_amount_cash) == 0
|
||||
&& floatval($cashUpsInfo->closed_amount_due) == 0
|
||||
&& floatval($cashUpsInfo->closed_amount_card) == 0
|
||||
&& floatval($cashUpsInfo->closed_amount_check) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @return void
|
||||
*/
|
||||
private function closeCashup(object $cashUpsInfo): void
|
||||
{
|
||||
// Set the close date and time to the actual as this is a close session
|
||||
$cashUpsInfo->close_date = date('Y-m-d H:i:s');
|
||||
|
||||
// The closed amount starts with the open amount -/+ any transferred amount
|
||||
$cashUpsInfo->closed_amount_cash = $cashUpsInfo->open_amount_cash + $cashUpsInfo->transfer_amount_cash;
|
||||
|
||||
$inputs = $this->buildReportDateRangeInputs($cashUpsInfo);
|
||||
|
||||
// Get all the transactions payment summaries
|
||||
$reportsData = $this->summary_payments->getData($inputs);
|
||||
$this->applyPaymentTotals($cashUpsInfo, $reportsData);
|
||||
|
||||
$this->subtractCashExpenses($cashUpsInfo, $inputs);
|
||||
|
||||
$cashUpsInfo->closed_amount_total = $this->calculateTotal(new CashupAmounts(
|
||||
$cashUpsInfo->open_amount_cash,
|
||||
$cashUpsInfo->transfer_amount_cash,
|
||||
$cashUpsInfo->closed_amount_cash,
|
||||
$cashUpsInfo->closed_amount_due,
|
||||
$cashUpsInfo->closed_amount_card,
|
||||
$cashUpsInfo->closed_amount_check
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @return array
|
||||
*/
|
||||
private function buildReportDateRangeInputs(object $cashUpsInfo): array
|
||||
{
|
||||
// If it's date mode only and not date & time, truncate the open and end date to date only
|
||||
if (empty($this->config['date_or_time_format'])) {
|
||||
if ($cashUpsInfo->open_date != null) {
|
||||
$startDate = substr($cashUpsInfo->open_date, 0, 10);
|
||||
} else {
|
||||
$startDate = null;
|
||||
}
|
||||
if ($cashUpsInfo->close_date != null) {
|
||||
$endDate = substr($cashUpsInfo->close_date, 0, 10);
|
||||
} else {
|
||||
$endDate = null;
|
||||
}
|
||||
} else {
|
||||
$startDate = $cashUpsInfo->open_date;
|
||||
$endDate = $cashUpsInfo->close_date;
|
||||
}
|
||||
|
||||
// Search for all the payments given the time range
|
||||
return [
|
||||
'start_date' => $startDate,
|
||||
'end_date' => $endDate,
|
||||
'sale_type' => 'complete',
|
||||
'location_id' => 'all'
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @param array $reportsData
|
||||
* @return void
|
||||
*/
|
||||
private function applyPaymentTotals(object $cashUpsInfo, array $reportsData): void
|
||||
{
|
||||
foreach ($reportsData as $row) {
|
||||
if ($row['trans_group'] == lang('Reports.trans_payments')) {
|
||||
if ($row['trans_type'] == lang('Sales.cash')) {
|
||||
$cashUpsInfo->closed_amount_cash += $row['trans_amount'];
|
||||
} elseif ($row['trans_type'] == lang('Sales.due')) {
|
||||
$cashUpsInfo->closed_amount_due += $row['trans_amount'];
|
||||
} elseif (
|
||||
$row['trans_type'] == lang('Sales.debit') ||
|
||||
$row['trans_type'] == lang('Sales.credit')
|
||||
) {
|
||||
$cashUpsInfo->closed_amount_card += $row['trans_amount'];
|
||||
} elseif ($row['trans_type'] == lang('Sales.check')) {
|
||||
$cashUpsInfo->closed_amount_check += $row['trans_amount'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param object $cashUpsInfo
|
||||
* @param array $inputs
|
||||
* @return void
|
||||
*/
|
||||
private function subtractCashExpenses(object $cashUpsInfo, array $inputs): void
|
||||
{
|
||||
// Lookup expenses paid in cash
|
||||
$filters = [
|
||||
'only_cash' => true,
|
||||
'only_due' => false,
|
||||
'only_check' => false,
|
||||
'only_credit' => false,
|
||||
'only_debit' => false,
|
||||
'is_deleted' => false
|
||||
];
|
||||
|
||||
if ($this->cashup->save_value($cash_up_data, $cashup_id)) {
|
||||
// New cashup_id
|
||||
if ($cashup_id == NEW_ENTRY) {
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_adding'), 'id' => $cash_up_data['cashup_id']]);
|
||||
} else { // Existing Cashup
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_updating'), 'id' => $cashup_id]);
|
||||
}
|
||||
} else { // Failure
|
||||
$payments = $this->expense->get_payments_summary('', array_merge($inputs, $filters));
|
||||
|
||||
foreach ($payments as $row) {
|
||||
$cashUpsInfo->closed_amount_cash -= $row['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $rowId
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function getRow(int $rowId): ResponseInterface
|
||||
{
|
||||
$cashUpsInfo = $this->cashup->get_info($rowId);
|
||||
$dataRow = get_cash_up_data_row($cashUpsInfo);
|
||||
|
||||
return $this->response->setJSON($dataRow);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $cashupId
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function postSave(int $cashupId = NEW_ENTRY): ResponseInterface
|
||||
{
|
||||
$openDate = $this->parseCashupDate($this->request->getPost('open_date'));
|
||||
$closeDate = $this->parseCashupDate($this->request->getPost('close_date'));
|
||||
$amounts = $this->getCashupAmountsFromPost();
|
||||
|
||||
$cashUpData = $this->buildCashupSaveData($amounts, $openDate, $closeDate);
|
||||
$wasSaved = $this->cashup->save_value($cashUpData, $cashupId);
|
||||
|
||||
return $this->buildSaveResponse($wasSaved, $cashupId, $cashUpData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $rawDate
|
||||
* @return \DateTime|false
|
||||
*/
|
||||
private function parseCashupDate(string $rawDate): \DateTime|false
|
||||
{
|
||||
return date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $rawDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param CashupAmounts $amounts
|
||||
* @param \DateTime $openDate
|
||||
* @param \DateTime $closeDate
|
||||
* @return array
|
||||
*/
|
||||
private function buildCashupSaveData(CashupAmounts $amounts, \DateTime $openDate, \DateTime $closeDate): array
|
||||
{
|
||||
$loggedInEmployee = $this->employee->get_logged_in_employee_info();
|
||||
|
||||
return [
|
||||
'open_date' => $openDate->format('Y-m-d H:i:s'),
|
||||
'close_date' => $closeDate->format('Y-m-d H:i:s'),
|
||||
'open_amount_cash' => $amounts->openAmountCash,
|
||||
'transfer_amount_cash' => $amounts->transferAmountCash,
|
||||
'closed_amount_cash' => $amounts->closedAmountCash,
|
||||
'closed_amount_due' => $amounts->closedAmountDue,
|
||||
'closed_amount_card' => $amounts->closedAmountCard,
|
||||
'closed_amount_check' => $amounts->closedAmountCheck,
|
||||
'closed_amount_total' => $this->calculateTotal($amounts),
|
||||
'note' => $this->request->getPost('note') != null,
|
||||
'description' => $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'open_employee_id' => $loggedInEmployee->person_id,
|
||||
'close_employee_id' => $loggedInEmployee->person_id,
|
||||
'deleted' => $this->request->getPost('deleted') != null
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $wasSaved
|
||||
* @param int $cashupId
|
||||
* @param array $cashUpData
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
private function buildSaveResponse(bool $wasSaved, int $cashupId, array $cashUpData): ResponseInterface
|
||||
{
|
||||
if (!$wasSaved) { // Failure
|
||||
return $this->response->setJSON(['success' => false, 'message' => lang('Cashups.error_adding_updating'), 'id' => NEW_ENTRY]);
|
||||
}
|
||||
|
||||
// New cashup_id
|
||||
if ($cashupId == NEW_ENTRY) {
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_adding'), 'id' => $cashUpData['cashup_id']]);
|
||||
}
|
||||
|
||||
// Existing Cashup
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_updating'), 'id' => $cashupId]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -254,12 +355,12 @@ class Cashups extends Secure_Controller
|
||||
*/
|
||||
public function postDelete(): ResponseInterface
|
||||
{
|
||||
$cash_ups_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$cashUpsToDelete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
if ($this->cashup->delete_list($cash_ups_to_delete)) {
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_deleted') . ' ' . count($cash_ups_to_delete) . ' ' . lang('Cashups.one_or_multiple'), 'ids' => $cash_ups_to_delete]);
|
||||
if ($this->cashup->delete_list($cashUpsToDelete)) {
|
||||
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_deleted') . ' ' . count($cashUpsToDelete) . ' ' . lang('Cashups.one_or_multiple'), 'ids' => $cashUpsToDelete]);
|
||||
} else {
|
||||
return $this->response->setJSON(['success' => false, 'message' => lang('Cashups.cannot_be_deleted'), 'ids' => $cash_ups_to_delete]);
|
||||
return $this->response->setJSON(['success' => false, 'message' => lang('Cashups.cannot_be_deleted'), 'ids' => $cashUpsToDelete]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,14 +372,7 @@ class Cashups extends Secure_Controller
|
||||
*/
|
||||
public function postAjax_cashup_total(): ResponseInterface
|
||||
{
|
||||
$open_amount_cash = parse_decimals($this->request->getPost('open_amount_cash'));
|
||||
$transfer_amount_cash = parse_decimals($this->request->getPost('transfer_amount_cash'));
|
||||
$closed_amount_cash = parse_decimals($this->request->getPost('closed_amount_cash'));
|
||||
$closed_amount_due = parse_decimals($this->request->getPost('closed_amount_due'));
|
||||
$closed_amount_card = parse_decimals($this->request->getPost('closed_amount_card'));
|
||||
$closed_amount_check = parse_decimals($this->request->getPost('closed_amount_check'));
|
||||
|
||||
$total = $this->_calculate_total($open_amount_cash, $transfer_amount_cash, $closed_amount_due, $closed_amount_cash, $closed_amount_card, $closed_amount_check); // TODO: hungarian notation
|
||||
$total = $this->calculateTotal($this->getCashupAmountsFromPost());
|
||||
|
||||
return $this->response->setJSON(['total' => to_currency_no_money($total)]);
|
||||
}
|
||||
@@ -286,8 +380,23 @@ class Cashups extends Secure_Controller
|
||||
/**
|
||||
* Calculate total
|
||||
*/
|
||||
private function _calculate_total(float $open_amount_cash, float $transfer_amount_cash, float $closed_amount_due, float $closed_amount_cash, float $closed_amount_card, $closed_amount_check): float // TODO: need to get rid of hungarian notation here. Also, the signature is pretty long. Perhaps they need to go into an object or array?
|
||||
private function calculateTotal(CashupAmounts $amounts): float
|
||||
{
|
||||
return ($closed_amount_cash - $open_amount_cash - $transfer_amount_cash + $closed_amount_due + $closed_amount_card + $closed_amount_check);
|
||||
return ($amounts->closedAmountCash - $amounts->openAmountCash - $amounts->transferAmountCash + $amounts->closedAmountDue + $amounts->closedAmountCard + $amounts->closedAmountCheck);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CashupAmounts
|
||||
*/
|
||||
private function getCashupAmountsFromPost(): CashupAmounts
|
||||
{
|
||||
return new CashupAmounts(
|
||||
parse_decimals($this->request->getPost('open_amount_cash')),
|
||||
parse_decimals($this->request->getPost('transfer_amount_cash')),
|
||||
parse_decimals($this->request->getPost('closed_amount_cash')),
|
||||
parse_decimals($this->request->getPost('closed_amount_due')),
|
||||
parse_decimals($this->request->getPost('closed_amount_card')),
|
||||
parse_decimals($this->request->getPost('closed_amount_check'))
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ use App\Models\Expense_category;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Config\Services;
|
||||
|
||||
class Expenses_categories extends Secure_Controller // TODO: Is this class ever used?
|
||||
class Expenses_categories extends Secure_Controller
|
||||
{
|
||||
private Expense_category $expense_category;
|
||||
|
||||
@@ -113,13 +113,15 @@ class Expenses_categories extends Secure_Controller // TODO: Is this class ev
|
||||
{
|
||||
$expense_category_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
if ($this->expense_category->delete_list($expense_category_to_delete)) { // TODO: Convert to ternary notation.
|
||||
if ($this->expense_category->delete_list($expense_category_to_delete)) {
|
||||
return $this->response->setJSON([
|
||||
'success' => true,
|
||||
'message' => lang('Expenses_categories.successful_deleted') . ' ' . count($expense_category_to_delete) . ' ' . lang('Expenses_categories.one_or_multiple')
|
||||
]);
|
||||
} else {
|
||||
return $this->response->setJSON(['success' => false, 'message' => lang('Expenses_categories.cannot_be_deleted')]);
|
||||
return $this->response->setJSON([
|
||||
'success' => false,
|
||||
'message' => lang('Expenses_categories.cannot_be_deleted')]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ use CodeIgniter\HTTP\ResponseInterface;
|
||||
use CodeIgniter\Model;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* @property employee employee
|
||||
@@ -62,9 +63,20 @@ class Login extends BaseController
|
||||
}
|
||||
|
||||
if (!$data['isLatest'] || $data['isNewInstall']) {
|
||||
ignore_user_abort(true);
|
||||
set_time_limit(3600);
|
||||
|
||||
$migration->setNamespace('App')->latest();
|
||||
try {
|
||||
$migration->setNamespace('App')->runLocked();
|
||||
} catch (Exception $e) {
|
||||
if (str_contains($e->getMessage(), 'Migration already in progress')) {
|
||||
$data['hasErrors'] = true;
|
||||
$validation->addError('username', lang('Login.migration_running'));
|
||||
return view('login', $data);
|
||||
}
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return redirect()->to('login');
|
||||
}
|
||||
|
||||
@@ -121,10 +133,10 @@ class Login extends BaseController
|
||||
|
||||
try {
|
||||
$migration = new MY_Migration(config('Migrations'));
|
||||
$migration->migrateToCI4();
|
||||
|
||||
ignore_user_abort(true);
|
||||
set_time_limit(3600);
|
||||
$migration->setNamespace('App')->latest();
|
||||
$migration->setNamespace('App')->runLocked();
|
||||
|
||||
service('pluginManager')->runPendingMigrations();
|
||||
|
||||
@@ -133,7 +145,14 @@ class Login extends BaseController
|
||||
'message' => 'Migration completed successfully'
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
if (str_contains($e->getMessage(), 'Migration already in progress')) {
|
||||
return $this->response->setJSON([
|
||||
'success' => false,
|
||||
'message' => lang('Login.migration_running')
|
||||
])->setStatusCode(202);
|
||||
}
|
||||
|
||||
log_message('error', 'Migration failed: ' . $e->getMessage());
|
||||
|
||||
return $this->response->setJSON([
|
||||
|
||||
@@ -233,8 +233,14 @@ class Receivings extends Secure_Controller
|
||||
* @return string
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function getEdit($receiving_id): string
|
||||
public function getEdit($receiving_id): ResponseInterface|string
|
||||
{
|
||||
$personId = $this->session->get('person_id');
|
||||
|
||||
if (!$this->employee->has_grant('reports_receivings', $personId)) {
|
||||
return redirect()->to('no_access/receivings/reports_receivings');
|
||||
}
|
||||
|
||||
$data = [];
|
||||
|
||||
$data['suppliers'] = ['' => 'No Supplier'];
|
||||
@@ -288,6 +294,12 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function postDelete(int $receiving_id = -1, bool $update_inventory = true): ResponseInterface
|
||||
{
|
||||
$personId = $this->session->get('person_id');
|
||||
|
||||
if (!$this->employee->has_grant('reports_receivings', $personId)) {
|
||||
return $this->response->setStatusCode(403)->setJSON(['success' => false, 'message' => lang('Receivings.cannot_be_deleted')]);
|
||||
}
|
||||
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$receiving_ids = $receiving_id == -1 ? $this->request->getPost('ids', FILTER_SANITIZE_NUMBER_INT) : [$receiving_id]; // TODO: Replace -1 with constant
|
||||
|
||||
@@ -412,8 +424,14 @@ class Receivings extends Secure_Controller
|
||||
* @return string
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function getReceipt($receiving_id): string
|
||||
public function getReceipt($receiving_id): ResponseInterface|string
|
||||
{
|
||||
$personId = $this->session->get('person_id');
|
||||
|
||||
if (!$this->employee->has_grant('reports_receivings', $personId)) {
|
||||
return redirect()->to('no_access/receivings/reports_receivings');
|
||||
}
|
||||
|
||||
$receiving_info = $this->receiving->get_info($receiving_id)->getRowArray();
|
||||
$this->receiving_lib->copy_entire_receiving($receiving_id);
|
||||
$data['cart'] = $this->receiving_lib->get_cart();
|
||||
@@ -502,6 +520,12 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function postSave(int $receiving_id = -1): ResponseInterface // TODO: Replace -1 with a constant
|
||||
{
|
||||
$personId = $this->session->get('person_id');
|
||||
|
||||
if (!$this->employee->has_grant('reports_receivings', $personId)) {
|
||||
return $this->response->setStatusCode(403)->setJSON(['success' => false, 'message' => lang('Receivings.not_authorized')]);
|
||||
}
|
||||
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS); // TODO: newdate does not follow naming conventions
|
||||
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $newdate);
|
||||
|
||||
@@ -59,7 +59,6 @@ class Reports extends Secure_Controller
|
||||
parent::__construct('reports');
|
||||
$request = Services::request();
|
||||
$methodName = urldecode($request->getUri()->getSegment(2));
|
||||
$exploder = explode('_', $methodName);
|
||||
|
||||
$this->attribute = config(Attribute::class);
|
||||
$this->config = config(OSPOS::class)->settings;
|
||||
@@ -82,17 +81,42 @@ class Reports extends Secure_Controller
|
||||
$this->detailed_receivings = model(Detailed_receivings::class);
|
||||
$this->inventory_summary = model(Inventory_summary::class);
|
||||
|
||||
if (sizeof($exploder) > 1) {
|
||||
preg_match('/(?:inventory)|([^_.]*)(?:_graph|_row)?$/', $methodName, $matches);
|
||||
preg_match('/^(.*?)([sy])?$/', array_pop($matches), $matches);
|
||||
$submoduleId = $matches[1] . ((count($matches) > 2) ? $matches[2] : 's');
|
||||
} else {
|
||||
$submoduleId = null;
|
||||
// Map report URL names to their required permission
|
||||
$reportPermissions = [
|
||||
'summary_sales' => 'reports_sales',
|
||||
'summary_expenses_categories'=> 'reports_expenses_categories',
|
||||
'summary_payments' => 'reports_payments',
|
||||
'summary_discounts' => 'reports_discounts',
|
||||
'summary_categories' => 'reports_categories',
|
||||
'summary_customers' => 'reports_customers',
|
||||
'summary_items' => 'reports_items',
|
||||
'summary_suppliers' => 'reports_suppliers',
|
||||
'summary_employees' => 'reports_employees',
|
||||
'summary_taxes' => 'reports_taxes',
|
||||
'summary_sales_taxes' => 'reports_sales_taxes',
|
||||
'detailed_item_sales' => 'reports_sales',
|
||||
'detailed_sales' => 'reports_sales',
|
||||
'detailed_receivings' => 'reports_receivings',
|
||||
'inventory_summary' => 'reports_inventory',
|
||||
'inventory_low' => 'reports_inventory',
|
||||
'specific_customers' => 'reports_customers',
|
||||
'specific_employees' => 'reports_employees',
|
||||
'specific_discounts' => 'reports_discounts',
|
||||
'specific_suppliers' => 'reports_suppliers',
|
||||
];
|
||||
|
||||
// Normalize the report name: strip graphical_ prefix and _graph/_row suffixes
|
||||
$reportName = $methodName;
|
||||
if (str_starts_with($reportName, 'graphical_')) {
|
||||
$reportName = substr($reportName, 10);
|
||||
}
|
||||
$reportName = preg_replace('/_(graph|row)$/', '', $reportName);
|
||||
|
||||
$submoduleId = $reportPermissions[$reportName] ?? null;
|
||||
|
||||
// Check access to report submodule
|
||||
if ($submoduleId !== null && !$this->employee->has_grant('reports_' . $submoduleId, $this->employee->get_logged_in_employee_info()->person_id)) {
|
||||
throw new RedirectException('no_access/reports/reports_' . $submoduleId);
|
||||
if ($submoduleId !== null && !$this->employee->has_grant($submoduleId, $this->employee->get_logged_in_employee_info()->person_id)) {
|
||||
throw new RedirectException('no_access/reports/' . $submoduleId);
|
||||
}
|
||||
|
||||
helper('report');
|
||||
|
||||
@@ -70,11 +70,12 @@ function get_languages(): array
|
||||
'fa:persian' => 'Persian',
|
||||
'fr:french' => 'French',
|
||||
'he:hebrew' => 'Hebrew',
|
||||
'hr-HR:croatian' => 'Croatian (Croatia)',
|
||||
'hr:croatian' => 'Croatian',
|
||||
'hu:hungarian' => 'Hungarian',
|
||||
'hy:armenian' => 'Armenian',
|
||||
'id:indonesian' => 'Indonesian',
|
||||
'it:italian' => 'Italian',
|
||||
'ka:georgian' => 'Georgian',
|
||||
'km:centralkhmer' => 'Khmer (Central)',
|
||||
'lo:lao' => 'Lao',
|
||||
'ml:malayalam' => 'Malayalam',
|
||||
@@ -96,7 +97,7 @@ function get_languages(): array
|
||||
'ur:urdu' => 'Urdu',
|
||||
'vi:vietnamese' => 'Vietnamese',
|
||||
'zh-Hans:simplified-chinese' => 'Chinese (Simplified)',
|
||||
'zh-Hant:traditional-chinese' => 'Chinese (Traditional)'
|
||||
'zh-Hant:traditional-chinese' => 'Chinese (Traditional)',
|
||||
];
|
||||
asort($languages);
|
||||
return $languages;
|
||||
|
||||
@@ -873,7 +873,7 @@ function cashup_headers(): array
|
||||
['close_date' => lang('Cashups.closed_date')],
|
||||
['close_employee_id' => lang('Cashups.close_employee')],
|
||||
['closed_amount_cash' => lang('Cashups.closed_amount_cash')],
|
||||
['note' => lang('Cashups.note')],
|
||||
['note' => lang('Cashups.note'), 'escape' => false],
|
||||
['closed_amount_due' => lang('Cashups.closed_amount_due')],
|
||||
['closed_amount_card' => lang('Cashups.closed_amount_card')],
|
||||
['closed_amount_check' => lang('Cashups.closed_amount_check')],
|
||||
|
||||
@@ -6,14 +6,14 @@ return [
|
||||
'confirm_restore' => 'هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟',
|
||||
'definition_cannot_be_deleted' => 'لا يمكن حذف السمات المحددة',
|
||||
'definition_error_adding_updating' => 'لا يمكن إضافة السمة {0} أو تحديثها. يرجى التحقق من سجل الخطأ.',
|
||||
'definition_invalid_group' => 'المجموعة المحددة غير موجودة أو غير صالحة.',
|
||||
'definition_flags' => 'رؤية الميزات',
|
||||
'definition_group' => 'المجموعة',
|
||||
'definition_id' => 'كود',
|
||||
'definition_invalid_group' => 'المجموعة المحددة غير موجودة أو غير صالحة.',
|
||||
'definition_name' => 'إضافة ميزة',
|
||||
'definition_name_required' => 'اسم الميزة هي خانة اجبارية',
|
||||
'definition_one_or_multiple' => 'ميزة/ميزات',
|
||||
'definition_successful_adding' => 'لقد تم إضافة صنف بنجاح',
|
||||
'definition_successful_adding' => '',
|
||||
'definition_successful_deleted' => 'لقد تم حذف ميزة بنجاح',
|
||||
'definition_successful_updating' => 'تم تعديل الميزة بنجاح',
|
||||
'definition_type' => 'نوع الميزة',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'definition_unit' => 'وحدة قياس',
|
||||
'definition_values' => 'قيمة الميزة',
|
||||
'new' => 'اضافة ميزة جديده',
|
||||
'no_attributes_to_display' => 'لا يوجد اصناف للعرض',
|
||||
'no_attributes_to_display' => '',
|
||||
'receipt_visibility' => 'وصل',
|
||||
'show_in_items' => 'اظهار في الصنف',
|
||||
'show_in_items_visibility' => 'الصنف',
|
||||
|
||||
@@ -11,7 +11,6 @@ return [
|
||||
'comments' => 'تعليقات',
|
||||
'common' => 'عام',
|
||||
'confirm_search' => 'لقد قمت اختيار أكتر من سجل، سوف تفقد هذه الاختيارات عند إرسال البحث، موافق؟',
|
||||
'copyrights' => '© 2010 - {0}',
|
||||
'correct_errors' => 'يرجى تصحيح الأخطاء المحددة قبل الحفظ',
|
||||
'country' => 'البلد',
|
||||
'dashboard' => '',
|
||||
@@ -50,9 +49,7 @@ return [
|
||||
'list_of' => 'قائمة بـ',
|
||||
'logo' => 'شعار',
|
||||
'logo_mark' => 'علامة الشعار',
|
||||
'logout' => 'خروج',
|
||||
'manager' => '',
|
||||
'migration_needed' => 'سيبدأ ترحيل قاعدة البيانات إلى {0} بعد تسجيل الدخول.',
|
||||
'new' => 'جديد',
|
||||
'no' => '',
|
||||
'no_persons_to_display' => 'لا يوجد اناس لعرضهم.',
|
||||
@@ -60,10 +57,9 @@ return [
|
||||
'or' => 'أو',
|
||||
'people' => '',
|
||||
'phone_number' => 'رقم التليفون',
|
||||
'phone_number_required' => 'رقم التليفون مطلوب',
|
||||
'please_visit_my' => 'برجاء زيارة',
|
||||
'position' => '',
|
||||
'powered_by' => 'مدعوم بواسطة',
|
||||
'powered_by' => 'مدعوم بواسطة {app} {version}',
|
||||
'price' => 'السعر',
|
||||
'print' => 'طباعة',
|
||||
'remove' => 'إزالة',
|
||||
@@ -73,14 +69,11 @@ return [
|
||||
'search' => 'بحث',
|
||||
'search_options' => 'خيارات البحث',
|
||||
'searched_for' => 'بحث عن',
|
||||
'software_short' => 'OSPOS',
|
||||
'software_title' => 'برنامج OSPOS',
|
||||
'state' => 'المحافظة',
|
||||
'submit' => 'حفظ',
|
||||
'total_spent' => 'مجموع الصرف',
|
||||
'unknown' => 'غير معروف',
|
||||
'view_recent_sales' => 'عرض أحدث المبيعات',
|
||||
'website' => 'الموقع الإلكترونى',
|
||||
'welcome' => 'مرحباً',
|
||||
'welcome_message' => 'مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.',
|
||||
'yes' => '',
|
||||
|
||||
@@ -98,8 +98,8 @@ return [
|
||||
'default_tax_rate_1' => 'معدل الضريبة 1',
|
||||
'default_tax_rate_2' => 'معدل الضريبة 2',
|
||||
'default_tax_rate_3' => '',
|
||||
'default_tax_rate_number' => 'معدل الضريبة الافتراضي يجب أن يكون رقم.',
|
||||
'default_tax_rate_non_negative' => '',
|
||||
'default_tax_rate_number' => 'معدل الضريبة الافتراضي يجب أن يكون رقم.',
|
||||
'default_tax_rate_required' => 'معدل الضريبة الافتراضي مطلوب.',
|
||||
'derive_sale_quantity' => 'السماح بأسعار البيع المشتقة',
|
||||
'derive_sale_quantity_tooltip' => 'إذا تم تحديدها، فسيتم توفير نوع جديد من الاصناف للاصناف المطلوبة حسب المبلغ الموسع',
|
||||
@@ -168,6 +168,8 @@ return [
|
||||
'info' => 'معلومات',
|
||||
'info_configuration' => 'معلومات الشركة',
|
||||
'input_groups' => 'مجموعات الإدخال',
|
||||
'integrations' => 'التكامل',
|
||||
'integrations_configuration' => 'تكامل',
|
||||
'invoice' => 'الفاتورة',
|
||||
'invoice_configuration' => 'إعدادات طباعة الفاتورة',
|
||||
'invoice_default_comments' => 'التعليق الافتراضي على الفاتورة',
|
||||
@@ -198,6 +200,7 @@ return [
|
||||
'location_info' => 'معلومات تهيئة الأماكن',
|
||||
'login_form' => 'نمط نموذج تسجيل الدخول',
|
||||
'logout' => 'هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.',
|
||||
'mailpath_invalid' => 'مسار sendmail غير صالح. يُسمح فقط بالحروف والأرقام والشرطات والشرطات السفلية والشرطات المائلة والشرطات المائلة العكسية والنقطتين الرأسيتين والمسافات والنقاط.',
|
||||
'message' => 'الرسائل',
|
||||
'message_configuration' => 'إعدادات الرسائل',
|
||||
'msg_msg' => 'الرسائل النصية المحفوظة',
|
||||
@@ -278,12 +281,15 @@ return [
|
||||
'right' => 'يمين',
|
||||
'sales_invoice_format' => 'شكل فاتورة البيع',
|
||||
'sales_quote_format' => 'شكل فاتورة عرض الاسعار',
|
||||
'mailpath_invalid' => 'مسار sendmail غير صالح. يُسمح فقط بالحروف والأرقام والشرطات والشرطات السفلية والشرطات المائلة والشرطات المائلة العكسية والنقطتين الرأسيتين والمسافات والنقاط.',
|
||||
'saved_successfully' => 'تم حفظ التهيئة بنجاح.',
|
||||
'saved_unsuccessfully' => 'لم يتم حفظ التهيئة بنجاح.',
|
||||
'security_issue' => 'تحذير من ثغرة أمنية',
|
||||
'server_notice' => 'يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.',
|
||||
'service_charge' => '',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'show_due_enable' => '',
|
||||
'show_office_group' => 'اظهار ايكونة المكتب',
|
||||
'statistics' => 'إرسال اﻹحصائيات',
|
||||
@@ -301,12 +307,8 @@ return [
|
||||
'suggestions_layout' => 'تخطيط اقتراحات البحث',
|
||||
'suggestions_second_column' => 'العامود 2',
|
||||
'suggestions_third_column' => 'العامود 3',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'system_conf' => 'اعدادات اخرى',
|
||||
'system_info' => 'System Info',
|
||||
'system_info' => '',
|
||||
'system_info_copy' => '',
|
||||
'system_info_copy_error' => '',
|
||||
'system_info_copy_success' => '',
|
||||
|
||||
@@ -34,6 +34,7 @@ return [
|
||||
'none_selected' => 'لم تختار عملاء للحذف.',
|
||||
'one_or_multiple' => 'عميل/عملاء',
|
||||
'quantity' => 'العدد',
|
||||
'rewards_package' => 'فئة المكافئة',
|
||||
'stats_info' => 'الحالة',
|
||||
'successful_adding' => 'لقد أضفت عميل بنجاح',
|
||||
'successful_deleted' => 'لقد قمت بالحذف بنجاح',
|
||||
@@ -43,5 +44,4 @@ return [
|
||||
'taxable' => 'خاضع للضريبة',
|
||||
'total' => 'المجموع',
|
||||
'update' => 'تحديث بيانات عميل',
|
||||
'rewards_package' => 'فئة المكافئة',
|
||||
];
|
||||
@@ -19,6 +19,6 @@ return [
|
||||
'to' => 'إلى',
|
||||
'today' => 'اليوم',
|
||||
'today_last_year' => 'نفس اليوم من السنة الماضية',
|
||||
'weekstart' => '0',
|
||||
'weekstart' => '6',
|
||||
'yesterday' => 'أمس',
|
||||
];
|
||||
@@ -41,6 +41,7 @@ return [
|
||||
'successful_deleted' => 'لقد تم حذف الموظف بنجاح',
|
||||
'successful_updating' => 'لقد تم تحديث بيانات الموظف بنجاح',
|
||||
'system_language' => 'لغة النظام',
|
||||
'unauthorized_modify' => '',
|
||||
'unsuccessful_change_password' => 'فشل في تغيير كلمة المرور.',
|
||||
'update' => 'تحديث بيانات موظف',
|
||||
'username' => 'اسم المستخدم',
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'no_permission_module' => 'ليس لديك صلاحيات للوصول لهذا القسم',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_create_env_file' => 'تعذر إنشاء {filePath} لتوفير throttle.key',
|
||||
'unable_to_lock_file' => 'تعذر قفل {filePath}: {reason}',
|
||||
'unable_to_open_lock_file' => 'تعذر فتح {filePath}: {reason}',
|
||||
'unable_to_persist_throttle_key' => 'تعذر حفظ throttle.key في {filePath}',
|
||||
'unable_to_persist_encryption_key' => '',
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_persist_throttle_key' => 'تعذر حفظ throttle.key في {filePath}',
|
||||
'unable_to_read_env_file' => 'تعذر قراءة {filePath} لتوفير throttle.key',
|
||||
'unknown' => 'غير معروف',
|
||||
];
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'category_name_required' => 'اسم نوع المصاريف مطلوب',
|
||||
'add_item' => 'إضافة نوع',
|
||||
'cannot_be_deleted' => 'فشلت عملية مسح نوع المصاريف',
|
||||
'category_id' => 'الكود',
|
||||
'category_name_required' => 'اسم نوع المصاريف مطلوب',
|
||||
'confirm_delete' => 'هل أنت متأكد من مسح نوع المصاريف الذي أخترته؟',
|
||||
'confirm_restore' => 'هل أنت متأكد من أنك تريد استعادة فئة المصاريف المحددة؟',
|
||||
'description' => 'وصف النوع',
|
||||
|
||||
@@ -17,8 +17,6 @@ return [
|
||||
'item' => 'صنف',
|
||||
'item_kit_number' => 'الباركود',
|
||||
'item_kit_number_duplicate' => 'رقم مجموعة الأصناف موجود في قاعدة البيانات.',
|
||||
'item_number' => '',
|
||||
'item_number_duplicate' => '',
|
||||
'items' => 'أصناف',
|
||||
'kit' => 'كود المجموعة',
|
||||
'kit_and_components' => 'المجموعة ومحتوياتها',
|
||||
|
||||
@@ -110,8 +110,8 @@ return [
|
||||
'tax_category' => 'الفئة الضريبية',
|
||||
'tax_name_invalid' => 'اسم الضريبة يحتوي على أحرف غير مسموح بها.',
|
||||
'tax_percent' => 'نسبة الضريبة',
|
||||
'tax_percent_number' => 'نسبة الضريبة يجب ان تكون رقم',
|
||||
'tax_percent_non_negative' => '',
|
||||
'tax_percent_number' => 'نسبة الضريبة يجب ان تكون رقم',
|
||||
'tax_percent_required' => 'نسبة الضريبة مطلوبة.',
|
||||
'tax_percents' => 'نسبة/نسب الضريبة',
|
||||
'temp' => 'مؤقت',
|
||||
|
||||
@@ -6,11 +6,11 @@ return [
|
||||
'message' => 'الرسالة',
|
||||
'message_placeholder' => 'رسالتك هنا...',
|
||||
'message_required' => 'الرسالة مطلوبة',
|
||||
'multiple_phones' => 'فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة',
|
||||
'multiple_phones' => '(فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة)',
|
||||
'phone' => 'رقم المحمول',
|
||||
'phone_number_required' => 'رقم المحمول مطلوب',
|
||||
'phone_placeholder' => 'رقم/أرقام المحمول هنا...',
|
||||
'sms_send' => 'إرسال SMS',
|
||||
'successfully_sent' => 'تم إرسال الرسالة بنجاح إلى: ',
|
||||
'unsuccessfully_sent' => 'لم يتم إرسال الرسالة بنجاح إلى: ',
|
||||
'successfully_sent' => 'تم إرسال الرسالة بنجاح إلى:',
|
||||
'unsuccessfully_sent' => 'لم يتم إرسال الرسالة بنجاح إلى:',
|
||||
];
|
||||
@@ -28,6 +28,7 @@ return [
|
||||
'item_name' => 'اسم الصنف',
|
||||
'mode' => 'وضع الإستلام',
|
||||
'new_supplier' => 'مورد جديد',
|
||||
'not_authorized' => '',
|
||||
'one_or_multiple' => 'إستلام/إستلامات',
|
||||
'print_after_sale' => 'طباعة بعد الإستلام',
|
||||
'quantity' => 'الكمية.',
|
||||
|
||||
@@ -77,7 +77,7 @@ return [
|
||||
'invoice_filter' => 'الفواتير',
|
||||
'invoice_no_email' => 'هذا العميل ليس لدية بريد الكترونى صالح.',
|
||||
'invoice_number' => 'فاتورة رقم #',
|
||||
'invoice_number_duplicate' => 'من فضلك أدخل رقم فاتورة غير مكرر.',
|
||||
'invoice_number_duplicate' => 'رقم الفاتورة {0} يجب أن يكون فريداً.',
|
||||
'invoice_sent' => 'تم إرسال الفاتورة إلى',
|
||||
'invoice_total' => 'إجمالي الفاتورة',
|
||||
'invoice_type_custom_invoice' => 'فاتورة مخصصة (custom_invoice.php)',
|
||||
@@ -95,7 +95,7 @@ return [
|
||||
'key_finish_quote' => 'انهاء عملية البيع/الفاتورة من دون الدفع',
|
||||
'key_finish_sale' => 'اضافة دفع نقدي كمل واتمام عملية البيع',
|
||||
'key_full' => 'الإظهار في صفحه كامله',
|
||||
'key_function' => 'Function',
|
||||
'key_function' => '',
|
||||
'key_help' => 'اختصارات',
|
||||
'key_help_modal' => 'إظهار الاختصارات',
|
||||
'key_in' => 'تكبير الصفحه',
|
||||
@@ -123,8 +123,9 @@ return [
|
||||
'new_item' => 'صنف جديد',
|
||||
'no_description' => 'بدون وصف',
|
||||
'no_items_in_cart' => 'لايوجد أصناف فى السلة.',
|
||||
'no_sales_to_display' => 'لاتوجد عمليات بيع لعرضها.',
|
||||
'none_selected' => 'لم تقم بإختيار أى عمليات بيع لحذفها.',
|
||||
'nontaxed_ind' => ' ',
|
||||
'nontaxed_ind' => '',
|
||||
'not_authorized' => 'هذه العملية لا يمكن فعلها لعدم تخويلك.',
|
||||
'one_or_multiple' => 'عمليات بيع',
|
||||
'payment' => 'طريقة الدفع',
|
||||
|
||||
@@ -12,6 +12,7 @@ return [
|
||||
'default_tax_rate' => 'معدل الضريبة الافتراضي',
|
||||
'error_adding_updating' => 'فشل إضافة أو تحديث قانون الضرائب',
|
||||
'group_seq' => 'تسلسل المجموعة',
|
||||
'jurisdiction_id' => '',
|
||||
'jurisdiction_name' => 'اسم الولاية القضائية',
|
||||
'name' => 'الاسم',
|
||||
'new' => 'ضريبة جديدة',
|
||||
@@ -56,7 +57,7 @@ return [
|
||||
'tax_codes_saved_unsuccessfully' => 'لم يتم حفظ تغييرات قانون الضريبة',
|
||||
'tax_excluded' => 'لا تشمل الضرائب',
|
||||
'tax_group' => 'المجموعة الضريبية',
|
||||
'tax_group_not_unique' => 'فئة الضرائب يجب ان تكون فريده',
|
||||
'tax_group_not_unique' => 'فئة الضرائب {0} يجب ان تكون فريده',
|
||||
'tax_group_sequence' => 'تسلسل مجموعة الضرائب',
|
||||
'tax_included' => 'الضريبة مشمولة',
|
||||
'tax_jurisdiction' => 'الاختصاص الضريبي',
|
||||
|
||||
@@ -6,14 +6,14 @@ return [
|
||||
'confirm_restore' => 'هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟',
|
||||
'definition_cannot_be_deleted' => 'لا يمكن حذف السمات المحددة',
|
||||
'definition_error_adding_updating' => 'لا يمكن إضافة السمة {0} أو تحديثها. يرجى التحقق من سجل الخطأ.',
|
||||
'definition_invalid_group' => 'المجموعة المحددة غير موجودة أو غير صالحة.',
|
||||
'definition_flags' => 'رؤية الميزات',
|
||||
'definition_group' => 'المجموعة',
|
||||
'definition_id' => 'كود',
|
||||
'definition_invalid_group' => 'المجموعة المحددة غير موجودة أو غير صالحة.',
|
||||
'definition_name' => 'إضافة ميزة',
|
||||
'definition_name_required' => 'اسم الميزة هي خانة اجبارية',
|
||||
'definition_one_or_multiple' => 'ميزة/ميزات',
|
||||
'definition_successful_adding' => 'لقد تم إضافة صنف بنجاح',
|
||||
'definition_successful_adding' => '',
|
||||
'definition_successful_deleted' => 'لقد تم حذف ميزة بنجاح',
|
||||
'definition_successful_updating' => 'تم تعديل الميزة بنجاح',
|
||||
'definition_type' => 'نوع الميزة',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'definition_unit' => 'وحدة قياس',
|
||||
'definition_values' => 'قيمة الميزة',
|
||||
'new' => 'اضافة ميزة جديده',
|
||||
'no_attributes_to_display' => 'لا يوجد اصناف للعرض',
|
||||
'no_attributes_to_display' => '',
|
||||
'receipt_visibility' => 'وصل',
|
||||
'show_in_items' => 'اظهار في الصنف',
|
||||
'show_in_items_visibility' => 'الصنف',
|
||||
|
||||
@@ -11,7 +11,6 @@ return [
|
||||
'comments' => 'تعليقات',
|
||||
'common' => 'عام',
|
||||
'confirm_search' => 'لقد قمت اختيار أكتر من سجل، سوف تفقد هذه الاختيارات عند إرسال البحث، موافق؟',
|
||||
'copyrights' => '© 2010 - {0}',
|
||||
'correct_errors' => 'يرجى تصحيح الأخطاء المحددة قبل الحفظ',
|
||||
'country' => 'البلد',
|
||||
'dashboard' => '',
|
||||
@@ -50,9 +49,7 @@ return [
|
||||
'list_of' => 'قائمة بـ',
|
||||
'logo' => 'شعار',
|
||||
'logo_mark' => 'علامة الشعار',
|
||||
'logout' => 'خروج',
|
||||
'manager' => '',
|
||||
'migration_needed' => 'سيبدأ ترحيل قاعدة البيانات إلى {0} بعد تسجيل الدخول.',
|
||||
'new' => 'جديد',
|
||||
'no' => '',
|
||||
'no_persons_to_display' => 'لا يوجد اناس لعرضهم.',
|
||||
@@ -60,10 +57,9 @@ return [
|
||||
'or' => 'أو',
|
||||
'people' => '',
|
||||
'phone_number' => 'رقم التليفون',
|
||||
'phone_number_required' => 'رقم التليفون مطلوب',
|
||||
'please_visit_my' => 'برجاء زيارة',
|
||||
'position' => '',
|
||||
'powered_by' => 'مدعوم بواسطة',
|
||||
'powered_by' => 'مدعوم بواسطة {app} {version}',
|
||||
'price' => 'السعر',
|
||||
'print' => 'طباعة',
|
||||
'remove' => 'إزالة',
|
||||
@@ -73,14 +69,11 @@ return [
|
||||
'search' => 'بحث',
|
||||
'search_options' => 'خيارات البحث',
|
||||
'searched_for' => 'بحث عن',
|
||||
'software_short' => 'OSPOS',
|
||||
'software_title' => 'برنامج OSPOS',
|
||||
'state' => 'المحافظة',
|
||||
'submit' => 'حفظ',
|
||||
'total_spent' => 'مجموع الصرف',
|
||||
'unknown' => 'غير معروف',
|
||||
'view_recent_sales' => 'عرض أحدث المبيعات',
|
||||
'website' => 'الموقع الإلكترونى',
|
||||
'welcome' => 'مرحباً',
|
||||
'welcome_message' => 'مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.',
|
||||
'yes' => '',
|
||||
|
||||
@@ -98,8 +98,8 @@ return [
|
||||
'default_tax_rate_1' => 'معدل الضريبة 1',
|
||||
'default_tax_rate_2' => 'معدل الضريبة 2',
|
||||
'default_tax_rate_3' => '',
|
||||
'default_tax_rate_number' => 'معدل الضريبة الافتراضي يجب أن يكون رقم.',
|
||||
'default_tax_rate_non_negative' => '',
|
||||
'default_tax_rate_number' => 'معدل الضريبة الافتراضي يجب أن يكون رقم.',
|
||||
'default_tax_rate_required' => 'معدل الضريبة الافتراضي مطلوب.',
|
||||
'derive_sale_quantity' => 'السماح بأسعار البيع المشتقة',
|
||||
'derive_sale_quantity_tooltip' => 'إذا تم تحديدها، فسيتم توفير نوع جديد من الاصناف للاصناف المطلوبة حسب المبلغ الموسع',
|
||||
@@ -168,6 +168,8 @@ return [
|
||||
'info' => 'معلومات',
|
||||
'info_configuration' => 'معلومات الشركة',
|
||||
'input_groups' => 'مجموعات الإدخال',
|
||||
'integrations' => 'التكامل',
|
||||
'integrations_configuration' => 'تكامل',
|
||||
'invoice' => 'الفاتورة',
|
||||
'invoice_configuration' => 'إعدادات طباعة الفاتورة',
|
||||
'invoice_default_comments' => 'التعليق الافتراضي على الفاتورة',
|
||||
@@ -198,6 +200,7 @@ return [
|
||||
'location_info' => 'معلومات تهيئة الأماكن',
|
||||
'login_form' => 'نمط نموذج تسجيل الدخول',
|
||||
'logout' => 'هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.',
|
||||
'mailpath_invalid' => 'مسار sendmail غير صالح. يُسمح فقط بالحروف والأرقام والشرطات والشرطات السفلية والشرطات المائلة والشرطات المائلة العكسية والنقطتين الرأسيتين والمسافات والنقاط.',
|
||||
'message' => 'الرسائل',
|
||||
'message_configuration' => 'إعدادات الرسائل',
|
||||
'msg_msg' => 'الرسائل النصية المحفوظة',
|
||||
@@ -278,12 +281,15 @@ return [
|
||||
'right' => 'يمين',
|
||||
'sales_invoice_format' => 'شكل فاتورة البيع',
|
||||
'sales_quote_format' => 'شكل فاتورة عرض الاسعار',
|
||||
'mailpath_invalid' => 'مسار sendmail غير صالح. يُسمح فقط بالحروف والأرقام والشرطات والشرطات السفلية والشرطات المائلة والشرطات المائلة العكسية والنقطتين الرأسيتين والمسافات والنقاط.',
|
||||
'saved_successfully' => 'تم حفظ التهيئة بنجاح.',
|
||||
'saved_unsuccessfully' => 'لم يتم حفظ التهيئة بنجاح.',
|
||||
'security_issue' => 'تحذير من ثغرة أمنية',
|
||||
'server_notice' => 'يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.',
|
||||
'service_charge' => '',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'show_due_enable' => '',
|
||||
'show_office_group' => 'اظهار ايكونة المكتب',
|
||||
'statistics' => 'إرسال اﻹحصائيات',
|
||||
@@ -301,12 +307,8 @@ return [
|
||||
'suggestions_layout' => 'تخطيط اقتراحات البحث',
|
||||
'suggestions_second_column' => 'العامود 2',
|
||||
'suggestions_third_column' => 'العامود 3',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'system_conf' => 'اعدادات اخرى',
|
||||
'system_info' => 'System Info',
|
||||
'system_info' => '',
|
||||
'system_info_copy' => '',
|
||||
'system_info_copy_error' => '',
|
||||
'system_info_copy_success' => '',
|
||||
|
||||
@@ -34,6 +34,7 @@ return [
|
||||
'none_selected' => 'لم تختار عملاء للحذف.',
|
||||
'one_or_multiple' => 'عميل/عملاء',
|
||||
'quantity' => 'العدد',
|
||||
'rewards_package' => 'فئة المكافئة',
|
||||
'stats_info' => 'الحالة',
|
||||
'successful_adding' => 'لقد أضفت عميل بنجاح',
|
||||
'successful_deleted' => 'لقد قمت بالحذف بنجاح',
|
||||
@@ -43,5 +44,4 @@ return [
|
||||
'taxable' => 'خاضع للضريبة',
|
||||
'total' => 'المجموع',
|
||||
'update' => 'تحديث بيانات عميل',
|
||||
'rewards_package' => 'فئة المكافئة',
|
||||
];
|
||||
@@ -19,6 +19,6 @@ return [
|
||||
'to' => 'إلى',
|
||||
'today' => 'اليوم',
|
||||
'today_last_year' => 'نفس اليوم من السنة الماضية',
|
||||
'weekstart' => '0',
|
||||
'weekstart' => '1',
|
||||
'yesterday' => 'أمس',
|
||||
];
|
||||
@@ -41,6 +41,7 @@ return [
|
||||
'successful_deleted' => 'لقد تم حذف الموظف بنجاح',
|
||||
'successful_updating' => 'لقد تم تحديث بيانات الموظف بنجاح',
|
||||
'system_language' => 'لغة النظام',
|
||||
'unauthorized_modify' => '',
|
||||
'unsuccessful_change_password' => 'فشل في تغيير كلمة المرور.',
|
||||
'update' => 'تحديث بيانات موظف',
|
||||
'username' => 'اسم المستخدم',
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'no_permission_module' => 'ليس لديك صلاحيات للوصول لهذا القسم',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_create_env_file' => 'تعذر إنشاء {filePath} لتوفير throttle.key',
|
||||
'unable_to_lock_file' => 'تعذر قفل {filePath}: {reason}',
|
||||
'unable_to_open_lock_file' => 'تعذر فتح {filePath}: {reason}',
|
||||
'unable_to_persist_throttle_key' => 'تعذر حفظ throttle.key في {filePath}',
|
||||
'unable_to_persist_encryption_key' => '',
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_persist_throttle_key' => 'تعذر حفظ throttle.key في {filePath}',
|
||||
'unable_to_read_env_file' => 'تعذر قراءة {filePath} لتوفير throttle.key',
|
||||
'unknown' => 'غير معروف',
|
||||
];
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'category_name_required' => 'اسم نوع المصاريف مطلوب',
|
||||
'add_item' => 'إضافة نوع',
|
||||
'cannot_be_deleted' => 'فشلت عملية مسح نوع المصاريف',
|
||||
'category_id' => 'الكود',
|
||||
'category_name_required' => 'اسم نوع المصاريف مطلوب',
|
||||
'confirm_delete' => 'هل أنت متأكد من مسح نوع المصاريف الذي أخترته؟',
|
||||
'confirm_restore' => 'هل أنت متأكد من أنك تريد استعادة فئة المصاريف المحددة؟',
|
||||
'description' => 'وصف النوع',
|
||||
|
||||
@@ -17,8 +17,6 @@ return [
|
||||
'item' => 'صنف',
|
||||
'item_kit_number' => 'الباركود',
|
||||
'item_kit_number_duplicate' => 'رقم مجموعة الأدوات موجود في قاعدة البيانات.',
|
||||
'item_number' => '',
|
||||
'item_number_duplicate' => '',
|
||||
'items' => 'أصناف',
|
||||
'kit' => 'كود المجموعة',
|
||||
'kit_and_components' => 'المجموعة ومحتوياتها',
|
||||
|
||||
@@ -110,8 +110,8 @@ return [
|
||||
'tax_category' => 'الفئة الضريبية',
|
||||
'tax_name_invalid' => 'اسم الضريبة يحتوي على أحرف غير مسموح بها.',
|
||||
'tax_percent' => 'نسبة الضريبة',
|
||||
'tax_percent_number' => 'نسبة الضريبة يجب ان تكون رقم',
|
||||
'tax_percent_non_negative' => '',
|
||||
'tax_percent_number' => 'نسبة الضريبة يجب ان تكون رقم',
|
||||
'tax_percent_required' => 'نسبة الضريبة مطلوبة.',
|
||||
'tax_percents' => 'نسبة/نسب الضريبة',
|
||||
'temp' => 'مؤقت',
|
||||
|
||||
@@ -6,11 +6,11 @@ return [
|
||||
'message' => 'الرسالة',
|
||||
'message_placeholder' => 'رسالتك هنا...',
|
||||
'message_required' => 'الرسالة مطلوبة',
|
||||
'multiple_phones' => 'فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة',
|
||||
'multiple_phones' => '(فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة)',
|
||||
'phone' => 'رقم المحمول',
|
||||
'phone_number_required' => 'رقم المحمول مطلوب',
|
||||
'phone_placeholder' => 'رقم/أرقام المحمول هنا...',
|
||||
'sms_send' => 'إرسال SMS',
|
||||
'successfully_sent' => 'تم إرسال الرسالة بنجاح إلى: ',
|
||||
'unsuccessfully_sent' => 'لم يتم إرسال الرسالة بنجاح إلى: ',
|
||||
'successfully_sent' => 'تم إرسال الرسالة بنجاح إلى:',
|
||||
'unsuccessfully_sent' => 'لم يتم إرسال الرسالة بنجاح إلى:',
|
||||
];
|
||||
@@ -28,6 +28,7 @@ return [
|
||||
'item_name' => 'اسم الصنف',
|
||||
'mode' => 'وضع الإستلام',
|
||||
'new_supplier' => 'مورد جديد',
|
||||
'not_authorized' => '',
|
||||
'one_or_multiple' => 'إستلام/إستلامات',
|
||||
'print_after_sale' => 'طباعة بعد الإستلام',
|
||||
'quantity' => 'الكمية.',
|
||||
|
||||
@@ -77,7 +77,7 @@ return [
|
||||
'invoice_filter' => 'الفواتير',
|
||||
'invoice_no_email' => 'هذا العميل ليس لدية بريد الكترونى صالح.',
|
||||
'invoice_number' => 'فاتورة رقم #',
|
||||
'invoice_number_duplicate' => 'من فضلك أدخل رقم فاتورة غير مكرر.',
|
||||
'invoice_number_duplicate' => 'رقم الفاتورة {0} يجب أن يكون فريداً.',
|
||||
'invoice_sent' => 'تم إرسال الفاتورة إلى',
|
||||
'invoice_total' => 'إجمالي الفاتورة',
|
||||
'invoice_type_custom_invoice' => 'فاتورة مخصصة (custom_invoice.php)',
|
||||
@@ -95,7 +95,7 @@ return [
|
||||
'key_finish_quote' => 'انهاء عملية البيع/الفاتورة من دون الدفع',
|
||||
'key_finish_sale' => 'اضافة دفع نقدي كمل واتمام عملية البيع',
|
||||
'key_full' => 'الإظهار في صفحه كامله',
|
||||
'key_function' => 'Function',
|
||||
'key_function' => '',
|
||||
'key_help' => 'اختصارات',
|
||||
'key_help_modal' => 'إظهار الاختصارات',
|
||||
'key_in' => 'تكبير الصفحه',
|
||||
@@ -123,8 +123,9 @@ return [
|
||||
'new_item' => 'مادة جديدة',
|
||||
'no_description' => 'بدون وصف',
|
||||
'no_items_in_cart' => 'لايوجد اي مادة فى السلة.',
|
||||
'no_sales_to_display' => 'لاتوجد عمليات بيع لعرضها.',
|
||||
'none_selected' => 'لم تقم بإختيار أى عمليات بيع لحذفها.',
|
||||
'nontaxed_ind' => ' ',
|
||||
'nontaxed_ind' => '',
|
||||
'not_authorized' => 'ليس لديك صلاحية.',
|
||||
'one_or_multiple' => 'عمليات بيع',
|
||||
'payment' => 'طريقة الدفع',
|
||||
|
||||
@@ -12,6 +12,7 @@ return [
|
||||
'default_tax_rate' => 'معدل الضريبة الافتراضي',
|
||||
'error_adding_updating' => 'فشل إضافة أو تحديث قانون الضرائب',
|
||||
'group_seq' => 'تسلسل المجموعة',
|
||||
'jurisdiction_id' => '',
|
||||
'jurisdiction_name' => 'اسم الولاية القضائية',
|
||||
'name' => 'الاسم',
|
||||
'new' => 'ضريبة جديدة',
|
||||
@@ -56,7 +57,7 @@ return [
|
||||
'tax_codes_saved_unsuccessfully' => 'لم يتم حفظ تغييرات قانون الضريبة',
|
||||
'tax_excluded' => 'لا تشمل الضرائب',
|
||||
'tax_group' => 'المجموعة الضريبية',
|
||||
'tax_group_not_unique' => 'فئة الضرائب يجب ان تكون فريده',
|
||||
'tax_group_not_unique' => 'فئة الضرائب {0} يجب ان تكون فريده',
|
||||
'tax_group_sequence' => 'تسلسل مجموعة الضرائب',
|
||||
'tax_included' => 'الضريبة مشمولة',
|
||||
'tax_jurisdiction' => 'الاختصاص الضريبي',
|
||||
|
||||
@@ -8,7 +8,7 @@ return [
|
||||
'definition_error_adding_updating' => '{0} atributu əlavə edilə və ya yenilənə bilmədi. Zəhmət olmasa xəta jurnalını yoxlayın.',
|
||||
'definition_flags' => 'Atributun görünürlüyü',
|
||||
'definition_group' => 'Qrup',
|
||||
'definition_id' => 'Id',
|
||||
'definition_id' => '',
|
||||
'definition_invalid_group' => 'Seçilmiş qrup mövcud deyil və ya etibarsızdır.',
|
||||
'definition_name' => 'Atribut əlavə et',
|
||||
'definition_name_required' => 'Atribut adı tələb olunan sahədir',
|
||||
|
||||
@@ -26,7 +26,7 @@ return [
|
||||
'enable_expected' => 'Gözlənilən Məbləği Aktiv Et',
|
||||
'error_adding_updating' => 'Kassa hesabatı əlavə edilərkən/yenilənərkən xəta baş verdi',
|
||||
'giftcard' => 'Hədiyyə Kartı',
|
||||
'id' => 'Id',
|
||||
'id' => '',
|
||||
'info' => 'Kassa Hesabatı Məlumatı',
|
||||
'info_employee' => 'Əməkdaş Məlumatı',
|
||||
'is_deleted' => 'Silindi',
|
||||
|
||||
@@ -11,7 +11,6 @@ return [
|
||||
'comments' => 'Rəylər',
|
||||
'common' => 'ortaq',
|
||||
'confirm_search' => 'Bir və ya bir neçə sətir seçmisiniz, bunlar axtarışdan sonra artıq seçilməyəcək. Bu axtarışı göndərmək istədiyinizə əminsiniz?',
|
||||
'copyrights' => '© 2010 - {0}',
|
||||
'correct_errors' => 'Zəhmət olmasa, yadda saxlamazdan əvvəl müəyyən edilmiş səhvləri düzəldin',
|
||||
'country' => 'Ölkə',
|
||||
'dashboard' => 'İdarə Paneli',
|
||||
@@ -35,14 +34,14 @@ return [
|
||||
'gender_male' => 'K',
|
||||
'gender_undefined' => 'Naməlum',
|
||||
'icon' => 'İkon',
|
||||
'id' => 'ID',
|
||||
'id' => '',
|
||||
'import' => 'İdxal Et',
|
||||
'import_change_file' => 'Dəyiş',
|
||||
'import_csv' => 'CSV İdxalı',
|
||||
'import_full_path' => 'CSV faylına tam yol tələb olunur',
|
||||
'import_remove_file' => 'Sil',
|
||||
'import_select_file' => 'Fayl Seç',
|
||||
'inv' => 'inv',
|
||||
'inv' => '',
|
||||
'last_name' => 'Soyad',
|
||||
'last_name_required' => 'Soyad tələb olunan sahədir.',
|
||||
'last_page' => 'Son',
|
||||
@@ -50,9 +49,7 @@ return [
|
||||
'list_of' => 'Siyahısı',
|
||||
'logo' => 'Loqo',
|
||||
'logo_mark' => 'Nişan',
|
||||
'logout' => 'Çıxış',
|
||||
'manager' => 'Menecer',
|
||||
'migration_needed' => 'Girişdən sonra bazaya {0} köçməsi başlayacaq.',
|
||||
'new' => 'Yeni',
|
||||
'no' => 'Xeyr',
|
||||
'no_persons_to_display' => 'Göstərmək üçün heç kim yoxdur.',
|
||||
@@ -60,10 +57,9 @@ return [
|
||||
'or' => 'VƏ YA',
|
||||
'people' => 'İnsanlar',
|
||||
'phone_number' => 'Telefon Nömrəsi',
|
||||
'phone_number_required' => 'Telefon nömrəsi tələb olunan sahədir.',
|
||||
'please_visit_my' => 'Zəhmət olmasa ziyarət edin',
|
||||
'position' => 'Vəzifə',
|
||||
'powered_by' => 'Dəstəkləyən',
|
||||
'powered_by' => 'Yaradıcı {app} {version}',
|
||||
'price' => 'Qiymət',
|
||||
'print' => 'Çap Et',
|
||||
'remove' => 'Sil',
|
||||
@@ -73,14 +69,11 @@ return [
|
||||
'search' => 'Axtarış',
|
||||
'search_options' => 'Axtarış seçimləri',
|
||||
'searched_for' => 'Axtarıldı',
|
||||
'software_short' => 'OSPOS',
|
||||
'software_title' => 'Açıq Mənbəli Satış Nöqtəsi',
|
||||
'state' => 'Əyalət',
|
||||
'submit' => 'Təsdiqlə',
|
||||
'total_spent' => 'Cəmi Xərclənən',
|
||||
'unknown' => 'Naməlum',
|
||||
'view_recent_sales' => 'Son Satışlara Bax',
|
||||
'website' => 'opensourcepos.org',
|
||||
'welcome' => 'Xoş Gəlmisiniz',
|
||||
'welcome_message' => 'OSPOS-a xoş gəlmisiniz, başlamaq üçün aşağıdakı modullardan birinə klikləyin.',
|
||||
'yes' => 'Bəli',
|
||||
|
||||
@@ -118,10 +118,10 @@ return [
|
||||
'email_receipt_check_behaviour_last' => 'Son seçimi yadda saxla',
|
||||
'email_receipt_check_behaviour_never' => 'Həmişə işarələnməyib',
|
||||
'email_smtp_crypto' => 'SMTP Şifrələmə',
|
||||
'email_smtp_host' => 'SMTP Server',
|
||||
'email_smtp_host' => '',
|
||||
'email_smtp_pass' => 'SMTP Şifrə',
|
||||
'email_smtp_pass_set' => '',
|
||||
'email_smtp_port' => 'SMTP Port',
|
||||
'email_smtp_port' => '',
|
||||
'email_smtp_timeout' => 'SMTP Vaxt Aşımı (s)',
|
||||
'email_smtp_user' => 'SMTP İstifadəçi Adı',
|
||||
'enable_avatar' => 'Avatarı Aktivləşdir',
|
||||
@@ -225,7 +225,7 @@ return [
|
||||
'payment_options_order' => 'Ödəniş Seçimlərinin Sırası',
|
||||
'payment_reference_code_length_limits' => 'Ödəniş İstinad Kodu<br>Uzunluq Limitləri',
|
||||
'payment_reference_code_length_max_label' => 'Maks',
|
||||
'payment_reference_code_length_min_label' => 'Min',
|
||||
'payment_reference_code_length_min_label' => '',
|
||||
'perm_risk' => 'Yanlış icazələr bu proqram təminatını risk altına qoyur.',
|
||||
'phone' => 'Şirkətin Telefonu',
|
||||
'phone_required' => 'Şirkətin Telefonu tələb olunan sahədir.',
|
||||
|
||||
@@ -19,6 +19,6 @@ return [
|
||||
'to' => 'Buna',
|
||||
'today' => 'Bugün',
|
||||
'today_last_year' => 'Keçən il bu gün',
|
||||
'weekstart' => '0',
|
||||
'weekstart' => '1',
|
||||
'yesterday' => 'Dünən',
|
||||
];
|
||||
@@ -41,6 +41,7 @@ return [
|
||||
'successful_deleted' => 'Siz uğurla sildiniz',
|
||||
'successful_updating' => 'Siz əməkdaşı uğurla yenilədiniz',
|
||||
'system_language' => 'Sistem Dili',
|
||||
'unauthorized_modify' => '',
|
||||
'unsuccessful_change_password' => 'Şifrənin dəyişdirilməsi uğursuz oldu.',
|
||||
'update' => 'Əməkdaşı Yenilə',
|
||||
'username' => 'İstifadəçi Adı',
|
||||
|
||||
@@ -27,7 +27,7 @@ return [
|
||||
'due_filter' => 'Borc',
|
||||
'employee' => 'Yaradan',
|
||||
'error_adding_updating' => 'Xərc əlavə edilərkən/yenilənərkən xəta baş verdi',
|
||||
'expense_id' => 'Id',
|
||||
'expense_id' => '',
|
||||
'expenses_employee' => 'Əməkdaş',
|
||||
'info' => 'Xərc Məlumatı',
|
||||
'ip_address' => 'IP Ünvanı',
|
||||
|
||||
@@ -17,12 +17,10 @@ return [
|
||||
'item' => 'Mal',
|
||||
'item_kit_number' => 'Barkod',
|
||||
'item_kit_number_duplicate' => 'Mal Dəsti Nömrəsi verilənlər bazasında artıq mövcuddur.',
|
||||
'item_number' => 'Mal Nömrəsi',
|
||||
'item_number_duplicate' => 'Mal Nömrəsi verilənlər bazasında artıq mövcuddur.',
|
||||
'items' => 'Mallar',
|
||||
'kit' => 'Dəstin İd',
|
||||
'kit_and_components' => 'Dəst və Komponentlər',
|
||||
'kit_and_stock' => 'Dəst və Anbar',
|
||||
'kit_and_components' => 'Dəst və Komponentlər',
|
||||
'kit_and_stock' => 'Dəst və Anbar',
|
||||
'kit_only' => 'Yalnız Dəst',
|
||||
'name' => 'Mal Dəstinin Adı',
|
||||
'new' => 'Yeni Mal Dəsti',
|
||||
|
||||
@@ -43,7 +43,7 @@ return [
|
||||
'error_updating_multiple' => 'Malları yeniləyərkən xəta baş verdi',
|
||||
'generate_barcodes' => 'Barkod Yarat',
|
||||
'hsn_code' => 'Harmonizə Sistem Nomenklaturası',
|
||||
'image' => 'Avatar',
|
||||
'image' => '',
|
||||
'import_items_csv' => 'CSV-dən Mal İdxalı',
|
||||
'info_provided_by' => 'Məlumatı təqdim edən',
|
||||
'inventory' => 'İnventar',
|
||||
|
||||
+27
-27
@@ -1,31 +1,31 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'gcaptcha' => 'Mən robot deyiləm.',
|
||||
'go' => 'Daxil ol',
|
||||
'initialization_message' => 'Verilənlər bazası hələ ilkin qurulmayıb.',
|
||||
'initialization_required' => 'Verilənlər Bazasının İlkin Qurulması Tələb Olunur',
|
||||
'initialize' => 'İlkin qur',
|
||||
'invalid_gcaptcha' => 'Zəhmət olmasa robot olmadığınızı təsdiqləyin.',
|
||||
'invalid_installation' => 'Quraşdırma düzgün deyil, php.ini faylını yoxlayın.',
|
||||
'invalid_username_and_password' => 'Yanlış istifadəçi adı və/və ya şifrə.',
|
||||
'login' => 'Giriş',
|
||||
'logout' => 'Çıxış',
|
||||
'migrating_database' => 'Verilənlər Bazası Miqrasiya Edilir',
|
||||
'migration_auth_message' => 'Verilənlər bazasının {0} versiyasına miqrasiyasını təsdiqləmək üçün administrator məlumatları tələb olunur. Davam etmək üçün daxil olun.',
|
||||
'migration_complete' => 'Verilənlər bazası uğurla ilkin quruldu!',
|
||||
'migration_complete_login' => 'İndi daxil ola bilərsiniz.',
|
||||
'migration_complete_migrate' => 'Verilənlər bazası uğurla miqrasiya edildi!',
|
||||
'migration_complete_redirect' => 'Miqrasiya tamamlandı. Giriş səhifəsinə yönləndirilir...',
|
||||
'migration_error_connection' => 'Bağlantı xətası. Zəhmət olmasa yenidən cəhd edin.',
|
||||
'migration_failed' => 'Miqrasiya uğursuz oldu',
|
||||
'migration_initializing' => 'Verilənlər Bazası İlkin Qurulur',
|
||||
'migration_needed' => 'Girişdən sonra verilənlər bazasının {0} versiyasına miqrasiyası başlayacaq.',
|
||||
'migration_required' => 'Verilənlər Bazasının Miqrasiyası Tələb Olunur',
|
||||
'migration_running' => 'Verilənlər bazası miqrasiyası icra edilir...',
|
||||
'password' => 'Şifrə',
|
||||
'required_username' => 'İstifadəçi adı sahəsi tələb olunur.',
|
||||
'too_many_attempts' => 'Həddindən artıq cəhd. Zəhmət olmasa bir az gözləyib yenidən cəhd edin.',
|
||||
'username' => 'İstifadəçi adı',
|
||||
'welcome' => '{0}-a xoş gəlmisiniz!',
|
||||
'gcaptcha' => 'Mən robot deyiləm.',
|
||||
'go' => 'Daxil ol',
|
||||
'initialization_message' => 'Verilənlər bazası hələ ilkin qurulmayıb.',
|
||||
'initialization_required' => 'Verilənlər Bazasının İlkin Qurulması Tələb Olunur',
|
||||
'initialize' => 'İlkin qur',
|
||||
'invalid_gcaptcha' => 'Zəhmət olmasa robot olmadığınızı təsdiqləyin.',
|
||||
'invalid_installation' => 'Quraşdırma düzgün deyil, php.ini faylını yoxlayın.',
|
||||
'invalid_username_and_password' => 'Yanlış istifadəçi adı və/və ya şifrə.',
|
||||
'login' => 'Giriş',
|
||||
'logout' => 'Çıxış',
|
||||
'migrating_database' => 'Verilənlər Bazası Miqrasiya Edilir',
|
||||
'migration_auth_message' => 'Verilənlər bazasının {0} versiyasına miqrasiyasını təsdiqləmək üçün administrator məlumatları tələb olunur. Davam etmək üçün daxil olun.',
|
||||
'migration_complete' => 'Verilənlər bazası uğurla ilkin quruldu!',
|
||||
'migration_complete_login' => 'İndi daxil ola bilərsiniz.',
|
||||
'migration_complete_migrate' => 'Verilənlər bazası uğurla miqrasiya edildi!',
|
||||
'migration_complete_redirect' => 'Miqrasiya tamamlandı. Giriş səhifəsinə yönləndirilir...',
|
||||
'migration_error_connection' => 'Bağlantı xətası. Zəhmət olmasa yenidən cəhd edin.',
|
||||
'migration_failed' => 'Miqrasiya uğursuz oldu',
|
||||
'migration_initializing' => 'Verilənlər Bazası İlkin Qurulur',
|
||||
'migration_needed' => 'Girişdən sonra verilənlər bazasının {0} versiyasına miqrasiyası başlayacaq.',
|
||||
'migration_required' => 'Verilənlər Bazasının Miqrasiyası Tələb Olunur',
|
||||
'migration_running' => 'Verilənlər bazası miqrasiyası icra edilir...',
|
||||
'password' => 'Şifrə',
|
||||
'required_username' => 'İstifadəçi adı sahəsi tələb olunur.',
|
||||
'too_many_attempts' => 'Həddindən artıq cəhd. Zəhmət olmasa bir az gözləyib yenidən cəhd edin.',
|
||||
'username' => 'İstifadəçi adı',
|
||||
'welcome' => '{0}-a xoş gəlmisiniz!',
|
||||
];
|
||||
@@ -11,6 +11,6 @@ return [
|
||||
'phone_number_required' => 'Telefon nömrəsi tələb olunur',
|
||||
'phone_placeholder' => 'Mobil Nömrə(lər) burada...',
|
||||
'sms_send' => 'SMS Göndər',
|
||||
'successfully_sent' => 'Mesaj uğurla göndərildi: ',
|
||||
'unsuccessfully_sent' => 'Mesaj göndərilmədi: ',
|
||||
'successfully_sent' => 'Mesaj uğurla göndərildi:',
|
||||
'unsuccessfully_sent' => 'Mesaj göndərilmədi:',
|
||||
];
|
||||
@@ -28,6 +28,7 @@ return [
|
||||
'item_name' => 'Mal Adı',
|
||||
'mode' => 'Qəbul Rejimi',
|
||||
'new_supplier' => 'Yeni Təchizatçı',
|
||||
'not_authorized' => '',
|
||||
'one_or_multiple' => 'qəbul(lar)',
|
||||
'print_after_sale' => 'Satışdan Sonra Çap Et',
|
||||
'quantity' => 'Say',
|
||||
|
||||
@@ -9,7 +9,7 @@ return [
|
||||
'category' => 'Kateqoriya',
|
||||
'code_canceled' => 'LĞV',
|
||||
'code_invoice' => 'HES',
|
||||
'code_pos' => 'POS',
|
||||
'code_pos' => '',
|
||||
'code_quote' => 'T',
|
||||
'code_return' => 'GER',
|
||||
'code_type' => 'Növ',
|
||||
|
||||
@@ -66,7 +66,7 @@ return [
|
||||
'giftcard_number' => 'Hədiyyə Kartının Nömrəsi',
|
||||
'group_by_category' => 'Kateqoriyaya görə Qrupla',
|
||||
'group_by_type' => 'Növə görə Qrupla',
|
||||
'hsn' => 'HSN',
|
||||
'hsn' => '',
|
||||
'id' => 'Satış ID',
|
||||
'include_prices' => 'Qiymətlər daxil edilsin?',
|
||||
'insufficient_giftcard_balance' => 'Bu ödəniş üçün hədiyyə kartının balansı yetərli deyil.',
|
||||
@@ -123,8 +123,9 @@ return [
|
||||
'new_item' => 'Yeni Mal',
|
||||
'no_description' => 'Təsvir yoxdur',
|
||||
'no_items_in_cart' => 'Səbətdə heç bir mal yoxdur.',
|
||||
'no_sales_to_display' => 'Göstəriləcək Satış yoxdur.',
|
||||
'none_selected' => 'Silmək üçün heç bir Satış seçməmisiniz.',
|
||||
'nontaxed_ind' => ' ',
|
||||
'nontaxed_ind' => '',
|
||||
'not_authorized' => 'Bu əməliyyata icazə verilmir.',
|
||||
'one_or_multiple' => 'satış(lar)',
|
||||
'payment' => 'Ödəniş Növü',
|
||||
@@ -182,7 +183,7 @@ return [
|
||||
'successfully_updated' => 'Satış uğurla yeniləndi.',
|
||||
'suspend_sale' => 'Dayandır',
|
||||
'suspended_doc_id' => 'Sənəd',
|
||||
'suspended_sale_id' => 'ID',
|
||||
'suspended_sale_id' => '',
|
||||
'suspended_sales' => 'Dayandırılmış',
|
||||
'table' => 'Masa',
|
||||
'takings' => 'Günlük Satışlar',
|
||||
@@ -202,7 +203,7 @@ return [
|
||||
'unsuspend' => 'Bərpa Et',
|
||||
'unsuspend_and_delete' => 'Əməliyyat',
|
||||
'update' => 'Yenilə',
|
||||
'upi' => 'UPI',
|
||||
'upi' => '',
|
||||
'wallet' => 'Cüzdan',
|
||||
'work_order' => 'İş Sifarişi',
|
||||
'work_order_number' => 'İş Sifarişi Nömrəsi',
|
||||
|
||||
@@ -12,6 +12,7 @@ return [
|
||||
'default_tax_rate' => 'Standart Vergi Dərəcəsi',
|
||||
'error_adding_updating' => 'Vergi Kodu əlavə edilmədi və ya yenilənmədi',
|
||||
'group_seq' => 'Qrup Ardıcıllığı',
|
||||
'jurisdiction_id' => '',
|
||||
'jurisdiction_name' => 'Yurisdiksiya Adı',
|
||||
'name' => 'Ad',
|
||||
'new' => 'Yeni Vergi',
|
||||
|
||||
@@ -6,10 +6,10 @@ return [
|
||||
'confirm_restore' => '',
|
||||
'definition_cannot_be_deleted' => '',
|
||||
'definition_error_adding_updating' => '',
|
||||
'definition_invalid_group' => '',
|
||||
'definition_flags' => '',
|
||||
'definition_group' => '',
|
||||
'definition_id' => '',
|
||||
'definition_invalid_group' => '',
|
||||
'definition_name' => '',
|
||||
'definition_name_required' => '',
|
||||
'definition_one_or_multiple' => '',
|
||||
|
||||
@@ -11,7 +11,6 @@ return [
|
||||
'comments' => 'Коментари',
|
||||
'common' => 'Често срещани',
|
||||
'confirm_search' => 'Избрали сте един или повече редове, след търсене няма да бъдат избрани. Наистина ли искате да подадете това търсене?',
|
||||
'copyrights' => '© 2010 - {0}',
|
||||
'correct_errors' => 'Моля, коригирайте установените грешки преди записване',
|
||||
'country' => 'Държава',
|
||||
'dashboard' => '',
|
||||
@@ -50,20 +49,17 @@ return [
|
||||
'list_of' => 'Списък с',
|
||||
'logo' => '',
|
||||
'logo_mark' => '',
|
||||
'logout' => 'Излизане от профила',
|
||||
'manager' => '',
|
||||
'migration_needed' => 'Мигриране на база данни ще започне след влизане.',
|
||||
'new' => 'Нов',
|
||||
'no' => '',
|
||||
'no_persons_to_display' => 'Няма хора за показване.',
|
||||
'none_selected_text' => 'Нищо не е избрано',
|
||||
'none_selected_text' => '[Нищо не е избрано]',
|
||||
'or' => 'Или',
|
||||
'people' => '',
|
||||
'phone_number' => 'Телефонен номер',
|
||||
'phone_number_required' => '',
|
||||
'please_visit_my' => 'Моля, посетете',
|
||||
'position' => '',
|
||||
'powered_by' => 'С подкрепата на',
|
||||
'powered_by' => 'С подкрепата на {app} {version}',
|
||||
'price' => 'Цена',
|
||||
'print' => 'Принтиране',
|
||||
'remove' => 'Премахване',
|
||||
@@ -73,14 +69,11 @@ return [
|
||||
'search' => 'Търсене',
|
||||
'search_options' => 'Опции за търсене',
|
||||
'searched_for' => 'Търсене за',
|
||||
'software_short' => '',
|
||||
'software_title' => '',
|
||||
'state' => 'Щат',
|
||||
'submit' => 'Изпращане',
|
||||
'total_spent' => 'Общо изразходвани',
|
||||
'unknown' => 'Неизвестен',
|
||||
'view_recent_sales' => 'Преглед на последните продажби',
|
||||
'website' => 'Уебсайт',
|
||||
'welcome' => 'Добре дошли',
|
||||
'welcome_message' => 'Добре дошли в OSPOS, кликнете върху модул по-долу, за да започнете.',
|
||||
'yes' => '',
|
||||
|
||||
+240
-238
@@ -3,7 +3,7 @@
|
||||
return [
|
||||
'address' => 'Адрес на компанията',
|
||||
'address_required' => 'Адресът на компанията е задължително поле.',
|
||||
'all_set' => 'All file permissions are set correctly!',
|
||||
'all_set' => '',
|
||||
'allow_duplicate_barcodes' => 'Разрешаване на дублирани баркодове',
|
||||
'apostrophe' => 'апостроф',
|
||||
'backup_button' => 'резервно копие',
|
||||
@@ -13,25 +13,25 @@ return [
|
||||
'barcode_configuration' => 'Конфигуриране на баркод',
|
||||
'barcode_content' => 'Съдържание на баркод',
|
||||
'barcode_first_row' => 'Ред 1',
|
||||
'barcode_font' => 'Font',
|
||||
'barcode_formats' => 'Input Formats',
|
||||
'barcode_generate_if_empty' => 'Generate if empty.',
|
||||
'barcode_height' => 'Height (px)',
|
||||
'barcode_id' => 'Item Id/Name',
|
||||
'barcode_info' => 'Barcode Configuration Information',
|
||||
'barcode_layout' => 'Barcode Layout',
|
||||
'barcode_name' => 'Name',
|
||||
'barcode_number' => 'Barcode',
|
||||
'barcode_number_in_row' => 'Number in row',
|
||||
'barcode_page_cellspacing' => 'Display page cellspacing.',
|
||||
'barcode_page_width' => 'Display page width',
|
||||
'barcode_price' => 'Price',
|
||||
'barcode_second_row' => 'Row 2',
|
||||
'barcode_third_row' => 'Row 3',
|
||||
'barcode_tooltip' => 'Warning: This feature can cause duplicate items to be imported or created. Do not use if you do not want duplicate barcodes.',
|
||||
'barcode_type' => 'Barcode Type',
|
||||
'barcode_width' => 'Width (px)',
|
||||
'bottom' => 'Bottom',
|
||||
'barcode_font' => '',
|
||||
'barcode_formats' => '',
|
||||
'barcode_generate_if_empty' => '',
|
||||
'barcode_height' => '',
|
||||
'barcode_id' => '',
|
||||
'barcode_info' => '',
|
||||
'barcode_layout' => '',
|
||||
'barcode_name' => '',
|
||||
'barcode_number' => '',
|
||||
'barcode_number_in_row' => '',
|
||||
'barcode_page_cellspacing' => '',
|
||||
'barcode_page_width' => '',
|
||||
'barcode_price' => '',
|
||||
'barcode_second_row' => '',
|
||||
'barcode_third_row' => '',
|
||||
'barcode_tooltip' => '',
|
||||
'barcode_type' => '',
|
||||
'barcode_width' => '',
|
||||
'bottom' => '',
|
||||
'cash_button' => '',
|
||||
'cash_button_1' => '',
|
||||
'cash_button_2' => '',
|
||||
@@ -39,91 +39,91 @@ return [
|
||||
'cash_button_4' => '',
|
||||
'cash_button_5' => '',
|
||||
'cash_button_6' => '',
|
||||
'cash_decimals' => 'Cash Decimals',
|
||||
'cash_decimals_tooltip' => 'If Cash Decimals and Currency Decimals are the same then no cash rounding will take place.',
|
||||
'cash_rounding' => 'Cash Rounding',
|
||||
'cash_decimals' => '',
|
||||
'cash_decimals_tooltip' => '',
|
||||
'cash_rounding' => '',
|
||||
'category_dropdown' => '',
|
||||
'center' => 'Center',
|
||||
'center' => '',
|
||||
'change_apperance_tooltip' => '',
|
||||
'comma' => 'comma',
|
||||
'company' => 'Company Name',
|
||||
'comma' => '',
|
||||
'company' => '',
|
||||
'company_avatar' => '',
|
||||
'company_change_image' => 'Change Image',
|
||||
'company_logo' => 'Company Logo',
|
||||
'company_remove_image' => 'Remove Image',
|
||||
'company_required' => 'Company name is a required field',
|
||||
'company_select_image' => 'Select Image',
|
||||
'company_website_url' => 'Company website is not a valid URL (http://...).',
|
||||
'country_codes' => 'Country Codes',
|
||||
'country_codes_tooltip' => 'Comma separated list of country codes for nominatim address lookup.',
|
||||
'company_change_image' => '',
|
||||
'company_logo' => '',
|
||||
'company_remove_image' => '',
|
||||
'company_required' => '',
|
||||
'company_select_image' => '',
|
||||
'company_website_url' => '',
|
||||
'country_codes' => '',
|
||||
'country_codes_tooltip' => '',
|
||||
'currency_code' => '',
|
||||
'currency_decimals' => 'Currency Decimals',
|
||||
'currency_symbol' => 'Currency Symbol',
|
||||
'currency_decimals' => '',
|
||||
'currency_symbol' => '',
|
||||
'current_employee_only' => '',
|
||||
'customer_reward' => 'Reward',
|
||||
'customer_reward_duplicate' => 'Reward must be unique.',
|
||||
'customer_reward_enable' => 'Enable Customer Rewards',
|
||||
'customer_reward_invalid_chars' => 'Reward can not contain \'_\'',
|
||||
'customer_reward_required' => 'Reward is a required field',
|
||||
'customer_sales_tax_support' => 'Customer Sales Tax Support',
|
||||
'date_or_time_format' => 'Date and Time Filter',
|
||||
'datetimeformat' => 'Date and Time Format',
|
||||
'decimal_point' => 'Decimal Point',
|
||||
'default_barcode_font_size_number' => 'Default Barcode Font Size must be a number.',
|
||||
'default_barcode_font_size_required' => 'Default Barcode Font Size is a required field.',
|
||||
'default_barcode_height_number' => 'Default Barcode Height must be a number.',
|
||||
'default_barcode_height_required' => 'Default Barcode Height is a required field.',
|
||||
'default_barcode_num_in_row_number' => 'Default Barcode Number in Row must be a number.',
|
||||
'default_barcode_num_in_row_required' => 'Default Barcode Number in Row is a required field.',
|
||||
'default_barcode_page_cellspacing_number' => 'Default Barcode Page Cellspacing must be a number.',
|
||||
'default_barcode_page_cellspacing_required' => 'Default Barcode Page Cellspacing is a required field.',
|
||||
'default_barcode_page_width_number' => 'Default Barcode Page Width must be a number.',
|
||||
'default_barcode_page_width_required' => 'Default Barcode Page Width is a required field.',
|
||||
'default_barcode_width_number' => 'Default Barcode Width must be a number.',
|
||||
'default_barcode_width_required' => 'Default Barcode Width is a required field.',
|
||||
'customer_reward' => '',
|
||||
'customer_reward_duplicate' => '',
|
||||
'customer_reward_enable' => '',
|
||||
'customer_reward_invalid_chars' => '',
|
||||
'customer_reward_required' => '',
|
||||
'customer_sales_tax_support' => '',
|
||||
'date_or_time_format' => '',
|
||||
'datetimeformat' => '',
|
||||
'decimal_point' => '',
|
||||
'default_barcode_font_size_number' => '',
|
||||
'default_barcode_font_size_required' => '',
|
||||
'default_barcode_height_number' => '',
|
||||
'default_barcode_height_required' => '',
|
||||
'default_barcode_num_in_row_number' => '',
|
||||
'default_barcode_num_in_row_required' => '',
|
||||
'default_barcode_page_cellspacing_number' => '',
|
||||
'default_barcode_page_cellspacing_required' => '',
|
||||
'default_barcode_page_width_number' => '',
|
||||
'default_barcode_page_width_required' => '',
|
||||
'default_barcode_width_number' => '',
|
||||
'default_barcode_width_required' => '',
|
||||
'default_item_columns' => '',
|
||||
'default_origin_tax_code' => 'Default Origin Tax Code',
|
||||
'default_origin_tax_code' => '',
|
||||
'default_receivings_discount' => '',
|
||||
'default_receivings_discount_number' => '',
|
||||
'default_receivings_discount_required' => '',
|
||||
'default_sales_discount' => 'Default Sales Discount %',
|
||||
'default_sales_discount_number' => 'Default Sales Discount must be a number.',
|
||||
'default_sales_discount_required' => 'Default Sales Discount is a required field.',
|
||||
'default_sales_discount' => '',
|
||||
'default_sales_discount_number' => '',
|
||||
'default_sales_discount_required' => '',
|
||||
'default_tax_category' => '',
|
||||
'default_tax_code' => '',
|
||||
'default_tax_jurisdiction' => '',
|
||||
'default_tax_name_number' => 'Default Tax Name must be a string.',
|
||||
'default_tax_name_required' => 'Default Tax Name is a required field.',
|
||||
'default_tax_rate' => 'Default Tax Rate %',
|
||||
'default_tax_rate_1' => 'Tax 1 Rate',
|
||||
'default_tax_rate_2' => 'Tax 2 Rate',
|
||||
'default_tax_name_number' => '',
|
||||
'default_tax_name_required' => '',
|
||||
'default_tax_rate' => '',
|
||||
'default_tax_rate_1' => '',
|
||||
'default_tax_rate_2' => '',
|
||||
'default_tax_rate_3' => '',
|
||||
'default_tax_rate_number' => 'Default Tax Rate must be a number.',
|
||||
'default_tax_rate_non_negative' => '',
|
||||
'default_tax_rate_required' => 'Default Tax Rate is a required field.',
|
||||
'default_tax_rate_number' => '',
|
||||
'default_tax_rate_required' => '',
|
||||
'derive_sale_quantity' => '',
|
||||
'derive_sale_quantity_tooltip' => '',
|
||||
'dinner_table' => 'Table',
|
||||
'dinner_table_duplicate' => 'Table must be unique.',
|
||||
'dinner_table_enable' => 'Enable Dinner Tables',
|
||||
'dinner_table_invalid_chars' => 'Table Name can not contain \'_\'.',
|
||||
'dinner_table_required' => 'Table is a required field.',
|
||||
'dot' => 'dot',
|
||||
'email' => 'Email',
|
||||
'email_configuration' => 'Email Configuration',
|
||||
'email_mailpath' => 'Path to Sendmail',
|
||||
'email_protocol' => 'Protocol',
|
||||
'dinner_table' => '',
|
||||
'dinner_table_duplicate' => '',
|
||||
'dinner_table_enable' => '',
|
||||
'dinner_table_invalid_chars' => '',
|
||||
'dinner_table_required' => '',
|
||||
'dot' => '',
|
||||
'email' => '',
|
||||
'email_configuration' => '',
|
||||
'email_mailpath' => '',
|
||||
'email_protocol' => '',
|
||||
'email_receipt_check_behaviour' => '',
|
||||
'email_receipt_check_behaviour_always' => '',
|
||||
'email_receipt_check_behaviour_last' => '',
|
||||
'email_receipt_check_behaviour_never' => '',
|
||||
'email_smtp_crypto' => 'SMTP Encryption',
|
||||
'email_smtp_host' => 'SMTP Server',
|
||||
'email_smtp_pass' => 'SMTP Password',
|
||||
'email_smtp_crypto' => '',
|
||||
'email_smtp_host' => '',
|
||||
'email_smtp_pass' => '',
|
||||
'email_smtp_pass_set' => '',
|
||||
'email_smtp_port' => 'SMTP Port',
|
||||
'email_smtp_timeout' => 'SMTP Timeout (s)',
|
||||
'email_smtp_user' => 'SMTP Username',
|
||||
'email_smtp_port' => '',
|
||||
'email_smtp_timeout' => '',
|
||||
'email_smtp_user' => '',
|
||||
'enable_avatar' => '',
|
||||
'enable_avatar_tooltip' => '',
|
||||
'enable_dropdown_tooltip' => '',
|
||||
@@ -132,207 +132,209 @@ return [
|
||||
'enable_right_bar_tooltip' => '',
|
||||
'enforce_privacy' => '',
|
||||
'enforce_privacy_tooltip' => '',
|
||||
'fax' => 'Fax',
|
||||
'file_perm' => 'There are problems with file permissions please fix and reload this page.',
|
||||
'financial_year' => 'Fiscal Year Start',
|
||||
'financial_year_apr' => '1st of April',
|
||||
'financial_year_aug' => '1st of August',
|
||||
'financial_year_dec' => '1st of December',
|
||||
'financial_year_feb' => '1st of February',
|
||||
'financial_year_jan' => '1st of January',
|
||||
'financial_year_jul' => '1st of July',
|
||||
'financial_year_jun' => '1st of June',
|
||||
'financial_year_mar' => '1st of March',
|
||||
'financial_year_may' => '1st of May',
|
||||
'financial_year_nov' => '1st of November',
|
||||
'financial_year_oct' => '1st of October',
|
||||
'financial_year_sep' => '1st of September',
|
||||
'fax' => '',
|
||||
'file_perm' => '',
|
||||
'financial_year' => '',
|
||||
'financial_year_apr' => '',
|
||||
'financial_year_aug' => '',
|
||||
'financial_year_dec' => '',
|
||||
'financial_year_feb' => '',
|
||||
'financial_year_jan' => '',
|
||||
'financial_year_jul' => '',
|
||||
'financial_year_jun' => '',
|
||||
'financial_year_mar' => '',
|
||||
'financial_year_may' => '',
|
||||
'financial_year_nov' => '',
|
||||
'financial_year_oct' => '',
|
||||
'financial_year_sep' => '',
|
||||
'floating_labels' => '',
|
||||
'gcaptcha_enable' => 'Login Page reCAPTCHA',
|
||||
'gcaptcha_secret_key' => 'reCAPTCHA Secret Key',
|
||||
'gcaptcha_secret_key_required' => 'reCAPTCHA Secret Key is a required field',
|
||||
'gcaptcha_site_key' => 'reCAPTCHA Site Key',
|
||||
'gcaptcha_site_key_required' => 'reCAPTCHA Site Key is a required field',
|
||||
'gcaptcha_tooltip' => 'Protect the Login page with Google reCAPTCHA, click the icon for an API key pair.',
|
||||
'general' => 'General',
|
||||
'general_configuration' => 'General Configuration',
|
||||
'giftcard_number' => 'Gift Card Number',
|
||||
'giftcard_random' => 'Generate Random',
|
||||
'giftcard_series' => 'Generate in Series',
|
||||
'gcaptcha_enable' => '',
|
||||
'gcaptcha_secret_key' => '',
|
||||
'gcaptcha_secret_key_required' => '',
|
||||
'gcaptcha_site_key' => '',
|
||||
'gcaptcha_site_key_required' => '',
|
||||
'gcaptcha_tooltip' => '',
|
||||
'general' => '',
|
||||
'general_configuration' => '',
|
||||
'giftcard_number' => '',
|
||||
'giftcard_random' => '',
|
||||
'giftcard_series' => '',
|
||||
'image_allowed_file_types' => '',
|
||||
'image_max_height_tooltip' => '',
|
||||
'image_max_size_tooltip' => '',
|
||||
'image_max_width_tooltip' => '',
|
||||
'image_restrictions' => '',
|
||||
'include_hsn' => '',
|
||||
'info' => 'Information',
|
||||
'info_configuration' => 'Store Information',
|
||||
'info' => '',
|
||||
'info_configuration' => '',
|
||||
'input_groups' => '',
|
||||
'invoice' => 'Invoice',
|
||||
'invoice_configuration' => 'Invoice Print Settings',
|
||||
'invoice_default_comments' => 'Default Invoice Comments',
|
||||
'invoice_email_message' => 'Invoice Email Template',
|
||||
'invoice_enable' => 'Enable Invoicing',
|
||||
'invoice_printer' => 'Invoice Printer',
|
||||
'integrations' => '',
|
||||
'integrations_configuration' => '',
|
||||
'invoice' => '',
|
||||
'invoice_configuration' => '',
|
||||
'invoice_default_comments' => '',
|
||||
'invoice_email_message' => '',
|
||||
'invoice_enable' => '',
|
||||
'invoice_printer' => '',
|
||||
'invoice_type' => '',
|
||||
'is_readable' => '',
|
||||
'is_writable' => 'is writable, but the permissions are higher than 750.',
|
||||
'is_writable' => '',
|
||||
'item_markup' => '',
|
||||
'jsprintsetup_required' => 'Warning: This functionality will only work if you have the FireFox jsPrintSetup addon installed. Save anyway?',
|
||||
'language' => 'Language',
|
||||
'last_used_invoice_number' => 'Last used Invoice Number',
|
||||
'last_used_quote_number' => 'Last used Quote Number',
|
||||
'last_used_work_order_number' => 'Last used W/O Number',
|
||||
'left' => 'Left',
|
||||
'license' => 'License',
|
||||
'license_configuration' => 'License Statement',
|
||||
'line_sequence' => 'Line Sequence',
|
||||
'lines_per_page' => 'Lines per Page',
|
||||
'jsprintsetup_required' => '',
|
||||
'language' => '',
|
||||
'last_used_invoice_number' => '',
|
||||
'last_used_quote_number' => '',
|
||||
'last_used_work_order_number' => '',
|
||||
'left' => '',
|
||||
'license' => '',
|
||||
'license_configuration' => '',
|
||||
'line_sequence' => '',
|
||||
'lines_per_page' => '',
|
||||
'lines_per_page_number' => 'Линиите на страница трябва да са число.',
|
||||
'lines_per_page_required' => 'Lines per Page is a required field.',
|
||||
'locale' => 'Localization',
|
||||
'locale_configuration' => 'Localization Configuration',
|
||||
'locale_info' => 'Localization Configuration Information',
|
||||
'location' => 'Stock',
|
||||
'location_configuration' => 'Stock Locations',
|
||||
'location_info' => 'Location Configuration Information',
|
||||
'lines_per_page_required' => '',
|
||||
'locale' => '',
|
||||
'locale_configuration' => '',
|
||||
'locale_info' => '',
|
||||
'location' => '',
|
||||
'location_configuration' => '',
|
||||
'location_info' => '',
|
||||
'login_form' => '',
|
||||
'logout' => 'Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.',
|
||||
'message' => 'Message',
|
||||
'message_configuration' => 'Message Configuration',
|
||||
'msg_msg' => 'Saved Text Message',
|
||||
'msg_msg_placeholder' => 'If you wish to use a SMS template save your message here, otherwise leave the box blank.',
|
||||
'msg_pwd' => 'SMS-API Password',
|
||||
'logout' => '',
|
||||
'mailpath_invalid' => 'Невалиден път до sendmail. Разрешени са само букви, цифри, тирета, долни черти, наклонени черти, обратни наклонени черти, двоеточия, интервали и точки.',
|
||||
'message' => '',
|
||||
'message_configuration' => '',
|
||||
'msg_msg' => '',
|
||||
'msg_msg_placeholder' => '',
|
||||
'msg_pwd' => '',
|
||||
'msg_pwd_set' => '',
|
||||
'msg_src' => 'SMS-API Sender ID',
|
||||
'msg_src_required' => 'SMS-API Sender ID is a required field',
|
||||
'msg_uid' => 'SMS-API Username',
|
||||
'msg_uid_required' => 'SMS-API Username is a required field',
|
||||
'msg_src' => '',
|
||||
'msg_src_required' => '',
|
||||
'msg_uid' => '',
|
||||
'msg_uid_required' => '',
|
||||
'multi_pack_enabled' => '',
|
||||
'no_risk' => 'No security/vulnerability risks.',
|
||||
'none' => 'none',
|
||||
'notify_alignment' => 'Notification Popup Position',
|
||||
'number_format' => 'Number Format',
|
||||
'number_locale' => 'Localization',
|
||||
'number_locale_invalid' => 'The entered locale is invalid. Check the link in the tooltip to find a valid locale.',
|
||||
'number_locale_required' => 'Number Locale is a required field.',
|
||||
'number_locale_tooltip' => 'Find a suitable locale through this link.',
|
||||
'no_risk' => '',
|
||||
'none' => '',
|
||||
'notify_alignment' => '',
|
||||
'number_format' => '',
|
||||
'number_locale' => '',
|
||||
'number_locale_invalid' => '',
|
||||
'number_locale_required' => '',
|
||||
'number_locale_tooltip' => '',
|
||||
'os_timezone' => '',
|
||||
'ospos_info' => '',
|
||||
'payment_options_order' => 'Payment Options Order',
|
||||
'payment_options_order' => '',
|
||||
'payment_reference_code_length_limits' => 'Референтен код на плащане<br>Ограничения на дължината',
|
||||
'payment_reference_code_length_max_label' => 'Макс',
|
||||
'payment_reference_code_length_min_label' => 'Мин',
|
||||
'perm_risk' => 'Permissions higher than 750 leaves this software at risk.',
|
||||
'phone' => 'Company Phone',
|
||||
'phone_required' => 'Company Phone is a required field.',
|
||||
'print_bottom_margin' => 'Margin Bottom',
|
||||
'print_bottom_margin_number' => 'Margin Bottom must be a number.',
|
||||
'print_bottom_margin_required' => 'Margin Bottom is a required field.',
|
||||
'perm_risk' => '',
|
||||
'phone' => '',
|
||||
'phone_required' => '',
|
||||
'print_bottom_margin' => '',
|
||||
'print_bottom_margin_number' => '',
|
||||
'print_bottom_margin_required' => '',
|
||||
'print_delay_autoreturn' => '',
|
||||
'print_delay_autoreturn_number' => '',
|
||||
'print_delay_autoreturn_required' => '',
|
||||
'print_footer' => 'Print Browser Footer',
|
||||
'print_header' => 'Print Browser Header',
|
||||
'print_left_margin' => 'Margin Left',
|
||||
'print_left_margin_number' => 'Margin Left must be a number.',
|
||||
'print_left_margin_required' => 'Margin Left is a required field.',
|
||||
'print_footer' => '',
|
||||
'print_header' => '',
|
||||
'print_left_margin' => '',
|
||||
'print_left_margin_number' => '',
|
||||
'print_left_margin_required' => '',
|
||||
'print_receipt_check_behaviour' => '',
|
||||
'print_receipt_check_behaviour_always' => '',
|
||||
'print_receipt_check_behaviour_last' => '',
|
||||
'print_receipt_check_behaviour_never' => '',
|
||||
'print_right_margin' => 'Margin Right',
|
||||
'print_right_margin_number' => 'Margin Right must be a number.',
|
||||
'print_right_margin_required' => 'Margin Right is a required field.',
|
||||
'print_silently' => 'Show Print Dialog',
|
||||
'print_top_margin' => 'Margin Top',
|
||||
'print_top_margin_number' => 'Margin Top must be a number.',
|
||||
'print_top_margin_required' => 'Margin Top is a required field.',
|
||||
'quantity_decimals' => 'Quantity Decimals',
|
||||
'print_right_margin' => '',
|
||||
'print_right_margin_number' => '',
|
||||
'print_right_margin_required' => '',
|
||||
'print_silently' => '',
|
||||
'print_top_margin' => '',
|
||||
'print_top_margin_number' => '',
|
||||
'print_top_margin_required' => '',
|
||||
'quantity_decimals' => '',
|
||||
'quick_cash_enable' => '',
|
||||
'quote_default_comments' => '',
|
||||
'receipt' => 'Receipt',
|
||||
'receipt' => '',
|
||||
'receipt_category' => '',
|
||||
'receipt_configuration' => 'Receipt Print Settings',
|
||||
'receipt_default' => 'Default',
|
||||
'receipt_font_size' => 'Font Size',
|
||||
'receipt_font_size_number' => 'Font Size must be a number.',
|
||||
'receipt_font_size_required' => 'Font Size is a required field.',
|
||||
'receipt_info' => 'Receipt Configuration Information',
|
||||
'receipt_printer' => 'Ticket Printer',
|
||||
'receipt_short' => 'Short',
|
||||
'receipt_show_company_name' => 'Show Company Name',
|
||||
'receipt_show_description' => 'Show Description',
|
||||
'receipt_show_serialnumber' => 'Show Serial Number',
|
||||
'receipt_configuration' => '',
|
||||
'receipt_default' => '',
|
||||
'receipt_font_size' => '',
|
||||
'receipt_font_size_number' => '',
|
||||
'receipt_font_size_required' => '',
|
||||
'receipt_info' => '',
|
||||
'receipt_printer' => '',
|
||||
'receipt_short' => '',
|
||||
'receipt_show_company_name' => '',
|
||||
'receipt_show_description' => '',
|
||||
'receipt_show_serialnumber' => '',
|
||||
'receipt_show_tax_ind' => '',
|
||||
'receipt_show_taxes' => 'Show Taxes',
|
||||
'receipt_show_total_discount' => 'Show Total Discount',
|
||||
'receipt_template' => 'Receipt Template',
|
||||
'receiving_calculate_average_price' => 'Calc avg. Price (Receiving)',
|
||||
'recv_invoice_format' => 'Receivings Invoice Format',
|
||||
'register_mode_default' => 'Default Register Mode',
|
||||
'receipt_show_taxes' => '',
|
||||
'receipt_show_total_discount' => '',
|
||||
'receipt_template' => '',
|
||||
'receiving_calculate_average_price' => '',
|
||||
'recv_invoice_format' => '',
|
||||
'register_mode_default' => '',
|
||||
'report_an_issue' => '',
|
||||
'return_policy_required' => 'Return policy is a required field.',
|
||||
'reward' => 'Reward',
|
||||
'reward_configuration' => 'Reward Configuration',
|
||||
'right' => 'Right',
|
||||
'sales_invoice_format' => 'Sales Invoice Format',
|
||||
'sales_quote_format' => 'Sales Quote Format',
|
||||
'mailpath_invalid' => 'Невалиден път до sendmail. Разрешени са само букви, цифри, тирета, долни черти, наклонени черти, обратни наклонени черти, двоеточия, интервали и точки.',
|
||||
'saved_successfully' => 'Configuration save successful.',
|
||||
'saved_unsuccessfully' => 'Configuration save failed.',
|
||||
'security_issue' => 'Security Vulnerability Warning',
|
||||
'server_notice' => 'Please use the below info for issue reporting.',
|
||||
'return_policy_required' => '',
|
||||
'reward' => '',
|
||||
'reward_configuration' => '',
|
||||
'right' => '',
|
||||
'sales_invoice_format' => '',
|
||||
'sales_quote_format' => '',
|
||||
'saved_successfully' => '',
|
||||
'saved_unsuccessfully' => '',
|
||||
'security_issue' => '',
|
||||
'server_notice' => '',
|
||||
'service_charge' => '',
|
||||
'show_due_enable' => '',
|
||||
'show_office_group' => 'Show office icon',
|
||||
'statistics' => 'Send Statistics',
|
||||
'statistics_tooltip' => 'Send statistics for development and feature improvement purposes.',
|
||||
'stock_location' => 'Stock location',
|
||||
'stock_location_default' => 'Склад по подразбиране',
|
||||
'stock_location_default_header' => 'По подразбиране',
|
||||
'stock_location_duplicate' => 'Stock Location must be unique.',
|
||||
'stock_location_invalid_chars' => 'Stock Location can not contain \'_\'.',
|
||||
'stock_location_name_header' => 'Име',
|
||||
'stock_location_required' => 'Stock location is a required field.',
|
||||
'suggestions_fifth_column' => '',
|
||||
'suggestions_first_column' => 'Column 1',
|
||||
'suggestions_fourth_column' => '',
|
||||
'suggestions_layout' => 'Search Suggestions Layout',
|
||||
'suggestions_second_column' => 'Column 2',
|
||||
'suggestions_third_column' => 'Column 3',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'system_conf' => 'Setup & Conf',
|
||||
'system_info' => 'System Info',
|
||||
'show_due_enable' => '',
|
||||
'show_office_group' => '',
|
||||
'statistics' => '',
|
||||
'statistics_tooltip' => '',
|
||||
'stock_location' => '',
|
||||
'stock_location_default' => 'Склад по подразбиране',
|
||||
'stock_location_default_header' => 'По подразбиране',
|
||||
'stock_location_duplicate' => '',
|
||||
'stock_location_invalid_chars' => '',
|
||||
'stock_location_name_header' => 'Име',
|
||||
'stock_location_required' => '',
|
||||
'suggestions_fifth_column' => '',
|
||||
'suggestions_first_column' => '',
|
||||
'suggestions_fourth_column' => '',
|
||||
'suggestions_layout' => '',
|
||||
'suggestions_second_column' => '',
|
||||
'suggestions_third_column' => '',
|
||||
'system_conf' => '',
|
||||
'system_info' => '',
|
||||
'system_info_copy' => '',
|
||||
'system_info_copy_error' => '',
|
||||
'system_info_copy_success' => '',
|
||||
'table' => 'Table',
|
||||
'table_configuration' => 'Table Configuration',
|
||||
'takings_printer' => 'Receipt Printer',
|
||||
'tax' => 'Tax',
|
||||
'tax_category' => 'Tax Category',
|
||||
'table' => '',
|
||||
'table_configuration' => '',
|
||||
'takings_printer' => '',
|
||||
'tax' => '',
|
||||
'tax_category' => '',
|
||||
'tax_category_duplicate' => '',
|
||||
'tax_category_invalid_chars' => '',
|
||||
'tax_category_required' => '',
|
||||
'tax_category_used' => 'Tax category cannot be deleted because it is being used.',
|
||||
'tax_configuration' => 'Tax Configuration',
|
||||
'tax_decimals' => 'Tax Decimals',
|
||||
'tax_category_used' => '',
|
||||
'tax_configuration' => '',
|
||||
'tax_decimals' => '',
|
||||
'tax_id' => '',
|
||||
'tax_included' => 'Tax Included',
|
||||
'theme' => 'Theme',
|
||||
'tax_included' => '',
|
||||
'theme' => '',
|
||||
'theme_preview' => '',
|
||||
'thousands_separator' => 'Thousands Separator',
|
||||
'timezone' => 'Timezone',
|
||||
'thousands_separator' => '',
|
||||
'timezone' => '',
|
||||
'timezone_error' => '',
|
||||
'top' => 'Top',
|
||||
'top' => '',
|
||||
'use_destination_based_tax' => '',
|
||||
'user_timezone' => '',
|
||||
'website' => 'Website',
|
||||
'website' => '',
|
||||
'wholesale_markup' => '',
|
||||
'work_order_enable' => 'Work Order Support',
|
||||
'work_order_format' => 'Work Order Format',
|
||||
'work_order_enable' => '',
|
||||
'work_order_format' => '',
|
||||
];
|
||||
@@ -34,6 +34,7 @@ return [
|
||||
'none_selected' => 'Не сте избрали клиент (и), който да изтриете.',
|
||||
'one_or_multiple' => 'Клиент(ти)',
|
||||
'quantity' => 'Количество',
|
||||
'rewards_package' => 'Пакетни награди',
|
||||
'stats_info' => 'Статус',
|
||||
'successful_adding' => 'Успешно добавихте клиент',
|
||||
'successful_deleted' => 'Вие успешно сте изтрили',
|
||||
@@ -43,5 +44,4 @@ return [
|
||||
'taxable' => 'Облагаем',
|
||||
'total' => 'Общо изразходвани средства',
|
||||
'update' => 'Актуализиране на клиента',
|
||||
'rewards_package' => 'Пакетни награди',
|
||||
];
|
||||
@@ -1,24 +1,24 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all_time' => 'All Time',
|
||||
'apply' => 'Apply',
|
||||
'cancel' => 'Cancel',
|
||||
'custom' => 'Custom',
|
||||
'from' => 'From',
|
||||
'last_30' => 'Last 30 Days',
|
||||
'last_7' => 'Last 7 Days',
|
||||
'last_financial_year' => 'Last Fiscal Year',
|
||||
'last_month' => 'Last Month',
|
||||
'last_year' => 'Last Year',
|
||||
'same_month_last_year' => 'Same Month Last Year',
|
||||
'same_month_to_same_day_last_year' => 'Same Month To Same Day Last Year',
|
||||
'this_financial_year' => 'Current Fiscal Year',
|
||||
'this_month' => 'Current Month',
|
||||
'this_year' => 'Current Year',
|
||||
'to' => 'To',
|
||||
'today' => 'Today',
|
||||
'today_last_year' => 'Today Last Year',
|
||||
'weekstart' => '0',
|
||||
'yesterday' => 'Yesterday',
|
||||
'all_time' => '',
|
||||
'apply' => '',
|
||||
'cancel' => '',
|
||||
'custom' => '',
|
||||
'from' => '',
|
||||
'last_30' => '',
|
||||
'last_7' => '',
|
||||
'last_financial_year' => '',
|
||||
'last_month' => '',
|
||||
'last_year' => '',
|
||||
'same_month_last_year' => '',
|
||||
'same_month_to_same_day_last_year' => '',
|
||||
'this_financial_year' => '',
|
||||
'this_month' => '',
|
||||
'this_year' => '',
|
||||
'to' => '',
|
||||
'today' => '',
|
||||
'today_last_year' => '',
|
||||
'weekstart' => '1',
|
||||
'yesterday' => '',
|
||||
];
|
||||
@@ -22,12 +22,12 @@ return [
|
||||
'error_updating_admin' => '',
|
||||
'error_updating_demo_admin' => 'Не може да промените Пробният Администратор.',
|
||||
'language' => 'Език',
|
||||
'login_info' => 'Login',
|
||||
'login_info' => '',
|
||||
'manager' => '',
|
||||
'new' => 'Нов служител',
|
||||
'none_selected' => 'Не сте избрали служител (и), който да изтриете.',
|
||||
'one_or_multiple' => 'служител (и)',
|
||||
'password' => 'Password',
|
||||
'password' => '',
|
||||
'password_minlength' => 'Паролата трябва да е с дължина най-малко 8 знака.',
|
||||
'password_must_match' => 'Паролите не съвпадат.',
|
||||
'password_not_must_match' => 'Текущата парола и новата парола трябва да са уникални.',
|
||||
@@ -41,6 +41,7 @@ return [
|
||||
'successful_deleted' => 'Вие успешно сте изтрили',
|
||||
'successful_updating' => 'Успешно сте актуализирали служител',
|
||||
'system_language' => 'Системен език',
|
||||
'unauthorized_modify' => '',
|
||||
'unsuccessful_change_password' => 'Промяната на паролата се провали.',
|
||||
'update' => 'Актуализиране на служителя',
|
||||
'username' => 'Потребител',
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'half_down' => 'Half Down',
|
||||
'half_even' => 'Half Even',
|
||||
'half_five' => 'Half Five',
|
||||
'half_odd' => 'Half Odd',
|
||||
'half_up' => 'Half Up',
|
||||
'round_down' => 'Round Down',
|
||||
'round_up' => 'Round Up',
|
||||
'half_down' => '',
|
||||
'half_even' => '',
|
||||
'half_five' => '',
|
||||
'half_odd' => '',
|
||||
'half_up' => '',
|
||||
'round_down' => '',
|
||||
'round_up' => '',
|
||||
];
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'no_permission_module' => 'Нямате разрешение за достъп до модула с име',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_create_env_file' => 'Неуспешно създаване на {filePath} за осигуряване на throttle.key',
|
||||
'unable_to_lock_file' => 'Неуспешно заключване на {filePath}: {reason}',
|
||||
'unable_to_open_lock_file' => 'Неуспешно отваряне на {filePath}: {reason}',
|
||||
'unable_to_persist_throttle_key' => 'Неуспешно записване на throttle.key в {filePath}',
|
||||
'unable_to_persist_encryption_key' => '',
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_persist_throttle_key' => 'Неуспешно записване на throttle.key в {filePath}',
|
||||
'unable_to_read_env_file' => 'Неуспешно четене на {filePath} за осигуряване на throttle.key',
|
||||
'unknown' => 'Неизвестна грешка',
|
||||
];
|
||||
@@ -1,51 +1,51 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_item' => 'Add Expense',
|
||||
'amount' => 'Amount',
|
||||
'amount_number' => 'Amount must be a number',
|
||||
'amount_required' => 'Expense Amount required',
|
||||
'by_category' => 'Category',
|
||||
'cannot_be_deleted' => 'Could not delete Category Expense(s)',
|
||||
'cash' => 'Cash',
|
||||
'cash_filter' => 'Cash',
|
||||
'categories_name' => 'Category',
|
||||
'category_required' => 'category is a required field',
|
||||
'check' => 'Check',
|
||||
'check_filter' => 'Check',
|
||||
'confirm_delete' => 'Are you sure you want to delete the selected Expense?',
|
||||
'add_item' => '',
|
||||
'amount' => '',
|
||||
'amount_number' => '',
|
||||
'amount_required' => '',
|
||||
'by_category' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'cash' => '',
|
||||
'cash_filter' => '',
|
||||
'categories_name' => '',
|
||||
'category_required' => '',
|
||||
'check' => '',
|
||||
'check_filter' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'credit' => 'Credit Card',
|
||||
'credit_filter' => 'Credit Card',
|
||||
'date' => 'Date',
|
||||
'date_number' => 'date must be a number',
|
||||
'date_required' => 'date is a required field',
|
||||
'debit' => 'Debit Card',
|
||||
'debit_filter' => 'Debit Card',
|
||||
'description' => 'Description',
|
||||
'due' => 'Due',
|
||||
'due_filter' => 'Due',
|
||||
'employee' => 'Created By',
|
||||
'error_adding_updating' => 'Error adding/updating Expense',
|
||||
'expense_id' => 'Id',
|
||||
'expenses_employee' => 'Employee',
|
||||
'info' => 'Expense Info',
|
||||
'credit' => '',
|
||||
'credit_filter' => '',
|
||||
'date' => '',
|
||||
'date_number' => '',
|
||||
'date_required' => '',
|
||||
'debit' => '',
|
||||
'debit_filter' => '',
|
||||
'description' => '',
|
||||
'due' => '',
|
||||
'due_filter' => '',
|
||||
'employee' => '',
|
||||
'error_adding_updating' => '',
|
||||
'expense_id' => '',
|
||||
'expenses_employee' => '',
|
||||
'info' => '',
|
||||
'ip_address' => '',
|
||||
'is_deleted' => 'Deleted',
|
||||
'name_required' => 'Expense Name required',
|
||||
'new' => 'New Expense',
|
||||
'is_deleted' => '',
|
||||
'name_required' => '',
|
||||
'new' => '',
|
||||
'new_supplier' => '',
|
||||
'no_expenses_to_display' => 'There are no Expenses to display',
|
||||
'none_selected' => 'You have not selected any Expense',
|
||||
'one_or_multiple' => 'Expense(s)',
|
||||
'payment' => 'Payment Type',
|
||||
'no_expenses_to_display' => '',
|
||||
'none_selected' => '',
|
||||
'one_or_multiple' => '',
|
||||
'payment' => '',
|
||||
'start_typing_supplier_name' => '',
|
||||
'successful_adding' => 'Expense add successful',
|
||||
'successful_deleted' => 'Expense delete successful',
|
||||
'successful_updating' => 'Expense update successful',
|
||||
'supplier_name' => 'Supplier',
|
||||
'supplier_tax_code' => 'Tax Code',
|
||||
'tax_amount' => 'Tax',
|
||||
'successful_adding' => '',
|
||||
'successful_deleted' => '',
|
||||
'successful_updating' => '',
|
||||
'supplier_name' => '',
|
||||
'supplier_tax_code' => '',
|
||||
'tax_amount' => '',
|
||||
'tax_amount_number' => '',
|
||||
'update' => 'Update Expense',
|
||||
'update' => '',
|
||||
];
|
||||
@@ -1,23 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'category_name_required' => 'Expense Category name required',
|
||||
'add_item' => 'Add Category',
|
||||
'cannot_be_deleted' => 'Could not delete Category Expense(s)',
|
||||
'category_id' => 'Id',
|
||||
'confirm_delete' => 'Are you sure you want to delete the selected Expense Category?',
|
||||
'add_item' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'category_id' => '',
|
||||
'category_name_required' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'description' => 'Category Description',
|
||||
'error_adding_updating' => 'Error adding/updating Expense Category',
|
||||
'info' => 'Category Expense Info',
|
||||
'name' => 'Category Name',
|
||||
'new' => 'New Category',
|
||||
'no_expenses_categories_to_display' => 'No Category to display',
|
||||
'none_selected' => 'You have not selected any Category Expense',
|
||||
'one_or_multiple' => 'Category Expense',
|
||||
'quantity' => 'Quantity',
|
||||
'successful_adding' => 'Expense Category add successful',
|
||||
'successful_deleted' => 'Expense Category delete successful',
|
||||
'successful_updating' => 'Expense Category update successful',
|
||||
'update' => 'Update Category',
|
||||
'description' => '',
|
||||
'error_adding_updating' => '',
|
||||
'info' => '',
|
||||
'name' => '',
|
||||
'new' => '',
|
||||
'no_expenses_categories_to_display' => '',
|
||||
'none_selected' => '',
|
||||
'one_or_multiple' => '',
|
||||
'quantity' => '',
|
||||
'successful_adding' => '',
|
||||
'successful_deleted' => '',
|
||||
'successful_updating' => '',
|
||||
'update' => '',
|
||||
];
|
||||
@@ -1,72 +1,72 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => 'Inventory to add or subtract.',
|
||||
'allow_alt_description' => 'Allow Alternate Description',
|
||||
'bulk_edit' => 'Bulk Edit',
|
||||
'cannot_be_deleted' => 'Could not delete selected Gift Card(s), one or more of the selected Gift Cards has sales.',
|
||||
'cannot_find_giftcard' => 'Gift Card not found.',
|
||||
'cannot_use' => 'Gift Card {0} cannot be used for this sale: invalid Customer.',
|
||||
'card_value' => 'Value',
|
||||
'category' => 'Category',
|
||||
'change_all_to_allow_alt_desc' => 'Allow alternate description for all.',
|
||||
'change_all_to_not_allow_allow_desc' => 'Do not allow alternate description for all.',
|
||||
'change_all_to_serialized' => 'Change All To Serialized',
|
||||
'change_all_to_unserialized' => 'Change All To Unserialized',
|
||||
'confirm_bulk_edit' => 'Are you sure you want to edit the selected Gift Card(s)?',
|
||||
'confirm_delete' => 'Are you sure you want to delete the selected Gift Card(s)?',
|
||||
'add_minus' => '',
|
||||
'allow_alt_description' => '',
|
||||
'bulk_edit' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'cannot_find_giftcard' => '',
|
||||
'cannot_use' => '',
|
||||
'card_value' => '',
|
||||
'category' => '',
|
||||
'change_all_to_allow_alt_desc' => '',
|
||||
'change_all_to_not_allow_allow_desc' => '',
|
||||
'change_all_to_serialized' => '',
|
||||
'change_all_to_unserialized' => '',
|
||||
'confirm_bulk_edit' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'cost_price' => 'Wholesale Price',
|
||||
'count' => 'Update Inventory',
|
||||
'csv_import_failed' => 'CSV import failed.',
|
||||
'current_quantity' => 'Current Quantity',
|
||||
'description' => 'Description',
|
||||
'details_count' => 'Inventory Count Details',
|
||||
'do_nothing' => 'Do Nothing',
|
||||
'edit_fields_you_want_to_update' => 'Edit desired fields for selected Gift Card(s).',
|
||||
'edit_multiple_giftcards' => 'Edit Multiple Gift Cards.',
|
||||
'error_adding_updating' => 'Gift Card add or update failed.',
|
||||
'error_updating_multiple' => 'Gift Card(s) update failed.',
|
||||
'generate_barcodes' => 'Generate Barcodes',
|
||||
'giftcard' => 'Gift Card',
|
||||
'giftcard_number' => 'Gift Card Number',
|
||||
'info_provided_by' => 'Info provided by',
|
||||
'inventory_comments' => 'Comments',
|
||||
'is_serialized' => 'Gift Card has Serial Number',
|
||||
'low_inventory_giftcards' => 'Low Inventory Gift Cards',
|
||||
'manually_editing_of_quantity' => 'Manual Edit of Quantity',
|
||||
'must_select_giftcard_for_barcode' => 'You must select at least one (1) Gift Card to generate barcodes.',
|
||||
'new' => 'New Gift Card',
|
||||
'no_description_giftcards' => 'No Description Gift Cards',
|
||||
'no_giftcards_to_display' => 'No Gift Cards to display.',
|
||||
'none' => 'None',
|
||||
'none_selected' => 'No Gift Card(s) selected to edit.',
|
||||
'number' => 'Gift Card Number must be a number.',
|
||||
'number_information' => 'Gift Card Number',
|
||||
'number_required' => 'Gift Card Number is a required field.',
|
||||
'one_or_multiple' => 'Gift Card(s)',
|
||||
'person_id' => 'Customer',
|
||||
'quantity' => 'Quantity',
|
||||
'quantity_required' => 'Quantity is a required field. Please close (X) to cancel.',
|
||||
'remaining_balance' => 'Gift Card {0} remaining value is {1}!',
|
||||
'reorder_level' => 'Reorder Level',
|
||||
'retrive_giftcard_info' => 'Retrieve Gift Card Info',
|
||||
'sales_tax_1' => 'Sales Tax',
|
||||
'sales_tax_2' => 'Sales Tax 2',
|
||||
'serialized_giftcards' => 'Serialized Gift Cards',
|
||||
'successful_adding' => 'You have successfully added Gift Card',
|
||||
'successful_bulk_edit' => 'You have successfully updated the selected Gift Card(s)',
|
||||
'successful_deleted' => 'You have successfully deleted',
|
||||
'successful_updating' => 'You have successfully updated Gift Card',
|
||||
'supplier' => 'Supplier',
|
||||
'tax_1' => 'Tax 1',
|
||||
'tax_2' => 'Tax 2',
|
||||
'tax_percent' => 'Tax Percent',
|
||||
'tax_percents' => 'Tax Percent(s)',
|
||||
'unit_price' => 'Retail Value',
|
||||
'upc_database' => 'Barcode Database',
|
||||
'update' => 'Update Gift Card',
|
||||
'use_inventory_menu' => 'Use Inventory Menu',
|
||||
'value' => 'Gift Card Value must be a number.',
|
||||
'value_required' => 'Gift Card Value is a required field.',
|
||||
'cost_price' => '',
|
||||
'count' => '',
|
||||
'csv_import_failed' => '',
|
||||
'current_quantity' => '',
|
||||
'description' => '',
|
||||
'details_count' => '',
|
||||
'do_nothing' => '',
|
||||
'edit_fields_you_want_to_update' => '',
|
||||
'edit_multiple_giftcards' => '',
|
||||
'error_adding_updating' => '',
|
||||
'error_updating_multiple' => '',
|
||||
'generate_barcodes' => '',
|
||||
'giftcard' => '',
|
||||
'giftcard_number' => '',
|
||||
'info_provided_by' => '',
|
||||
'inventory_comments' => '',
|
||||
'is_serialized' => '',
|
||||
'low_inventory_giftcards' => '',
|
||||
'manually_editing_of_quantity' => '',
|
||||
'must_select_giftcard_for_barcode' => '',
|
||||
'new' => '',
|
||||
'no_description_giftcards' => '',
|
||||
'no_giftcards_to_display' => '',
|
||||
'none' => '',
|
||||
'none_selected' => '',
|
||||
'number' => '',
|
||||
'number_information' => '',
|
||||
'number_required' => '',
|
||||
'one_or_multiple' => '',
|
||||
'person_id' => '',
|
||||
'quantity' => '',
|
||||
'quantity_required' => '',
|
||||
'remaining_balance' => '',
|
||||
'reorder_level' => '',
|
||||
'retrive_giftcard_info' => '',
|
||||
'sales_tax_1' => '',
|
||||
'sales_tax_2' => '',
|
||||
'serialized_giftcards' => '',
|
||||
'successful_adding' => '',
|
||||
'successful_bulk_edit' => '',
|
||||
'successful_deleted' => '',
|
||||
'successful_updating' => '',
|
||||
'supplier' => '',
|
||||
'tax_1' => '',
|
||||
'tax_2' => '',
|
||||
'tax_percent' => '',
|
||||
'tax_percents' => '',
|
||||
'unit_price' => '',
|
||||
'upc_database' => '',
|
||||
'update' => '',
|
||||
'use_inventory_menu' => '',
|
||||
'value' => '',
|
||||
'value_required' => '',
|
||||
];
|
||||
@@ -1,42 +1,40 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_item' => 'Add Item',
|
||||
'all' => 'All',
|
||||
'cannot_be_deleted' => 'Item Kit(s) delete failed.',
|
||||
'confirm_delete' => 'Are you sure you want to delete the selected Item Kit(s)?',
|
||||
'add_item' => '',
|
||||
'all' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'description' => 'Item Kit Description',
|
||||
'description' => '',
|
||||
'discount' => '',
|
||||
'discount_fixed' => '',
|
||||
'discount_percent' => 'Discount Percent',
|
||||
'discount_percent' => '',
|
||||
'discount_type' => '',
|
||||
'error_adding_updating' => 'Item Kit add or update failed.',
|
||||
'find_kit_item' => 'Kit Item',
|
||||
'info' => 'Item Kit Info',
|
||||
'item' => 'Item',
|
||||
'error_adding_updating' => '',
|
||||
'find_kit_item' => '',
|
||||
'info' => '',
|
||||
'item' => '',
|
||||
'item_kit_number' => '',
|
||||
'item_kit_number_duplicate' => '',
|
||||
'item_number' => '',
|
||||
'item_number_duplicate' => '',
|
||||
'items' => 'Items',
|
||||
'kit' => 'Kit ID',
|
||||
'kit_and_components' => 'Kit and Components',
|
||||
'kit_and_stock' => 'Kit and Stock',
|
||||
'kit_only' => 'Kit Only',
|
||||
'name' => 'Item Kit Name',
|
||||
'new' => 'New Item Kit',
|
||||
'no_item_kits_to_display' => 'No Item Kits to display.',
|
||||
'none_selected' => 'You have not selected any Item Kits.',
|
||||
'one_or_multiple' => 'Item Kit(s)',
|
||||
'price_option' => 'Price Option',
|
||||
'priced_only' => 'Priced Only',
|
||||
'print_option' => 'Print Option',
|
||||
'quantity' => 'Quantity',
|
||||
'sequence' => 'Sequence',
|
||||
'successful_adding' => 'You have successfully added Item Kit',
|
||||
'successful_deleted' => 'You have successfully deleted',
|
||||
'successful_updating' => 'You have successfully updated Item Kit',
|
||||
'items' => '',
|
||||
'kit' => '',
|
||||
'kit_and_components' => '',
|
||||
'kit_and_stock' => '',
|
||||
'kit_only' => '',
|
||||
'name' => '',
|
||||
'new' => '',
|
||||
'no_item_kits_to_display' => '',
|
||||
'none_selected' => '',
|
||||
'one_or_multiple' => '',
|
||||
'price_option' => '',
|
||||
'priced_only' => '',
|
||||
'print_option' => '',
|
||||
'quantity' => '',
|
||||
'sequence' => '',
|
||||
'successful_adding' => '',
|
||||
'successful_deleted' => '',
|
||||
'successful_updating' => '',
|
||||
'unit_price' => '',
|
||||
'update' => 'Update Item Kit',
|
||||
'update' => '',
|
||||
];
|
||||
+101
-101
@@ -1,125 +1,125 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => 'Inventory to add or subtract.',
|
||||
'allow_alt_description' => 'Allow Alternate Description',
|
||||
'add_minus' => '',
|
||||
'allow_alt_description' => '',
|
||||
'amount_entry' => '',
|
||||
'bulk_edit' => 'Bulk Edit',
|
||||
'buy_price_required' => 'Purchase Price is a required field.',
|
||||
'cannot_be_deleted' => 'Could not delete selected Item(s), one or more of the selected Items have sales.',
|
||||
'cannot_find_item' => 'Item not found.',
|
||||
'bulk_edit' => '',
|
||||
'buy_price_required' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'cannot_find_item' => '',
|
||||
'categories' => '',
|
||||
'category' => 'Category',
|
||||
'category' => '',
|
||||
'category_new' => '',
|
||||
'category_required' => 'Category is a required field.',
|
||||
'change_all_to_allow_alt_desc' => 'Allow Alternate Description for all.',
|
||||
'change_all_to_not_allow_allow_desc' => 'Do not allow Alternate Description for all.',
|
||||
'change_all_to_serialized' => 'Change all to Serialized',
|
||||
'change_all_to_unserialized' => 'Change all to Unserialized',
|
||||
'change_image' => 'Change Image',
|
||||
'confirm_bulk_edit' => 'Are you sure you want to edit selected Item(s)?',
|
||||
'confirm_bulk_edit_wipe_taxes' => 'All Item Tax information will be replaced.',
|
||||
'confirm_delete' => 'Are you sure you want to delete selected item(s)?',
|
||||
'category_required' => '',
|
||||
'change_all_to_allow_alt_desc' => '',
|
||||
'change_all_to_not_allow_allow_desc' => '',
|
||||
'change_all_to_serialized' => '',
|
||||
'change_all_to_unserialized' => '',
|
||||
'change_image' => '',
|
||||
'confirm_bulk_edit' => '',
|
||||
'confirm_bulk_edit_wipe_taxes' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'cost_price' => 'Wholesale Price',
|
||||
'cost_price_number' => 'Wholesale Price must be a number.',
|
||||
'cost_price_required' => 'Wholesale Price is a required field.',
|
||||
'count' => 'Update Inventory',
|
||||
'csv_import_failed' => 'CSV import failed',
|
||||
'cost_price' => '',
|
||||
'cost_price_number' => '',
|
||||
'cost_price_required' => '',
|
||||
'count' => '',
|
||||
'csv_import_failed' => '',
|
||||
'csv_import_invalid_location' => '',
|
||||
'csv_import_nodata_wrongformat' => 'The uploaded file has no data or is formatted incorrectly.',
|
||||
'csv_import_partially_failed' => 'Item import successful with some failures:',
|
||||
'csv_import_success' => 'Item import successful.',
|
||||
'current_quantity' => 'Current Quantity',
|
||||
'csv_import_nodata_wrongformat' => '',
|
||||
'csv_import_partially_failed' => '',
|
||||
'csv_import_success' => '',
|
||||
'current_quantity' => '',
|
||||
'default_pack_name' => '',
|
||||
'description' => 'Description',
|
||||
'details_count' => 'Inventory Count Details',
|
||||
'do_nothing' => 'Do Nothing',
|
||||
'description' => '',
|
||||
'details_count' => '',
|
||||
'do_nothing' => '',
|
||||
'edit' => '',
|
||||
'edit_fields_you_want_to_update' => 'Edit the desired fields for selected item(s).',
|
||||
'edit_multiple_items' => 'Editing Multiple Items',
|
||||
'empty_upc_items' => 'Empty Barcode Items',
|
||||
'error_adding_updating' => 'Error adding/updating item',
|
||||
'error_updating_multiple' => 'Error updating items',
|
||||
'generate_barcodes' => 'Generate Barcodes',
|
||||
'edit_fields_you_want_to_update' => '',
|
||||
'edit_multiple_items' => '',
|
||||
'empty_upc_items' => '',
|
||||
'error_adding_updating' => '',
|
||||
'error_updating_multiple' => '',
|
||||
'generate_barcodes' => '',
|
||||
'hsn_code' => '',
|
||||
'image' => 'Avatar',
|
||||
'import_items_csv' => 'Item Import from CSV',
|
||||
'info_provided_by' => 'Information provided by',
|
||||
'inventory' => 'Inventory',
|
||||
'image' => '',
|
||||
'import_items_csv' => '',
|
||||
'info_provided_by' => '',
|
||||
'inventory' => '',
|
||||
'inventory_CSV_import_quantity' => '',
|
||||
'inventory_comments' => 'Comments',
|
||||
'inventory_data_tracking' => 'Inventory Data Tracking',
|
||||
'inventory_date' => 'Date',
|
||||
'inventory_employee' => 'Employee',
|
||||
'inventory_in_out_quantity' => 'In/Out Quantity',
|
||||
'inventory_remarks' => 'Remarks',
|
||||
'is_deleted' => 'Deleted',
|
||||
'inventory_comments' => '',
|
||||
'inventory_data_tracking' => '',
|
||||
'inventory_date' => '',
|
||||
'inventory_employee' => '',
|
||||
'inventory_in_out_quantity' => '',
|
||||
'inventory_remarks' => '',
|
||||
'is_deleted' => '',
|
||||
'is_printed' => '',
|
||||
'is_serialized' => 'Item has Serial Number',
|
||||
'item' => 'Item',
|
||||
'is_serialized' => '',
|
||||
'item' => '',
|
||||
'item_id' => '',
|
||||
'item_number' => 'Barcode',
|
||||
'item_number_duplicate' => 'Item Number is already present in the database.',
|
||||
'item_number_invalid' => 'Item Number contains disallowed characters.',
|
||||
'kit' => 'Kit',
|
||||
'location' => 'Location',
|
||||
'low_inventory_items' => 'Out Of Stock Items',
|
||||
'item_number' => '',
|
||||
'item_number_duplicate' => '',
|
||||
'item_number_invalid' => '',
|
||||
'kit' => '',
|
||||
'location' => '',
|
||||
'low_inventory_items' => '',
|
||||
'low_sell_item' => '',
|
||||
'manually_editing_of_quantity' => 'Manual Edit of Quantity',
|
||||
'manually_editing_of_quantity' => '',
|
||||
'markup' => '',
|
||||
'name' => 'Item Name',
|
||||
'name_required' => 'Item Name is a required field.',
|
||||
'new' => 'New Item',
|
||||
'no_description_items' => 'No Description Items',
|
||||
'no_items_to_display' => 'No Items to display.',
|
||||
'none' => 'None',
|
||||
'none_selected' => 'You have not selected any Item(s) to edit',
|
||||
'nonstock' => 'Non-stocked',
|
||||
'number_information' => 'Item Number',
|
||||
'number_required' => 'Barcode is a required field.',
|
||||
'one_or_multiple' => 'item(s)',
|
||||
'name' => '',
|
||||
'name_required' => '',
|
||||
'new' => '',
|
||||
'no_description_items' => '',
|
||||
'no_items_to_display' => '',
|
||||
'none' => '',
|
||||
'none_selected' => '',
|
||||
'nonstock' => '',
|
||||
'number_information' => '',
|
||||
'number_required' => '',
|
||||
'one_or_multiple' => '',
|
||||
'pack_name' => '',
|
||||
'qty_per_pack' => '',
|
||||
'quantity' => 'Quantity',
|
||||
'quantity_number' => 'Quantity must be a number.',
|
||||
'quantity_required' => 'Quantity is a required field.',
|
||||
'receiving_quantity' => 'Receiving Quantity',
|
||||
'remove_image' => 'Remove Image',
|
||||
'reorder_level' => 'Reorder Level',
|
||||
'reorder_level_number' => 'Reorder Level must be a number.',
|
||||
'reorder_level_required' => 'Reorder Level is a required field.',
|
||||
'retrive_item_info' => 'Retrive Item Info',
|
||||
'sales_tax_1' => 'Sales Tax',
|
||||
'sales_tax_2' => 'Sales Tax 2',
|
||||
'search_attributes' => 'Search Attributes',
|
||||
'select_image' => 'Select Image',
|
||||
'serialized_items' => 'Serialized Items',
|
||||
'standard' => 'Standard',
|
||||
'stock' => 'Stock',
|
||||
'stock_location' => 'Stock location',
|
||||
'stock_type' => 'Stock Type',
|
||||
'successful_adding' => 'You have successfully added item',
|
||||
'successful_bulk_edit' => 'You have successfully updated the selected item(s)',
|
||||
'successful_deleted' => 'You have successfully deleted',
|
||||
'successful_updating' => 'You have successfully updated item',
|
||||
'supplier' => 'Supplier',
|
||||
'tax_1' => 'Tax 1',
|
||||
'tax_2' => 'Tax 2',
|
||||
'quantity' => '',
|
||||
'quantity_number' => '',
|
||||
'quantity_required' => '',
|
||||
'receiving_quantity' => '',
|
||||
'remove_image' => '',
|
||||
'reorder_level' => '',
|
||||
'reorder_level_number' => '',
|
||||
'reorder_level_required' => '',
|
||||
'retrive_item_info' => '',
|
||||
'sales_tax_1' => '',
|
||||
'sales_tax_2' => '',
|
||||
'search_attributes' => '',
|
||||
'select_image' => '',
|
||||
'serialized_items' => '',
|
||||
'standard' => '',
|
||||
'stock' => '',
|
||||
'stock_location' => '',
|
||||
'stock_type' => '',
|
||||
'successful_adding' => '',
|
||||
'successful_bulk_edit' => '',
|
||||
'successful_deleted' => '',
|
||||
'successful_updating' => '',
|
||||
'supplier' => '',
|
||||
'tax_1' => '',
|
||||
'tax_2' => '',
|
||||
'tax_3' => '',
|
||||
'tax_category' => '',
|
||||
'tax_name_invalid' => 'Името на данъка съдържа непозволени символи.',
|
||||
'tax_percent' => 'Tax Percent',
|
||||
'tax_percent_number' => '',
|
||||
'tax_percent' => '',
|
||||
'tax_percent_non_negative' => '',
|
||||
'tax_percent_required' => 'Tax Percent is a required field.',
|
||||
'tax_percents' => 'Tax Percent(s)',
|
||||
'tax_percent_number' => '',
|
||||
'tax_percent_required' => '',
|
||||
'tax_percents' => '',
|
||||
'temp' => '',
|
||||
'type' => 'Item Type',
|
||||
'unit_price' => 'Retail Price',
|
||||
'unit_price_number' => 'Unit price must be a number.',
|
||||
'unit_price_required' => 'Retail Price is a required field.',
|
||||
'upc_database' => 'Barcode Database',
|
||||
'update' => 'Update Item',
|
||||
'use_inventory_menu' => 'Use Inventory Menu',
|
||||
'type' => '',
|
||||
'unit_price' => '',
|
||||
'unit_price_number' => '',
|
||||
'unit_price_required' => '',
|
||||
'upc_database' => '',
|
||||
'update' => '',
|
||||
'use_inventory_menu' => '',
|
||||
];
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
return [
|
||||
'gcaptcha' => 'Не съм робот.',
|
||||
'go' => 'Go',
|
||||
'go' => '',
|
||||
'initialization_message' => '',
|
||||
'initialization_required' => '',
|
||||
'initialize' => '',
|
||||
'invalid_gcaptcha' => 'Invalid I\'m not a robot.',
|
||||
'invalid_installation' => 'The installation is not correct, check your php.ini file.',
|
||||
'invalid_username_and_password' => 'Invalid Username or Password.',
|
||||
'login' => 'Login',
|
||||
'logout' => '',
|
||||
'invalid_gcaptcha' => '',
|
||||
'invalid_installation' => '',
|
||||
'invalid_username_and_password' => '',
|
||||
'login' => '',
|
||||
'logout' => 'Излизане от профила',
|
||||
'migrating_database' => 'Мигриране на базата данни',
|
||||
'migration_auth_message' => '',
|
||||
'migration_complete' => '',
|
||||
@@ -20,12 +20,12 @@ return [
|
||||
'migration_error_connection' => '',
|
||||
'migration_failed' => '',
|
||||
'migration_initializing' => '',
|
||||
'migration_needed' => '',
|
||||
'migration_needed' => 'Мигриране на база данни към {0} ще започне след влизане.',
|
||||
'migration_required' => '',
|
||||
'migration_running' => '',
|
||||
'password' => 'Password',
|
||||
'password' => '',
|
||||
'required_username' => '',
|
||||
'too_many_attempts' => 'Твърде много опити. Моля, изчакайте малко и опитайте отново.',
|
||||
'username' => 'Username',
|
||||
'username' => '',
|
||||
'welcome' => '',
|
||||
];
|
||||
@@ -1,16 +1,16 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'first_name' => 'First name',
|
||||
'last_name' => 'Last name',
|
||||
'message' => 'Message',
|
||||
'message_placeholder' => 'Your Message here...',
|
||||
'message_required' => 'Message required',
|
||||
'multiple_phones' => '(In case of multiple recipients, enter mobile numbers separated by commas)',
|
||||
'phone' => 'Phone number',
|
||||
'phone_number_required' => 'Phone number required',
|
||||
'phone_placeholder' => 'Mobile Number(s) here...',
|
||||
'sms_send' => 'Send SMS',
|
||||
'successfully_sent' => 'Message successfully sent to: ',
|
||||
'unsuccessfully_sent' => 'Message unsuccessfully sent to: ',
|
||||
'first_name' => '',
|
||||
'last_name' => '',
|
||||
'message' => '',
|
||||
'message_placeholder' => '',
|
||||
'message_required' => '',
|
||||
'multiple_phones' => '',
|
||||
'phone' => '',
|
||||
'phone_number_required' => '',
|
||||
'phone_placeholder' => '',
|
||||
'sms_send' => '',
|
||||
'successfully_sent' => '',
|
||||
'unsuccessfully_sent' => '',
|
||||
];
|
||||
+35
-35
@@ -5,44 +5,44 @@ return [
|
||||
'admin_cashups_desc' => '',
|
||||
'attributes' => '',
|
||||
'attributes_desc' => '',
|
||||
'both' => 'Both',
|
||||
'both' => '',
|
||||
'cashups' => '',
|
||||
'cashups_desc' => '',
|
||||
'config' => 'Configuration',
|
||||
'config_desc' => 'Change OSPOS\'s Configuration.',
|
||||
'customers' => 'Customers',
|
||||
'customers_desc' => 'Add, Update, Delete, and Search Customers.',
|
||||
'employees' => 'Employees',
|
||||
'employees_desc' => 'Add, Update, Delete, and Search Employees.',
|
||||
'expenses' => 'Expenses',
|
||||
'expenses_categories' => 'Expenses Categories',
|
||||
'expenses_categories_desc' => 'Add, Update, and Delete Expenses Categories.',
|
||||
'expenses_desc' => 'Add, Update, Delete, and Search Expenses.',
|
||||
'giftcards' => 'Gift Cards',
|
||||
'giftcards_desc' => 'Add, Update, Delete and Search Gift Cards.',
|
||||
'home' => 'Home',
|
||||
'home_desc' => 'List home menu modules.',
|
||||
'item_kits' => 'Item Kits',
|
||||
'item_kits_desc' => 'Add, Update, Delete and Search Item Kits.',
|
||||
'items' => 'Items',
|
||||
'items_desc' => 'Add, Update, Delete, and Search Items.',
|
||||
'messages' => 'Messages',
|
||||
'messages_desc' => 'Send Messages to Customers, Suppliers and Employees.',
|
||||
'migrate' => 'Migrate',
|
||||
'migrate_desc' => 'Update the OSPOS Database.',
|
||||
'office' => 'Office',
|
||||
'office_desc' => 'List office menu modules.',
|
||||
'config' => '',
|
||||
'config_desc' => '',
|
||||
'customers' => '',
|
||||
'customers_desc' => '',
|
||||
'employees' => '',
|
||||
'employees_desc' => '',
|
||||
'expenses' => '',
|
||||
'expenses_categories' => '',
|
||||
'expenses_categories_desc' => '',
|
||||
'expenses_desc' => '',
|
||||
'giftcards' => '',
|
||||
'giftcards_desc' => '',
|
||||
'home' => '',
|
||||
'home_desc' => '',
|
||||
'item_kits' => '',
|
||||
'item_kits_desc' => '',
|
||||
'items' => '',
|
||||
'items_desc' => '',
|
||||
'messages' => '',
|
||||
'messages_desc' => '',
|
||||
'migrate' => '',
|
||||
'migrate_desc' => '',
|
||||
'office' => '',
|
||||
'office_desc' => '',
|
||||
'plugins' => 'Плъгини',
|
||||
'receivings' => 'Receivings',
|
||||
'receivings_desc' => 'Process Purchase Orders.',
|
||||
'reports' => 'Reports',
|
||||
'reports_desc' => 'View and generate Reports.',
|
||||
'sales' => 'Sales',
|
||||
'sales_desc' => 'Process Sales and Returns.',
|
||||
'suppliers' => 'Suppliers',
|
||||
'suppliers_desc' => 'Add, Update, Delete, and Search Suppliers.',
|
||||
'taxes' => 'Taxes',
|
||||
'taxes_desc' => 'Configure Sales Taxes.',
|
||||
'receivings' => '',
|
||||
'receivings_desc' => '',
|
||||
'reports' => '',
|
||||
'reports_desc' => '',
|
||||
'sales' => '',
|
||||
'sales_desc' => '',
|
||||
'suppliers' => '',
|
||||
'suppliers_desc' => '',
|
||||
'taxes' => '',
|
||||
'taxes_desc' => '',
|
||||
'timeclocks' => '',
|
||||
'timeclocks_categories' => '',
|
||||
'timeclocks_categories_desc' => '',
|
||||
|
||||
@@ -2,58 +2,59 @@
|
||||
|
||||
return [
|
||||
'amount_due' => '',
|
||||
'cancel_receiving' => 'Cancel',
|
||||
'cannot_be_deleted' => 'Receiving(s) delete failed.',
|
||||
'comments' => 'Comments',
|
||||
'complete_receiving' => 'Finish',
|
||||
'confirm_cancel_receiving' => 'Are you sure you want to clear this receiving? All items will cleared.',
|
||||
'confirm_delete' => 'Are you sure you want to delete this receiving? This action cannot be undone.',
|
||||
'confirm_finish_receiving' => 'Are you sure you want to submit this receiving? This cannot be undone.',
|
||||
'cancel_receiving' => '',
|
||||
'cannot_be_deleted' => '',
|
||||
'comments' => '',
|
||||
'complete_receiving' => '',
|
||||
'confirm_cancel_receiving' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_finish_receiving' => '',
|
||||
'confirm_restore' => '',
|
||||
'cost' => 'Cost',
|
||||
'cost' => '',
|
||||
'daily' => '',
|
||||
'date' => 'Receiving Date',
|
||||
'date_required' => 'A correct date must be entered.',
|
||||
'date_type' => 'Date is a required field.',
|
||||
'delete_entire_sale' => 'Delete Entire Sale',
|
||||
'discount' => 'Discount %',
|
||||
'edit' => 'Edit',
|
||||
'edit_sale' => 'Edit Receiving',
|
||||
'employee' => 'Employee',
|
||||
'error_editing_item' => 'Item edit failed.',
|
||||
'error_requisition' => 'Unable to move Inventory from or to the same Stock Location.',
|
||||
'find_or_scan_item' => 'Find or Scan Item',
|
||||
'find_or_scan_item_or_receipt' => 'Find or Scan Item or Receipt',
|
||||
'id' => 'Receiving ID',
|
||||
'item_name' => 'Item Name',
|
||||
'mode' => 'Receiving Mode',
|
||||
'new_supplier' => 'New Supplier',
|
||||
'one_or_multiple' => 'receiving(s)',
|
||||
'print_after_sale' => 'Print After Sale',
|
||||
'quantity' => 'Qty.',
|
||||
'receipt' => 'Receivings Receipt',
|
||||
'receipt_number' => 'Receiving #',
|
||||
'receiving' => 'Receive',
|
||||
'reference' => 'Reference',
|
||||
'register' => 'Items Receiving',
|
||||
'requisition' => 'Requisition',
|
||||
'return' => 'Return',
|
||||
'select_supplier' => 'Select Supplier (Optional)',
|
||||
'date' => '',
|
||||
'date_required' => '',
|
||||
'date_type' => '',
|
||||
'delete_entire_sale' => '',
|
||||
'discount' => '',
|
||||
'edit' => '',
|
||||
'edit_sale' => '',
|
||||
'employee' => '',
|
||||
'error_editing_item' => '',
|
||||
'error_requisition' => '',
|
||||
'find_or_scan_item' => '',
|
||||
'find_or_scan_item_or_receipt' => '',
|
||||
'id' => '',
|
||||
'item_name' => '',
|
||||
'mode' => '',
|
||||
'new_supplier' => '',
|
||||
'not_authorized' => '',
|
||||
'one_or_multiple' => '',
|
||||
'print_after_sale' => '',
|
||||
'quantity' => '',
|
||||
'receipt' => '',
|
||||
'receipt_number' => '',
|
||||
'receiving' => '',
|
||||
'reference' => '',
|
||||
'register' => '',
|
||||
'requisition' => '',
|
||||
'return' => '',
|
||||
'select_supplier' => '',
|
||||
'ship_pack' => '',
|
||||
'start_typing_supplier_name' => 'Start Typing Supplier\'s name...',
|
||||
'start_typing_supplier_name' => '',
|
||||
'stock' => '',
|
||||
'stock_destination' => 'Stock Destination',
|
||||
'stock_location' => 'Stock Location',
|
||||
'stock_source' => 'Stock Source',
|
||||
'successfully_deleted' => 'You have successfully deleted',
|
||||
'successfully_updated' => 'Receiving successfully updated',
|
||||
'supplier' => 'Supplier',
|
||||
'supplier_address' => 'Address',
|
||||
'supplier_email' => 'Email',
|
||||
'supplier_location' => 'Location',
|
||||
'total' => 'Total',
|
||||
'transaction_failed' => 'Receivings transaction(s) failed.',
|
||||
'unable_to_add_item' => 'Item add to Receiving failed.',
|
||||
'unsuccessfully_updated' => 'Receiving update failed.',
|
||||
'update' => 'Update',
|
||||
'stock_destination' => '',
|
||||
'stock_location' => '',
|
||||
'stock_source' => '',
|
||||
'successfully_deleted' => '',
|
||||
'successfully_updated' => '',
|
||||
'supplier' => '',
|
||||
'supplier_address' => '',
|
||||
'supplier_email' => '',
|
||||
'supplier_location' => '',
|
||||
'total' => '',
|
||||
'transaction_failed' => '',
|
||||
'unable_to_add_item' => '',
|
||||
'unsuccessfully_updated' => '',
|
||||
'update' => '',
|
||||
];
|
||||
+106
-106
@@ -1,96 +1,96 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => 'All',
|
||||
'all' => '',
|
||||
'authority' => '',
|
||||
'canceled' => 'Canceled',
|
||||
'categories' => 'Categories',
|
||||
'categories_summary_report' => 'Categories Summary Report',
|
||||
'category' => 'Category',
|
||||
'code_canceled' => 'CNL',
|
||||
'code_invoice' => 'INV',
|
||||
'canceled' => '',
|
||||
'categories' => '',
|
||||
'categories_summary_report' => '',
|
||||
'category' => '',
|
||||
'code_canceled' => '',
|
||||
'code_invoice' => '',
|
||||
'code_pos' => '',
|
||||
'code_quote' => 'Q',
|
||||
'code_return' => 'RET',
|
||||
'code_type' => 'Type',
|
||||
'code_work_order' => 'W/O',
|
||||
'comments' => 'Comments',
|
||||
'code_quote' => '',
|
||||
'code_return' => '',
|
||||
'code_type' => '',
|
||||
'code_work_order' => '',
|
||||
'comments' => '',
|
||||
'commission' => '',
|
||||
'complete' => 'Completed Sales and Returns',
|
||||
'completed_sales' => 'Completed Sales',
|
||||
'complete' => '',
|
||||
'completed_sales' => '',
|
||||
'confirm_delete' => '',
|
||||
'confirm_restore' => '',
|
||||
'cost' => 'Wholesale',
|
||||
'cost_price' => 'Wholesale Price',
|
||||
'count' => 'Count',
|
||||
'customer' => 'Customer',
|
||||
'customers' => 'Customers',
|
||||
'customers_summary_report' => 'Customers Summary Report',
|
||||
'date' => 'Date',
|
||||
'date_range' => 'Date Range',
|
||||
'description' => 'Description',
|
||||
'cost' => '',
|
||||
'cost_price' => '',
|
||||
'count' => '',
|
||||
'customer' => '',
|
||||
'customers' => '',
|
||||
'customers_summary_report' => '',
|
||||
'date' => '',
|
||||
'date_range' => '',
|
||||
'description' => '',
|
||||
'detailed_item_sales_report' => '',
|
||||
'detailed_receivings_report' => 'Detailed Receivings Report',
|
||||
'detailed_receivings_report' => '',
|
||||
'detailed_receivings_report_input' => '',
|
||||
'detailed_reports' => 'Detailed Reports',
|
||||
'detailed_reports' => '',
|
||||
'detailed_requisition_report' => '',
|
||||
'detailed_sales_report' => 'Detailed Transactions Report',
|
||||
'discount' => 'Discount',
|
||||
'detailed_sales_report' => '',
|
||||
'discount' => '',
|
||||
'discount_fixed' => '',
|
||||
'discount_percent' => 'Discount Percent',
|
||||
'discount_percent' => '',
|
||||
'discount_type' => '',
|
||||
'discounts' => 'Discounts',
|
||||
'discounts_summary_report' => 'Discounts Summary Report',
|
||||
'earned' => 'Points Earned',
|
||||
'employee' => 'Employee',
|
||||
'employees' => 'Employees',
|
||||
'employees_summary_report' => 'Employees Summary Report',
|
||||
'discounts' => '',
|
||||
'discounts_summary_report' => '',
|
||||
'earned' => '',
|
||||
'employee' => '',
|
||||
'employees' => '',
|
||||
'employees_summary_report' => '',
|
||||
'expenses' => '',
|
||||
'expenses_amount' => 'Amount',
|
||||
'expenses_categories' => 'Expenses',
|
||||
'expenses_categories_summary_report' => 'Expense Categories Summary Report',
|
||||
'expenses_category' => 'Category',
|
||||
'expenses_amount' => '',
|
||||
'expenses_categories' => '',
|
||||
'expenses_categories_summary_report' => '',
|
||||
'expenses_category' => '',
|
||||
'expenses_payment_amount' => '',
|
||||
'expenses_tax_amount' => 'Tax',
|
||||
'expenses_total_amount' => 'Total Amount',
|
||||
'expenses_total_tax_amount' => 'Total Tax',
|
||||
'graphical_reports' => 'Graphical Reports',
|
||||
'inventory' => 'Inventory',
|
||||
'inventory_low' => 'Low Inventory',
|
||||
'inventory_low_report' => 'Low Inventory Report',
|
||||
'inventory_reports' => 'Inventory Reports',
|
||||
'inventory_summary' => 'Inventory Summary',
|
||||
'inventory_summary_report' => 'Inventory Summary Report',
|
||||
'item' => 'Item',
|
||||
'item_count' => 'Filter Item Count',
|
||||
'item_name' => 'Item Name',
|
||||
'item_number' => 'Barcode',
|
||||
'items' => 'Items',
|
||||
'items_purchased' => 'Items Purchased',
|
||||
'items_received' => 'Items Received',
|
||||
'items_summary_report' => 'Items Summary Report',
|
||||
'expenses_tax_amount' => '',
|
||||
'expenses_total_amount' => '',
|
||||
'expenses_total_tax_amount' => '',
|
||||
'graphical_reports' => '',
|
||||
'inventory' => '',
|
||||
'inventory_low' => '',
|
||||
'inventory_low_report' => '',
|
||||
'inventory_reports' => '',
|
||||
'inventory_summary' => '',
|
||||
'inventory_summary_report' => '',
|
||||
'item' => '',
|
||||
'item_count' => '',
|
||||
'item_name' => '',
|
||||
'item_number' => '',
|
||||
'items' => '',
|
||||
'items_purchased' => '',
|
||||
'items_received' => '',
|
||||
'items_summary_report' => '',
|
||||
'jurisdiction' => '',
|
||||
'low_inventory' => '',
|
||||
'low_inventory_report' => '',
|
||||
'low_sell_quantity' => '',
|
||||
'more_than_zero' => 'More than zero',
|
||||
'name' => 'Name',
|
||||
'no_reports_to_display' => 'No Items to display.',
|
||||
'payment_type' => 'Payment Type',
|
||||
'payments' => 'Payments',
|
||||
'payments_summary_report' => 'Payments Summary Report',
|
||||
'profit' => 'Profit',
|
||||
'quantity' => 'Quantity',
|
||||
'quantity_purchased' => 'Quantity Purchased',
|
||||
'quotes' => 'Quotes',
|
||||
'received_by' => 'Received By',
|
||||
'receiving_id' => 'Receiving ID',
|
||||
'receiving_type' => 'Receiving Type',
|
||||
'receivings' => 'Receivings',
|
||||
'reorder_level' => 'Reorder Level',
|
||||
'report' => 'Report',
|
||||
'report_input' => 'Report Input',
|
||||
'reports' => 'Reports',
|
||||
'more_than_zero' => '',
|
||||
'name' => '',
|
||||
'no_reports_to_display' => '',
|
||||
'payment_type' => '',
|
||||
'payments' => '',
|
||||
'payments_summary_report' => '',
|
||||
'profit' => '',
|
||||
'quantity' => '',
|
||||
'quantity_purchased' => '',
|
||||
'quotes' => '',
|
||||
'received_by' => '',
|
||||
'receiving_id' => '',
|
||||
'receiving_type' => '',
|
||||
'receivings' => '',
|
||||
'reorder_level' => '',
|
||||
'report' => '',
|
||||
'report_input' => '',
|
||||
'reports' => '',
|
||||
'requisition' => '',
|
||||
'requisition_by' => '',
|
||||
'requisition_id' => '',
|
||||
@@ -99,42 +99,42 @@ return [
|
||||
'requisition_related_item' => '',
|
||||
'requisition_related_item_total_quantity' => '',
|
||||
'requisition_related_item_unit_quantity' => '',
|
||||
'requisitions' => 'Requisitions',
|
||||
'returns' => 'Returns',
|
||||
'revenue' => 'Revenue',
|
||||
'sale_id' => 'Trans. ID',
|
||||
'sale_type' => 'Transaction Type',
|
||||
'sales' => 'Transactions',
|
||||
'sales_amount' => 'Transactions amount',
|
||||
'sales_summary_report' => 'Transactions Summary Report',
|
||||
'requisitions' => '',
|
||||
'returns' => '',
|
||||
'revenue' => '',
|
||||
'sale_id' => '',
|
||||
'sale_type' => '',
|
||||
'sales' => '',
|
||||
'sales_amount' => '',
|
||||
'sales_summary_report' => '',
|
||||
'sales_taxes' => '',
|
||||
'sales_taxes_summary_report' => '',
|
||||
'serial_number' => 'Serial Number',
|
||||
'serial_number' => '',
|
||||
'service_charge' => '',
|
||||
'sold_by' => 'Sold By',
|
||||
'sold_by' => '',
|
||||
'sold_items' => '',
|
||||
'sold_to' => 'Sold To',
|
||||
'stock_location' => 'Stock Location',
|
||||
'sub_total_value' => 'Subtotal',
|
||||
'subtotal' => 'Subtotal',
|
||||
'summary_reports' => 'Summary Reports',
|
||||
'supplied_by' => 'Supplied by',
|
||||
'supplier' => 'Supplier',
|
||||
'suppliers' => 'Suppliers',
|
||||
'suppliers_summary_report' => 'Suppliers Summary Report',
|
||||
'tax' => 'Tax',
|
||||
'sold_to' => '',
|
||||
'stock_location' => '',
|
||||
'sub_total_value' => '',
|
||||
'subtotal' => '',
|
||||
'summary_reports' => '',
|
||||
'supplied_by' => '',
|
||||
'supplier' => '',
|
||||
'suppliers' => '',
|
||||
'suppliers_summary_report' => '',
|
||||
'tax' => '',
|
||||
'tax_category' => '',
|
||||
'tax_name' => '',
|
||||
'tax_percent' => 'Tax Percent',
|
||||
'tax_percent' => '',
|
||||
'tax_rate' => '',
|
||||
'taxes' => 'Taxes',
|
||||
'taxes_summary_report' => 'Taxes Summary Report',
|
||||
'taxes' => '',
|
||||
'taxes_summary_report' => '',
|
||||
'toggle_cost_and_profit' => '',
|
||||
'total' => 'Total',
|
||||
'total_inventory_value' => 'Total Inventory Value',
|
||||
'total' => '',
|
||||
'total_inventory_value' => '',
|
||||
'total_low_sell_quantity' => '',
|
||||
'total_quantity' => 'Total Quantity',
|
||||
'total_retail' => 'Total Inv. Retail Value',
|
||||
'total_quantity' => '',
|
||||
'total_retail' => '',
|
||||
'trans_amount' => '',
|
||||
'trans_due' => '',
|
||||
'trans_group' => '',
|
||||
@@ -143,9 +143,9 @@ return [
|
||||
'trans_refunded' => '',
|
||||
'trans_sales' => '',
|
||||
'trans_type' => '',
|
||||
'type' => 'Type',
|
||||
'unit_price' => 'Retail Price',
|
||||
'used' => 'Points Used',
|
||||
'work_orders' => 'Work Orders',
|
||||
'zero_and_less' => 'Zero and less',
|
||||
'type' => '',
|
||||
'unit_price' => '',
|
||||
'used' => '',
|
||||
'work_orders' => '',
|
||||
'zero_and_less' => '',
|
||||
];
|
||||
+18
-17
@@ -66,7 +66,7 @@ return [
|
||||
'giftcard_number' => 'Gift Card Номер',
|
||||
'group_by_category' => 'Групирайте по категория',
|
||||
'group_by_type' => 'Групиране по тип',
|
||||
'hsn' => 'HSN',
|
||||
'hsn' => '',
|
||||
'id' => 'Номер на продажба',
|
||||
'include_prices' => 'Включва цени?',
|
||||
'insufficient_giftcard_balance' => 'Недостатъчен баланс на подаръчната карта за това плащане.',
|
||||
@@ -77,7 +77,7 @@ return [
|
||||
'invoice_filter' => 'Фактури',
|
||||
'invoice_no_email' => 'Този клиент няма валиден имейл адрес.',
|
||||
'invoice_number' => 'Фактура #',
|
||||
'invoice_number_duplicate' => 'Номерът на фактурите трябва да е уникален.',
|
||||
'invoice_number_duplicate' => 'Номерът на фактурата {0} трябва да е уникален.',
|
||||
'invoice_sent' => 'Фактура, изпратена до',
|
||||
'invoice_total' => 'Фактура общо',
|
||||
'invoice_type_custom_invoice' => 'Ръчна фактура',
|
||||
@@ -90,26 +90,26 @@ return [
|
||||
'item_number' => 'Предмет #',
|
||||
'item_out_of_stock' => 'Елементът е изчерпан.',
|
||||
'key_browser' => '',
|
||||
'key_cancel' => 'Cancels Current Quote/Invoice/Sale',
|
||||
'key_customer_search' => 'Customer Search',
|
||||
'key_finish_quote' => 'Finish Quote/Invoice witdout payment',
|
||||
'key_finish_sale' => 'Add Payment and Complete Invoice/Sale',
|
||||
'key_cancel' => '',
|
||||
'key_customer_search' => '',
|
||||
'key_finish_quote' => '',
|
||||
'key_finish_sale' => '',
|
||||
'key_full' => '',
|
||||
'key_function' => 'Function',
|
||||
'key_help' => 'Shortcuts',
|
||||
'key_help_modal' => 'Open Shortcuts Window',
|
||||
'key_function' => '',
|
||||
'key_help' => '',
|
||||
'key_help_modal' => '',
|
||||
'key_in' => '',
|
||||
'key_item_search' => 'Item Search',
|
||||
'key_item_search' => '',
|
||||
'key_out' => '',
|
||||
'key_payment' => 'Add Payment',
|
||||
'key_payment' => '',
|
||||
'key_print' => '',
|
||||
'key_restore' => '',
|
||||
'key_search' => '',
|
||||
'key_suspend' => 'Suspend Current Sale',
|
||||
'key_suspended' => 'Show Suspended Sales',
|
||||
'key_suspend' => '',
|
||||
'key_suspended' => '',
|
||||
'key_system' => '',
|
||||
'key_tendered' => 'Edit Amount Tendered',
|
||||
'key_title' => 'Sales Keyboard Shortcuts',
|
||||
'key_tendered' => '',
|
||||
'key_title' => '',
|
||||
'mode' => 'Режим на регистрация',
|
||||
'must_enter_numeric' => 'Сумата Предложена трябва да е число.',
|
||||
'must_enter_numeric_giftcard' => 'Gift Card номера трябва да бъде число.',
|
||||
@@ -123,8 +123,9 @@ return [
|
||||
'new_item' => 'Нов продукт',
|
||||
'no_description' => 'Нито един',
|
||||
'no_items_in_cart' => 'В количката няма продукти.',
|
||||
'no_sales_to_display' => 'Няма продажби за показване.',
|
||||
'none_selected' => 'Не сте избрали каквито и да е Продажби за изтриване.',
|
||||
'nontaxed_ind' => ' sales nontaxed ind ',
|
||||
'nontaxed_ind' => '',
|
||||
'not_authorized' => 'Това действие не е разрешено.',
|
||||
'one_or_multiple' => 'Продажба (и)',
|
||||
'payment' => 'Вид плащане',
|
||||
@@ -200,7 +201,7 @@ return [
|
||||
'unsuccessfully_suspended_sale' => 'Преустановяването на продажбата бе неуспешно.',
|
||||
'unsuccessfully_updated' => 'Актуализацията на продажбата не бе успешна.',
|
||||
'unsuspend' => 'Възстановяване',
|
||||
'unsuspend_and_delete' => 'Action',
|
||||
'unsuspend_and_delete' => '',
|
||||
'update' => 'Актуализация',
|
||||
'upi' => '',
|
||||
'wallet' => '',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'account_number' => 'Account Number',
|
||||
'account_number' => '',
|
||||
'agency_name' => 'Име на агенцията',
|
||||
'cannot_be_deleted' => 'Избраните доставчици не можаха да бъдат изтрити. Един или повече от тях имат продажби.',
|
||||
'category' => '',
|
||||
@@ -19,7 +19,7 @@ return [
|
||||
'successful_deleted' => 'Вие успешно изтрихте',
|
||||
'successful_updating' => 'Обновяването на доставчика е успешно',
|
||||
'supplier' => 'Доставчик',
|
||||
'supplier_id' => 'Id',
|
||||
'supplier_id' => '',
|
||||
'tax_id' => '',
|
||||
'update' => 'Актуализиране на доставчик',
|
||||
];
|
||||
@@ -12,6 +12,7 @@ return [
|
||||
'default_tax_rate' => '',
|
||||
'error_adding_updating' => 'Добавянето или актуализацията на данъчния код беше неуспешна.',
|
||||
'group_seq' => '',
|
||||
'jurisdiction_id' => '',
|
||||
'jurisdiction_name' => '',
|
||||
'name' => '',
|
||||
'new' => 'Нов данъчен код',
|
||||
|
||||
@@ -6,14 +6,14 @@ return [
|
||||
'confirm_restore' => 'Da li ste sigurni da želite vratiti izabrane atribute?',
|
||||
'definition_cannot_be_deleted' => 'Nije moguće izbrisati izabrane atribut',
|
||||
'definition_error_adding_updating' => 'Atribut {0} nije moguće dodati ili ažurirati. Molimo provjerite dnevnik grešaka.',
|
||||
'definition_invalid_group' => '',
|
||||
'definition_flags' => 'Vidljivost atributa',
|
||||
'definition_group' => 'Grupa',
|
||||
'definition_id' => 'Id',
|
||||
'definition_id' => '',
|
||||
'definition_invalid_group' => '',
|
||||
'definition_name' => 'Dodaj Atribut',
|
||||
'definition_name_required' => 'Ime atributa je obavezno polje',
|
||||
'definition_one_or_multiple' => 'atributi',
|
||||
'definition_successful_adding' => 'Uspješno ste dodali stavku',
|
||||
'definition_successful_adding' => '',
|
||||
'definition_successful_deleted' => 'Uspješno ste izbrisali',
|
||||
'definition_successful_updating' => 'Uspješno ste ažurirali atribute',
|
||||
'definition_type' => 'Tip atributa',
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'definition_unit' => 'Jedinice mjere',
|
||||
'definition_values' => 'Vrijednosti atributa',
|
||||
'new' => 'Novi atribut',
|
||||
'no_attributes_to_display' => 'Nema stavki za prikaz',
|
||||
'no_attributes_to_display' => '',
|
||||
'receipt_visibility' => 'Račun',
|
||||
'show_in_items' => 'Prikaži u stavkama',
|
||||
'show_in_items_visibility' => 'Stavka',
|
||||
|
||||
@@ -26,7 +26,7 @@ return [
|
||||
'enable_expected' => '',
|
||||
'error_adding_updating' => 'Greška prilikom dodavanja/ažuriranja isplate',
|
||||
'giftcard' => '',
|
||||
'id' => 'Id',
|
||||
'id' => '',
|
||||
'info' => 'Informacije o isplatama',
|
||||
'info_employee' => '',
|
||||
'is_deleted' => 'Izbrisano',
|
||||
|
||||
@@ -11,7 +11,6 @@ return [
|
||||
'comments' => 'Komentari',
|
||||
'common' => 'Zajedničko',
|
||||
'confirm_search' => 'Odabrali ste jedan ili više redova koji neće biti izabrani nakon pretrage. Da li ste sigurni da želite pretragu?',
|
||||
'copyrights' => '© 2010 - {0}',
|
||||
'correct_errors' => 'Ispravite identifikovane pogreške prije snimanja',
|
||||
'country' => 'Država',
|
||||
'dashboard' => '',
|
||||
@@ -32,10 +31,10 @@ return [
|
||||
'first_page' => 'Prva',
|
||||
'gender' => 'Pol',
|
||||
'gender_female' => 'Ž',
|
||||
'gender_male' => 'M',
|
||||
'gender_male' => '',
|
||||
'gender_undefined' => '',
|
||||
'icon' => 'Ikona',
|
||||
'id' => 'ID',
|
||||
'id' => '',
|
||||
'import' => 'Uvoz',
|
||||
'import_change_file' => 'Promjena',
|
||||
'import_csv' => 'CSV uvoz',
|
||||
@@ -48,11 +47,9 @@ return [
|
||||
'last_page' => 'Poslednja',
|
||||
'learn_about_project' => 'da biste saznali najnovije informacije o projektu.',
|
||||
'list_of' => 'Lista',
|
||||
'logo' => 'Logo',
|
||||
'logo' => '',
|
||||
'logo_mark' => 'Znak',
|
||||
'logout' => 'Odjava',
|
||||
'manager' => '',
|
||||
'migration_needed' => 'Premještanje baze podataka na {0} počinje nakon prijave.',
|
||||
'new' => 'Novi',
|
||||
'no' => '',
|
||||
'no_persons_to_display' => 'Nema ljudi za prikaz.',
|
||||
@@ -60,10 +57,9 @@ return [
|
||||
'or' => 'Ili',
|
||||
'people' => '',
|
||||
'phone_number' => 'Broj telefona',
|
||||
'phone_number_required' => 'Broj telefona je obavezan',
|
||||
'please_visit_my' => 'Posjetite',
|
||||
'position' => '',
|
||||
'powered_by' => 'Podržano od',
|
||||
'powered_by' => 'Podržano od {app} {version}',
|
||||
'price' => 'Cijena',
|
||||
'print' => 'Štampanje',
|
||||
'remove' => 'Ukloni',
|
||||
@@ -73,14 +69,11 @@ return [
|
||||
'search' => 'Traži',
|
||||
'search_options' => 'Opcije pretrage',
|
||||
'searched_for' => 'Traženo',
|
||||
'software_short' => 'OSPOS',
|
||||
'software_title' => 'Prodajno mjesto otvorenog koda',
|
||||
'state' => 'Entitet',
|
||||
'submit' => 'Prihvati',
|
||||
'total_spent' => 'Ukupno potrošeno',
|
||||
'unknown' => 'Nepoznato',
|
||||
'view_recent_sales' => 'Pogledaj nedavne prodaje',
|
||||
'website' => 'opensourcepos.org',
|
||||
'welcome' => 'Dobrodošli',
|
||||
'welcome_message' => 'Dobrodošli u OSPOS, kliknite na modul ispod da biste započeli.',
|
||||
'yes' => '',
|
||||
|
||||
+12
-10
@@ -13,7 +13,7 @@ return [
|
||||
'barcode_configuration' => 'Konfiguracija barkoda',
|
||||
'barcode_content' => 'Sadržaj barkoda',
|
||||
'barcode_first_row' => '1 red',
|
||||
'barcode_font' => 'Font',
|
||||
'barcode_font' => '',
|
||||
'barcode_formats' => 'Unesi format',
|
||||
'barcode_generate_if_empty' => 'Generiši ako je prazno.',
|
||||
'barcode_height' => 'Visina(px)',
|
||||
@@ -98,8 +98,8 @@ return [
|
||||
'default_tax_rate_1' => 'Stopa poreza 1 %',
|
||||
'default_tax_rate_2' => 'Stopa poreza 2 %',
|
||||
'default_tax_rate_3' => '',
|
||||
'default_tax_rate_number' => 'Stopa poreza mora biti broj.',
|
||||
'default_tax_rate_non_negative' => '',
|
||||
'default_tax_rate_number' => 'Stopa poreza mora biti broj.',
|
||||
'default_tax_rate_required' => 'Stopa poreza je obavezno polje.',
|
||||
'derive_sale_quantity' => 'Dozvoli izvedenu količinu prodaje',
|
||||
'derive_sale_quantity_tooltip' => 'Ako se izabere, za artikle naručene po produženom iznosu biće obezbjeđen novi tip artikla',
|
||||
@@ -118,10 +118,10 @@ return [
|
||||
'email_receipt_check_behaviour_last' => 'Zapamti poslednji izbor',
|
||||
'email_receipt_check_behaviour_never' => 'Uvijek nepotvrđeno',
|
||||
'email_smtp_crypto' => 'SMTP šifriranje',
|
||||
'email_smtp_host' => 'SMTP Server',
|
||||
'email_smtp_host' => '',
|
||||
'email_smtp_pass' => 'SMTP Lozinka',
|
||||
'email_smtp_pass_set' => '',
|
||||
'email_smtp_port' => 'SMTP Port',
|
||||
'email_smtp_port' => '',
|
||||
'email_smtp_timeout' => 'SMTP pauza',
|
||||
'email_smtp_user' => 'SMTP Korisničko ime',
|
||||
'enable_avatar' => '',
|
||||
@@ -168,6 +168,8 @@ return [
|
||||
'info' => 'Informacije',
|
||||
'info_configuration' => 'Info o web trgovini',
|
||||
'input_groups' => 'Grupe unosa',
|
||||
'integrations' => 'Integracije',
|
||||
'integrations_configuration' => 'Integracije trećih strana',
|
||||
'invoice' => 'Faktura',
|
||||
'invoice_configuration' => 'Podešavanja štamapnja',
|
||||
'invoice_default_comments' => 'Komentar na fakturi',
|
||||
@@ -198,6 +200,7 @@ return [
|
||||
'location_info' => 'Informacije o konfiguraciji lokacije',
|
||||
'login_form' => 'Stil formulara za prijavu',
|
||||
'logout' => 'Zar ne želite da napravite rezervnu kopiju prije odjave? Kliknite [OK] za sigurnosnu kopiju, [Cancel] da biste se odjavili.',
|
||||
'mailpath_invalid' => 'Nevažeća sendmail putanja. Dozvoljena su samo slova, brojevi, crtice, donje crte, kose crte, obrnute kose crte, dvotačke, razmaci i tačke.',
|
||||
'message' => 'Poruke',
|
||||
'message_configuration' => 'Konfigurisanje poruke',
|
||||
'msg_msg' => 'Snimljena tekst poruka',
|
||||
@@ -222,7 +225,7 @@ return [
|
||||
'payment_options_order' => 'Narudžba opcije plaćanja',
|
||||
'payment_reference_code_length_limits' => 'Referentni kod plaćanja<br>Ograničenja duljine',
|
||||
'payment_reference_code_length_max_label' => 'Maks',
|
||||
'payment_reference_code_length_min_label' => 'Min',
|
||||
'payment_reference_code_length_min_label' => '',
|
||||
'perm_risk' => 'Dozvole veće od 750 za pisanje i 660 za čitanje dovode ovaj program u rizik.',
|
||||
'phone' => 'Telefon kompanije',
|
||||
'phone_required' => 'Telefon kompanije je obavezno polje.',
|
||||
@@ -278,12 +281,15 @@ return [
|
||||
'right' => 'Desno',
|
||||
'sales_invoice_format' => 'Format fakture',
|
||||
'sales_quote_format' => 'Format navedene prodaje',
|
||||
'mailpath_invalid' => 'Nevažeća sendmail putanja. Dozvoljena su samo slova, brojevi, crtice, donje crte, kose crte, obrnute kose crte, dvotačke, razmaci i tačke.',
|
||||
'saved_successfully' => 'Konfiguracija je uspješno snimljena.',
|
||||
'saved_unsuccessfully' => 'Konfiguracija nije uspješno snimljena.',
|
||||
'security_issue' => 'Upozorenje o sigurnosnoj ranjivosti',
|
||||
'server_notice' => 'Koristite informacije u nastavku za prijavljivanje problema.',
|
||||
'service_charge' => '',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'show_due_enable' => '',
|
||||
'show_office_group' => 'Prikaži ikonu kancelarije',
|
||||
'statistics' => 'Pošalji statistiku',
|
||||
@@ -301,10 +307,6 @@ return [
|
||||
'suggestions_layout' => 'Prijedlozi za pretraživanje',
|
||||
'suggestions_second_column' => 'Kolona 2',
|
||||
'suggestions_third_column' => 'Kolona 3',
|
||||
'shortcuts' => '',
|
||||
'shortcuts_configuration' => '',
|
||||
'shortcuts_duplicate_bindings' => '',
|
||||
'shortcuts_save_error' => '',
|
||||
'system_conf' => 'Podešavanja & Konf',
|
||||
'system_info' => 'Sistem Info',
|
||||
'system_info_copy' => '',
|
||||
|
||||
@@ -34,6 +34,7 @@ return [
|
||||
'none_selected' => 'Niste izabrali nijednog kupca za brisanje.',
|
||||
'one_or_multiple' => 'kupac(i)',
|
||||
'quantity' => 'Količina',
|
||||
'rewards_package' => 'Nagrade',
|
||||
'stats_info' => 'Statistika',
|
||||
'successful_adding' => 'Uspješno ste dodali kupca',
|
||||
'successful_deleted' => 'Kupac je uspješno izbrisan',
|
||||
@@ -43,5 +44,4 @@ return [
|
||||
'taxable' => 'Oporezivo',
|
||||
'total' => 'Ukupno',
|
||||
'update' => 'Ažuriraj kupca',
|
||||
'rewards_package' => 'Nagrade',
|
||||
];
|
||||
@@ -41,6 +41,7 @@ return [
|
||||
'successful_deleted' => 'Uspješno ste izbrisali zaposlenika',
|
||||
'successful_updating' => 'Uspješno ste ažurirali zaposlenika',
|
||||
'system_language' => 'Sistemski jezik',
|
||||
'unauthorized_modify' => '',
|
||||
'unsuccessful_change_password' => 'Promjena lozinke nije uspjela.',
|
||||
'update' => 'Ažuriraj zaposlenika',
|
||||
'username' => 'Korisničko ime',
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'no_permission_module' => 'Nemate dozvolu za pristup modulu',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_create_env_file' => 'Nije moguće kreirati {filePath} za obezbjeđivanje throttle.key',
|
||||
'unable_to_lock_file' => 'Nije moguće zaključati {filePath}: {reason}',
|
||||
'unable_to_open_lock_file' => 'Nije moguće otvoriti {filePath}: {reason}',
|
||||
'unable_to_persist_throttle_key' => 'Nije moguće trajno sačuvati throttle.key u {filePath}',
|
||||
'unable_to_persist_encryption_key' => '',
|
||||
'encryption_key_not_provisioned' => '',
|
||||
'throttle_key_not_provisioned' => '',
|
||||
'unable_to_persist_throttle_key' => 'Nije moguće trajno sačuvati throttle.key u {filePath}',
|
||||
'unable_to_read_env_file' => 'Nije moguće pročitati {filePath} za obezbjeđivanje throttle.key',
|
||||
'unknown' => 'Neočekivana greška',
|
||||
];
|
||||
@@ -27,7 +27,7 @@ return [
|
||||
'due_filter' => 'Dospijeće',
|
||||
'employee' => 'Napravio',
|
||||
'error_adding_updating' => 'Greška pri dodavanju / ažuriranju troškova',
|
||||
'expense_id' => 'Id',
|
||||
'expense_id' => '',
|
||||
'expenses_employee' => 'Zaposlenik',
|
||||
'info' => 'Informacije o troškovima',
|
||||
'ip_address' => '',
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'category_name_required' => 'Naziv kategorije je obavezan',
|
||||
'add_item' => 'Dodaj kategoriju',
|
||||
'cannot_be_deleted' => 'Nije moguće izbrisati kategoriju',
|
||||
'category_id' => 'Id',
|
||||
'category_id' => '',
|
||||
'category_name_required' => 'Naziv kategorije je obavezan',
|
||||
'confirm_delete' => 'Da li ste sigurni da želite da izbrišete izabranu kategoriju?',
|
||||
'confirm_restore' => 'Da li ste sigurni da želite da vratite izabranu kategoriju?',
|
||||
'description' => 'Opis Kategorije',
|
||||
|
||||
@@ -17,8 +17,6 @@ return [
|
||||
'item' => 'Artikal',
|
||||
'item_kit_number' => 'Barkod',
|
||||
'item_kit_number_duplicate' => 'Broj kompleta predmeta već je prisutan u bazi podataka.',
|
||||
'item_number' => '',
|
||||
'item_number_duplicate' => '',
|
||||
'items' => 'Artikli',
|
||||
'kit' => 'ID kompleta',
|
||||
'kit_and_components' => 'Komplet i komponente',
|
||||
|
||||
@@ -95,7 +95,7 @@ return [
|
||||
'search_attributes' => 'Pretraživanje atributa',
|
||||
'select_image' => 'Izaberite sliku',
|
||||
'serialized_items' => 'Artikal ima ser. broj',
|
||||
'standard' => 'Standard',
|
||||
'standard' => '',
|
||||
'stock' => 'Skladište',
|
||||
'stock_location' => 'Mjesto skladišta',
|
||||
'stock_type' => 'Vrsta zalihe',
|
||||
@@ -110,8 +110,8 @@ return [
|
||||
'tax_category' => 'Kategorija poreza',
|
||||
'tax_name_invalid' => 'Naziv poreza sadrži nedozvoljene znakove.',
|
||||
'tax_percent' => 'Procenat poreza',
|
||||
'tax_percent_number' => 'Procenat poreza mora biti numerička vrijednost',
|
||||
'tax_percent_non_negative' => '',
|
||||
'tax_percent_number' => 'Procenat poreza mora biti numerička vrijednost',
|
||||
'tax_percent_required' => 'Procenat poreza je obavezno polje.',
|
||||
'tax_percents' => 'Porez %',
|
||||
'temp' => 'Privremeno',
|
||||
|
||||
@@ -11,6 +11,6 @@ return [
|
||||
'phone_number_required' => 'Broj telefona je obavezan',
|
||||
'phone_placeholder' => 'Broj mobilnog telefona ovde...',
|
||||
'sms_send' => 'Pošalji SMS',
|
||||
'successfully_sent' => 'Poruka je uspješno poslata: ',
|
||||
'unsuccessfully_sent' => 'Poruka nije uspešno poslata: ',
|
||||
'successfully_sent' => 'Poruka je uspješno poslata:',
|
||||
'unsuccessfully_sent' => 'Poruka nije uspešno poslata:',
|
||||
];
|
||||
@@ -28,6 +28,7 @@ return [
|
||||
'item_name' => 'Naziv artikla',
|
||||
'mode' => 'Način prijema',
|
||||
'new_supplier' => 'Novi dobavljač',
|
||||
'not_authorized' => '',
|
||||
'one_or_multiple' => 'Ulaz(i)',
|
||||
'print_after_sale' => 'Štampaj poslije prodaje',
|
||||
'quantity' => 'Količina',
|
||||
|
||||
@@ -7,11 +7,11 @@ return [
|
||||
'categories' => 'Kategorije',
|
||||
'categories_summary_report' => 'Zbirni izvještaj po kategorijama',
|
||||
'category' => 'Kategorija',
|
||||
'code_canceled' => 'CNL',
|
||||
'code_invoice' => 'INV',
|
||||
'code_pos' => 'POS',
|
||||
'code_quote' => 'Q',
|
||||
'code_return' => 'RET',
|
||||
'code_canceled' => '',
|
||||
'code_invoice' => '',
|
||||
'code_pos' => '',
|
||||
'code_quote' => '',
|
||||
'code_return' => '',
|
||||
'code_type' => 'Tip',
|
||||
'code_work_order' => 'R/N',
|
||||
'comments' => 'Komentari',
|
||||
|
||||
+19
-18
@@ -34,7 +34,7 @@ return [
|
||||
'customer_email' => 'E-mail kupca',
|
||||
'customer_location' => 'Mjesto kupca',
|
||||
'customer_optional' => '(Potrebno za odloženo plaćanje)',
|
||||
'customer_required' => 'Obavezno',
|
||||
'customer_required' => '(Obavezno)',
|
||||
'customer_total' => 'Ukupno',
|
||||
'date' => 'Datum prodaje',
|
||||
'date_range' => 'Period',
|
||||
@@ -66,7 +66,7 @@ return [
|
||||
'giftcard_number' => 'Broj poklon kartice',
|
||||
'group_by_category' => 'Grupiraj po kategoriji',
|
||||
'group_by_type' => 'Grupiraj po tipu',
|
||||
'hsn' => 'HSN',
|
||||
'hsn' => '',
|
||||
'id' => 'ID prodaje',
|
||||
'include_prices' => 'Uključi cijene?',
|
||||
'insufficient_giftcard_balance' => 'Nezadovoljavajući saldo poklon kartice za ovu uplatu.',
|
||||
@@ -90,26 +90,26 @@ return [
|
||||
'item_number' => 'Barkod',
|
||||
'item_out_of_stock' => 'Artikal je rasprodan.',
|
||||
'key_browser' => '',
|
||||
'key_cancel' => 'Cancels Current Quote/Invoice/Sale',
|
||||
'key_customer_search' => 'Customer Search',
|
||||
'key_finish_quote' => 'Finish Quote/Invoice witdout payment',
|
||||
'key_finish_sale' => 'Add Payment and Complete Invoice/Sale',
|
||||
'key_cancel' => '',
|
||||
'key_customer_search' => '',
|
||||
'key_finish_quote' => '',
|
||||
'key_finish_sale' => '',
|
||||
'key_full' => '',
|
||||
'key_function' => 'Function',
|
||||
'key_help' => 'Shortcuts',
|
||||
'key_help_modal' => 'Open Shortcuts Window',
|
||||
'key_function' => '',
|
||||
'key_help' => '',
|
||||
'key_help_modal' => '',
|
||||
'key_in' => '',
|
||||
'key_item_search' => 'Item Search',
|
||||
'key_item_search' => '',
|
||||
'key_out' => '',
|
||||
'key_payment' => 'Add Payment',
|
||||
'key_payment' => '',
|
||||
'key_print' => '',
|
||||
'key_restore' => '',
|
||||
'key_search' => '',
|
||||
'key_suspend' => 'Suspend Current Sale',
|
||||
'key_suspended' => 'Show Suspended Sales',
|
||||
'key_suspend' => '',
|
||||
'key_suspended' => '',
|
||||
'key_system' => '',
|
||||
'key_tendered' => 'Edit Amount Tendered',
|
||||
'key_title' => 'Sales Keyboard Shortcuts',
|
||||
'key_tendered' => '',
|
||||
'key_title' => '',
|
||||
'mode' => 'Mod registrovanja',
|
||||
'must_enter_numeric' => 'Ponuđeni iznos mora biti broj.',
|
||||
'must_enter_numeric_giftcard' => 'Broj poklon kartice mora biti broj.',
|
||||
@@ -123,8 +123,9 @@ return [
|
||||
'new_item' => 'Novi artikal',
|
||||
'no_description' => 'Nema opisa',
|
||||
'no_items_in_cart' => 'Nema artikala u korpi.',
|
||||
'no_sales_to_display' => 'Nema prodaje za prikaz.',
|
||||
'none_selected' => 'Niste izabrali nijedu prodaju za brisanje.',
|
||||
'nontaxed_ind' => ' ',
|
||||
'nontaxed_ind' => '',
|
||||
'not_authorized' => 'Ova radnja nije ovlašćena.',
|
||||
'one_or_multiple' => 'Prodaja',
|
||||
'payment' => 'Tip plaćanja',
|
||||
@@ -182,7 +183,7 @@ return [
|
||||
'successfully_updated' => 'Prodaja je uspješno ažurirana.',
|
||||
'suspend_sale' => 'Obustavi',
|
||||
'suspended_doc_id' => 'Dokument',
|
||||
'suspended_sale_id' => 'ID',
|
||||
'suspended_sale_id' => '',
|
||||
'suspended_sales' => 'Obustavljeno',
|
||||
'table' => 'Sto',
|
||||
'takings' => 'Dnevna prodaja',
|
||||
@@ -202,7 +203,7 @@ return [
|
||||
'unsuspend' => 'Odustani',
|
||||
'unsuspend_and_delete' => 'Akcija',
|
||||
'update' => 'Ažuriranje',
|
||||
'upi' => 'UPI',
|
||||
'upi' => '',
|
||||
'wallet' => '',
|
||||
'work_order' => 'Radni nalog',
|
||||
'work_order_number' => 'Broj radnog naloga',
|
||||
|
||||
Loaded 100 of 843 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user