Compare commits

..

595 Commits
3.3.3 ... 3.3.7

Author SHA1 Message Date
jekkos
4f3226b1ba Add item_pic to escape ignore list (#3379) 2022-05-03 11:26:34 +02:00
jekkos
82ae2e0931 Enable search in detailed reports (#3495) 2022-05-01 11:59:35 +02:00
chunter2
e4ca111977 Add cost price column to item summary report (#3495) 2022-04-30 01:16:32 +02:00
jekkos
31944f491c Enable search in reports (#3491) 2022-04-29 21:30:23 +02:00
dependabot[bot]
19342e4d6f Bump simple-get from 3.1.0 to 3.1.1
Bumps [simple-get](https://github.com/feross/simple-get) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-29 18:36:35 +02:00
jekkos
c8a83fbb57 Update unstable build URL
NPM package uploads are working again. Update the URL in the documentation.
2022-04-29 15:26:29 +02:00
jekkos
c3d06fc6f5 Remove markup last row expenses (#3779) 2022-04-29 15:17:53 +02:00
jekkos
553eae19a3 Add version string echo 2022-04-29 15:16:32 +02:00
jekkos
63f282a8b5 3.3.7-master-564465 2022-04-29 15:16:32 +02:00
jekkos
cfd5973f0e Add npm version --from-git
Rotate npm token
2022-04-29 15:16:32 +02:00
dependabot[bot]
e44bc3e674 Bump grunt from 1.4.1 to 1.5.2
Bumps [grunt](https://github.com/gruntjs/grunt) from 1.4.1 to 1.5.2.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.2)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-29 15:16:32 +02:00
Casper Hsiao
d6b66d9fe2 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.4% (211 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/zh_Hant/
2022-04-27 20:32:20 +02:00
jekkos
a6b4f826c5 Update changelog 2022-04-26 23:49:58 +02:00
jekkos
d26498d1ad Do not escape email and phone_numbers (#3379) 2022-04-26 23:49:58 +02:00
jekkos
5897130e0a Fix sales last row style (#3379) 2022-04-25 23:32:50 +02:00
khao_lek
a0c3a532aa Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-04-19 19:36:33 +02:00
jekkos
9331d82313 Add escape flag for XSS mitigation (#3379) 2022-04-14 09:28:12 +02:00
khao_lek
3e60b74c4c Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-04-07 09:45:36 +02:00
jekkos
4a591e89b6 Mount database.sql from docker volume (#3352) 2022-04-05 21:52:52 +02:00
jekkos
8c1977b1ec Fix transaction summary for serialized items (#3445) 2022-04-01 08:56:15 +02:00
Aril Apria Susanto
4a8aaf8ef0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
c4b8f8654d Translated using Weblate (Indonesian)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
cb3d84f1bf Translated using Weblate (Indonesian)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
166d2b586c Translated using Weblate (Indonesian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
ca792b44cd Translated using Weblate (Indonesian)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
4825248a1a Translated using Weblate (Indonesian)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
17973151e4 Translated using Weblate (Indonesian)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
5b9301567c Translated using Weblate (Indonesian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/id/
2022-04-01 07:34:24 +02:00
jekkos
6028bc408d Run build if git tag is added 2022-03-29 22:30:59 +02:00
khao_lek
5974d01453 Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-03-29 19:13:13 +02:00
khao_lek
c83db2f5c7 Translated using Weblate (Thai)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/th/
2022-03-29 19:12:49 +02:00
khao_lek
8e24570cfb Translated using Weblate (Thai)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2022-03-29 09:00:18 +02:00
khao_lek
fdf49e9038 Translated using Weblate (Thai)
Currently translated at 99.0% (219 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-03-29 09:00:18 +02:00
khao_lek
559b354925 Translated using Weblate (Thai)
Currently translated at 97.7% (44 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/th/
2022-03-29 09:00:17 +02:00
khao_lek
af864aefd5 Translated using Weblate (Thai)
Currently translated at 99.6% (326 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2022-03-29 09:00:15 +02:00
ALink3133
5e55952ce8 Translated using Weblate (Thai)
Currently translated at 97.2% (215 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-02-23 10:46:51 +01:00
ALink3133
8e1a8fe480 Translated using Weblate (Thai)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2022-02-23 10:46:51 +01:00
ALink3133
99e51bcdf9 Translated using Weblate (Thai)
Currently translated at 93.3% (42 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/th/
2022-02-23 10:46:51 +01:00
Mats Pålsson
48217895bb Translated using Weblate (Swedish)
Currently translated at 95.2% (81 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2022-02-18 11:26:14 +01:00
Steve Ireland
96c59245e3 Change register to show anticipated invoice number. (#3408) 2022-01-28 14:35:22 -05:00
Elio Enzo Papais
9cf4e6e07b Translated using Weblate (Italian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
bb73d48d37 Translated using Weblate (Italian)
Currently translated at 93.6% (44 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
2af5642fe7 Translated using Weblate (Italian)
Currently translated at 0.0% (0 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
c1207b64df Translated using Weblate (Italian)
Currently translated at 97.6% (83 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
5e02f0531a Translated using Weblate (Italian)
Currently translated at 94.3% (50 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
bea49e6eeb Translated using Weblate (Italian)
Currently translated at 96.3% (53 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
a7772f3e1b Translated using Weblate (Italian)
Currently translated at 93.1% (109 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
e6072ee9fa Translated using Weblate (Italian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/it/
2022-01-27 05:34:23 +01:00
Elio Enzo Papais
dd24a3c8d0 Translated using Weblate (Italian)
Currently translated at 95.7% (112 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-27 05:34:23 +01:00
Elio Enzo Papais
7857206999 Translated using Weblate (Italian)
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
4c642bd8d3 Translated using Weblate (Italian)
Currently translated at 98.7% (323 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
0ec68c8b99 Translated using Weblate (Italian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
0e2e808635 Translated using Weblate (Italian)
Currently translated at 97.9% (142 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
4f81d602ea Translated using Weblate (Italian)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
db14ea80e2 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
09d0005724 Translated using Weblate (Italian)
Currently translated at 98.1% (217 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
9bb48cee59 Translated using Weblate (Italian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
38e718774f Translated using Weblate (Italian)
Currently translated at 92.3% (302 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
1470cce981 Translated using Weblate (Italian)
Currently translated at 88.0% (288 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
ff55e966ce Translated using Weblate (Italian)
Currently translated at 91.4% (202 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
de4ea6299f Translated using Weblate (Italian)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d3906cbbc4 Translated using Weblate (Italian)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
8df3735bbf Translated using Weblate (Italian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
85b9048041 Translated using Weblate (Italian)
Currently translated at 88.8% (104 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
7f7de97920 Translated using Weblate (Italian)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
912c035e27 Translated using Weblate (Italian)
Currently translated at 84.8% (123 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
bd1baad7f1 Translated using Weblate (Italian)
Currently translated at 90.5% (77 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d61d1ad878 Translated using Weblate (Italian)
Currently translated at 73.9% (34 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d14e21cc68 Translated using Weblate (Italian)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
780db269de Translated using Weblate (Italian)
Currently translated at 64.5% (51 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/it/
2022-01-25 00:16:21 +01:00
jekkos
669a5b33f3 Bump to 3.3.7 2022-01-23 23:01:32 +01:00
khao_lek
3d4dc0fc56 Translated using Weblate (Thai)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-01-17 19:38:10 +01:00
khao_lek
7a4e16422e Translated using Weblate (Thai)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/th/
2022-01-17 19:38:10 +01:00
khao_lek
0dc7da8a3b Translated using Weblate (Thai)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/th/
2022-01-17 19:38:09 +01:00
khao_lek
ba66e8d8c7 Translated using Weblate (Thai)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2022-01-17 19:38:08 +01:00
Nicolas Hurtubise
5eea70dca4 Translated using Weblate (French)
Currently translated at 94.1% (208 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/fr/
2022-01-16 09:14:51 +01:00
Nicolas Hurtubise
f7bbc7c634 Translated using Weblate (French)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/fr/
2022-01-16 09:14:51 +01:00
Nicolas Hurtubise
0df712fbd7 Translated using Weblate (French)
Currently translated at 93.6% (207 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/fr/
2022-01-14 18:53:46 +01:00
Nicolas Hurtubise
511c6238a8 Translated using Weblate (English)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2022-01-14 18:53:46 +01:00
jekkos
730ec1292d Use anchor in supplier regex (#3402)
Adding a unit test to check the url patterns allowed/disallowed would be a good idea. I should practice what I preach.
2022-01-12 00:34:16 +01:00
jekkos
6e1db1458b Rotate npm token (#2834) 2022-01-11 23:32:13 +01:00
jekkos
5c425febfb Use https for git-script-link-tags 2022-01-11 23:31:11 +01:00
jekkos
81087fc093 Update link to unstable builds (#2834) 2022-01-10 12:25:19 +01:00
jekkos
0231c0bc4f Use git tag in case of release (#2834) 2022-01-09 18:13:18 +01:00
jekkos
bece3b5fea Enable npm package uploads for unstable (#2834) 2022-01-08 12:27:21 +01:00
jekkos
b309b631f2 Update CHANGELOG.md 2022-01-08 01:11:16 +01:00
jacekz123
f3e41a4535 Translated using Weblate (Polish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/pl/
2022-01-07 13:20:30 +01:00
jacekz123
5675aeed12 Translated using Weblate (Polish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/pl/
2022-01-06 23:54:53 +01:00
jacekz123
2c331b6244 Translated using Weblate (Polish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/pl/
2022-01-06 23:54:53 +01:00
jacekz123
3841502704 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/pl/
2022-01-06 23:54:53 +01:00
jacekz123
e94af0ddbc Translated using Weblate (Polish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/pl/
2022-01-06 23:54:53 +01:00
jacekz123
11a05501c5 Translated using Weblate (Polish)
Currently translated at 2.9% (2 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/pl/
2022-01-06 23:54:53 +01:00
jacekz123
0262f644af Translated using Weblate (Polish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/pl/
2022-01-06 23:54:53 +01:00
jacekz123
67881c172f Translated using Weblate (Polish)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/pl/
2022-01-06 23:54:53 +01:00
jekkos
40565ea811 Add default user/password in testing (#3374) 2022-01-06 23:26:10 +01:00
jekkos
9332d16ec4 Fix logout csrf 2022-01-01 22:32:36 +01:00
FrancescoUK
bb0e771542 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-12-13 03:24:26 +01:00
Cedo
24cb0247d5 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-12-04 21:30:21 +01:00
Cedo
e22608ba61 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-12-04 18:37:53 +01:00
Cedo
ac76ab290b Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-12-04 18:37:53 +01:00
Cedo
07fd9b4c5c Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-12-04 18:37:53 +01:00
programmer111213
8c432c00b0 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ru/
2021-11-27 09:16:03 +01:00
programmer111213
c3cfed5cbf Translated using Weblate (Russian)
Currently translated at 97.3% (37 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ru/
2021-11-22 16:41:03 +01:00
programmer111213
3dbd39058f Translated using Weblate (Russian)
Currently translated at 85.9% (190 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2021-11-22 16:41:02 +01:00
programmer111213
df932b8870 Translated using Weblate (Russian)
Currently translated at 25.0% (3 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ru/
2021-11-22 16:41:02 +01:00
programmer111213
13920e18ad Translated using Weblate (Russian)
Currently translated at 96.3% (53 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ru/
2021-11-22 16:41:02 +01:00
MushlihTechFoundation
7105013c5f Translated using Weblate (Indonesian)
Currently translated at 97.4% (75 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-11-20 00:36:48 +01:00
MushlihTechFoundation
01a9810a0c Translated using Weblate (Indonesian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2021-11-20 00:36:48 +01:00
jekkos
0618ff47fd Update ISSUE_TEMPLATE.md 2021-11-16 22:08:49 +01:00
Cedo
77eb5e4da3 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-11-16 05:31:35 +01:00
Cedo
c4dfef10f7 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-11-16 05:31:35 +01:00
Cedo
f3056c155a Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-11-16 05:31:34 +01:00
Cedo
4a3ac37f22 Translated using Weblate (Bosnian)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/bs/
2021-11-16 03:08:25 +01:00
Cedo
4f07754071 Translated using Weblate (Bosnian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/bs/
2021-11-16 03:08:24 +01:00
Cedo
80e5d94b66 Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-11-16 03:08:24 +01:00
Cedo
ef75301b65 Translated using Weblate (Bosnian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bs/
2021-11-16 03:08:24 +01:00
Cedo
4a05748e67 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-11-15 02:14:46 +01:00
Cedo
59a1725501 Translated using Weblate (Bosnian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/bs/
2021-11-15 02:14:46 +01:00
Cedo
dd21356b81 Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-11-15 02:14:45 +01:00
BudsieBuds
65726930bc Translated using Weblate (Dutch)
Currently translated at 94.8% (73 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-11-03 18:16:36 +01:00
crls12opazo
cdeda755fc Translated using Weblate (Spanish)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2021-11-01 16:08:28 +01:00
Cedo
b5d0399205 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-10-31 12:26:05 +01:00
Cedo
871310a83f Translated using Weblate (Bosnian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/bs/
2021-10-31 12:26:05 +01:00
Cedo
ba4be2fca1 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-10-31 12:26:05 +01:00
Cedo
4d506fec09 Translated using Weblate (Bosnian)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/bs/
2021-10-31 12:26:05 +01:00
Cedo
a25f9a94ce Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-10-31 10:37:02 +01:00
Cedo
594b376720 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-10-31 10:37:01 +01:00
Cedo
f8c8a5874a Translated using Weblate (Bosnian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/bs/
2021-10-31 10:37:01 +01:00
Cedo
b8ff4d9886 Translated using Weblate (Bosnian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/bs/
2021-10-31 10:37:01 +01:00
Cedo
0576cd5bc5 Translated using Weblate (Bosnian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/bs/
2021-10-31 10:37:00 +01:00
Cedo
5fe631c188 Translated using Weblate (Bosnian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bs/
2021-10-31 08:59:56 +01:00
Cedo
b9284a7abd Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-10-31 08:59:56 +01:00
Cedo
256c83c20f Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-10-31 08:59:55 +01:00
Cedo
da0263c3d7 Translated using Weblate (Bosnian)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/bs/
2021-10-31 08:59:55 +01:00
Cedo
c9716a890a Translated using Weblate (Bosnian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/bs/
2021-10-31 08:59:55 +01:00
Cedo
b9a75c0be6 Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-10-31 08:59:55 +01:00
Cedo
0b5453926e Translated using Weblate (Bosnian)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/bs/
2021-10-31 08:59:54 +01:00
Cedo
bfd8e2b727 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/bs/
2021-10-31 08:59:53 +01:00
Cedo
11bf7ce3ed Translated using Weblate (Bosnian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/bs/
2021-10-31 08:59:53 +01:00
Cedo
566d1267fd Translated using Weblate (Bosnian)
Currently translated at 97.8% (137 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-10-31 00:37:58 +02:00
programmer111213
1b035cdf8a Translated using Weblate (Russian)
Currently translated at 87.2% (157 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2021-10-21 17:32:53 +02:00
programmer111213
17fd336ecd Translated using Weblate (Russian)
Currently translated at 80.7% (42 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ru/
2021-10-21 17:32:53 +02:00
programmer111213
d225d9057c Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ru/
2021-10-21 17:32:53 +02:00
programmer111213
cfac498232 Translated using Weblate (Russian)
Currently translated at 92.2% (71 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ru/
2021-10-21 17:32:53 +02:00
BudsieBuds
b936306b50 Combine dependencies info, update npm packages
Combined the package.md and composer.md to DEVELOPMENT.md. Updated bootstrap, bootswatch, and grunt-bower packages to newest versions.
2021-10-20 22:32:02 +02:00
BudsieBuds
33cb3fa3f9 Text improvements
Improved some of the non-trivial files.
2021-10-20 22:32:02 +02:00
jekkos
caaa26f9ba Bump to 3.3.6 2021-10-19 23:28:01 +02:00
jekkos
bbac91f421 Sync language files (#2554) 2021-10-19 23:00:00 +02:00
WebShells
6f8b877bd9 Keyboard Shortcuts/Hotkeys (#2618)
Added Shortcuts/Hotkeys to Register

ESC 	Cancels Current Quote/Invoice/Sale
ALT + 1 	Item Search
ALT + 2 	Customer Search
ALT + 3 	Suspend Current Sale
ALT + 4 	Show Suspended Sales
ALT + 5 	Edit Amount Tendered
ALT + 6 	Add Payment
ALT + 7 	Add Payment and Complete Invoice/Sale
ALT + 8 	Finish Quote/Invoice witdout payment
ALT + 9 	Open Shortcuts Window

Layout / Responsiveness

F11 Full Screen mode
CTRL + Zoom in
CTRL - Zoom out
CTRL 0 Reset Zoom

CTRL P Print out current page
CTRL F Search reports tables
2021-10-19 23:00:00 +02:00
jekkos
c5bf78fcbd Fix payment summary refresh after edit (#3329) 2021-10-16 23:21:14 +02:00
jekkos
3ac43c2d26 Use POST for delete supplier & customer (#3336) 2021-10-15 21:46:32 +02:00
FrancescoUK
2e33f32630 Leave cURL default for SSL because more secure 2021-10-10 14:09:49 +01:00
jekkos
986ab7e86c Make footer revision clickable (#3306) 2021-10-08 23:18:46 +02:00
FrancescoUK
9b1def4324 Translated using Weblate (English (United Kingdom))
Currently translated at 86.6% (39 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/en_GB/
2021-10-08 00:34:22 +02:00
FrancescoUK
8d87f35fd8 Fix reCaptcha issue with wrong keys (#3207) 2021-10-07 21:35:30 +01:00
FrancescoUK
35b850a19b Translated using Weblate (English (United Kingdom))
Currently translated at 81.3% (70 of 86 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-10-07 21:40:24 +02:00
FrancescoUK
9f13778cdb Translated using Weblate (English (United Kingdom))
Currently translated at 89.7% (105 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/en_GB/
2021-10-07 21:40:24 +02:00
FrancescoUK
1ecb834b4c Translated using Weblate (English (United Kingdom))
Currently translated at 93.1% (135 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/en_GB/
2021-10-07 21:40:23 +02:00
FrancescoUK
8e8008e285 Translated using Weblate (English (United Kingdom))
Currently translated at 92.7% (51 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/en_GB/
2021-10-07 21:40:23 +02:00
FrancescoUK
fa6e8e853b Translated using Weblate (English (United Kingdom))
Currently translated at 88.5% (177 of 200 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en_GB/
2021-10-07 21:40:22 +02:00
FrancescoUK
9c24fd8b3d Translated using Weblate (English (United Kingdom))
Currently translated at 94.1% (308 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-10-07 21:40:22 +02:00
FrancescoUK
cf59e06294 Translated using Weblate (English (United Kingdom))
Currently translated at 84.4% (38 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/en_GB/
2021-10-07 21:40:21 +02:00
FrancescoUK
2267bf6896 Translated using Weblate (English (United Kingdom))
Currently translated at 96.2% (51 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en_GB/
2021-10-07 21:40:19 +02:00
FrancescoUK
b2d187a349 Add dev docker-compose with phpmyadmin 2021-10-06 20:24:08 +01:00
FrancescoUK
d821c69e6c Fix dev docker-compose 2021-10-06 20:22:13 +01:00
FrancescoUK
e36a74ded2 Fix CSP, it needs to be one line + ReCaptcha 2021-10-06 18:39:02 +01:00
FrancescoUK
ee5e06cd0c Fix CSP rules (and tested) 2021-10-06 14:37:11 +01:00
jekkos
d04f1e434c Try unsafe-inline for script-src, add font-src 2021-10-06 14:37:11 +01:00
jekkos
38ebf9e819 Add CSP directive for javascript (#3217) 2021-10-06 14:37:11 +01:00
FrancescoUK
05de93cb68 Update composer.lock 2021-10-05 19:10:33 +01:00
FrancescoUK
970744d8fc Update docker-compose.dev.yml 2021-10-05 19:08:37 +01:00
FrancescoUK
a5f063b382 Remove deprecated MAINTAINER from Dockerfile 2021-10-05 19:06:59 +01:00
jekkos
6b3aa876ed Amend the fix to include delete_supplier (#3332) 2021-10-04 23:23:27 +02:00
jekkos
f1672d9701 Prevent type juggling for password hash comparison (#3324) 2021-09-30 22:51:05 +02:00
Jevinson Lim
2f69841c95 Update Items.php
Fixes the problem where 'Supplier ID' is not saved during csv import.
2021-09-30 00:08:27 +02:00
jekkos
e8f27f547b Extend method hook validation for deletes 2021-09-29 00:20:13 +02:00
jekkos
2b031e6466 Fix reflected XSS vulnerability 2021-09-28 20:44:50 +02:00
WShells
6ef764d9b2 Typo 2021-09-23 08:57:29 +02:00
WebShells
d2d9c9c532 Tax name
Added tax name to tax summary report.
Closes #3009
2021-09-23 08:57:29 +02:00
WebShells
b15d0b046e Time in Reports
Replaced Date by Date/time in detailed and specific reports.
2021-09-23 08:57:29 +02:00
WebShells
e51a3e698a Revert "Time in Reports"
This reverts commit a33f29b713.
2021-09-18 23:31:16 +03:00
WebShells
a33f29b713 Time in Reports
Replaced Date by Date time in detailed reports section and specific ones.
2021-09-18 23:03:31 +03:00
objecttothis
ad7ae23f2c Correct bug preventing new item creation
The `===` (type comparison equality operator) was preventing new items from being created because $item_id was coming through as a string and not an integer.
2021-09-14 07:47:35 +01:00
jekkos
a2e7c0a74b Revert SQLi fixes (#3284) 2021-09-06 21:45:08 +02:00
jekkos
136448444d Enable mode_headers for docker 2021-08-31 08:26:23 +02:00
jekkos
2c9355e8b8 Add X-Frame-Options header (prevent clickjacking) 2021-08-30 22:10:07 +02:00
jekkos
77c30b7f90 Use bootstrap 5.0.2 (#3281) 2021-08-28 11:22:09 +02:00
jekkos
fe727674a5 Merge all unstable builds in one draft release (#3110) 2021-08-27 14:13:21 +02:00
jekkos
b4c48e5141 Blind sql injection fixes (#3284) 2021-08-27 00:20:50 +02:00
jekkos
b925155ba5 Update changelist (#3218) 2021-08-26 08:23:40 +02:00
jekkos
d07b9349e3 Try to upgrade docker version (#3281) 2021-08-26 00:29:50 +02:00
jekkos
51a8cffc9e Bump to 3.3.5 (#3281) 2021-08-25 23:13:40 +02:00
Dan Tiganuc
694b7fe52d Translated using Weblate (Romanian)
Currently translated at 10.2% (12 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ro/
2021-08-24 11:29:46 +02:00
jekkos
5669dff7da Add sorting for quantity and sales (#3262) 2021-08-20 23:36:02 +02:00
Johntini
6d8890f61e Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/es/
2021-08-20 22:41:13 +02:00
Johntini
a4bae6536d Translated using Weblate (Spanish)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/es/
2021-08-20 22:41:13 +02:00
Johntini
e1e61ba98d Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/es/
2021-08-20 22:41:13 +02:00
Johntini
225bfda867 Translated using Weblate (Spanish)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/es/
2021-08-20 22:41:13 +02:00
Johntini
0a2dc49e3e Translated using Weblate (Spanish)
Currently translated at 100.0% (86 of 86 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es/
2021-08-20 22:41:13 +02:00
Johntini
dcc9745991 Translated using Weblate (Spanish)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es/
2021-08-20 22:41:13 +02:00
Johntini
339eca6028 Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es/
2021-08-20 22:41:13 +02:00
Johntini
d1e9b6d943 Translated using Weblate (Spanish)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/es/
2021-08-20 22:41:13 +02:00
Johntini
2da34b0789 Translated using Weblate (Spanish)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es/
2021-08-20 22:41:13 +02:00
Johntini
44d89a5ed2 Translated using Weblate (Spanish)
Currently translated at 100.0% (37 of 37 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es/
2021-08-20 22:41:13 +02:00
Johntini
0637266560 Translated using Weblate (Spanish)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es/
2021-08-20 22:41:13 +02:00
Johntini
32c99248af Translated using Weblate (Spanish)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es/
2021-08-20 22:41:13 +02:00
Johntini
fad53d52d4 Translated using Weblate (Spanish)
Currently translated at 100.0% (200 of 200 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2021-08-20 22:41:13 +02:00
Johntini
29bdb7b75e Translated using Weblate (Spanish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es/
2021-08-20 22:41:13 +02:00
Johntini
3f1bbf99b4 Translated using Weblate (Spanish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/es/
2021-08-20 22:41:13 +02:00
Jeroen Peelaerts
4c3f6e4c31 Fix username verification on insert/update (#3239) 2021-08-07 02:12:30 +02:00
Jeroen Peelaerts
85f577556e Fix employee update (#3239) 2021-08-07 02:12:30 +02:00
Jeroen Peelaerts
dc2b2862f9 Fix employee update (#3239) 2021-08-07 02:12:30 +02:00
objecttothis
9217f2d12f Fixed missing function call
This removes the function call to a function that doesn't exist anymore.
The replacement does the same job in one line of code.
Added comment to bring clarity to what the code is doing.
2021-08-06 19:19:09 +02:00
objecttothis
5ebe626543 Formatting Changes
- Removed unneeded tabs that mess up alignment.
2021-08-06 19:16:52 +02:00
Mehmet Keçeci
e277fc09ac minimal Turkish translation 2021-08-05 10:40:56 +02:00
sonnysk76
7e2a5eb297 Translated using Weblate (Spanish (Mexico))
Currently translated at 94.4% (34 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
bcc9cac570 Translated using Weblate (Spanish (Mexico))
Currently translated at 35.8% (14 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
6d4421e13b Translated using Weblate (Spanish (Mexico))
Currently translated at 13.6% (15 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
9d320772f5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
3d441689d0 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
4eacc65785 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
a31ae36e18 Translated using Weblate (Spanish (Mexico))
Currently translated at 19.4% (27 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
74ed7488ee Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/es_MX/
2021-08-05 07:09:39 +02:00
khao_lek
be72a0169b Translated using Weblate (Thai)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2021-08-04 07:03:00 +02:00
khao_lek
d786039765 Translated using Weblate (Thai)
Currently translated at 99.3% (300 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2021-08-04 07:03:00 +02:00
khao_lek
74724a890f Translated using Weblate (Thai)
Currently translated at 98.7% (76 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/th/
2021-08-04 07:03:00 +02:00
Jeroen Peelaerts
8c201816b9 Update spanish (#3255) 2021-08-03 11:04:03 +02:00
Jeroen Peelaerts
5767a3929f Fix duplicate username error message (#3239) 2021-07-30 21:16:35 +02:00
Jeroen Peelaerts
2311a644ab Fix employee username duplication check (#3239) 2021-07-30 21:09:17 +02:00
objecttothis
3d65c3fffa CSV import optimizations and code cleanup (#3150)
Optimizations and CSV Import Rework
- Replaced " with ' where possible to prevent the parser from being called when not needed.
- Replaced == and != with === and !== where possible for bug prevention and speed.
- Replaced -1 with NEW_ITEM global constant for code clarity.
- Added NEW_ITEM global constant to constants.php.
- Refactored CSV import function names for clarity.
- Added capability to import a CSV file containing updates.
- Replaced array() with [] for speed and consistency.
- Removed hungarian notation from two private functions.
- Refactored QueryBuilder functions to place table name in the get() function call.
- Replaced (int) cast with call to intval() for speed.
- Replaced == and != with === and !== where possible to prevent bugs and for speed.
- Replaced array() with [] for speed and consistency.
- Fixed search_custom call

Optimizations and bugfixes for attributes used in csv_import
- Reordered where statements in queries to match composite index on attribute_links table.
- fixed value_exists() to account for different attribute types.
- Removed hungarian notation on private function.
- Replaced array() with [] for speed and consistency.
- Replaced != with <> in SQL for consistency.
- Removed from() calls in querybuilder where possible to reduce function calls.
- Add get_items_by_value()
- Reworked check_data_validity()
- Remove unneeded comments
- Refactor functions for code clarity.
- Use $this->db->dbprefix() where possible instead of hand-writing ospos_...
- Removed unneeded column from query.
- Replaced (int) cast with intval() call for speed.
- Added get_attribute_values()
- Fixed issue with date format locale not being used
- Refactored save_value to respect different attribute_types
- Added delete_orphaned_links() to remove attribute_links that are no longer linked to any items
- Added get_attributes_by_definition()
- Added attribute_cleanup()

Optimizations used in csv_import
- replaced array() with [] for consistency and speed.
- Removed hungarian notation in private functions.
- Replaced " with ' where possible to prevent the parser from being called.
- Minor formatting
- Refactored if statement to tertiary notation for cleaner implementation.
- Replaced " for ' where possible to prevent the parser from being called.
- Added the Id column in the generate_import_items_csv() template so that users can submit an update to an existing item.
- Removed unused key=>value pairs in foreach loops for speed.
- Removed unneeded comments where the function name was self-explanatory.
- Rework get_csv_file() for speed.
- Rework bom_exists() for speed.
- Replaced array() with [] for speed and consistency.
- Replaced == with === where possible to prevent bugs and for speed.
- Reworked valid_date() and valid_decimal helper functions for speed and accuracy according to the locale_format instead of a fixed format.
- Minor Reformatting for clarity.
- Replaced " for ' to prevent the parser from being called.
- Refactored function call names to reflect new names.
- Added missing ; in &nbsp;
- Used String interpolation where useful.

- Spelling fix in comment

Requested Review Changes
- Fixed indentation in Items.php
- Fixed indentation in Attribute.php
- Refactored variable out of long line of code to make it more readable.
2021-07-29 22:22:59 +02:00
gurulenin
517635181c Translated using Weblate (Tamil)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ta/
2021-07-28 15:46:15 +02:00
Jeroen Peelaerts
1547272665 Check username before employee creation (#3239) 2021-07-23 00:59:40 +02:00
Jeroen Peelaerts
8675aa82df Attribute value encoding fix (#3241) 2021-07-22 19:01:59 +02:00
gurulenin
5acafd4ea8 Translated using Weblate (Tamil)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/ta/
2021-07-22 18:45:40 +02:00
gurulenin
2db50d69d0 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ta/
2021-07-22 18:45:40 +02:00
Jeroen Peelaerts
c6d0582fcb Add category column to item summary report (#3240) 2021-07-21 23:22:53 +02:00
Emin Tufan Çetin
3fbfd8c917 Translated using Weblate (Turkish)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
c38fc60f6a Translated using Weblate (Turkish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
346a34121f Translated using Weblate (Turkish)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
9c9c2e8b81 Translated using Weblate (Turkish)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/tr/
2021-07-18 11:06:09 +02:00
Emin Tufan Çetin
510a01e2b5 Translated using Weblate (Turkish)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/tr/
2021-07-18 11:06:09 +02:00
Emin Tufan Çetin
93014dc4d8 Translated using Weblate (Turkish)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
294f63bd31 Translated using Weblate (Turkish)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
1b7531c7f4 Translated using Weblate (Turkish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
6d1eeb3c62 Translated using Weblate (Turkish)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/tr/
2021-07-18 11:06:07 +02:00
Emin Tufan Çetin
3ada6f8372 Translated using Weblate (Turkish)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/tr/
2021-07-18 11:06:07 +02:00
Emin Tufan Çetin
d15d001b5b Translated using Weblate (Turkish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/tr/
2021-07-18 11:06:06 +02:00
BudsieBuds
29d6138951 Translated using Weblate (Dutch)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-07-17 04:55:34 +02:00
BudsieBuds
d6a4161416 Translated using Weblate (Dutch)
Currently translated at 96.1% (74 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-07-17 04:55:34 +02:00
BudsieBuds
0604ad121b Translated using Weblate (Dutch)
Currently translated at 99.3% (300 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-07-17 04:55:34 +02:00
teddy tang
ffdc8f0bd5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-15 06:59:54 +02:00
teddy tang
83d1194d0c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/zh_Hant/
2021-07-15 06:59:54 +02:00
gurulenin
e90b58f110 Translated using Weblate (Tamil)
Currently translated at 98.7% (76 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-07-15 06:59:53 +02:00
gurulenin
bee3c7ede0 Translated using Weblate (Tamil)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ta/
2021-07-15 06:59:53 +02:00
gurulenin
bfc1c2e55e Translated using Weblate (Tamil)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-07-15 06:59:53 +02:00
teddy tang
8d0c5c6ee9 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hant/
2021-07-15 06:59:53 +02:00
teddy tang
f87c90fdec Translated using Weblate (Chinese (Traditional))
Currently translated at 96.0% (290 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-15 06:59:52 +02:00
FrancescoUK
cb560949ac Translated using Weblate (English (United Kingdom))
Currently translated at 92.2% (71 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-07-14 23:56:52 +02:00
FrancescoUK
4d5a2f15c2 Translated using Weblate (English (United Kingdom))
Currently translated at 54.5% (6 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en_GB/
2021-07-14 23:56:52 +02:00
FrancescoUK
defb484640 Translated using Weblate (English (United Kingdom))
Currently translated at 98.6% (298 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-07-14 23:56:52 +02:00
Jeroen Peelaerts
57fb2c98fa Move expenses categories to office menu group 2021-07-14 23:43:36 +02:00
Jeroen Peelaerts
c3bdff6fb4 Fix escape sequence in Polish 2021-07-14 15:50:34 +02:00
teddy tang
4ecfbc2398 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
41152a5b12 Translated using Weblate (Tamil)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-07-14 14:06:17 +02:00
teddy tang
797ac4c9d4 Translated using Weblate (Chinese (Traditional))
Currently translated at 80.5% (240 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
13be0a1b0c Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-07-14 14:06:17 +02:00
gurulenin
b6ac9e5909 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-07-14 14:06:17 +02:00
gurulenin
3debc57ca8 Translated using Weblate (Tamil)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ta/
2021-07-14 14:06:17 +02:00
teddy tang
fd1e942273 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
c641b1762c Translated using Weblate (Tamil)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ta/
2021-07-14 14:06:17 +02:00
gurulenin
6ee8757b12 Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-07-14 14:06:17 +02:00
teddy tang
ee575b5109 Translated using Weblate (Chinese (Traditional))
Currently translated at 90.6% (126 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-14 14:06:17 +02:00
Jeroen Peelaerts
e11eba978f Sync language files 2021-07-14 08:35:04 +02:00
Jeroen Peelaerts
a4234a3129 Fix minification (#3213)
Upgrade grunt, grunt-cli and grunt-uglify

Only copy bootswatch 5 using npm.  Remove unused dependencies and tasks
(apigen, mocha, wd, phantomjs). This should decrease the container size.
2021-07-14 08:35:04 +02:00
BudsieBuds
ba8cb0ef86 Create codeql-analysis.yml 2021-07-14 08:35:04 +02:00
BudsieBuds
2eee6313e0 Converted login to BS5 and other changes
Converted the login view to Bootstrap and Bootswatch 5. Added an option to change the login form style. Shifted some translations around and added new ones. Partially moved from Bower to NPM, added new branding logo's. Some other small changes and optimizations.
2021-07-14 08:35:04 +02:00
Jeroen Peelaerts
95f19d6063 Force html2canvas version (#3236) 2021-07-14 00:18:00 +02:00
jacekz123
8a854d1912 Translated using Weblate (Polish)
Currently translated at 2.7% (1 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/pl/
2021-07-13 18:03:01 +02:00
jacekz123
80f8dd9b37 Translated using Weblate (Polish)
Currently translated at 2.5% (1 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/pl/
2021-07-13 18:03:00 +02:00
jacekz123
94e9d35314 Translated using Weblate (Polish)
Currently translated at 3.8% (2 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/pl/
2021-07-13 18:03:00 +02:00
jacekz123
8b5b4f9279 Translated using Weblate (Polish)
Currently translated at 5.5% (2 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/pl/
2021-07-13 18:03:00 +02:00
jacekz123
b3e4b72b30 Translated using Weblate (Polish)
Currently translated at 1.1% (2 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/pl/
2021-07-13 18:03:00 +02:00
jacekz123
ffd511bd06 Translated using Weblate (Polish)
Currently translated at 1.2% (1 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/pl/
2021-07-13 18:02:59 +02:00
jacekz123
393cee62aa Translated using Weblate (Polish)
Currently translated at 55.0% (11 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/pl/
2021-07-13 18:02:58 +02:00
jacekz123
870aad2d67 Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/pl/
2021-07-13 18:02:58 +02:00
jacekz123
789eb82940 Translated using Weblate (Polish)
Currently translated at 3.4% (1 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/pl/
2021-07-13 18:02:58 +02:00
jacekz123
89783bc190 Translated using Weblate (Polish)
Currently translated at 8.3% (1 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/pl/
2021-07-13 18:02:57 +02:00
jacekz123
d11824ffd4 Translated using Weblate (Polish)
Currently translated at 1.9% (1 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/pl/
2021-07-13 18:02:57 +02:00
jacekz123
d0093253a1 Translated using Weblate (Polish)
Currently translated at 2.2% (1 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/pl/
2021-07-13 18:02:57 +02:00
jacekz123
1f7529baf9 Translated using Weblate (Polish)
Currently translated at 8.6% (12 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/pl/
2021-07-13 18:02:57 +02:00
jacekz123
feba68b08f Translated using Weblate (Polish)
Currently translated at 2.8% (1 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/pl/
2021-07-13 18:02:56 +02:00
jacekz123
37cf26b10a Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/pl/
2021-07-13 18:02:56 +02:00
jacekz123
f80f3a9cab Translated using Weblate (Polish)
Currently translated at 4.7% (1 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/pl/
2021-07-13 18:02:55 +02:00
teddy tang
74a4bfac85 Translated using Weblate (Chinese (Traditional))
Currently translated at 74.1% (221 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-12 12:00:34 +02:00
teddy tang
fa347aa281 Translated using Weblate (Chinese (Traditional))
Currently translated at 88.1% (97 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-12 12:00:33 +02:00
teddy tang
c1f1e6306e Translated using Weblate (Chinese (Traditional))
Currently translated at 84.1% (117 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-12 12:00:32 +02:00
teddy tang
dc9d66f3de Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/zh_Hant/
2021-07-12 08:06:57 +02:00
teddy tang
a4f52b765c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/zh_Hant/
2021-07-12 08:06:57 +02:00
teddy tang
e023b081c5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
9c6f1e4429 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
962a323694 Translated using Weblate (Chinese (Traditional))
Currently translated at 82.7% (91 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
49a99c68ff Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
44024b0929 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
4e52c2f036 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
37e757128b Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
394bd671aa Translated using Weblate (Chinese (Traditional))
Currently translated at 73.4% (219 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
d0b29d39bf Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
eb970b2315 Translated using Weblate (Chinese (Traditional))
Currently translated at 77.6% (108 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
c0c2001754 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
ec51bb3991 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/zh_Hant/
2021-07-12 08:06:53 +02:00
teddy tang
4ce569d76e Translated using Weblate (Chinese (Traditional))
Currently translated at 58.3% (21 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/zh_Hant/
2021-07-09 17:20:46 +02:00
teddy tang
c08e32d016 Translated using Weblate (Chinese (Traditional))
Currently translated at 66.6% (24 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-09 17:20:46 +02:00
Ali Alsalman
8a495ffce6 Translated using Weblate (Arabic)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ar_LB/
2021-07-09 17:20:45 +02:00
teddy tang
ea1528f5b9 Translated using Weblate (Chinese (Traditional))
Currently translated at 90.0% (18 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/zh_Hant/
2021-07-09 17:20:45 +02:00
teddy tang
e59dbdf47e Translated using Weblate (Chinese (Traditional))
Currently translated at 79.0% (87 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
0e29a7950a Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
3d32536292 Translated using Weblate (Chinese (Traditional))
Currently translated at 71.8% (214 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
be24044076 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.5% (67 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
3986aa8e0a Translated using Weblate (Chinese (Traditional))
Currently translated at 76.9% (107 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-09 17:20:43 +02:00
teddy tang
d7e40cbe43 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-09 17:20:42 +02:00
teddy tang
f61307d380 Translated using Weblate (Chinese (Traditional))
Currently translated at 82.0% (64 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-09 17:20:42 +02:00
Ir. Anggun Nugroho, M.Kom
ebae2eab5d Translated using Weblate (Indonesian)
Currently translated at 99.0% (109 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
795e030e07 Translated using Weblate (Indonesian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
0a91c0009f Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
5cea9a7555 Translated using Weblate (Indonesian)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
9838045683 Translated using Weblate (Indonesian)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-07-08 00:27:04 +02:00
Ir. Anggun Nugroho, M.Kom
e33c10e8c4 Translated using Weblate (Indonesian)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2021-07-07 22:23:41 +02:00
Ir. Anggun Nugroho, M.Kom
d680b78e49 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/id/
2021-07-07 22:01:53 +02:00
jeffyeh
4d7561d311 Translated using Weblate (Chinese (Traditional))
Currently translated at 66.6% (24 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
ad37b2cc24 Translated using Weblate (Chinese (Traditional))
Currently translated at 74.3% (29 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
562d760174 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
3ea32e7444 Translated using Weblate (Chinese (Traditional))
Currently translated at 71.8% (214 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-07 17:10:12 +02:00
jeffyeh
2953cf47ed Translated using Weblate (Chinese (Traditional))
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/zh_Hant/
2021-07-07 17:10:12 +02:00
jeffyeh
0066447fdb Translated using Weblate (Chinese (Traditional))
Currently translated at 63.7% (190 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-07 12:22:53 +02:00
jeffyeh
8af2466b20 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/zh_Hant/
2021-07-07 12:22:52 +02:00
jeffyeh
fb7fd0fc38 Translated using Weblate (Chinese (Traditional))
Currently translated at 64.1% (50 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-07 12:22:52 +02:00
William Levesque
52c08e9210 Translated using Weblate (French)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2021-07-06 16:58:06 +02:00
William Levesque
f17388e755 Translated using Weblate (French)
Currently translated at 93.1% (27 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2021-07-06 16:58:06 +02:00
Jeroen Peelaerts
a39b3ec1bc Fallback to english if translations are missing (#3205) 2021-07-04 22:18:46 +02:00
Jeroen Peelaerts
ddc7215424 Make Dockerfile windows compatible 2021-07-04 22:18:46 +02:00
khao_lek
2e09cd31c2 Translated using Weblate (Thai)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2021-07-02 13:44:39 +02:00
Jeroen Peelaerts
7726adbd6f Revert compose container to 3.3.4 2021-06-29 22:33:02 +02:00
Ricardo Vargas
7bce75f5b6 Translated using Weblate (Spanish (Mexico))
Currently translated at 16.5% (23 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-06-21 13:23:12 +02:00
jekkos
ef612fb0c9 Update package.json 2021-06-12 11:35:14 +02:00
jekkos
107745d683 Update grunt to 1.4
A CVE was found in the old version of Grunt. Update to the latest.
2021-06-12 11:35:14 +02:00
Jeroen Peelaerts
1117c39c27 Upgrade node & grunt buildbox (#3208) 2021-06-12 10:34:52 +02:00
BudsieBuds
ae93341f75 Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-06-09 23:20:00 +02:00
BudsieBuds
d24624d1f6 Translated using Weblate (English)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en/
2021-06-09 23:20:00 +02:00
jekkos
d87d27dec9 Extract version from config.php (#3110) 2021-06-09 17:51:19 +02:00
jekkos
92f25c3993 Remove bintray link (#3110) 2021-06-09 15:46:07 +02:00
jekkos
3116903129 Add newline to .travis.yml (#3110) 2021-06-09 15:30:52 +02:00
jekkos
cff79601e4 Keep only one zip build per branch (#3110) 2021-06-09 13:15:30 +02:00
BudsieBuds
9ca998d523 Translated using Weblate (Dutch)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl/
2021-06-09 04:30:43 +02:00
jekkos
0efd58217f Publish to github releases (#3110) 2021-06-09 00:02:32 +02:00
khao_lek
72eab0cd28 Translated using Weblate (Thai)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/th/
2021-06-07 21:45:10 +02:00
khao_lek
a258567955 Translated using Weblate (Thai)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/th/
2021-06-07 21:45:10 +02:00
khao_lek
ca4782f751 Translated using Weblate (Thai)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2021-06-07 21:45:10 +02:00
khao_lek
e638ff8595 Translated using Weblate (Thai)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/th/
2021-06-07 21:45:10 +02:00
khao_lek
5f10fda2c1 Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/th/
2021-06-07 21:45:10 +02:00
khao_lek
1faeccc596 Translated using Weblate (Thai)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2021-06-07 21:45:10 +02:00
khao_lek
fb328e4fb0 Translated using Weblate (Thai)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2021-06-07 21:45:10 +02:00
jekkos
136f778028 Update build badge for travis-ci.com (#3063) 2021-06-06 14:37:13 +02:00
truchosky
8ed0091400 Translated using Weblate (Spanish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/es/
2021-06-03 16:35:11 +02:00
truchosky
977d1869e6 Translated using Weblate (Spanish)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es/
2021-06-03 16:35:11 +02:00
truchosky
cc527d8426 Translated using Weblate (Spanish)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/es/
2021-06-03 16:35:10 +02:00
truchosky
aa28c0dbf0 Translated using Weblate (Spanish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/es/
2021-06-03 16:35:10 +02:00
Mats Pålsson
15f41c129c Translated using Weblate (Swedish)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
ee30b4d544 Translated using Weblate (Swedish)
Currently translated at 98.7% (77 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
2d0029e605 Translated using Weblate (Swedish)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
3fb4b398ea Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
ebe1860858 Translated using Weblate (Swedish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
7f18d7c1fa Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/sv/
2021-06-02 07:54:23 +02:00
Mats Pålsson
e77b357b38 Translated using Weblate (Swedish)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/sv/
2021-06-02 07:54:23 +02:00
Mats Pålsson
3e90244410 Translated using Weblate (Swedish)
Currently translated at 99.6% (297 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/sv/
2021-06-02 07:54:23 +02:00
Mats Pålsson
2689426e15 Translated using Weblate (Swedish)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
fc3cff5225 Translated using Weblate (Swedish)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
5cee7cd005 Translated using Weblate (Swedish)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
e29b8b1b87 Translated using Weblate (Swedish)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
b3e49f05d1 Translated using Weblate (Swedish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
274ad1afde Translated using Weblate (Swedish)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
d4df4e96b6 Translated using Weblate (Swedish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
20f104abc8 Translated using Weblate (Swedish)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
25b22a2ebe Translated using Weblate (Swedish)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
6ecd9a91c4 Translated using Weblate (Swedish)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
d2f48a9987 Translated using Weblate (Swedish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
c90631fe38 Translated using Weblate (Swedish)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/sv/
2021-06-02 07:54:19 +02:00
Mats Pålsson
dfb47060fa Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
f50cbbf29d Translated using Weblate (Swedish)
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
a186de7db2 Translated using Weblate (Swedish)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
4845230bd3 Translated using Weblate (Swedish)
Currently translated at 66.6% (8 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
ac0ec7d729 Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
25b3de4f2f Translated using Weblate (Swedish)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/sv/
2021-05-31 13:08:38 +02:00
Jeroen Peelaerts
aee186b2a6 Bump to 3.4.0-dev (#2942) 2021-05-26 00:48:42 +02:00
objecttothis
352036209f Requested Changes
- Removed unnecessary indices on deleted column where there would not be many rows.
- Removed unnecessary parenthesis in Item Model.
- Added Composite indices based on MySQL EXPLAIN results.
2021-05-25 14:04:01 +02:00
objecttothis
9ff8611672 Requested Changes
- Removed unnecessary indices on deleted column where there would not be many rows.
- Explicitly stated NULL in second parameter of WHERE to improve readability.
2021-05-25 14:04:01 +02:00
objecttothis
2f4c95ecd2 Corrected a duplicated line in the query 2021-05-25 14:04:01 +02:00
objecttothis
97159d42c7 Database Optimizations
- Add indexes to tables to improve query times.
- Delete orphaned attribute values.
- Resolve duplicate attribute values.
- Deleted whitespace after migration which was causing Severity: Warning --> Cannot modify header information - headers already sent by
2021-05-25 14:04:01 +02:00
Miguel Martins
2b9155d2f1 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es_MX/
2021-05-24 20:51:50 +02:00
Miguel Martins
dab1640e70 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es_MX/
2021-05-24 20:51:50 +02:00
Miguel Martins
2bc70f6426 Translated using Weblate (Spanish (Mexico))
Currently translated at 15.8% (22 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-05-24 20:51:49 +02:00
Miguel Martins
15130140be Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
aab5ae685a Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
afedaa4510 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
0e79e145c3 Translated using Weblate (Spanish)
Currently translated at 95.9% (286 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es/
2021-05-24 06:01:58 +02:00
Miguel Martins
fabc4d7153 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
0e2b7a87d9 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
115b014a8c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
70bb633581 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
1c86b0b697 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
75684ab009 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
b7e164a4a6 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
ddc12be596 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/en_GB/
2021-05-24 06:01:58 +02:00
Steve Ireland
0147c3a80e Fix Discounted Item Kit bug #3129 (#3186) 2021-05-23 18:30:31 -04:00
robbytriadi
6dc3816c46 Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/id/
2021-05-23 00:47:39 +02:00
robbytriadi
88ca4aca87 Translated using Weblate (Indonesian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2021-05-23 00:47:39 +02:00
robbytriadi
ae37dd9bea Translated using Weblate (Indonesian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/id/
2021-05-23 00:47:39 +02:00
robbytriadi
e24cd75f0d Translated using Weblate (Indonesian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-05-23 00:47:38 +02:00
Natig Asadov
b79e93ccb6 Translated using Weblate (Azerbaijani)
Currently translated at 97.2% (35 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/az/
2021-05-21 22:11:14 +02:00
Anton
ad3399b1f6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
a3b45f0f4b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
200cab389a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
b53d0ad821 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
8fa6992b00 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fe6d599005 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
374cacd860 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fcd65a6e9c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
309417c405 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
50bca01126 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fa9bb50b73 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
2ec186d3a3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
1574e99338 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
1c36e649d6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/uk-UA/
2021-05-21 04:52:39 +02:00
Anton
01b8828871 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/uk-UA/
2021-05-21 04:52:39 +02:00
BudsieBuds
0e2fbb9832 Translated using Weblate (English)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/en/
2021-05-19 23:49:49 +02:00
BudsieBuds
87c788af62 Translated using Weblate (English)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en/
2021-05-19 23:49:49 +02:00
BudsieBuds
ac9830ec2b Translated using Weblate (Dutch)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
3d3c928d98 Translated using Weblate (Dutch)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
a3d8b11be0 Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
4929d7c8ce Translated using Weblate (Dutch)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl/
2021-05-19 23:49:47 +02:00
BudsieBuds
5493c75320 Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-05-19 23:49:47 +02:00
BudsieBuds
1e1e992f94 Translated using Weblate (Dutch)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-19 23:49:47 +02:00
BudsieBuds
e26f9e9fa7 Translated using Weblate (English)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/en/
2021-05-19 23:49:47 +02:00
BudsieBuds
a90af8dd9e Translated using Weblate (Dutch)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
13a6ce3e45 Translated using Weblate (Dutch)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
7af15c253c Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
3f18619497 Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
8a904ba749 Translated using Weblate (Dutch)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/nl/
2021-05-19 23:49:45 +02:00
BudsieBuds
aaa1055adc Translated using Weblate (Dutch)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/nl/
2021-05-19 23:49:45 +02:00
BudsieBuds
cddc67bb2d Translated using Weblate (English)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en/
2021-05-19 23:49:45 +02:00
BudsieBuds
246a121203 Translated using Weblate (Dutch)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-05-19 23:49:44 +02:00
BudsieBuds
4402d35ed7 Translated using Weblate (Dutch)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/nl/
2021-05-19 23:49:43 +02:00
BudsieBuds
3696e7237b Translated using Weblate (Dutch)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/nl/
2021-05-19 23:49:43 +02:00
BudsieBuds
f2e20266d3 Translated using Weblate (Dutch)
Currently translated at 14.0% (42 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-05-18 23:31:03 +02:00
BudsieBuds
12952aaa26 Translated using Weblate (Dutch)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
faebbce51a Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
5f9ed5c576 Translated using Weblate (Dutch)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
24644eaf19 Translated using Weblate (Dutch)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
3314705d7a Translated using Weblate (Dutch)
Currently translated at 94.8% (37 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
c9552585bf Translated using Weblate (Dutch)
Currently translated at 90.4% (19 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
e9f4e81f37 Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
763cb0c06b Translated using Weblate (English)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en/
2021-05-18 23:31:01 +02:00
BudsieBuds
493e295701 Translated using Weblate (Dutch)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
a4a31ade22 Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
03187da0d9 Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
ac6e421906 Translated using Weblate (Dutch)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
feb7d1847c Translated using Weblate (Dutch)
Currently translated at 59.7% (43 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
b0190e416f Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-05-18 20:46:32 +02:00
jekkos
19bd43280d Update badges in README.md 2021-05-18 14:56:30 +02:00
BudsieBuds
3ebda3cc98 Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
6503621f1d Translated using Weblate (Dutch)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
c8ad6b911a Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
20eb15beaf Translated using Weblate (Dutch)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
7dca1decd5 Translated using Weblate (Dutch)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
6e11b1d242 Translated using Weblate (Dutch)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/nl/
2021-05-18 12:55:55 +02:00
BudsieBuds
a60a4904cb Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/nl/
2021-05-18 12:55:55 +02:00
BudsieBuds
dce47200bf Translated using Weblate (Dutch)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/nl/
2021-05-18 12:55:55 +02:00
sathisharumugams
b255ce8609 Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-05-15 16:55:40 +02:00
sathisharumugams
5fd211d3a8 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-13 17:23:04 +02:00
sathisharumugams
c977f16859 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-13 09:07:57 +02:00
sathisharumugams
2bebfba3ef Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-12 21:04:05 +02:00
sathisharumugams
1c9a1a3550 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-12 14:58:47 +02:00
robbytriadi
fa6d0004de Translated using Weblate (Indonesian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-05-08 00:55:30 +02:00
NGUYỄN HỮU DŨNG
dce9e889e4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/vi/
2021-05-03 22:53:30 +02:00
NGUYỄN HỮU DŨNG
ef488fe0cd Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-05-03 22:53:30 +02:00
NGUYỄN HỮU DŨNG
e2a3647227 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/vi/
2021-05-03 22:53:29 +02:00
karikalan-cherian
c19612814e Translated using Weblate (Tamil)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
bb64e1db00 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
49137f5a76 Translated using Weblate (Tamil)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
e9dd350222 Translated using Weblate (Tamil)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ta/
2021-04-23 07:20:41 +02:00
jekkos
663da89293 Fix decimal render (#2975) 2021-04-22 22:28:12 +02:00
Jeroen Peelaerts
8513a2b85b Disable https in docker-compose (#3164) 2021-04-22 22:01:27 +02:00
karikalan-cherian
d70a90e12c Translated using Weblate (Tamil)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-04-22 19:01:18 +02:00
karikalan-cherian
aa9d2519f4 Translated using Weblate (Tamil)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-04-22 16:14:42 +02:00
jekkos
fc4e320ee3 Remove cPanel instructions as it's not maintained 2021-04-22 15:36:17 +02:00
oviya22
b42b26b469 Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-04-22 15:12:34 +02:00
NGUYỄN HỮU DŨNG
392d92b3b9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-04-22 09:26:20 +02:00
NGUYỄN HỮU DŨNG
3405c9f974 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/vi/
2021-04-22 09:26:20 +02:00
NGUYỄN HỮU DŨNG
72465d36e3 Translated using Weblate (Vietnamese)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/vi/
2021-04-22 09:26:19 +02:00
karikalan-cherian
e596cd43c2 Translated using Weblate (Tamil)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/ta/
2021-04-22 09:26:19 +02:00
zv20
48daa94926 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/bg/
2021-04-22 00:17:46 +02:00
Kumaran
810a2f7e7a Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-04-22 00:17:46 +02:00
Kumaran
96c69f927f Translated using Weblate (Tamil)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-04-22 00:17:46 +02:00
Kumaran
8229092cad Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ta/
2021-04-22 00:17:46 +02:00
Kumaran
34e0c28886 Translated using Weblate (Tamil)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/ta/
2021-04-22 00:17:46 +02:00
Kumaran
73fe8a0e0b Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-04-22 00:17:46 +02:00
zv20
0ff1782cd3 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/bg/
2021-04-22 00:17:46 +02:00
zv20
e89aed188b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/bg/
2021-04-22 00:17:46 +02:00
zv20
2b4cdfb2a1 Translated using Weblate (Bulgarian)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bg/
2021-04-22 00:17:46 +02:00
zv20
4f8dc9003a Translated using Weblate (Bulgarian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bg/
2021-04-22 00:17:46 +02:00
Jeroen Peelaerts
5cac9bb5ed Bump to 3.3.4 2021-04-21 21:47:33 +02:00
zv20
59fe090b5e Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-04-21 21:13:17 +02:00
Jeroen Peelaerts
080e8ac20c Add Tamil language (#3162) 2021-04-18 22:48:00 +02:00
Jeroen Peelaerts
46346a5b46 Fix discount rendering in receiving receipt (#3114) 2021-04-18 21:31:02 +02:00
Jeroen Peelaerts
dfd19c38f2 Render percentage discounts in configured locale (#3114) 2021-04-18 21:31:02 +02:00
Jeroen Peelaerts
b400223c57 Fix discount parsing (#3114) 2021-04-18 21:31:02 +02:00
Aril Apria Susanto
adb17c9865 Translated using Weblate (Indonesian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2021-04-18 04:31:59 +02:00
Aril Apria Susanto
793bd7b093 Translated using Weblate (Indonesian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
a84c734c75 Translated using Weblate (Indonesian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
c2cee3c603 Translated using Weblate (Indonesian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
954d2bdb37 Translated using Weblate (Indonesian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
8b03b98b57 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/id/
2021-04-17 19:01:35 +02:00
Jeroen Peelaerts
0fb93d6d14 Add sales total to daily overview (#3138) 2021-04-07 08:51:29 +02:00
Jeroen Peelaerts
a3a06fdb07 Fix cash totals in payment summary (#3138) 2021-04-07 08:51:29 +02:00
Jeroen Peelaerts
85b9e3bf65 Show sale count in tax summary (#3134) 2021-04-02 09:12:02 +02:00
Trần Ngọc Quân
990daef2c2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/vi/
2021-03-31 05:05:08 +02:00
Trần Ngọc Quân
1a26f096fe Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/vi/
2021-03-30 02:37:26 +02:00
Trần Ngọc Quân
8c15742f56 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/vi/
2021-03-30 02:37:15 +02:00
Trần Ngọc Quân
51ec09d527 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/vi/
2021-03-30 02:37:04 +02:00
Trần Ngọc Quân
d29bab6974 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/vi/
2021-03-30 02:36:53 +02:00
Trần Ngọc Quân
f06f020df2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-03-30 02:36:42 +02:00
Trần Ngọc Quân
d0dd8667b5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/vi/
2021-03-30 02:36:31 +02:00
Trần Ngọc Quân
0fde542bec Translated using Weblate (Vietnamese)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/vi/
2021-03-30 02:36:19 +02:00
Trần Ngọc Quân
4d447167c2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-03-30 02:06:05 +02:00
Trần Ngọc Quân
e52c17efd4 Translated using Weblate (Vietnamese)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/vi/
2021-03-30 02:05:48 +02:00
Trần Ngọc Quân
3f372c2f9d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/vi/
2021-03-30 02:05:35 +02:00
Trần Ngọc Quân
5b715a7e65 Translated using Weblate (Vietnamese)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/vi/
2021-03-30 02:05:15 +02:00
Trần Ngọc Quân
7ab6ef758e Translated using Weblate (Vietnamese)
Currently translated at 5.5% (2 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/vi/
2021-03-28 12:20:13 +02:00
Jeroen Peelaerts
d701f770cb Revert back to jsPDF 1.3.4 (#3132) 2021-03-25 23:21:35 +01:00
jekkos
3f5e0b91da Bump jsPdf to 1.4.2 (#3132) 2021-03-25 11:48:43 +01:00
Jeroen Peelaerts
26083171be Remove unneeded directives (#3133) 2021-03-24 23:12:24 +01:00
jekkos
6df9ac6a99 Correct mapping for Bosnian (#3105) 2021-03-17 14:34:22 +01:00
Steve Ireland
3b1f4590ca This is a quick fix to a failure in the Sale.get_info method. (#3130) 2021-03-14 18:06:08 -04:00
Steve Ireland
da17356e89 Fix discount round plus some other minor tweaks. (#3125) 2021-03-13 19:05:29 -05:00
maktu
34f72d8b6a Translated using Weblate (Spanish (Mexico))
Currently translated at 96.9% (32 of 33 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es_MX/
2021-03-12 13:16:39 +01:00
Jeroen Peelaerts
05942fe2f3 Add hook to validate save HTTP method (#3100) 2021-03-12 13:12:44 +01:00
Jeroen Peelaerts
162ca73ec2 Fix greyed out submit button after validation (#3122) 2021-03-10 22:18:12 +01:00
objecttothis
23f720ba40 Correct bug
- Corrected problem where clicking New caused future submit clicks to not submit.
2021-02-25 00:02:35 +01:00
objecttothis
ec587cc8a8 Correct formatting errors 2021-02-25 00:02:35 +01:00
objecttothis
d4f273e306 Grey out/disable Submit button after validation to prevent double submissions.
Change to a centralized method of greying out the submit button.
Rollback previous decentralized changes.
2021-02-25 00:02:35 +01:00
objecttothis
b0ed2bd34f Grey out/disable Submit button after validation to prevent double submissions. 2021-02-25 00:02:35 +01:00
Jeroen Peelaerts
3babfd2473 Refer to nginx docker in init_selfcert.sh (#3106) 2021-02-22 22:16:07 +01:00
Jeroen Peelaerts
e92a929ae3 Add bosnian translations (#3105) 2021-02-22 22:15:16 +01:00
Jeroen Peelaerts
21722f0749 Add Ukrainian translations
Signed-off-by: admin@buchach.org.ua
2021-02-21 22:20:51 +01:00
Jeroen Peelaerts
ca730c8f9c Login to docker hub before pulling images (#2995) 2021-02-20 21:35:22 +01:00
FrancescoUK
ea70956229 Merge pull request #3113 from opensourcepos/fix_disc_sales_rounding_2
Fix the discount calculation on reports.
2021-02-20 07:13:31 +00:00
Steve Ireland
4b65aa628a Fix the discount calculation on reports. The rounding was in the wrong place. 2021-02-19 22:00:31 -05:00
jekkos
4d03915612 Build docker container using travis.ci
Docker container was not built anymore the default compose file now downloads the image from docker hub.
This means we need to call docker daemon directly and build the Dockerfile ourselves.
2021-02-18 00:52:56 +01:00
Jeroen Peelaerts
6e546a098e Add mysql volumes + resolve CI_ENV (#3106) 2021-02-15 22:50:23 +01:00
FrancescoUK
a87faf8b1d Merge pull request #3106 from opensourcepos/fix-compose-file
Cleanup docker compose files
2021-02-14 21:02:13 +00:00
Jeroen Peelaerts
030ddea814 Make MySQL volume persistent in docker compose 2021-02-14 10:52:23 +01:00
Jeroen Peelaerts
a6cc04f49f Move ssl setup to separate compose file 2021-02-14 10:44:22 +01:00
FrancescoUK
da17d536ee Merge pull request #3107 from opensourcepos/fix_discounted_sales_rounding
Fix discounted price rounding issues in reports reported in  #2995
2021-02-14 06:41:19 +00:00
Steve Ireland
7a4cf1e2bd Fix discounted price rounding issues in reports 2021-02-13 20:44:56 -05:00
Jeroen Peelaerts
ddcfc0c3f0 Use stable docker hub image in compose.yml 2021-02-13 12:03:40 +01:00
FrancescoUK
4edc44a816 Merge pull request #3102 from albjeremias/revert-3098-fix-vendor-docker
Revert "add vendor folder to docker container"
2021-02-12 19:59:22 +00:00
FrancescoUK
03863f3737 Merge pull request #3099 from albjeremias/persistent-db
make db persistent..
2021-02-12 19:58:55 +00:00
FrancescoUK
7981d5ae77 Merge pull request #3101 from albjeremias/fix-docker-compose-build
Fix docker compose build
2021-02-12 19:58:06 +00:00
Albatroz Jeremias
8e3d90b62e Revert "add vendor folder to docker container" 2021-02-12 19:05:01 +00:00
Albatroz Jeremias
98363eec4c add assets building to server install 2021-02-12 18:57:39 +00:00
Albatroz Jeremias
ca98ca89b9 add assets building to local install 2021-02-12 18:57:18 +00:00
Albatroz Jeremias
9e339385a3 adding file for building assets 2021-02-12 18:55:22 +00:00
FrancescoUK
858246b335 Merge pull request #3098 from albjeremias/fix-vendor-docker
add vendor folder to docker container
2021-02-12 17:39:44 +00:00
Albatroz Jeremias
51bf757ffc make db persistent..
so it wont be destroyed with every start of docker-compose
2021-02-12 14:38:30 +00:00
Albatroz Jeremias
71f339028a add vendor folder to docker container 2021-02-12 14:35:29 +00:00
Aril Apria Susanto
b4fc061629 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-02-10 10:44:52 +01:00
Aril Apria Susanto
e2a8c4a615 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-02-10 10:44:52 +01:00
Jeroen Peelaerts
df45d8baf6 Item kit barcode review fixes (#3090) 2021-02-10 10:27:17 +01:00
Jeroen Peelaerts
6705e5f259 Add item_number to item kits module 2021-02-10 10:27:17 +01:00
Steve Ireland
68a2292d49 Merge pull request #3026 from opensourcepos/cash-rounding-register
Correct issues with cash rounding.
2021-02-08 08:26:47 -05:00
Steve Ireland
c5b22a0300 Improved support for cash rounding transactions. 2021-02-07 13:39:51 -05:00
Jeroen Peelaerts
be7d14c295 Change email address 2021-01-20 20:35:01 +01:00
Jeroen Peelaerts
485c24a123 Fix cookie secure flag (#3082) 2021-01-20 20:35:01 +01:00
Jeroen Peelaerts
6f2ac77a6e Remove unused migration (#3006) 2021-01-19 21:47:06 +01:00
jekkos
6e790aeea1 Update README.md 2021-01-19 21:43:39 +01:00
printgeek
2cb65bc2cb Update Specific_supplier.php 2021-01-19 21:39:20 +01:00
Jeroen Peelaerts
83ab188c8d Remove duplicate migration (#3006) 2021-01-17 11:52:45 +01:00
Jeroen Peelaerts
e20bf34a74 Use longblob for session data storage (#3006) 2021-01-17 11:36:06 +01:00
FrancescoUK
0daf08bf94 Merge pull request #3068 from opensourcepos/session-storage-fix
Use mediumblob for session data storage (#3006)
2021-01-04 21:58:31 +00:00
FrancescoUK
9297db9272 Merge pull request #3069 from opensourcepos/License-update
Contribution dates rearranged
2021-01-04 17:22:24 +00:00
WShells
d9dbb3d642 Dates fixing 2021-01-03 21:40:23 +02:00
Jeroen Peelaerts
5583a97772 Use mediumblob for session data storage (#3006) 2021-01-03 12:05:48 +01:00
WShells
630e38054a Contribution dates rearranged
Updated & Contribution dates rearranged.
2021-01-03 02:25:03 +02:00
hunsly
685033807a Translated using Weblate (Hungarian)
Currently translated at 83.3% (30 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/hu/
2021-01-01 23:04:58 +01:00
hunsly
c38801d8c0 Translated using Weblate (Hungarian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/hu/
2021-01-01 23:04:58 +01:00
FrancescoUK
41f218806b Update README.md badge 2021-01-01 12:03:10 +00:00
804 changed files with 32732 additions and 5524 deletions

View File

View File

@@ -10,7 +10,7 @@ Please make sure you tick (add an x between the square brackets with no spaces)
- [] Read the [FAQ](https://github.com/opensourcepos/opensourcepos#faq) for any known install and/or upgrade gotchas (in specific PHP extensions installed)
- [] Read the [wiki](https://github.com/opensourcepos/opensourcepos/wiki)
- [] Executed any database upgrade scripts if an upgrade pre 3.0.0 (e.g. database/2.4_to_3.0.sql)
- [] Aware the installation code is in [bintray](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=asc#files) (see README), and [GitHub master](https://github.com/opensourcepos/opensourcepos/tree/master) is for [developers only](https://github.com/opensourcepos/opensourcepos/wiki/Development-setup) and therefore not complete nor stable
- [] Aware the installation code that [GitHub master](https://github.com/opensourcepos/opensourcepos/tree/master) is for [developers only](https://github.com/opensourcepos/opensourcepos/wiki/Development-setup) and therefore not complete nor stable.
### Installation information

71
.github/workflows/codeql-analysis.yml vendored Normal file
View File

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

107
.gitignore vendored
View File

@@ -1,39 +1,90 @@
node_modules
tmp
database/database.sql
database/migrate_phppos_dist.sql
application/config/email.php
application/sessions/*
application/logs/*
application/uploads/*
public/license/.licenses
public/license/bower.LICENSES
public/dist
generate_langauges.php
dist/
docs/
public/bower_components
# Dependency directories
/node_modules
/vendor
/public/bower_components
# Logs
/application/logs/*
*.log
npm-debug.log*
# Build generated
/tmp
/public/license/.licenses
/public/license/bower.LICENSES
/public/dist
# Docker
!/docker/.env
/docker/data/database/db/*
/docker/data/certbot/conf/*
/docker/data/ospos/app/*
# Database
/database/database.sql
/database/migrate_phppos_dist.sql
# Use files
/application/config/email.php
/application/sessions/*
/application/uploads/*
# Editors
## SublimeText
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
## VisualStudioCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
## Vim
*.sw[a-p]
## WebStorm/IntelliJ
/.idea
modules.xml
*.ipr
*.iml
# System files
*.DS_Store
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
Desktop.ini
$RECYCLE.BIN/
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Other
/generate_langauges.php
/dist
/docs
/patches
/translations
/.buildpath
/.project
/.settings/*
*.patch
patches/
translations/
.idea/
git-svn-diff.py
*.bash
.swp
.buildpath
.project
.settings/*
vendor/
*.swp
*.rej
*.orig
*~
*.~
*.log
.env
package-lock.json
auth.json
!/docker/.env
/docker/data/database/db/*
/docker/data/certbot/conf/*
/docker/data/ospos/app/*

View File

@@ -1,18 +1,22 @@
# redirect to public page
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public$
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC]
RewriteRule "^(.*)$" "/public/" [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public$
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC]
RewriteRule "^(.*)$" "/public/" [R=301,L]
</IfModule>
# disable directory browsing
# For security reasons, Option all cannot be overridden.
Options +ExecCGI +Includes +IncludesNOEXEC +SymLinksIfOwnerMatch -Indexes
Options +SymLinksIfOwnerMatch -Indexes
# prevent folder listing
IndexIgnore *
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</Ifmodule>
# Apache 2.4
<IfModule authz_core_module>
# secure htaccess file

View File

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

373
CHANGELOG.md Normal file
View File

@@ -0,0 +1,373 @@
[unreleased]: https://github.com/opensourcepos/opensourcepos/compare/3.3.7...HEAD
[3.3.6]: https://github.com/opensourcepos/opensourcepos/compare/3.3.6...3.3.7
[3.3.5]: https://github.com/opensourcepos/opensourcepos/compare/3.3.4...3.3.5
[3.3.4]: https://github.com/opensourcepos/opensourcepos/compare/3.3.3...3.3.4
[3.3.3]: https://github.com/opensourcepos/opensourcepos/compare/3.3.2...3.3.3
[3.3.2]: https://github.com/opensourcepos/opensourcepos/compare/3.3.1...3.3.2
[3.3.1]: https://github.com/opensourcepos/opensourcepos/compare/3.3.0...3.3.1
[3.3.0]: https://github.com/opensourcepos/opensourcepos/compare/3.2.3...3.3.0
[3.2.3]: https://github.com/opensourcepos/opensourcepos/compare/3.2.2...3.2.3
[3.2.2]: https://github.com/opensourcepos/opensourcepos/compare/3.2.1...3.2.2
[3.2.1]: https://github.com/opensourcepos/opensourcepos/compare/3.2.0...3.2.1
[3.2.0]: https://github.com/opensourcepos/opensourcepos/compare/3.1.1...3.2.0
[3.1.1]: https://github.com/opensourcepos/opensourcepos/compare/3.1.0...3.1.1
[3.1.0]: https://github.com/opensourcepos/opensourcepos/compare/3.0.2...3.1.0
[3.0.2]: https://github.com/opensourcepos/opensourcepos/compare/3.0.1...3.0.2
[3.0.1]: https://github.com/opensourcepos/opensourcepos/compare/3.0.0...3.0.1
[3.0.0]: https://github.com/opensourcepos/opensourcepos/compare/2.4.0...3.0.0
[2.4.0]: https://github.com/opensourcepos/opensourcepos/compare/2.3.4...2.4.0
[2.3.4]: https://github.com/opensourcepos/opensourcepos/compare/2.3.3...2.3.4
[2.3.3]: https://github.com/opensourcepos/opensourcepos/compare/2.3.2...2.3.3
[2.3.2]: https://github.com/opensourcepos/opensourcepos/compare/2.3.1...2.3.2
[2.3.1]: https://github.com/opensourcepos/opensourcepos/compare/2.3.0...2.3.1
[2.3.0]: https://github.com/opensourcepos/opensourcepos/compare/2.2.2...2.3.0
# Changelog
All notable changes to this project will be documented here.
## [Unreleased]
List of changes in the `master` branch.
- N/A
## [3.3.7] - 2022-04-26
- Translation updates (Thai, Indonesian, Swedish, Italian)
- XSS fixes in bootstrap datatables
- Invoice numbering fixes
- Docker compose database scripts are now mounted from a container volume
## [3.3.6] - 2022-01-08
- Translation updates (Hungarian, Indonesian, Bosnian, Ukranian, Vietnamese, Spanish)
- Make footer revision clickable (ref to github)
- Minor reporting adjustments
- Introduced new global keyboard shortcuts (see overview below)
### Fixes
- reCaptcha issue fix
- Username verification bugfix
- Clickjacking security mitigations
- Fixes for the payment summary after refresh
- Hardening against XSS by introducing a CSP header in the HTTP headers
- Several CSRF and XSS fixes
- Type juggling password fix for old logins
## [3.3.5] - 2021-08-26
- Translation updates (Romanian, Ukrainian, Vietnamese, Thai, Polish, Swedish, Portuguese, Arabic, French, Chinese, Dutch, Tamil, Turkish, Spanish)
- New responsive login page based on Bootstrap `5`
- Translation fallback to English when a string is untranslated for the selected language
- Database and performance optimizations
- Grunt/CI updates
- CSV item import improvements
### Fixes
- Username verification fix on employee insert/update
- Minor report fixes
- Attribute encoding fix
- Decimal render fix
- Fixes for Docker to make it run on Windows
- Blind SQL injection fix
## [3.3.4] - 2021-04-18
- Translation updates (Hungarian, Indonesian, Bosnian, Ukrainian, Vietnamese, Spanish)
- Prevent data wipeout when calling GET directly on the save endpoint
- Cleanup `.htaccess`
- Docker compose usability improvements
- Cookie secure flag fix for Chrome (you can enable CSRF protection again now)
- Use LONGBLOB for session storage. This should fix issues preventing a user from adding a large number of items to register
- Cash rounding bugfixes
- Fix daily overview cash sale totals
- Show sale count in the transaction report
- Button disable to prevent double submission
- Add barcode field to item kits
- Fix discount register parsing in some specific locales
## [3.3.3] - 2020-12-31
- PHP `7.4` support
- Set PHP `7.2` to be the minimum level due to older version deprecations
- Added email CC and BCC (see `config/email.php`)
- Cash rounding to nearest 5 cents
- Updated composer packages and JS plugins
- Improved security (CSRF protection)
- Various small improvements and bug fixes
## [3.3.2] - 2020-09-02
- Fixed `only_full_group_by` issue with MySQL/MariaDB
- Fixed POS transaction return failure if items were deleted
- Various bug fixes
## [3.3.1] - 2019-12-04
- Various bug fixes (please disable `only_full_group_by` option from MySQL/MariaDB to avoid issues)
## [3.3.0] - 2019-09-29
- New logo
- Upgrade CodeIgniter to version `3.1.11`
- PHP `7.3` support
- Attributes feature (allows extensibility of items replacing old custom fields)
- India GST tax support + various tax support improvements
- Cash up feature
- Temporary items feature
- Fixed sales discount
- Supplier category feature
- Improved items import and CSV file generation (to contain additional attributes)
- Improved Docker installation with NGINX reverse proxy using Let's Encrypt TLS certificate
- Database performance improvements
- Added and udated translations
- Fixed various reports issues
- Fixed rounding issues
- Fixed CSRF issues
- Fixed database upgrade script issues
- Various bug fixes
## [3.2.3] - 2018-06-13
- Upgrade CodeIgniter to version `3.1.9`
- Further revert of CSRF change causing regression
## [3.2.2] - 2018-06-06
- Revert CSRF change causing regression
## [3.2.1] - 2018-06-04
- Support for GDPR
- CSRF simplifications
- Translation upgrades
- Various bug fixes
## [3.2.0] - 2018-04-14
- Upgrade CodeIgniter to version `3.1.8`
- PHP `7.2` support (use OpenSSL and not MCrypt)
- Automatic database upgrades from `3.0.0` at first login (no more SQL scripts)
- Home and (back)office menu switch (top menu can be organized in two views)
- Expenses feature
- Quote and work order features
- Improved invoice support
- Sale suspend, soft delete, complete as the state not as different tables or hard delete
- Restore deleted sales
- Improved item kits
- Export tables all records and export to PDF
- Table sticky header (headers visible during scrolling)
- Allow duplicate barcodes (config option)
- Search suggestion formatting (config option)
- Define print and email checkboxes behavior (config option)
- Edit customer from sales register
- Added and updated translations
- Various jQuery plugins upgrade
- Fixed permission issues (e.g. password change)
- Fixed various reports issues and renamed Sales to Transactions
- Various bug fixes (e.g. tax, rounding, library circular dependency)
## [3.1.1] - 2017-09-09
- Updated en-US and en-GB translations, better grammar, and consistency
- Fixed database migration issue with VAT tax included
- Fixed database backup bug
- Fixed gift card error
- Fixed database `upgrade to 3.1.x` script (now it's to `3.1.1` and there is no `3.1.0` anymore)
- Fixed old database upgrade scripts for people upgrading from `2.x` versions
- Fixed `.htaccess` file in OSPOS root dir (it was not forwarding to `public` subdir)
- Fixed few jQuery `2.0` upgrade issues
## [3.1.0] - 2017-09-02
- MySQL `5.7` and PHP `7.x` support
- Advanced tax support with customer tax categories and more
- Better horeca use case support with dinner table sale tagging
- Customer rewards support
- Added quote support and better invoice support
- Added integration with Mailchimp to connect customer list with Mailchimp list
- Prevent inserting two customers with the same email address
- Customer total spending and stats
- Added Google reCAPTCHA option for the login page to increase protection from brute force attacks
- Added due payment for credit sale support
- Gift card numbering with two options: series and random
- Extended item kits functionality
- Employees are allowed to change their own password by clicking their name in the top bar
- Cash rounding support, extended decimals
- Reworked item pictures, file names, and storing
- Financial year start date and selection from date range pickers
- Date time range filters can be date and time or date only
- Added two new Bootswatch themes
- Receipts font size support
- Fix automatically people's name first capital letter, emails in lower case only
- Fixes to Receiving
- Various amendments to database script updates from older versions
- Added dotenv support
- Updates to language translations (split English to American English and British English)
- Various Dockers support improvements
- Minor bugfixes
## [3.0.2] - 2016-12-31
- Fixed error when performing scans multiple times in a row
- Fixed summary reports
- Protect employee privacy by printing just the first letter of the family name
- Updates to language translations
- Various Dockers support improvements
- Minor bugfixes
## [3.0.1] - 2016-11-27
- Upgrade CodeIgniter to version `3.1.2`
- Substantial database performance improvements
- Improved security: email and SMS passwords encryption, removed `phpinfo.php`
- Set code to be production and not development in `index.php`
- Reports improvements, fixed table sorting, tax calculation and made profit to be net profit
- Better Apache `2.4` support in `.htaccess`
- Updates to language translations
- Fixed excel template download links
- Fixed employee name in sale receipt and invoice reprinting
- Fixed `2.3.2_to_2.3.3.sql` database upgrade script mistake
- Fixed `phppos to ospos` database migration script
- Minor bug fixes and some general code clean up
## [3.0.0] 2016-10-21
- Upgrade CodeIgniter to version `3.1.0`
- Major UI overhaul based on Bootstrap `3.0` and Bootswatch Themes
- New tabular views with advanced filtering using Bootstrap Tables
- New graphical reports with no more Adobe Flash dependency
- Redesign of all modal dialogs
- Updated Sales register with simplified payment flow
- Improved security: MySQL injection, XSS, CSFR, BCrypt password encryption, safer project layout
- Support for text messaging (interfacing to specific support required)
- Email configuration
- Improved Localisation support
- Improved Store Config page
- Docker container ready for cloud installation
- Composer PHP support
- More languages and integration with Weblate for continuous translation
- About 280 closed issues under `3.0.0` release label, too many to produce a meaningful list
- Various code cleanup, refactoring, optimization and etc.
## [2.4.0] - 2016-04-02
- Upgrade CodeIgniter to version `3.0.5`
- Fix for spurious logouts
- Apache `.htaccess` `mod_expiry` caching and security optimizations
- Bulk item edit fixes (category, tax, and supplier fields)
- Remove f-key shortcuts used for module navigation
- Allow using custom invoice numbers when suspending a sale
- PHP `7` fixes
- Specific warnings to distinguish between reorder level and out of stock situation in sales
- Fix malware detection issues due to usage of `base64` encoding for storing session variables
- Improve language generation scripts (use PHP builtin functionality)
- Add extra buttons for navigation and printing to receipt and invoice
- Improve print layout for invoices
- Make layout consistent for items between receipt and invoice templates
- Minor bugfixes
## [2.3.4] - 2016-02-08
- Migration script fixes
- Improved continuous integration setup
- More integration tests
- Virtualized container setup (`docker install`)
- Live clock functionality and favicon
- Improved PHP `7` compatibility
- Added de_CH (German) as language
- Minor code cleanup
- Removal of annoying backup prompt on logout
## [2.3.3] - 2016-01-05
- Item kit fixes (search, list, ...)
- Add date picker widgets in sale/receiving edit forms
- Add date filter in items module
- Add barcode generation logic for EAN8, EAN13
- Add barcode validation and fallback logic for EAN8, EAN13
- New config option to generate barcodes if `item_number` is empty
- Add cost and count to inventory reports
- Gift card fixes
- Refactor sales overview (added date filtering + search options)
- Better locale config support
- Improve PHP compatibility
- Fix invoice numbering bug on suspending a sale
- Add configurable locale-dependent date format
- Add grunt-cache-breaker plugin
- Suspend button appears before adding a payment
- Searching of deleted items, filtering part is removed
- Remove infamous `0` after leaving sale or receiving comments empty
- Add SQL script to clean zeroes in sales/receivings comments
- Numerous other bug fixes
## [2.3.2] - 2015-07-15
- Nominatim (OpenStreetMap) customer address autocompletion
- Sale invoice templating
- Configurable barcode generation for items
- Stock location filtering in detailed sales and receivings reports
- Gift cards fixes
- Proper pagination support for most modules
- Language updates
- Fix for decimal tax rates
- Add gender and company name attributes to customer
- Stock location config screen refactor
- Basic Travis CI and PhantomJS setup
- Database backup on admin logout
- Modifiable item thumbnails
- Email invoice PDF generation using DomPDF
- Modifiable company logo
- jQuery upgrade (`1.2` -> `1.8.3`)
- JavaScript minification (using Grunt)
- Numerous bugfixes
## [2.3.1] - 2015-02-11
- Extra report permissions (this includes a refactoring of the database model - new grants table)
- Tax inclusive/exclusive pricing
- Receivings amount multiplication (can be configured in items section)
- Customizable sale and receiving numbering
- Gift card improvements
- Fix item import through CSV
- Bug fixes for reports
## [2.3.0] - 2014-08-19
- Support for multiple stock locations
## 2.2.2 - 2014-08-19
- French language added
- Thai language added
- Upgrade CodeIgniter to version `2.2.0`
- Database types for amounts all changed to decimal types (this will fix rounding errors in the sales and receivings reports)
- Fix duplicated session cookies in HTTP headers (this broke the application when running on Nginx)
## 2.1.1
- Barcodes on the order receipt were not generated correctly
- Sales edit screen for detailed sales reports is now available with ThickBox as in the rest of the application
- Indonesian language files updated (Oktafianus)
- Default language set to `en` in `config.php`
- Fixed some CSS bugs in the suspended sales section
- Default cookie `sess_time_expire` set to `86400` (24h)
## 2.1.0
- Various upgrades, too numerous to list here
- Removed dependency on ofc upload library due to vulnerability found
## 2.0.2
- Fixed multiple gift cards issue per Bug #4 reported on Sourceforge where a second gift card added would have its balance set to `0` even if the sale did not require the total of the second gift card to pay the remaining amount due
- Small code cleanup
## 2.1.0
- Upgrade CodeIgniter to version `2.1.0`
- Various small improvements

53
DEVELOPMENT.md Normal file
View File

@@ -0,0 +1,53 @@
# package.json
## scripts
`npm run scriptname`
- `clean` - wipe the dependencies downloaded by Composer, Bower, and npm
```
grunt clean:composer & grunt clean:bower & grunt clean:npm
```
- `install` - automatically runs the Composer and Bower install commands after installing the npm dependencies
```
composer install & bower install
```
- `update` - updates Composer and the dependencies downloaded by Composer and npm
```
npm update & composer self-update & composer update
```
## devDependencies
- `grunt` - used for copying files downloaded by npm
- `grunt-contrib-clean` - Grunt plugin to clean files before copying
- `grunt-contrib-copy` - Grunt plugin to copy files downloaded by npm
- `npm` - downloads project dependencies
- the others are unlisted for now, because this will probably change pretty significantly in the near future
## dependencies
- `bootstrap` - main CSS framework used
- `bootswatch` - themes for the UI
## devDependencies (global)
- `bower` - for the time being, Bower is still necessary
# composer.json
## require
- `php` - this application runs on PHP
- `codeigniter/framework` - the CodeIgniter PHP framework this application is build on
- `dompdf/dompdf` - no description
- `tamtamchik/namecase` - no description
- `paragonie/random_compat` - no description
- `vlucas/phpdotenv` - no description
## require-dev
- `mikey179/vfsstream` - no description
- `phpunit/phpunit` - no description
- `kenjis/ci-phpunit-test` - no description

View File

@@ -1,16 +1,14 @@
FROM php:7.4-apache AS ospos
MAINTAINER jekkos
LABEL maintainer="jekkos"
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libicu-dev \
libgd-dev \
openssl
RUN a2enmod rewrite
RUN a2enmod rewrite headers
RUN docker-php-ext-install mysqli bcmath intl gd
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini
RUN echo -e “$(hostname -i)\t$(hostname) $(hostname).localhost” >> /etc/hosts
WORKDIR /app
COPY . /app
@@ -18,9 +16,9 @@ RUN ln -s /app/*[^public] /var/www && rm -rf /var/www/html && ln -nsf /app/publi
RUN chmod -R 750 /app/public/uploads /app/application/logs && chown -R www-data:www-data /app/public /app/application
FROM ospos AS ospos_test
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN apt-get install -y libzip-dev wget git
RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh -O /bin/wait-for-it.sh && chmod +x /bin/wait-for-it.sh
RUN docker-php-ext-install zip
@@ -29,7 +27,7 @@ RUN php /app/vendor/kenjis/ci-phpunit-test/install.php -a /app/application -p /a
RUN sed -i 's/backupGlobals="true"/backupGlobals="false"/g' /app/application/tests/phpunit.xml
RUN sed -i '13,17d' /app/application/tests/controllers/Welcome_test.php
WORKDIR /app/application/tests
CMD ["/app/vendor/phpunit/phpunit/phpunit"]
FROM ospos AS ospos_dev
@@ -37,6 +35,5 @@ FROM ospos AS ospos_dev
RUN mkdir -p /app/bower_components && ln -s /app/bower_components /var/www/html/bower_components
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

View File

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

View File

@@ -1,136 +1,65 @@
Server Requirements
-------------------
## Server Requirements
* PHP version 7.2 to 7.4 are supported, PHP version 5.6 and 8.0 are NOT supported. Please note that PHP needs to have `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` and `php-curl` installed and enabled.
- PHP version `7.2` to `7.4` are supported, PHP version `≤5.6` and `8.0` are NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` and `php-curl` installed and enabled.
- MySQL `5.5`, `5.6` and `5.7` are supported, also MariaDB replacement `10.x` is supported and might offer better performance.
- Apache `2.2` and `2.4` are supported. Nginx should work fine too, see [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Local-Deployment-using-LEMP).
- Raspberry PI based installations proved to work, see [wiki page here](<https://github.com/opensourcepos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS)>).
- For Windows based installations please read [the wiki](https://github.com/opensourcepos/opensourcepos/wiki). There are closed issues about this subject, as this topic has been covered a lot.
* MySQL 5.5, 5.6 and 5.7 are supported, also MariaDB replacement 10.x is supported and apparently offering better performance.
## Local install
* Apache 2.2 and 2.4 are supported. Also Nginx has been proven to work fine, see [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Local-Deployment-using-LEMP).
First of all, if you're seeing the message `system folder missing` after launching your browser, that most likely means you have cloned the repository and have not built the project.
* Raspberry PI based installations proved to work, see [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS)).
1. Download the a [pre-release for a specific branch](https://github.com/opensourcepos/opensourcepos/packages/1047637) or the latest stable [from GitHub here](https://github.com/opensourcepos/opensourcepos/releases). A repository clone will not work unless know how to build the project.
2. Create/locate a new MySQL database to install Open Source Point of Sale into.
3. Execute the file `database/database.sql` to create the tables needed.
4. Unzip and upload Open Source Point of Sale files to the web-server.
5. Open `application/config/database.php` and modify credentials to connect to your database if needed.
6. Open `application/config/config.php` and swap the encryption key with your own.
7. Go to your install `public` dir via the browser.
8. Log in using
- Username: admin
- Password: pointofsale
9. Enjoy!
10. Oops, an issue? Please make sure you read the FAQ, wiki page, and you checked open and closed issues on GitHub. PHP `display_errors` is disabled by default. Create an` application/config/.env` file from the `.env.example` to enable it in a development environment.
* For Windows based installations please read [the wiki](https://github.com/opensourcepos/opensourcepos/wiki) and also existing closed issues as this topic has been covered well in all the variants and issues.
## Local install using Docker
Local install
-------------
First of all, if you're seeing the message **'system folder missing'** after launching your browser, then that means you have cloned the repository and have not built the project properly.
1. Dowload the latest [stable release](https://github.com/opensourcepos/opensourcepos/releases) from github or [unstable build](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=asc#files) from bintray. A regular repository clone will not work unless you are brave enough to build the whole project!
2. Create/locate a new mysql database to install open source point of sale into
3. Execute the file database/database.sql to create the tables needed
4. unzip and upload Open Source Point of Sale files to web server
5. Modify application/config/database.php and modify credentials if needed to connect to your database
6. Modify application/config/config.php encryption key with your own
7. Go to your point of sale install public dir via the browser
8. LOGIN using
* username: admin
* password: pointofsale
9. Enjoy
10. Oops an issue? Please make sure you read the FAQ, wiki page and you checked open and closed issue on GitHub. PHP display_errors is disabled by default. Create an application/config/.env file from the .env.example to enable it in a development environment.
Local install using Docker
--------------------------
From now onwards OSPOS can be deployed using Docker on Linux and Mac, locally or on a host (server).
OSPOS can be deployed using Docker on Linux, Mac, and Windows. Locally or on a host (server).
This setup dramatically reduces the number of possible issues as all setup is now done in a Dockerfile.
Docker runs natively on Mac and Linux. Please refer to the docker documentation for instructions on how to set it up on your platform.
Docker runs natively on Mac and Linux. Windows requires WSL2 to be installed. Please refer to the Docker documentation for instructions on how to set it up on your platform.
Since OSPOS version 3.3.0 the docker installation offers a reverse proxy based on nginx with a (if local) Self signed certificate termination (aka HTTPS connection).
Behind the reverse proxy you can access OSPOS using https (port 443) and myPhpAdmin using port 8000.
Port 80 (standard http) is not available for OSPOS, it's only available for a cert manager service in case of server installation.
**Be aware that this setup is not suited for production usage! Change the default passwords in the compose file before exposing the containers publicly.**
* To build and run the image, download the latest build from bintray.
* Install envsubst from https://github.com/a8m/envsubst on your machine
* Issue the following commands in a terminal with docker installed:
Start the containers using the following command
```
docker/install-local.sh
docker-compose up
```
* When required to renew a certificate say (y)es.
* When the script has terminated to run, wait about a minute before connecting to https://127.0.0.1.
* The web browser will warn you of a self certificate exception, accept and continue
* If you do https://127.0.0.1:8000 (port 8000) instead, you would be able to access a phpMyAdmin service connected to OSPOS MariaDB
## Nginx install using Docker
* To stop the docker issue the following command:
Since OSPOS version `3.3.0` the Docker installation offers a reverse proxy based on Nginx with a Let's Encrypt TLS certificate termination (aka HTTPS connection).
Let's Encrypt is a free certificate issuer, requiring a special installation that this Docker installation would take care of for you.
Any Let's Encrypt TLS certificate renewal will be managed automatically, therefore there is no need to worry about those details.
Before starting your installation, you should edit the `docker/.env` file and configure it to contain the correct MySQL/MariaDB and phpMyAdmin passwords (don't use the defaults!).
You will also need to register to Let's Encrypt. Configure your host domain name and Let's Encrypt email address in the `docker/.env` file.
The variable `STAGING` needs to be set to `0` when you are confident your configuration is correct so that Let's Encrypt will issue a final proper TLS certificate.
Follow local install steps, but instead use
```
docker/install-nginx.sh
```
Do **not** use below command on live deployments unless you want to tear everything down. All your disk content will be wiped!
```
docker/uninstall.sh
```
## Cloud install
Host install using Docker
-------------------------
Since OSPOS version 3.3.0 the docker installation offers a reverse proxy based on nginx with a Letsencrypt TLS certificate termination (aka HTTPS connection).
Letsencrypt is a free certificate issuer, requiring a special installation that this docker installation would take care for you.
Any Letsencrypt TLS certificate renewal will be managed automatically for you, therefore there is no need to worry about those details.
Before starting your installation, you would need to edit docker/.env file and configure it to contain the correct MySQL/MariaDB and phpMyAdmin passwords (don't use the defaults!).
You will also need to register to Letsencrypt and configure your host domain name, Letsencrypt email address in docker/.env file.
The variable STAGING needs to be set to 0 when you are confident your configuration is correct so that Letsencrypt will issue a final proper TLS certificate.
Follow local install steps, but instead of
```
docker/install-local.sh
```
use
```
docker/install-server.sh
```
Do not use
```
docker/uninstall.sh
```
on live deployments unless you want to tear down everything because all your disk content will be wiped out!
Cloud install
-------------
If you choose *DigitalOcean*:
[Through this link](https://m.do.co/c/ac38c262507b), you will get a *$100 credit* for a first month. [Check the wiki](https://github.com/opensourcepos/opensourcepos/wiki/Getting-Started-installations) for further instructions on how to install the necessary components.
cPanel & SSH Install
--------------------
If you own on a **VPS**, **Dedicated Server**, or **Shared Hosting** running on **cPanel** with **SSH** access:
You can run our Stand-alone [WS-OSPOS-Installer](https://github.com/WebShells/WS-OSPOS-Installer.git), it will handle:
. Database.php config files generation.
. Creation of db User & Password depending on user's input of Dbname, Username, Password, & Hostname ( No need for phpmyadmin )
. Imports default Db SQL files in order to run the project.
Usage in **(SSH)**:
git clone https://github.com/WebShells/WS-OSPOS-Installer.git
chmod +x WS-OSPOS-Installer/Get-POS
./WS-OSPOS-Installer/Get-POS
or
wget https://github.com/WebShells/WS-OSPOS-Installer/archive/master.zip
unzip -qq master.zip
chmod +x WS-OSPOS-Installer-master/Get-POS
./WS-OSPOS-Installer-master/Get-POS
Answer **DB required questions** and you are ready to run the project on http://localhost/OSPOS/public (localhost to be replaced by the hostname provided during setup).
If you choose DigitalOcean:
[Through this link](https://m.do.co/c/ac38c262507b), you will get a [**free $100, 60-day credit**](https://m.do.co/c/ac38c262507b). [Check the wiki](https://github.com/opensourcepos/opensourcepos/wiki/Getting-Started-installations) for further instructions on how to install the necessary components.

92
LICENSE
View File

@@ -1,69 +1,55 @@
The MIT License (MIT)
MIT License
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2013-2021 jekkos
Copyright (c) 2015-2021 FrancescoUK (aka daN4cat)
Copyright (c) 2015 Aamir Shahzad (aka asakpke), RoshanTech.com
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
Copyright (c) 2016 Rinaldy@dbarber (aka rnld26)
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
Copyright (c) 2017-2021 Steve Ireland
Copyright (c) 2017-2021 objecttothis
Copyright (c) 2017-2021 odiea
Copyright (c) 2017-2021 WebShells / Shady Sh
Copyright (c) 2017-2021 WebShells
Copyright (c) 2020-2021 Andriux1990
Copyright (c) 2021 BudsieBuds
Copyright (c) 2019 Loyd Jayme (aka loydjayme25)
Copyright (c) 2018 Erasto Marroquin (aka Erastus)
Copyright (c) 2018 Nathan Sas (aka nathanzky)
Copyright (c) 2018 Emilio Silva (aka emi-silva)
Copyright (c) 2017 Jesus Guerrero Botella (aka i92guboj)
Copyright (c) 2017 Deep Shah (aka deepshah)
Copyright (c) 2017 Joshua Fernandez (aka joshua1234511)
Copyright (c) 2017 asadjaved63
Copyright (c) 2018 Erasto Marroquin (aka Erastus)
Copyright (c) 2018 Nathan Sas (aka nathanzky)
Copyright (c) 2018 Emilio Silva (aka emi-silva)
Copyright (c) 2019 Loyd Jayme (aka loydjayme25)
Copyright (c) 2020 Andriux1990
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
Copyright (c) 2016 Rinaldy@dbarber (aka rnld26)
Copyright (c) 2015 Aamir Shahzad (aka asakpke), RoshanTech.com
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
You cannot claim copyright or ownership of the Software.
Versions ≥ 3.3.2:
Footer signatures "© 2010 - 2021 · opensourcepos.org · 3.3.3 - 6909c8"
In the format of: "© 2010 - Current Year · opensourcepos.org · Version - Commit"
and/or
"· opensourcepos.org ·"
with version, hash and URL link to the official website of the project MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
Versions < 3.3.2:
Footer signatures "You are using Open Source Point Of Sale"
and/or
"Open Source Point Of Sale"
with version, hash and URL link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Additionally, you cannot claim copyright or ownership of the Software.
The footer signatures with version, hash and URL link to the official website
of the project MUST BE RETAINED, MUST BE VISIBLE IN EVERY PAGE and CANNOT BE
MODIFIED.
Footer signatures are in the format
"© 2010 - current year · opensourcepos.org · version - commit"
or "Open Source Point of Sale".

247
README.md
View File

@@ -1,166 +1,143 @@
[![Download](https://api.bintray.com/packages/jekkos/opensourcepos/opensourcepos/images/download.svg?version=3.3.2) ](https://bintray.com/jekkos/opensourcepos/opensourcepos/3.3.2/link)
[![Build Status](https://travis-ci.org/opensourcepos/opensourcepos.svg?branch=master)](https://travis-ci.org/opensourcepos/opensourcepos)
[![Join the chat at https://gitter.im/opensourcepos](https://badges.gitter.im/jekkos/opensourcepos.svg)](https://gitter.im/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![GitHub version](https://badge.fury.io/gh/jekkos%2Fopensourcepos.svg)](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
[![Translation status](http://translate.opensourcepos.org/widgets/opensourcepos/-/svg-badge.svg)](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
<p align="center"><img src="branding/emblem.svg" alt="Open Source Point of Sale Logo" width="auto" height="200"></p>
<h3 align="center">Open Source Point of Sale</h3>
<p align="center">
<a href="#-introduction">Introduction</a> · <a href="#-live-demo">Demo</a> · <a href="#-installation">Installation</a> ·
<a href="#-contributing">Contributing</a> · <a href="#-reporting-bugs">Bugs</a> · <a href="#-faq">FAQ</a> ·
<a href="#-keep-the-machine-running">Donate</a> · <a href="#-license">License</a> · <a href="#-credits">Credits</a>
</p>
Introduction
------------
<p align="center">
<a href="https://travis-ci.org/opensourcepos/opensourcepos" target="_blank"><img src="https://travis-ci.com/opensourcepos/opensourcepos.svg?branch=master" alt="Build Status"></a>
<a href="https://gitter.im/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge" target="_blank"><img src="https://badges.gitter.im/jekkos/opensourcepos.svg" alt="Join the chat at https://gitter.im/opensourcepos"></a>
<a href="https://badge.fury.io/gh/jekkos%2Fopensourcepos" target="_blank"><img src="https://badge.fury.io/gh/jekkos%2Fopensourcepos.svg" alt="Project Version"></a>
<a href="http://translate.opensourcepos.org/engage/opensourcepos/?utm_source=widget" target="_blank"><img src="http://translate.opensourcepos.org/widgets/opensourcepos/-/svg-badge.svg" alt="Translation Status"></a>
</p>
Open Source Point of Sale is a web based point of sale system.
The main features are:
* Stock management (Items and Kits with extensible list of Attributes)
* VAT, GST, customer and multi tiers taxation
* Sale register with transactions logging
* Quotation and invoicing
* Expenses logging
* Cashup
* Receipt and invoice printing and/or emailing
* Barcode generation and printing
* Suppliers and Customers database
* Multiuser with permission control
* Reporting on sales, orders, expenses, inventory status
* Receivings
* Giftcard
* Rewards
* Restaurant tables
* Messaging (SMS)
* Multilanguage
* Selectable Boostrap (Bootswatch) based UI theme
* Mailchimp integration
* reCAPTCHA to protect login page from brute force attacks
* GDPR ready
## 👋 Introduction
The software is written in PHP language, it uses MySQL (or MariaDB) as data storage back-end and has a simple but intuitive user interface.
Open Source Point of Sale is a web-based point of sale system. The application is written in PHP, it uses MySQL (or MariaDB) as data storage back-end and has a simple but intuitive user interface.
The latest 3.x version is a complete overhaul of the original software.
It is now based on Bootstrap 3 using Bootswatch themes, and uses CodeIgniter version 3 as framework.
It also has improved functionality and security.
The latest `3.x` version is a complete overhaul of the original software. It uses CodeIgniter 3 as a framework and is based on Bootstrap 3 using Bootswatch themes. Along with improved functionality and security.
DEMO / DEV
----------
The features include:
A demo version of the latest master version can be found on our [Demo server](https://demo.opensourcepos.org). This is a containerized install which will be reinitialized when new functionality is added to the code repository.
- Stock management (items and kits with an extensible list of attributes)
- VAT, GST, customer, and multi tiers taxation
- Sale register with transactions logging
- Quotation and invoicing
- Expenses logging
- Cash up function
- Printing and emailing of receipts, invoices and quotations
- Barcode generation and printing
- Database of customers and suppliers
- Multiuser with permission control
- Reporting on sales, orders, expenses, inventory status and more
- Receivings
- Gift cards
- Rewards
- Restaurant tables
- Messaging (SMS)
- Multilanguage
- Selectable Bootstrap based UI theme with Bootswatch
- Mailchimp integration
- Optional Google reCAPTCHA to protect login page from brute force attacks
- GDPR ready
LOGIN using
* username: admin
* password: pointofsale
## 🧪 Live Demo
Beside this we also have a [Dev server](https://dev.opensourcepos.org) that runs the build that was triggered with the last repository's commit.
We've got a live version of our latest master running for you to play around with and test everything out. It's a containerized install that will reinitialize when new functionality is merged into our code repository.
In case of any issues, check our status page at [https://status.opensourcepos.org](https://status.opensourcepos.org) to confirm whether there is a sever outage.
You can [find the demo here](https://demo.opensourcepos.org/) and log in with these credentials.
👤 Username `admin`
🔒 Password `pointofsale`
Installation
------------
If you bump into an issue, please check [the status page here](https://status.opensourcepos.org/) to confirm if the server is up and running.
Please **refrain from creating issues** about installation problems **before having read the FAQ and went through existing github issues**. We have a build pipeline that checks the sanity of our latest repository commit and in case the application itself is broken then our build will be as well.
## 🖥️ Development Demo
This application **can be setup in many different ways** and we only **support the ones described in the INSTALL file linked below**.
Besides the demo of the latest master, we also have a development server that builds when there's a new commit to our repository. It's mainly used for testing out new code before merging it into the master. [It can be found here](https://dev.opensourcepos.org/).
Read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) in our repository.
The log in credentials are the same as the regular live demo.
[Check our wiki](https://github.com/opensourcepos/opensourcepos/wiki/Supported-hardware-datasheet) for info and recommendations on supported receipt printers and barcode scanners.
## 💾 Installation
License
-------
Please **refrain from creating issues** about installation problems before having read the FAQ and going through existing GitHub issues. We have a build pipeline that checks the sanity of our latest repository commit, and in case the application itself is broken then our build will be as well.
This application can be set up in _many_ different ways and we only support the ones described in [the INSTALL.md file](INSTALL.md).
For more information and recommendations on support hardware, like receipt printers and barcode scanners, read [this page](https://github.com/opensourcepos/opensourcepos/wiki/Supported-hardware-datasheet) on our wiki.
## ✨ Contributing
Everyone is more than welcome to help us improve this project. If you think you've got something to help us go forward, feel free to open a [pull request]().
Want to help translate Open Source Point of Sale in your language? You can find [our Weblate here](https://translate.opensourcepos.org), sign up, and start translating. You can subscribe to different languages to receive a notification once a new string is added or needs updating. Have a look at our [guidelines](https://github.com/opensourcepos/opensourcepos/wiki/Adding-translations) below to help you get started.
Only with the help of the community, we can keep language translations up to date. Thanks!
## 🐛 Reporting Bugs
Before creating a new issue, you'll need copy and include the info under the `System Info` tab in the configuration section in most cases. If that information is not provided in full, your issue might be tagged as pending.
If you're reporting a potential security issue, please refer to our security policy found in the [SECURITY.md](SECURITY.md) file.
NOTE: If you're running non-release code, please make sure you always run the latest database upgrade script and you download the latest master code.
## 📖 FAQ
- If you get the message `system folder missing`, then you have cloned the source using git and you need to run a build first. Check [INSTALL.md](INSTALL.md) for instructions or download latest zip file from [GitHub releases](https://github.com/opensourcepos/opensourcepos/releases) instead.
- If at login time you read `The installation is not correct, check your php.ini file.`, please check the error_log in `public` folder to understand what's wrong and make sure you read the [INSTALL.md](INSTALL.md). To know how to enable `error_log`, please read the comment in [issue #1770](https://github.com/opensourcepos/opensourcepos/issues/1770#issuecomment-355177943).
- If you installed your OSPOS under a web server subdir, please edit `public/.htaccess` and go to the lines with the comments `if in web root` or `if in subdir`, uncomment one and replace `<OSPOS path>` with your path and follow the instruction on the second comment line. If you face more issues, please read [issue #920](https://github.com/opensourcepos/opensourcepos/issues/920) for more information.
- Apache server configurations are SysAdmin issues and not strictly related to OSPOS. Please make sure you can show a "Hello world" HTML page before pointing to OSPOS public directory. Make sure `.htaccess` is correctly configured.
- If the avatar pictures are not shown in items or at item save you get an error, please make sure your `public` and subdirs are assigned to the correct owner and the access permission is set to `750`.
- If you install OSPOS in Docker behind a proxy that performs `ssloffloading`, you can enable the URL generated to be HTTPS instead of HTTP, by activating the environment variable `FORCE_HTTPS = 1`.
- If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/opensourcepos/opensourcepos/issues/1492).
- PHP 8.0 is not currently supported, see [issue #3051](https://github.com/opensourcepos/opensourcepos/issues/3051).
- PHP 5.5 and 5.6 are no longer supported due to the fact that they have been deprecated and not safe to use from security point of view.
## 🏃 Keep the Machine Running
If you like our project, please consider buying us a coffee through the button below so we can keep adding features.
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)\
Or refer to the [FUNDING.yml](.github/FUNDING.yml) file.
If you choose to deploy OSPOS in the cloud, you can contribute to the project by using DigitalOcean and signing up through our referral link. You'll receive a [free $100, 60-day credit](https://m.do.co/c/ac38c262507b) if you run OSPOS in a DigitalOcean droplet through [our referral link](https://m.do.co/c/ac38c262507b).
## 📄 License
Open Source Point of Sale is licensed under MIT terms with an important addition:
_The footer signature "You are using Open Source Point Of Sale" with version,
hash and link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED._
The footer signature "© 2010 - _current year_ · opensourcepos.org · 3.x.x - _hash_" including the version, hash and link our website MUST BE RETAINED, MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
Also worth noting:
_The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software._
_The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software._
For more details please read the file [LICENSE](https://github.com/opensourcepos/opensourcepos/blob/master/LICENSE).
For more details please read the [LICENSE](LICENSE) file.
It's important to understand that althought you are free to use the software the copyright stays and the license agreement applies in all cases.
Therefore any actions like:
It's important to understand that although you are free to use the application the copyright has to stay and the license agreement applies in all cases. Therefore any actions like:
- Removing LICENSE and any license files is prohibited
- Removing LICENSE and/or any license files is prohibited
- Authoring the footer notice replacing it with your own or even worse claiming the copyright is absolutely prohibited
- Claiming full ownership of the code is prohibited
In short you are free to use the software but you cannot claim any property on it.
In short, you are free to use the application but you cannot claim any property on it.
Any person or company found breaching the license agreement will have a bunch of monkeys at the door ready to destroy their servers.
Any person or company found breaching the license agreement might find a bunch of monkeys at the door ready to destroy their servers.
## 🙏 Credits
Keep the Machine Running
------------------------
If you like the project, and you are making money out of it in some form, then consider buying us a coffee so we can keep adding features.
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)
If you choose to deploy OSPOS in the cloud, you can contribute to the project by using our referral link. [You will get an initial $100 credits](https://m.do.co/c/ac38c262507b) for running OSPOS on a cloud instance with DigitalOcean.
Language Translations
---------------------
To help us with OSPOS translations please use [Weblate website here](http://translate.opensourcepos.org) and sign up. After registering you can subscribe to different languages and you will be notified once a new translation is added.
Please also read the [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Adding-translations) to find our Translations Guideline.
Only with the help of the community we can keep language translations up to date.
Reporting Bugs
--------------
If you are taking a release candidate code please make sure you always run the latest database upgrade script and you took the latest code from master.
Please DO NOT post issues if you have not completed this step.
- Versions **≥ 3.3.0**:
Please **Copy** the info under **System Info tab in configuration section** in order to give us the required details.
- Versions **< 3.2.3**:
Bug reports must follow the below schema:
1. Ospos **version string with git commit hash** (see ospos footer)
2. OS name and version running your Web Server (e.g. CentOS 6.9, Ubuntu 20, Windows 10)
3. Web Server name and version (e.g. Apache 2.4, Nginx 1.12, Nginx 1.13)
4. Database name and version (e.g. MySQL 5.6, MySQL 5.7, MariaDB 10.2, MariaDB 10.3)
5. PHP version (e.g. 7.2, 7.3, 7.4)
6. Language selected in OSPOS (e.g. English, Spanish)
7. Any configuration of OSPOS that you changed
8. Exact steps to reproduce the issue (test case)
9. Optionally some screenshots to illustrate each step
If above information is not provided in full, your issue will be tagged as pending.
If missing information is not provided within a week we will close your issue.
FAQ
---
* If you are seeing the message **system folder missing**, then you have cloned the source using git and you need to run a build *first*. Check [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) for instructions or download latest zip file from [bintray](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=desc#files) instead.
* If at login time you read "The installation is not correct, check your php.ini file.", please check the error_log in public folder to understand what's wrong and make sure you read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md). To know how to enable error_log, please read the comment in [issue 1770](https://github.com/opensourcepos/opensourcepos/issues/1770#issuecomment-355177943).
* If you installed your OSPOS under a web server subdir, please edit public/.htaccess and go to the lines with comment `if in web root` and `if in subdir comment above line, uncomment below one and replace <OSPOS path> with your path` and follow the instruction on the second comment line. If you face more issues please read [issue #920](https://github.com/opensourcepos/opensourcepos/issues/920) for more help.
* Apache server configurations are SysAdmin issues and not strictly related to OSPOS. Please make sure you first can show a "hello world" html page before pointing to OSPOS public directory. Make sure .htaccess is correctly configured.
* If the avatar pictures are not shown in Items or at Item save time you get an error, please make sure your public and subdirs are assigned to the correct owner and the access permission is set to 750.
* If you install ospos in docker behind a proxy that performs ssloffloading, you can enable the url generated to be https instead of http, by activating the environment variable FORCE_HTTPS = 1.
* If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/opensourcepos/opensourcepos/issues/1492).
* PHP 8.0 is not currently supported, see [issue #3051](https://github.com/opensourcepos/opensourcepos/issues/3051).
* PHP 5.5 and 5.6 are no longer supported due to the fact that they have been deprecated and not safe to use from security point of view.
Credits
-------
|JetBrains|Travis CI|
|:-:|:-:|
|![IntelliJ IDEA](https://raw.githubusercontent.com/wiki/j-easy/easy-batch/images/logo/intellijidea-logo.png)|[Travis CI](https://travis-ci.com/images/logos/TravisCI-Full-Color.png)|
|Many thanks to [JetBrains](https://www.jetbrains.com/) for providing a free license of [IntelliJ IDEA](https://www.jetbrains.com/idea/) to kindly support the development of OSPOS|Many thanks to [Travis CI](https://travis-ci.org) for providing a free continuous integration service for open source projects.|
| <div align="center">JetBrains</div> | <div align="center">Travis CI</div> |
|--- | --- |
| <div align="center"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9c/IntelliJ_IDEA_Icon.svg" alt="IntelliJ IDEA Logo" height="50"></div> | <div align="center"><img src="https://secrethub.io/img/travis-ci.svg" alt="Travis CI Logo" height="50"></div> |
| Many thanks to [JetBrains](https://www.jetbrains.com/) for providing a free license of [IntelliJ IDEA](https://www.jetbrains.com/idea/) to kindly support the development of OSPOS. | Many thanks to [Travis CI](https://travis-ci.org) for providing a free continuous integration service for open source projects. |

24
SECURITY.md Normal file
View File

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

17
UPGRADE.md Normal file
View File

@@ -0,0 +1,17 @@
## How to Upgrade
1. Back up all your current database and OSPOS code.
2. Make sure you have a copy of `application/config/config.php` and `application/config/database.php`.
3. Remove all directories.
4. Install the new OSPOS.
5. (Only applicable if upgrading from pre `3.0.0`) Run the database upgrade scripts from `database` dir (check which ones you need according to the version you are upgrading from).
6. Take the saved old `config.php` and upgrade the new `config.php` with any additional changes you made in the old.
Take time to understand if new config rules require some changes (e.g. encryption keys).
7. Take the saved old `database.php` and change the new `database.php` to contain all the configurations you had in the old setup.
Please try not to use the old layout, use the new one and copy the content of the config variables.
8. Restore the content of the old `uploads` folder into `public/uploads` one.
9. Once the new code is in place, the database is manually updated, and the config files are in place, you're good to go.
10. The first login will take longer because OSPOS post `3.0.0` will upgrade automatically to the latest version.
11. If everything went according to plan, you'll be able to use your upgraded version of OSPOS.
12. Still have issues? Please check the [README](README.md) and [GitHub issues](https://github.com/opensourcepos/opensourcepos/issues).
Maybe a similar issue has already been reported, and you can find your answer there.

View File

@@ -1,16 +0,0 @@
How to Upgrade
-------------------------
1. Backup all your current database and OSPOS code
2. Make sure you have a copy of application/config/config.php and application/config/database.php
3. Remove all directories
4. Install the new OSPOS
5. (Only applicable if upgrading from pre 3.0.0) Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from)
6. Take the saved old config.php and upgrade the new config.php with any additional changes you made in the old.
Take time to understand if new config rules require some changes (e.g. encryption keys)
7. Take the saved old database.php and change the new database.php to contain all the configuration you had in the old setup.
Please try not to use the old layout, use the new one and just copy the content of the config variables
8. Restore the content of the old uploads/ folder into public/uploads/ one
9. Once the new code is in place, database is manually updated and config files are sorted you are good to start the new OSPOS
10. The first login will take longer because OSPOS post 3.0.0 will upgrade automatically to the latest version
11. Now you can use OSPOS
12. If any issue please check README, FAQ and GitHub issues as somebody else might have had your problem already before creating a new issue

View File

@@ -1,283 +0,0 @@
Version 3.3.3
-------------
+ PHP 7.4 support
+ Set PHP 7.2 to be the minimum level due to older version deprecations
+ Added email CC and BCC (see config/email.php)
+ Cash rounding to nearest 5 cents
+ Updated composer packages and js plugins
+ Improved security (CSRF protection)
+ Various small improvements and bug fixes
Version 3.3.2
-------------
+ Fixed `only_full_group_by` issue with MySQL/MariaDB
+ Fixed POS transaction return failure if items are deleted
+ Various bug fixes
Version 3.3.1
-------------
+ Various bug fixes (please disable `only_full_group_by` option from MySQL/MariaDB to avoid issues)
Version 3.3.0
-------------
+ New logo
+ Code Igniter 3.1.11 upgrade
+ PHP 7.3 support
+ Attributes feature (allows extensibility of Items replacing old custom fields)
+ India GST Tax support + various Tax support improvements
+ Cashup feature
+ Temporary items feature
+ Fixed Sales Discount
+ Supplier category feature
+ Improved Items import and csv file generation (to contain additional attributes)
+ Improved Docker installation with nginx reverse proxy using Let's encrypt TLS certificate
+ Database performance improvements
+ Added and Updated translations
+ Fixed various reports issues
+ Fixed rounding issues
+ Fixed CSRF issues
+ Fixed database upgrade script issues
+ Various bug fixes
Version 3.2.3
-------------
+ Further revert of CSRF change causing regression
+ Code Igniter 3.1.9 upgrade
Version 3.2.2
-------------
+ Revert CSRF change causing regression
Version 3.2.1
-------------
+ Support for GDPR
+ CSRF simplifications
+ Translation upgrades
+ Various bug fixes
Version 3.2.0
-------------
+ Code Igniter 3.1.8 upgrade
+ PHP 7.2 support (use OpenSSL and not MCrypt)
+ Automatic database upgrades from vs 3.0.0 at first login (no more sql scripts)
+ Home and (back) Office menu switch (top menu can be organised in two views)
+ Expenses feature
+ Quote, Work Order features
+ Improved Invoice support
+ Sale suspend, soft delete, complete as state not as different tables or hard delete
+ Restore deleted Sales
+ Improved Items Kits
+ Export tables all records and export to pdf
+ Table sticky header (headers visible during scrolling)
+ Allow duplicate barcodes (Config option)
+ Search suggestion formatting (Config option)
+ Define print and email checkboxes behaviour (Config option)
+ Edit customer from sale register
+ Added and Updated translations
+ Various Jquery plugins upgrade
+ Fixed permission issues (e.g. password change)
+ Fixed various reports issues and renamed Sales to Transactions
+ Various bug fixes (e.g. Tax, Rounding, Library circular dependency)
Version 3.1.1
-------------
+ Updated en-US and en-GB translations, better grammar and consistency
+ Fixed database migration issue with VAT tax included
+ Fixed database backup bug
+ Fixed Gift card error
+ Fixed database upgrade to 3.1.x script (now it's to 3.1.1 and there is no 3.1.0 anymore)
+ Fixed old database upgrade scripts for people upgrading from 2.x versions
+ Fixed .htaccess file in opensourcepos root dir (it was not forwarding to public subdir)
+ Fixed few jQuery 2.0 upgrade issues
Version 3.1.0
-------------
+ MySQL 5.7 and PHP 7.x support
+ Advanced Tax support with customer tax categories and etc,
+ Better HORECA use case support with Dinner Table sale tagging
+ Customer Rewards support
+ Added quote support and better invoice support
+ Added integration with Mailchimp to connect Customer list with Mailchimp list
+ Prevent inserting two customers with same email address
+ Customer total spending and stats
+ Added reCAPTCHA to Login page to increase protection from Brute Force attacks
+ Added due payment for credit sale support
+ Gifcard numbering with two options: Series and Random
+ Extended Item Kits functionality
+ Employee allowed to change their own password clicking their name on top bar
+ Cash rounding support, extended decimals
+ Reworked Item Pictures and file name and storing
+ Financial year start date and selection from date range pickers
+ Date time range filters can be date & time or date only
+ Added two new Bootswatch themes
+ Receipts font size support
+ Fix automatically people's name first capital letter, emails in lower case only
+ Fixes to Receiving
+ Various amendments to database script updates from older versions
+ Added dotenv support
+ Updates to language translations (split English to American English and British English)
+ Various Dockers support improvements
+ Minor bugfixes
Version 3.0.2
-------------
+ Fixed error when performing scans multiple times in a row
+ Fixed summary reports
+ Protect Employee privacy printing just the first letter of the family name
+ Updates to language translations
+ Various Dockers support improvements
+ Minor bugfixes
Version 3.0.1
-------------
+ *CodeIgniter 3.1.2 Upgrade*
+ *Substantial database performance improvements*
+ *Improved security: email and sms passwords encryption, removed phpinfo.php*
+ *Set code to be production and not development in index.php*
+ *Reports improvements, fixed table sorting, tax calculation and made profit to be net profit*
+ Better Apache 2.4 support in .htaccess
+ Updates to language translations
+ Fixed excel template download links
+ Fixed employee name in Sale receipt and invoice reprinting
+ Fixed 2.3.2_to_2.3.3.sql database upgrade script mistake
+ Fixed phppos to ospos database migration script
+ Minor bugfixes and some general code clean up
Version 3.0.0
-------------
+ *CodeIgniter 3.1 Upgrade*
+ Major UI overhaul based on *Boostrap 3.0 and Bootswatch Themes*
+ New tabular views with advanced filtering using *Bootstrap Tables*
+ New graphical reports with no more Adobe flash dependency
+ Redesign of all modal dialogs
+ Updated Sales register with simplified payment flow
+ *Improved security: MySQL injection, XSS, CSFR, BCrypt password encryption, safer project layout*
+ Support for TXT messaging (interfacing to specific support required)
+ Email configuration
+ Improved Localisation support
+ Improved Store Config page
+ Docker container ready for Cloud installation
+ Composer PHP support
+ More languages and integration with Weblate for continuous translation
+ About 280 closed issues under 3.0.0 release label, too many to produce a meaningful list
+ Various code cleanup, refactoring, optimisation and etc.
Version 2.4.0
-------------
+ *CodeIgniter 3.0.5* Upgrade (please read UPGRADE.txt)
+ Fix for spurious logouts
+ Apache .htaccess mod_expiry caching and security optimizations
+ Bulk item edit fixes (category, tax and supplier fields)
+ Remove f-key shortcuts used for module navigation
+ Allow to use custom invoice numbers when suspending sale
+ PHP7 fixes
+ Specific warnings to distinguish between reorder level and out of stock situation in sales
+ Fix malware detection issues due to usage of base64 encoding for storing session variables
+ Improve language generation scripts (use PHP builtin functionality)
+ Add extra buttons for navigation and printing to receipt and invoice
+ Improve print layout for invoices
+ Make layout consistent for items between receipt and invoice templates
+ Minor bugfixes
Version 2.3.4
-------------
+ Migration script fixes
+ Improved continuous integration setup
+ More integration tests
+ Virtualized container setup (docker install)
+ Live clock functionality + favicon
+ Improved PHP 7 compatbility
+ Added de_CH (German) as language
+ Minor code cleanup
+ Removal of annoying backup prompt on logout
Version 2.3.3
-------------
+ Item kit fixes (search, list, ..)
+ Add datepicker widgets in sale/receiving edit forms
+ Add date filter in items module
+ Add barcode generation logic for EAN8, EAN13
+ Add barcode validation + fallback logic for EAN8, EAN13
+ New config option to generate barcodes if item_number empty
+ Add cost + count to inventory reports
+ Giftcard fixes
+ Refactor sales overview (added date filtering + search options)
+ Better locale config support
+ Improve php compatibility
+ Fix invoice numbering bug on suspend
+ Add configurable locale-dependent dateformat
+ Add grunt-cache-breaker plugin
+ Suspend button appeaers before adding a payment
+ Searching of deleted items, filtering part is removed
+ Remove infamous "0" after leaving sale or receiving comments empty
+ Add SQL script to clean zeroes in sales/receivings comments
+ Numerous other bug fixes
Version 2.3.2
-------------
+ Nominatim (OpenStreetMap) customer address autocompletion
+ Sale invoice templating
+ Configurable barcode generation for items
+ Stock location filtering in detailed sales and receivings reports
+ Giftcards bugfixes
+ Proper pagination support for most modules
+ Language updates
+ Bugfix for decimal taxrates
+ Add gender + company name attributes to customer
+ Stock location config screen refactor
+ Basic travis-ci + phantomJs setup
+ Database backup on admin logout
+ Modifiable item thumbnails
+ Email invoice PDF generation using DomPDF
+ Modifiable company logo
+ jQuery upgrade (1.2 -> 1.8.3)
+ Javascript minification (using grunt)
+ Numerous bugfixes
Version 2.3.1
-------------
+ Extra report permissions (this includes a refactoring of the database model - new grants table)
+ Tax inclusive/exclusive pricing
+ Receivings amount multiplication (can be configured in items section)
+ Customizable sale and receiving numbering
+ Giftcard improvements
+ Fix item import through csv
+ Bug fixes for reports
Version 2.3.0
-------------
+ Support for multiple stock locations
Version 2.2.2
-------------
+ French language added
+ Thai language added
+ Upgrade to CodeIgniter 2.2 (contains several security fixes)
+ Database types for amounts all changed to decimal types (this will fix rounding errors in the sales and receivings reports) the rest of the application
+ Fix duplicated session cookies in http headers (this broke the application when running on nginx)
Version 2.1.1
---------------
+ Barcodes on the order receipt weren't generated correctly
+ Sales edit screen for detailed sales reports is now available with thickbox as in the rest of the application
+ Indonesian language files updated (Oktafianus)
+ Default language set to 'en' in config.php
+ Fix some css bugs in suspended sales section
+ Default cookie sess_time_expire set to 86400 (24h)
Version 2.1.0
-------------
+ Various upgrades, too numerous to list here.
+ Removed dependancy on ofc upload library due to vulnerability found.
Version 2.0.2
-------------
+ Fixed multiple giftcards issue per Bug #4 reported on Sourceforge where a
second giftcard added would have its balance set to $0 even if the sale did
not require the total of the second giftcard to pay the remaining amount due.
+ Small code cleanup
Version 2.1.0
-------------
* Upgrade to CodeIgniter 2.1.0
* Various small improvements

View File

@@ -8,7 +8,7 @@
|
|
*/
$config['application_version'] = '3.3.3';
$config['application_version'] = '3.3.7';
/*
|--------------------------------------------------------------------------
@@ -65,7 +65,8 @@ $config['db_log_enabled'] = FALSE;
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_ENV['FORCE_HTTPS']) && $_ENV['FORCE_HTTPS'] == 'true')) ? 'https' : 'http';
$config['https_on'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_ENV['FORCE_HTTPS']) && $_ENV['FORCE_HTTPS'] == 'true');
$config['base_url'] = $config['https_on'] ? 'https' : 'http';
$config['base_url'] .= '://' . ((isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : 'localhost') ;
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
@@ -437,7 +438,7 @@ $config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on';
$config['cookie_secure'] = $config['https_on'];
$config['cookie_httponly'] = TRUE;
/*

View File

@@ -110,6 +110,7 @@ define('ITEM', 0);
define('ITEM_KIT', 1);
define('ITEM_AMOUNT_ENTRY', 2);
define('ITEM_TEMP', 3);
define('NEW_ITEM', -1);
define('PRINT_ALL', 0);
define('PRINT_PRICED', 1);
@@ -144,3 +145,13 @@ define('SALE_TYPE_RETURN', 4);
define('PERCENT', 0);
define('FIXED', 1);
define('PRICE_MODE_STANDARD', 0);
define('PRICE_MODE_KIT', 1);
define('PAYMENT_TYPE_UNASSIGNED', '--');
define('CASH_ADJUSTMENT_TRUE', 1);
define('CASH_ADJUSTMENT_FALSE', 0);
define('CASH_MODE_TRUE', 1);
define('CASH_MODE_FALSE', 0);

View File

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

View File

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

View File

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

View File

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

View File

@@ -100,6 +100,7 @@ class Item_kits extends Secure_Controller
$info->price_option = '0';
$info->print_option = PRINT_ALL;
$info->kit_item_id = 0;
$info->item_number = '';
}
foreach(get_object_vars($info) as $property => $value)
{
@@ -131,6 +132,7 @@ class Item_kits extends Secure_Controller
{
$item_kit_data = array(
'name' => $this->input->post('name'),
'item_kit_number' => $this->input->post('item_kit_number'),
'item_id' => $this->input->post('kit_item_id'),
'kit_discount' => $this->input->post('kit_discount'),
'kit_discount_type' => $this->input->post('kit_discount_type') == NULL ? PERCENT : $this->input->post('kit_discount_type'),
@@ -141,7 +143,6 @@ class Item_kits extends Secure_Controller
if($this->Item_kit->save($item_kit_data, $item_kit_id))
{
$success = TRUE;
$new_item = FALSE;
//New item kit
if($item_kit_id == -1)
@@ -205,6 +206,12 @@ class Item_kits extends Secure_Controller
'message' => $this->lang->line('item_kits_cannot_be_deleted')));
}
}
public function check_item_number()
{
$exists = $this->Item_kit->item_number_exists($this->input->post('item_kit_number'), $this->input->post('item_kit_id'));
echo !$exists ? 'true' : 'false';
}
public function generate_barcodes($item_kit_ids)
{

View File

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,7 @@ class Login extends CI_Controller
public function index()
{
$this->load->library('migration');
if($this->Employee->is_logged_in())
{
redirect('home');
@@ -15,12 +16,6 @@ class Login extends CI_Controller
$this->form_validation->set_rules('username', 'lang:login_username', 'required|callback_login_check');
if($this->config->item('gcaptcha_enable'))
{
$this->form_validation->set_rules('g-recaptcha-response', 'lang:login_gcaptcha', 'required|callback_gcaptcha_check');
}
if($this->form_validation->run() == FALSE)
{
$this->load->view('login');
@@ -34,22 +29,22 @@ class Login extends CI_Controller
public function login_check($username)
{
$password = $this->input->post('password');
if(!$this->_installation_check())
if(!$this->installation_check())
{
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_installation'));
return FALSE;
}
if (!$this->migration->is_latest())
if(!$this->migration->is_latest())
{
set_time_limit(3600);
// trigger any required upgrade before starting the application
$this->migration->latest();
}
$password = $this->input->post('password');
if(!$this->Employee->login($username, $password))
{
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_username_and_password'));
@@ -57,33 +52,54 @@ class Login extends CI_Controller
return FALSE;
}
return TRUE;
}
public function gcaptcha_check($recaptchaResponse)
{
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $this->config->item('gcaptcha_secret_key') . '&response=' . $recaptchaResponse . '&remoteip=' . $this->input->ip_address();
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
$status = json_decode($result, TRUE);
if(empty($status['success']))
if($this->config->item('gcaptcha_enable'))
{
$this->form_validation->set_message('gcaptcha_check', $this->lang->line('login_invalid_gcaptcha'));
$g_recaptcha_response = $this->input->post('g-recaptcha-response');
return FALSE;
if(!$this->gcaptcha_check($g_recaptcha_response))
{
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_gcaptcha'));
return FALSE;
}
}
return TRUE;
}
private function _installation_check()
private function gcaptcha_check($response)
{
if(!empty($response))
{
$check = array(
'secret' => $this->config->item('gcaptcha_secret_key'),
'response' => $response,
'remoteip' => $this->input->ip_address()
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($check));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$status = json_decode($result, TRUE);
if(!empty($status['success']))
{
return TRUE;
}
}
return FALSE;
}
private function installation_check()
{
// get PHP extensions and check that the required ones are installed
$extensions = implode(', ', get_loaded_extensions());

View File

@@ -37,11 +37,11 @@ class Messages extends Secure_Controller
if($response)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('messages_successfully_sent') . ' ' . $phone));
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('messages_successfully_sent') . ' ' . $this->xss_clean($phone)));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('messages_unsuccessfully_sent') . ' ' . $phone));
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('messages_unsuccessfully_sent') . ' ' . $this->xss_clean($phone)));
}
}
@@ -54,11 +54,11 @@ class Messages extends Secure_Controller
if($response)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('messages_successfully_sent') . ' ' . $phone, 'person_id' => $this->xss_clean($person_id)));
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('messages_successfully_sent') . ' ' . $this->xss_clean($phone), 'person_id' => $this->xss_clean($person_id)));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('messages_unsuccessfully_sent') . ' ' . $phone, 'person_id' => -1));
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('messages_unsuccessfully_sent') . ' ' . $this->xss_clean($phone), 'person_id' => -1));
}
}
}

View File

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

View File

@@ -230,6 +230,8 @@ class Reports extends Secure_Controller
{
$tabular_data[] = $this->xss_clean(array(
'item_name' => $row['name'],
'category' => $row['category'],
'cost_price' => $row['cost_price'],
'unit_price' => $row['unit_price'],
'quantity' => to_quantity_decimals($row['quantity_purchased']),
'subtotal' => to_currency($row['subtotal']),
@@ -303,6 +305,7 @@ class Reports extends Secure_Controller
foreach($report_data as $row)
{
$tabular_data[] = $this->xss_clean(array(
'tax_name' => $row['name'],
'tax_percent' => $row['percent'],
'report_count' => $row['count'],
'subtotal' => to_currency($row['subtotal']),
@@ -957,7 +960,7 @@ class Reports extends Secure_Controller
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => to_date(strtotime($row['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'subtotal' => to_currency($row['subtotal']),
@@ -1069,7 +1072,7 @@ class Reports extends Secure_Controller
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => to_date(strtotime($row['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'customer_name' => $row['customer_name'],
'subtotal' => to_currency($row['subtotal']),
@@ -1177,7 +1180,7 @@ class Reports extends Secure_Controller
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => to_date(strtotime($row['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'customer_name' => $row['customer_name'],
@@ -1255,7 +1258,7 @@ class Reports extends Secure_Controller
$summary_data = $this->xss_clean(array(
'sale_id' => $report_data['sale_id'],
'sale_date' => to_date(strtotime($report_data['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'quantity' => to_quantity_decimals($report_data['items_purchased']),
'employee_name' => $report_data['employee_name'],
'customer_name' => $report_data['customer_name'],
@@ -1306,7 +1309,7 @@ class Reports extends Secure_Controller
$tabular_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => to_date(strtotime($row['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'name' => $row['name'],
'category' => $row['category'],
'item_number' => $row['item_number'],
@@ -1390,7 +1393,7 @@ class Reports extends Secure_Controller
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => to_date(strtotime($row['sale_date'])),
'sale_time' => to_datetime(strtotime($row['sale_time'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'customer_name' => $row['customer_name'],
@@ -1464,7 +1467,7 @@ class Reports extends Secure_Controller
$summary_data = $this->xss_clean(array(
'receiving_id' => $report_data['receiving_id'],
'receiving_date' => to_date(strtotime($report_data['receiving_date'])),
'receiving_time' => to_datetime(strtotime($row['receiving_time'])),
'quantity' => to_quantity_decimals($report_data['items_purchased']),
'employee_name' => $report_data['employee_name'],
'supplier_name' => $report_data['supplier_name'],
@@ -1506,7 +1509,7 @@ class Reports extends Secure_Controller
{
$summary_data[] = $this->xss_clean(array(
'id' => $row['receiving_id'],
'receiving_date' => to_date(strtotime($row['receiving_date'])),
'receiving_time' => to_datetime(strtotime($row['receiving_time'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'supplier_name' => $row['supplier_name'],

View File

@@ -2,10 +2,6 @@
require_once("Secure_Controller.php");
define('PRICE_MODE_STANDARD', 0);
define('PRICE_MODE_KIT', 1);
define('PAYMENT_TYPE_UNASSIGNED', '--');
class Sales extends Secure_Controller
{
public function __construct()
@@ -81,7 +77,7 @@ class Sales extends Secure_Controller
$sales = $this->Sale->search($search, $filters, $limit, $offset, $sort, $order);
$total_rows = $this->Sale->get_found_rows($search, $filters);
$payments = $this->Sale->get_payments_summary($search, $filters);
$payment_summary = $this->xss_clean(get_sales_manage_payments_summary($payments, $sales));
$payment_summary = $this->xss_clean(get_sales_manage_payments_summary($payments));
$data_rows = array();
foreach($sales->result() as $sale)
@@ -263,7 +259,7 @@ class Sales extends Secure_Controller
$data = array();
$payment_type = $this->input->post('payment_type');
if($payment_type != $this->lang->line('sales_giftcard'))
if($payment_type !== $this->lang->line('sales_giftcard'))
{
$this->form_validation->set_rules('amount_tendered', 'lang:sales_amount_tendered', 'trim|required|callback_numeric');
}
@@ -274,7 +270,7 @@ class Sales extends Secure_Controller
if($this->form_validation->run() == FALSE)
{
if($payment_type == $this->lang->line('sales_giftcard'))
if($payment_type === $this->lang->line('sales_giftcard'))
{
$data['error'] = $this->lang->line('sales_must_enter_numeric_giftcard');
}
@@ -285,7 +281,7 @@ class Sales extends Secure_Controller
}
else
{
if($payment_type == $this->lang->line('sales_giftcard'))
if($payment_type === $this->lang->line('sales_giftcard'))
{
// in case of giftcard payment the register input amount_tendered becomes the giftcard number
$giftcard_num = $this->input->post('amount_tendered');
@@ -316,7 +312,7 @@ class Sales extends Secure_Controller
$this->sale_lib->add_payment($payment_type, $amount_tendered);
}
}
elseif($payment_type == $this->lang->line('sales_rewards'))
elseif($payment_type === $this->lang->line('sales_rewards'))
{
$customer_id = $this->sale_lib->get_customer();
$package_id = $this->Customer->get_info($customer_id)->package_id;
@@ -348,6 +344,20 @@ class Sales extends Secure_Controller
}
}
}
elseif($payment_type === $this->lang->line('sales_cash'))
{
$amount_due = $this->sale_lib->get_total();
$sales_total = $this->sale_lib->get_total(FALSE);
$amount_tendered = $this->input->post('amount_tendered');
$this->sale_lib->add_payment($payment_type, $amount_tendered);
$cash_adjustment_amount = $amount_due - $sales_total;
if($cash_adjustment_amount <> 0)
{
$this->session->set_userdata('cash_mode', CASH_MODE_TRUE);
$this->sale_lib->add_payment($this->lang->line('sales_cash_adjustment'), $cash_adjustment_amount, CASH_ADJUSTMENT_TRUE);
}
}
else
{
$amount_tendered = $this->input->post('amount_tendered');
@@ -401,13 +411,21 @@ class Sales extends Secure_Controller
{
// Add kit item to order if one is assigned
$pieces = explode(' ', $item_id_or_number_or_item_kit_or_receipt);
$item_kit_id = $pieces[1];
$item_kit_id = (count($pieces) > 1) ? $pieces[1] : $item_id_or_number_or_item_kit_or_receipt;
$item_kit_info = $this->Item_kit->get_info($item_kit_id);
$kit_item_id = $item_kit_info->kit_item_id;
$kit_price_option = $item_kit_info->price_option;
$kit_print_option = $item_kit_info->print_option; // 0-all, 1-priced, 2-kit-only
if($item_kit_info->kit_discount != 0 && $item_kit_info->kit_discount > $discount)
if($discount_type == $item_kit_info->kit_discount_type)
{
if($item_kit_info->kit_discount > $discount)
{
$discount = $item_kit_info->kit_discount;
}
}
else
{
$discount = $item_kit_info->kit_discount;
$discount_type = $item_kit_info->kit_discount_type;
@@ -417,7 +435,7 @@ class Sales extends Secure_Controller
if(!empty($kit_item_id))
{
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_STANDARD, NULL, NULL, $price))
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_KIT, $kit_price_option, $kit_print_option, $price))
{
$data['error'] = $this->lang->line('sales_unable_to_add_item');
}
@@ -465,8 +483,8 @@ class Sales extends Secure_Controller
$serialnumber = $this->input->post('serialnumber');
$price = parse_decimals($this->input->post('price'));
$quantity = parse_quantity($this->input->post('quantity'));
$discount = parse_decimals($this->input->post('discount'));
$discount_type = $this->input->post('discount_type');
$discount = $discount_type ? parse_quantity($this->input->post('discount')) : parse_decimals($this->input->post('discount'));
$item_location = $this->input->post('location');
$discounted_total = $this->input->post('discounted_total') != '' ? $this->input->post('discounted_total') : NULL;
@@ -571,22 +589,22 @@ class Sales extends Secure_Controller
$data['payments_total'] = $totals['payment_total'];
$data['payments_cover_total'] = $totals['payments_cover_total'];
$data['cash_rounding'] = $this->session->userdata('cash_rounding');
$data['cash_mode'] = $this->session->userdata('cash_mode');
$data['prediscount_subtotal'] = $totals['prediscount_subtotal'];
$data['cash_total'] = $totals['cash_total'];
$data['non_cash_total'] = $totals['total'];
$data['cash_amount_due'] = $totals['cash_amount_due'];
$data['non_cash_amount_due'] = $totals['amount_due'];
if($data['cash_rounding'])
if($data['cash_mode'])
{
$data['total'] = $totals['cash_total'];
$data['amount_due'] = $totals['cash_amount_due'];
}
else
{
$data['total'] = $totals['total'];
$data['amount_due'] = $totals['amount_due'];
}
$data['amount_change'] = $data['amount_due'] * -1;
if($data['amount_change'] > 0)
@@ -609,7 +627,7 @@ class Sales extends Secure_Controller
if($this->sale_lib->is_invoice_mode())
{
$invoice_format = $this->config->item('sales_invoice_format');
// generate final invoice number (if using the invoice in sales by receipt mode then the invoice number can be manually entered or altered in some way
// generate final invoice numbr (if using the invoice in sales by receipt mode then the invoice number can be manually entered or altered in some way
if(!empty($invoice_format) && $invoice_number == NULL)
{
// The user can retain the default encoded format or can manually override it. It still passes through the rendering step.
@@ -787,6 +805,7 @@ class Sales extends Secure_Controller
// generate email attachment: invoice in pdf format
$html = $this->load->view("sales/" . $type . "_email", $sale_data, TRUE);
// load pdf helper
$this->load->helper(array('dompdf', 'file'));
$filename = sys_get_temp_dir() . '/' . $this->lang->line("sales_" . $type) . '-' . str_replace('/', '-', $number) . '.pdf';
@@ -903,7 +922,9 @@ class Sales extends Secure_Controller
private function _load_sale_data($sale_id)
{
$this->sale_lib->clear_all();
$this->sale_lib->reset_cash_flags();
$cash_rounding = $this->sale_lib->reset_cash_rounding();
$data['cash_rounding'] = $cash_rounding;
$sale_info = $this->Sale->get_info($sale_id)->row_array();
$this->sale_lib->copy_entire_sale($sale_id);
$data = array();
@@ -922,18 +943,18 @@ class Sales extends Secure_Controller
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
$totals = $this->sale_lib->get_totals($tax_details[0]);
$this->session->set_userdata('cash_adjustment_amount', $totals['cash_adjustment_amount']);
$data['subtotal'] = $totals['subtotal'];
$data['total'] = $totals['total'];
$data['payments_total'] = $totals['payment_total'];
$data['payments_cover_total'] = $totals['payments_cover_total'];
$data['cash_rounding'] = $this->session->userdata('cash_rounding');
$data['cash_mode'] = $this->session->userdata('cash_mode');
$data['prediscount_subtotal'] = $totals['prediscount_subtotal'];
$data['cash_total'] = $totals['cash_total'];
$data['non_cash_total'] = $totals['total'];
$data['cash_amount_due'] = $totals['cash_amount_due'];
$data['non_cash_amount_due'] = $totals['amount_due'];
if($this->session->userdata('cash_rounding'))
if($data['cash_mode'] && ($data['selected_payment_type'] === $this->lang->line('sales_cash') || $data['payments_total'] > 0))
{
$data['total'] = $totals['cash_total'];
$data['amount_due'] = $totals['cash_amount_due'];
@@ -943,6 +964,7 @@ class Sales extends Secure_Controller
$data['total'] = $totals['total'];
$data['amount_due'] = $totals['amount_due'];
}
$data['amount_change'] = $data['amount_due'] * -1;
$employee_info = $this->Employee->get_info($this->sale_lib->get_employee());
@@ -1013,6 +1035,11 @@ class Sales extends Secure_Controller
$sale_id = -1;
$this->session->set_userdata('sale_id', -1);
}
$cash_rounding = $this->sale_lib->reset_cash_rounding();
// cash_rounding indicates only that the site is configured for cash rounding
$data['cash_rounding'] = $cash_rounding;
$data['cart'] = $this->sale_lib->get_cart();
$customer_info = $this->_load_customer_data($this->sale_lib->get_customer(), $data, TRUE);
@@ -1027,22 +1054,29 @@ class Sales extends Secure_Controller
$data['taxes'] = $tax_details[0];
$data['discount'] = $this->sale_lib->get_discount();
$data['payments'] = $this->sale_lib->get_payments();
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
$totals = $this->sale_lib->get_totals($tax_details[0]);
$data['item_count'] = $totals['item_count'];
$data['total_units'] = $totals['total_units'];
$data['subtotal'] = $totals['subtotal'];
$data['total'] = $totals['total'];
$data['payments_total'] = $totals['payment_total'];
$data['payments_cover_total'] = $totals['payments_cover_total'];
$data['cash_rounding'] = $this->session->userdata('cash_rounding');
// cash_mode indicates whether this sale is going to be processed using cash_rounding
$cash_mode = $this->session->userdata('cash_mode');
$data['cash_mode'] = $cash_mode;
$data['prediscount_subtotal'] = $totals['prediscount_subtotal'];
$data['cash_total'] = $totals['cash_total'];
$data['non_cash_total'] = $totals['total'];
$data['cash_amount_due'] = $totals['cash_amount_due'];
$data['non_cash_amount_due'] = $totals['amount_due'];
if($data['cash_rounding'])
$data['selected_payment_type'] = $this->sale_lib->get_payment_type();
if($data['cash_mode'] && ($data['selected_payment_type'] == $this->lang->line('sales_cash') || $data['payments_total'] > 0))
{
$data['total'] = $totals['cash_total'];
$data['amount_due'] = $totals['cash_amount_due'];
@@ -1052,11 +1086,12 @@ class Sales extends Secure_Controller
$data['total'] = $totals['total'];
$data['amount_due'] = $totals['amount_due'];
}
$data['amount_change'] = $data['amount_due'] * -1;
$data['comment'] = $this->sale_lib->get_comment();
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
$data['selected_payment_type'] = $this->sale_lib->get_payment_type();
if($customer_info && $this->config->item('customer_reward_enable') == TRUE)
{
$data['payment_options'] = $this->Sale->get_payment_options(TRUE, TRUE);
@@ -1069,14 +1104,15 @@ class Sales extends Secure_Controller
$data['items_module_allowed'] = $this->Employee->has_grant('items', $this->Employee->get_logged_in_employee_info()->person_id);
$data['change_price'] = $this->Employee->has_grant('sales_change_price', $this->Employee->get_logged_in_employee_info()->person_id);
$invoice_number = $this->sale_lib->get_invoice_number();
$temp_invoice_number = $this->sale_lib->get_invoice_number();
$invoice_format = $this->config->item('sales_invoice_format');
if ($this->sale_lib->get_invoice_number() == NULL)
if ($temp_invoice_number == NULL || $temp_invoice_number == '')
{
$invoice_number = $this->config->item('sales_invoice_format');
$temp_invoice_number = $this->token_lib->render($invoice_format, array(), FALSE);
}
$data['invoice_number'] = $invoice_number;
$data['invoice_number'] = $temp_invoice_number;
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
@@ -1143,8 +1179,8 @@ class Sales extends Secure_Controller
$data['selected_employee_id'] = $sale_info['employee_id'];
$data['selected_employee_name'] = $this->xss_clean($employee_info->first_name . ' ' . $employee_info->last_name);
$data['sale_info'] = $sale_info;
$balance_due = $sale_info['amount_due'] - $sale_info['amount_tendered'];
if($balance_due < 0)
$balance_due = round($sale_info['amount_due'] - $sale_info['amount_tendered'] + $sale_info['cash_refund'], totals_decimals(), PHP_ROUND_HALF_UP);
if(!$this->sale_lib->reset_cash_rounding() && $balance_due < 0)
{
$balance_due = 0;
}
@@ -1165,12 +1201,19 @@ class Sales extends Secure_Controller
$data['balance_due'] = $balance_due != 0;
// don't allow gift card to be a payment option in a sale transaction edit because it's a complex change
$new_payment_options = $this->xss_clean($this->Sale->get_payment_options(FALSE));
$data['payment_options'] = $new_payment_options;
$payment_options = $this->Sale->get_payment_options(FALSE);
if($this->sale_lib->reset_cash_rounding())
{
$payment_options[$this->lang->line('sales_cash_adjustment')] = $this->lang->line('sales_cash_adjustment');
}
$data['payment_options'] = $this->xss_clean($payment_options);
// Set up a slightly modified list of payment types for new payment entry
$new_payment_options["--"] = $this->lang->line('common_none_selected_text');
$data['new_payment_options'] = $new_payment_options;
$payment_options["--"] = $this->lang->line('common_none_selected_text');
$data['new_payment_options'] = $this->xss_clean($payment_options);
$this->load->view('sales/form', $data);
}
@@ -1248,6 +1291,7 @@ class Sales extends Secure_Controller
// In order to maintain tradition the only element that can change on prior payments is the payment type
$payments = array();
$amount_tendered = 0;
$number_of_payments = $this->input->post('number_of_payments');
for($i = 0; $i < $number_of_payments; ++$i)
{
@@ -1257,6 +1301,20 @@ class Sales extends Secure_Controller
$refund_type = $this->input->post('refund_type_' . $i);
$cash_refund = $this->input->post('refund_amount_' . $i);
if($payment_type == $this->lang->line('sales_cash_adjustment'))
{
$cash_adjustment = CASH_ADJUSTMENT_TRUE;
}
else
{
$cash_adjustment = CASH_ADJUSTMENT_FALSE;
}
if(!$cash_adjustment)
{
$amount_tendered += $payment_amount - $cash_refund;
}
// if the refund is not cash ...
if(empty(strstr($refund_type, $this->lang->line('sales_cash'))))
{
@@ -1270,11 +1328,8 @@ class Sales extends Secure_Controller
}
}
// To maintain tradition we will also delete any payments with 0 amount
// assuming these are mistakes introduced at sale time.
// This is now done in models/Sale.php
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => $cash_refund, 'employee_id' => $employee_id);
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => $cash_refund, 'cash_adjustment' => $cash_adjustment, 'employee_id' => $employee_id);
}
$payment_id = -1;
@@ -1283,7 +1338,24 @@ class Sales extends Secure_Controller
if($payment_type != PAYMENT_TYPE_UNASSIGNED && $payment_amount <> 0)
{
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => 0.00, 'employee_id' => $employee_id);
$cash_refund = 0;
if($payment_type == $this->lang->line('sales_cash_adjustment'))
{
$cash_adjustment = CASH_ADJUSTMENT_TRUE;
}
else
{
$cash_adjustment = CASH_ADJUSTMENT_FALSE;
$amount_tendered += $payment_amount;
$sale_info = $this->Sale->get_info($sale_id)->row_array();
if($amount_tendered > $sale_info['amount_due'])
{
$cash_refund = $amount_tendered - $sale_info['amount_due'];
}
}
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => $cash_refund, 'cash_adjustment' => $cash_adjustment, 'employee_id' => $employee_id);
}
$this->Inventory->update('POS '.$sale_id, ['trans_date' => $sale_time]);
@@ -1412,6 +1484,11 @@ class Sales extends Secure_Controller
$this->_reload();
}
public function sales_keyboard_help()
{
$this->load->view('sales/help');
}
public function check_invoice_number()
{

View File

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

View File

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

View File

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

View File

@@ -42,6 +42,7 @@ function transform_headers($array, $readonly = FALSE, $editable = TRUE)
$result[] = array('field' => key($element),
'title' => current($element),
'switchable' => isset($element['switchable']) ? $element['switchable'] : !preg_match('(^$|&nbsp)', current($element)),
'escape' => !preg_match("/(edit|phone_number|email|messages|item_pic)/", key($element)) && !(isset($element['escape']) && !$element['escape']),
'sortable' => isset($element['sortable']) ? $element['sortable'] : current($element) != '',
'checkbox' => isset($element['checkbox']) ? $element['checkbox'] : FALSE,
'class' => isset($element['checkbox']) || preg_match('(^$|&nbsp)', current($element)) ? 'print_hide' : '',
@@ -72,10 +73,10 @@ function get_sales_manage_table_headers()
if($CI->config->item('invoice_enable') == TRUE)
{
$headers[] = array('invoice_number' => $CI->lang->line('sales_invoice_number'));
$headers[] = array('invoice' => '&nbsp', 'sortable' => FALSE);
$headers[] = array('invoice' => '&nbsp', 'sortable' => FALSE, 'escape' => FALSE);
}
$headers[] = array('receipt' => '&nbsp', 'sortable' => FALSE);
$headers[] = array('receipt' => '&nbsp', 'sortable' => FALSE, 'escape' => FALSE);
return transform_headers($headers);
}
@@ -137,37 +138,30 @@ function get_sale_data_last_row($sales)
return array(
'sale_id' => '-',
'sale_time' => '<b>'.$CI->lang->line('sales_total').'</b>',
'amount_due' => '<b>'.to_currency($sum_amount_due).'</b>',
'amount_tendered' => '<b>'. to_currency($sum_amount_tendered).'</b>',
'change_due' => '<b>'.to_currency($sum_change_due).'</b>'
'sale_time' => $CI->lang->line('sales_total'),
'amount_due' => to_currency($sum_amount_due),
'amount_tendered' => to_currency($sum_amount_tendered),
'change_due' => to_currency($sum_change_due)
);
}
/*
Get the sales payments summary
*/
function get_sales_manage_payments_summary($payments, $sales)
function get_sales_manage_payments_summary($payments)
{
$CI =& get_instance();
$table = '<div id="report_summary">';
$total = 0;
foreach($payments as $key=>$payment)
{
$amount = $payment['payment_amount'];
// WARNING: the strong assumption here is that if a change is due it was a cash transaction always
// therefore we remove from the total cash amount any change due
if($payment['payment_type'] == $CI->lang->line('sales_cash'))
{
foreach($sales->result_array() as $key=>$sale)
{
$amount -= $sale['change_due'];
}
}
$total = bcadd($total, $amount);
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency($amount) . '</div>';
}
$table .= '<div class="summary_row">' . $CI->lang->line('sales_total') . ': ' . to_currency($total) . '</div>';
$table .= '</div>';
return $table;
@@ -357,8 +351,8 @@ function get_items_manage_table_headers()
$headers[] = array($definition_id => $definition_name, 'sortable' => FALSE);
}
$headers[] = array('inventory' => '');
$headers[] = array('stock' => '');
$headers[] = array('inventory' => '', 'escape' => FALSE);
$headers[] = array('stock' => '', 'escape' => FALSE);
return transform_headers($headers);
}
@@ -503,6 +497,7 @@ function get_item_kits_manage_table_headers()
$headers = array(
array('item_kit_id' => $CI->lang->line('item_kits_kit')),
array('item_kit_number' => $CI->lang->line('item_kits_item_kit_number')),
array('name' => $CI->lang->line('item_kits_name')),
array('description' => $CI->lang->line('item_kits_description')),
array('total_cost_price' => $CI->lang->line('items_cost_price'), 'sortable' => FALSE),
@@ -523,6 +518,7 @@ function get_item_kit_data_row($item_kit)
return array (
'item_kit_id' => $item_kit->item_kit_id,
'item_kit_number' => $item_kit->item_kit_number,
'name' => $item_kit->name,
'description' => $item_kit->description,
'total_cost_price' => to_currency($item_kit->total_cost_price),
@@ -722,9 +718,9 @@ function get_expenses_data_last_row($expense)
return array(
'expense_id' => '-',
'date' => '<b>'.$CI->lang->line('sales_total').'</b>',
'amount' => '<b>'. to_currency($sum_amount_expense).'</b>',
'tax_amount' => '<b>'. to_currency($sum_tax_amount_expense).'</b>'
'date' => $CI->lang->line('sales_total'),
'amount' => to_currency($sum_amount_expense),
'tax_amount' => to_currency($sum_tax_amount_expense)
);
}

View File

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

View File

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

View File

@@ -3,23 +3,31 @@
$lang["cashups_amount"] = "قيمة المبلغ";
$lang["cashups_amount_number"] = "قيمة المبلغ يجب ان تتكون من ارقام";
$lang["cashups_amount_required"] = "قيمة المبلغ هي خانة إجبارية.";
$lang["cashups_cancel_cashups"] = "";
$lang["cashups_cancel_cashups_enter"] = "";
$lang["cashups_cannot_be_deleted"] = "لا يمكن حذف الصندوق النقدي";
$lang["cashups_cash_difference"] = "";
$lang["cashups_close_date"] = "تاريخ تسكير الصندوق";
$lang["cashups_close_employee"] = "تم التسكير من قبل";
$lang["cashups_closed_amount_card"] = "بطاقات ائتمان";
$lang["cashups_closed_amount_cash"] = "الصندوق النقدي";
$lang["cashups_closed_amount_check"] = "شيكات";
$lang["cashups_closed_amount_due"] = "الديون";
$lang["cashups_closed_amount_giftcard"] = "";
$lang["cashups_closed_amount_total"] = "المجموع";
$lang["cashups_closed_date"] = "تاريخ تسكير الصندوق";
$lang["cashups_confirm_delete"] = "هل انت متأكد من حذف الصندوق النقدي؟";
$lang["cashups_confirm_restore"] = "هل انت متأكد من استعادة الصندوق النقدي؟";
$lang["cashups_confirm_submit"] = "";
$lang["cashups_date_number"] = "التاريخ يجب ان يكون مكون من ارقام";
$lang["cashups_date_required"] = "التاريخ هي خانة اجبارية";
$lang["cashups_description"] = "الوصف";
$lang["cashups_enable_expected"] = "";
$lang["cashups_error_adding_updating"] = "خطأ في تعديل او اضافة صندوق نقدي";
$lang["cashups_giftcard"] = "";
$lang["cashups_id"] = "كود";
$lang["cashups_info"] = "معلومات عن الصندوق النقدي";
$lang["cashups_info_employee"] = "";
$lang["cashups_is_deleted"] = "محذوف";
$lang["cashups_new"] = "صندوق نقدي جديد";
$lang["cashups_no_cashups_to_display"] = "لا يوجد صناديق نقدية للاظهار";
@@ -35,4 +43,6 @@ $lang["cashups_successful_deleted"] = "تم حذف الصندوق النقدي
$lang["cashups_successful_updating"] = "تم تعديل الصندوق النقدي بنجاح";
$lang["cashups_total"] = "المجموع";
$lang["cashups_transfer_amount_cash"] = "حركة الصندوق";
$lang["cashups_transfer_amount_cash_minus"] = "";
$lang["cashups_update"] = "تعديل/تحديث الصندوق النقدي";
$lang["cashups_warning"] = "";

View File

@@ -2,14 +2,18 @@
$lang["common_address_1"] = "العنوان 1";
$lang["common_address_2"] = "العنوان 2";
$lang["common_admin"] = "";
$lang["common_city"] = "المدينة";
$lang["common_clerk"] = "";
$lang["common_close"] = "إغلاق";
$lang["common_color"] = "";
$lang["common_comments"] = "تعليقات";
$lang["common_common"] = "عام";
$lang["common_confirm_search"] = "لقد قمت اختيار أكتر من سجل، سوف تفقد هذه الاختيارات عند إرسال البحث، موافق؟";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "يرجى تصحيح الأخطاء المحددة قبل الحفظ";
$lang["common_country"] = "البلد";
$lang["common_dashboard"] = "";
$lang["common_date"] = "التاريخ";
$lang["common_delete"] = "حذف";
$lang["common_det"] = "تفاصيل";
@@ -21,12 +25,15 @@ $lang["common_export_csv"] = "تصدير إلى اكسل";
$lang["common_export_csv_no"] = "لا";
$lang["common_export_csv_yes"] = "نعم";
$lang["common_fields_required_message"] = "الحقول التي بالأحمر مطلوبة";
$lang["common_fields_required_message_unique"] = "";
$lang["common_first_name"] = "الاسم الأول";
$lang["common_first_name_required"] = "الاسم الأول مطلوب.";
$lang["common_first_page"] = "الأول";
$lang["common_gender"] = "النوع";
$lang["common_gender_female"] = "أنثى";
$lang["common_gender_male"] = "ذكر";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "كود";
$lang["common_import"] = "استيراد";
$lang["common_import_change_file"] = "تغيير";
@@ -40,15 +47,21 @@ $lang["common_last_name_required"] = "الاسم الأخير مطلوب.";
$lang["common_last_page"] = "الأخيرة";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
$lang["common_list_of"] = "قائمة بـ";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "خروج";
$lang["common_manager"] = "";
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
$lang["common_new"] = "جديد";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "لا يوجد اناس لعرضهم.";
$lang["common_none_selected_text"] = "[إختيار]";
$lang["common_or"] = "أو";
$lang["common_people"] = "";
$lang["common_phone_number"] = "رقم التليفون";
$lang["common_phone_number_required"] = "رقم التليفون مطلوب";
$lang["common_please_visit_my"] = "برجاء زيارة";
$lang["common_position"] = "";
$lang["common_powered_by"] = "مدعوم بواسطة";
$lang["common_price"] = "السعر";
$lang["common_print"] = "طباعة";
@@ -59,6 +72,8 @@ $lang["common_return_policy"] = "سياسة الاسترجاع";
$lang["common_search"] = "بحث";
$lang["common_search_options"] = "خيارات البحث";
$lang["common_searched_for"] = "بحث عن";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "المحافظة";
$lang["common_submit"] = "حفظ";
$lang["common_total_spent"] = "مجموع الصرف";
@@ -67,5 +82,6 @@ $lang["common_view_recent_sales"] = "عرض أحدث المبيعات";
$lang["common_website"] = "الموقع الإلكترونى";
$lang["common_welcome"] = "مرحباً";
$lang["common_welcome_message"] = "مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.";
$lang["common_yes"] = "";
$lang["common_you_are_using_ospos"] = "أنت تستخدم إصدار Open Source Point Of Sale";
$lang["common_zip"] = "الرقم البريدى";

View File

@@ -31,13 +31,22 @@ $lang["config_barcode_tooltip"] = "تحذير: قد تؤدي هذه الميزة
$lang["config_barcode_type"] = "نوعية الباركود";
$lang["config_barcode_width"] = "العرض (px)";
$lang["config_bottom"] = "الأسفل";
$lang["config_cash_button"] = "";
$lang["config_cash_button_1"] = "";
$lang["config_cash_button_2"] = "";
$lang["config_cash_button_3"] = "";
$lang["config_cash_button_4"] = "";
$lang["config_cash_button_5"] = "";
$lang["config_cash_button_6"] = "";
$lang["config_cash_decimals"] = "فواصل النقدية";
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
$lang["config_cash_rounding"] = "التقريب النقدي";
$lang["config_category_dropdown"] = "";
$lang["config_center"] = "الوسط";
$lang["config_change_apperance_tooltip"] = "";
$lang["config_comma"] = "فاصلة";
$lang["config_company"] = "اسم الشركة";
$lang["config_company_avatar"] = "";
$lang["config_company_change_image"] = "تغيير الصورة";
$lang["config_company_logo"] = "شعار الشركة";
$lang["config_company_remove_image"] = "إزالة الصورة";
@@ -49,6 +58,7 @@ $lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة ل
$lang["config_currency_code"] = "رمز العملة";
$lang["config_currency_decimals"] = "العلامة العشرية للعملة";
$lang["config_currency_symbol"] = "رمز العملة";
$lang["config_current_employee_only"] = "";
$lang["config_customer_reward"] = "المكافآت";
$lang["config_customer_reward_duplicate"] = "المكافئة يجب ان تكون فريدة.";
$lang["config_customer_reward_enable"] = "تمكين مكافآت العميل";
@@ -86,6 +96,7 @@ $lang["config_default_tax_name_required"] = "اسم الضريبة الافتر
$lang["config_default_tax_rate"] = "معدل الضريبة الافتراضي %";
$lang["config_default_tax_rate_1"] = "معدل الضريبة 1";
$lang["config_default_tax_rate_2"] = "معدل الضريبة 2";
$lang["config_default_tax_rate_3"] = "";
$lang["config_default_tax_rate_number"] = "معدل الضريبة الافتراضي يجب أن يكون رقم.";
$lang["config_default_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب.";
$lang["config_derive_sale_quantity"] = "السماح بأسعار البيع المشتقة";
@@ -110,6 +121,12 @@ $lang["config_email_smtp_pass"] = "كلمة سر SMTP";
$lang["config_email_smtp_port"] = "رقم منفذ SMTP";
$lang["config_email_smtp_timeout"] = "وقت فشل المحاولة (ثوانى) لـ SMTP";
$lang["config_email_smtp_user"] = "اسم مستخدم SMTP";
$lang["config_enable_avatar"] = "";
$lang["config_enable_avatar_tooltip"] = "";
$lang["config_enable_dropdown_tooltip"] = "";
$lang["config_enable_new_look"] = "";
$lang["config_enable_right_bar"] = "";
$lang["config_enable_right_bar_tooltip"] = "";
$lang["config_enforce_privacy"] = "فرض نظام الخصوصية";
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
$lang["config_fax"] = "الفاكس";
@@ -127,6 +144,7 @@ $lang["config_financial_year_may"] = "1 مايو";
$lang["config_financial_year_nov"] = "1 نوفمبر";
$lang["config_financial_year_oct"] = "1 أكتوبر";
$lang["config_financial_year_sep"] = "1 سبتمبر";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "صفحة تسجيل الدخول ريكابتشا";
$lang["config_gcaptcha_secret_key"] = "مفتاح السرية ريكابتشا";
$lang["config_gcaptcha_secret_key_required"] = "مفتاح السرية ريكابتشا هو حقل مطلوب";
@@ -146,6 +164,7 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
$lang["config_info"] = "معلومات";
$lang["config_info_configuration"] = "معلومات الشركة";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "التكامل";
$lang["config_integrations_configuration"] = "تكامل";
$lang["config_invoice"] = "الفاتورة";
@@ -157,6 +176,7 @@ $lang["config_invoice_printer"] = "طابعة الفواتير";
$lang["config_invoice_type"] = "نوع الفاتورة";
$lang["config_is_readable"] = "";
$lang["config_is_writable"] = "is writable, but the permissions are higher than 750.";
$lang["config_item_markup"] = "";
$lang["config_jsprintsetup_required"] = "تحذير! هذه الخاصية غير المفعلة سوف تعمل فقط مع وجود الاضافة jsPrintSetup على متصفح فايرفوكس. حفظ على أى حال؟";
$lang["config_language"] = "اللغة";
$lang["config_last_used_invoice_number"] = "اخر رقم مستخدم للفاتورة";
@@ -175,6 +195,7 @@ $lang["config_locale_info"] = "معلومات التهيئة الإقليمية"
$lang["config_location"] = "المخزون";
$lang["config_location_configuration"] = "أماكن المخزون";
$lang["config_location_info"] = "معلومات تهيئة الأماكن";
$lang["config_login_form"] = "";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.";
$lang["config_mailchimp"] = "mailchimp ميل تشامب";
$lang["config_mailchimp_api_key"] = "mailchimp مفتاح";
@@ -231,8 +252,10 @@ $lang["config_print_top_margin"] = "الهامش العلوى";
$lang["config_print_top_margin_number"] = "الهامش العلوى يجب أن يكون رقم.";
$lang["config_print_top_margin_required"] = "الهامش العلوى مطلوب.";
$lang["config_quantity_decimals"] = "العلامة العشرية للكمية";
$lang["config_quick_cash_enable"] = "";
$lang["config_quote_default_comments"] = "ملاحظات طلبات العمل الثابتة";
$lang["config_receipt"] = "الإيصال";
$lang["config_receipt_category"] = "";
$lang["config_receipt_configuration"] = "إعدادات طباعة الايصالات";
$lang["config_receipt_default"] = "افتراضى";
$lang["config_receipt_font_size"] = "الخط";
@@ -262,6 +285,8 @@ $lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
$lang["config_security_issue"] = "Security Vulnerability Warning";
$lang["config_server_notice"] = "يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.";
$lang["config_service_charge"] = "";
$lang["config_show_due_enable"] = "";
$lang["config_show_office_group"] = "اظهار ايكونة المكتب";
$lang["config_statistics"] = "إرسال اﻹحصائيات";
$lang["config_statistics_tooltip"] = "إرسال اﻹحصائيات ﻷغراض التطوير و التحسين.";
@@ -269,7 +294,9 @@ $lang["config_stock_location"] = "مكان المخزون";
$lang["config_stock_location_duplicate"] = "من فضلك إستخدم اسم مكان غير مكرر.";
$lang["config_stock_location_invalid_chars"] = "مكان المخزون لايمكن أن يحتوى على '_'.";
$lang["config_stock_location_required"] = "مكان المخزون مطلوب.";
$lang["config_suggestions_fifth_column"] = "";
$lang["config_suggestions_first_column"] = "العامود 1";
$lang["config_suggestions_fourth_column"] = "";
$lang["config_suggestions_layout"] = "تخطيط اقتراحات البحث";
$lang["config_suggestions_second_column"] = "العامود 2";
$lang["config_suggestions_third_column"] = "العامود 3";
@@ -289,6 +316,7 @@ $lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
$lang["config_tax_id"] = "الرقم الضريبي";
$lang["config_tax_included"] = "شامل الضريبة";
$lang["config_theme"] = "السمة";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "فاصل الاف";
$lang["config_timezone"] = "المنطقة الزمنية";
$lang["config_timezone_error"] = "";
@@ -296,5 +324,6 @@ $lang["config_top"] = "علوى";
$lang["config_use_destination_based_tax"] = "استخدام الضريبة المستندة على الوجهة";
$lang["config_user_timezone"] = "";
$lang["config_website"] = "موقع الشركة";
$lang["config_wholesale_markup"] = "";
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
$lang["config_work_order_format"] = "شكل طلبات العمل";

View File

@@ -3,6 +3,7 @@
$lang["customers_account_number"] = "رقم الحساب";
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل.";
$lang["customers_available_points"] = "النقاط المتاحة";
$lang["customers_available_points_value"] = "";
$lang["customers_average"] = "معدل الصرف";
$lang["customers_avg_discount"] = "معدل الخصم";
$lang["customers_basic_information"] = "معلومات الزبون";

View File

@@ -1,8 +1,12 @@
<?php
$lang["employees_administrator"] = "";
$lang["employees_basic_information"] = "المعلومات الأساسية للموظف";
$lang["employees_cannot_be_deleted"] = "لايمكن حذف الموظفين ، واحد أو أكثر من المظفين قام بإجراء مبيعات :).";
$lang["employees_change_employee"] = "";
$lang["employees_change_password"] = "تغيير كلمة المرور";
$lang["employees_clerk"] = "";
$lang["employees_commission"] = "";
$lang["employees_confirm_delete"] = "هل أنت متأكد أنك تريد حذف الموظفين المختارين؟";
$lang["employees_confirm_restore"] = "هل انت متاكد من استعادة الموظفين المحددين؟";
$lang["employees_current_password"] = "كلمة المرور الحالية";
@@ -13,6 +17,7 @@ $lang["employees_error_deleting_demo_admin"] = "لايمكن حذف المستخ
$lang["employees_error_updating_demo_admin"] = "لايمكن تغيير بيانات المستخدم admin الخاص بنسخة العرض.";
$lang["employees_language"] = "اللغة";
$lang["employees_login_info"] = "معلومات دخول الموظف";
$lang["employees_manager"] = "";
$lang["employees_new"] = "موظف جديد";
$lang["employees_none_selected"] = "لم تختار أى من الموظفين للحذف.";
$lang["employees_one_or_multiple"] = "موظف/موظفين";
@@ -33,5 +38,6 @@ $lang["employees_system_language"] = "لغة النظام";
$lang["employees_unsuccessful_change_password"] = "فشل في تغيير كلمة المرور.";
$lang["employees_update"] = "تحديث بيانات موظف";
$lang["employees_username"] = "اسم المستخدم";
$lang["employees_username_duplicate"] = "";
$lang["employees_username_minlength"] = "اسم المستخدم يجب أن يكون 5 حروف على الأقل.";
$lang["employees_username_required"] = "اسم المستخدم مطلوب.";

View File

@@ -29,9 +29,11 @@ $lang["expenses_error_adding_updating"] = "خطأ في الإضافة";
$lang["expenses_expense_id"] = "كود المصاريف";
$lang["expenses_expenses_employee"] = "موظف";
$lang["expenses_info"] = "معلومات عن المصاريف";
$lang["expenses_ip_address"] = "";
$lang["expenses_is_deleted"] = "ممسوحة";
$lang["expenses_name_required"] = "خانة مطلوبة: اسم المصاريف";
$lang["expenses_new"] = "مصاريف جديدة";
$lang["expenses_new_supplier"] = "";
$lang["expenses_no_expenses_to_display"] = "لا يوجد مصاريف في التاريخ المحدد";
$lang["expenses_none_selected"] = "لم يتم تحديد اي خيار";
$lang["expenses_one_or_multiple"] = "واحد او أكثر";
@@ -43,4 +45,5 @@ $lang["expenses_successful_updating"] = "تم تعديل المصاريف بنج
$lang["expenses_supplier_name"] = "اسم المورد";
$lang["expenses_supplier_tax_code"] = "كود ضريبة المورد";
$lang["expenses_tax_amount"] = "قيمة الضريبة";
$lang["expenses_tax_amount_number"] = "";
$lang["expenses_update"] = "تعديل";

View File

@@ -14,6 +14,10 @@ $lang["item_kits_error_adding_updating"] = "خطاء فى إضافة/تحديث
$lang["item_kits_find_kit_item"] = "صنف لمجموعة";
$lang["item_kits_info"] = "معلومات المجموعة";
$lang["item_kits_item"] = "صنف";
$lang["item_kits_item_kit_number"] = "";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "";
$lang["item_kits_item_number_duplicate"] = "";
$lang["item_kits_items"] = "أصناف";
$lang["item_kits_kit"] = "كود المجموعة";
$lang["item_kits_kit_and_components"] = "المجموعة ومحتوياتها";
@@ -32,4 +36,5 @@ $lang["item_kits_sequence"] = "التسلسل";
$lang["item_kits_successful_adding"] = "لقد تم إضافة المجموعة بنجاح";
$lang["item_kits_successful_deleted"] = "لقد تم حذف المجموعة بنجاح";
$lang["item_kits_successful_updating"] = "لقد تم تحديث بيانات المجموعة بنجاح";
$lang["item_kits_unit_price"] = "";
$lang["item_kits_update"] = "تحديث بيانات مجموعة";

View File

@@ -7,7 +7,9 @@ $lang["items_bulk_edit"] = "تحرير جماعى";
$lang["items_buy_price_required"] = "سعر الشراء مطلوب.";
$lang["items_cannot_be_deleted"] = "لايمكن حذف الأصناف المختارة، واحد أو أكثر منها لديه مبيعات.";
$lang["items_cannot_find_item"] = "لايمكن ايجاد معلومات حول الصنف.";
$lang["items_categories"] = "";
$lang["items_category"] = "التصنيف";
$lang["items_category_new"] = "";
$lang["items_category_required"] = "التصنيف مطلوب.";
$lang["items_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للجميع.";
$lang["items_change_all_to_not_allow_allow_desc"] = "عدم السماح بوصف بديل للجميع.";
@@ -31,6 +33,7 @@ $lang["items_default_pack_name"] = "كل";
$lang["items_description"] = "الوصف";
$lang["items_details_count"] = "حركة الصنف";
$lang["items_do_nothing"] = "لاتفعل شئ";
$lang["items_edit"] = "";
$lang["items_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل الأصناف المختارة.";
$lang["items_edit_multiple_items"] = "تحريد مجموعة اصناف";
$lang["items_empty_upc_items"] = "تفريغ اصناف UPC";
@@ -50,8 +53,10 @@ $lang["items_inventory_employee"] = "الموظف";
$lang["items_inventory_in_out_quantity"] = "+- كمية";
$lang["items_inventory_remarks"] = "ملاحظات";
$lang["items_is_deleted"] = "حذفت";
$lang["items_is_printed"] = "";
$lang["items_is_serialized"] = "الصنف له رقم مسلسل";
$lang["items_item"] = "صنف";
$lang["items_item_id"] = "";
$lang["items_item_number"] = "الباركود UPC/EAN/ISBN";
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل.";
$lang["items_kit"] = "مجموعة اصناف";
@@ -59,6 +64,7 @@ $lang["items_location"] = "مكان";
$lang["items_low_inventory_items"] = "الأصناف التى لا يوجد لها مخزون";
$lang["items_low_sell_item"] = "الصنف المركب";
$lang["items_manually_editing_of_quantity"] = "تحرير الكمية يدوياً";
$lang["items_markup"] = "";
$lang["items_name"] = "اسم الصنف";
$lang["items_name_required"] = "اسم الصنف مطلوب.";
$lang["items_new"] = "صنف جديد";
@@ -97,6 +103,7 @@ $lang["items_successful_updating"] = "لقد تم تحديث بيانات صنف
$lang["items_supplier"] = "المورد";
$lang["items_tax_1"] = "الضريبة 1";
$lang["items_tax_2"] = "الضريبة 2";
$lang["items_tax_3"] = "";
$lang["items_tax_category"] = "الفئة الضريبية";
$lang["items_tax_percent"] = "نسبة الضريبة";
$lang["items_tax_percent_number"] = "نسبة الضريبة يجب ان تكون رقم";

View File

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

View File

@@ -1,5 +1,7 @@
<?php
$lang["module_admin_cashups"] = "";
$lang["module_admin_cashups_desc"] = "";
$lang["module_attributes"] = "ميزات/مميزات";
$lang["module_attributes_desc"] = "إضافة، تعديل، حذف، وبحث بالميزات.";
$lang["module_both"] = "الاثنين";
@@ -39,3 +41,7 @@ $lang["module_suppliers"] = "الموردين";
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين.";
$lang["module_taxes"] = "الضرائب";
$lang["module_taxes_desc"] = "اعدادات ضريبة المبيعات.";
$lang["module_timeclocks"] = "";
$lang["module_timeclocks_categories"] = "";
$lang["module_timeclocks_categories_desc"] = "";
$lang["module_timeclocks_desc"] = "";

View File

@@ -1,5 +1,6 @@
<?php
$lang["receivings_amount_due"] = "";
$lang["receivings_cancel_receiving"] = "إلغاء";
$lang["receivings_cannot_be_deleted"] = "لايمكن حذف الإستلام/الإستلامات.";
$lang["receivings_comments"] = "تعليقات";
@@ -7,7 +8,9 @@ $lang["receivings_complete_receiving"] = "إنهاء";
$lang["receivings_confirm_cancel_receiving"] = "هل أنت متاكد أنك تريد إلغاء هذا الإستلام؟ سيتم حذف كل الأصناف.";
$lang["receivings_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف.";
$lang["receivings_confirm_finish_receiving"] = "هل أنت متاكد أنك تريد تنفيذ هذا الإستلام؟ لايمكن التراجع بعد الإرسال.";
$lang["receivings_confirm_restore"] = "";
$lang["receivings_cost"] = "التكلفة";
$lang["receivings_daily"] = "";
$lang["receivings_date"] = "تاريخ الإستلام";
$lang["receivings_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["receivings_date_type"] = "التاريخ مطلوب.";

View File

@@ -14,6 +14,7 @@ $lang["reports_code_return"] = "كود عمليات المرتجع";
$lang["reports_code_type"] = "النوع";
$lang["reports_code_work_order"] = "طلب عمل";
$lang["reports_comments"] = "التعليقات";
$lang["reports_commission"] = "";
$lang["reports_complete"] = "عمليات البيع والمرتجع المكتملة";
$lang["reports_completed_sales"] = "المبيعات المكتملة";
$lang["reports_confirm_delete"] = "هل انت متاكد من مسح البيانات المحددة؟";
@@ -28,6 +29,7 @@ $lang["reports_date"] = "التاريخ";
$lang["reports_date_range"] = "الفترة الزمنية";
$lang["reports_description"] = "الوصف";
$lang["reports_detailed_receivings_report"] = "تقرير مفصل لاستلام البضاعة";
$lang["reports_detailed_receivings_report_input"] = "";
$lang["reports_detailed_reports"] = "التقارير التفصيلية";
$lang["reports_detailed_requisition_report"] = "تقرير مفصل لطلبات الشراء";
$lang["reports_detailed_sales_report"] = "تقرير مفصل للمبيعات";
@@ -46,6 +48,7 @@ $lang["reports_expenses_amount"] = "القيمة";
$lang["reports_expenses_categories"] = "فئات المصاريف";
$lang["reports_expenses_categories_summary_report"] = "تقرير المصاريف حسب الفئات";
$lang["reports_expenses_category"] = "الفئة";
$lang["reports_expenses_payment_amount"] = "";
$lang["reports_expenses_tax_amount"] = "الضريبة";
$lang["reports_expenses_total_amount"] = "المبلغ الإجمالي";
$lang["reports_expenses_total_tax_amount"] = "الضريبة الإجمالية";
@@ -105,7 +108,9 @@ $lang["reports_sales_summary_report"] = "تقرير ملخص المبيعات";
$lang["reports_sales_taxes"] = "ضرائب المبيعات";
$lang["reports_sales_taxes_summary_report"] = "تقرير ملخص ضرائب المبيعات";
$lang["reports_serial_number"] = "مسلسل";
$lang["reports_service_charge"] = "";
$lang["reports_sold_by"] = "البائع";
$lang["reports_sold_items"] = "";
$lang["reports_sold_to"] = "مباع الى";
$lang["reports_stock_location"] = "مكان المخزون";
$lang["reports_sub_total_value"] = "المجموع الفرعى";
@@ -117,6 +122,7 @@ $lang["reports_suppliers"] = "الموردين";
$lang["reports_suppliers_summary_report"] = "تقرير ملخص الموردين";
$lang["reports_tax"] = "الضريبة";
$lang["reports_tax_category"] = "الفئة الضريبية";
$lang["reports_tax_name"] = "";
$lang["reports_tax_percent"] = "نسبة الضريبة";
$lang["reports_tax_rate"] = "معدل الضريبة";
$lang["reports_taxes"] = "الضرائب";

View File

@@ -10,6 +10,11 @@ $lang["sales_amount_tendered"] = "المبلغ المدفوع";
$lang["sales_authorized_signature"] = "توقيع معتمد";
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
$lang["sales_cash"] = "نقدى";
$lang["sales_cash_1"] = "";
$lang["sales_cash_2"] = "";
$lang["sales_cash_3"] = "";
$lang["sales_cash_4"] = "";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "ايداع نقدي";
$lang["sales_cash_filter"] = "نقدى";
$lang["sales_change_due"] = "الباقى";
@@ -17,8 +22,11 @@ $lang["sales_change_price"] = "";
$lang["sales_check"] = "شيك";
$lang["sales_check_balance"] = "تذكير بموعد الشيك";
$lang["sales_check_filter"] = "شيك";
$lang["sales_close"] = "";
$lang["sales_comment"] = "تعليق";
$lang["sales_comments"] = "تعليقات";
$lang["sales_company_name"] = "";
$lang["sales_complete"] = "";
$lang["sales_complete_sale"] = "إتمام البيع";
$lang["sales_confirm_cancel_sale"] = "هل أنت متأكد من الغاء عملية البيع ؟ سيتم إزالة كل الأصناف.";
$lang["sales_confirm_delete"] = "هل تريد حذف عمليات البيع المختارة؟";
@@ -26,6 +34,7 @@ $lang["sales_confirm_restore"] = "هل انت متاكد من استعادة ع
$lang["sales_credit"] = "بطاقة إئتمانية";
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
$lang["sales_credit_filter"] = "";
$lang["sales_current_table"] = "";
$lang["sales_customer"] = "العميل";
$lang["sales_customer_address"] = "العنوان";
$lang["sales_customer_discount"] = "الخصم";
@@ -35,11 +44,14 @@ $lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
$lang["sales_customer_optional"] = "(مطلوب للدفعات المستحقة)";
$lang["sales_customer_required"] = "(اجباري)";
$lang["sales_customer_total"] = "المجموع";
$lang["sales_customer_total_spent"] = "";
$lang["sales_daily_sales"] = "";
$lang["sales_date"] = "تاريخ البيع";
$lang["sales_date_range"] = "الفترة الزمنية";
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["sales_date_type"] = "التاريخ مطلوب.";
$lang["sales_debit"] = "بطاقة خصم";
$lang["sales_debit_filter"] = "";
$lang["sales_delete"] = "اسمح بالمسح";
$lang["sales_delete_confirmation"] = "هل أنت متأكد أنك تريد حذف عملية البيع هذه؟ لايمكن التراجع بعد الحذف.";
$lang["sales_delete_entire_sale"] = "حذف عملية البيع بالكامل";
@@ -64,6 +76,7 @@ $lang["sales_find_or_scan_item"] = "بحث/مسح باركود صنف";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو ايصال";
$lang["sales_giftcard"] = "بطاقة هدية";
$lang["sales_giftcard_balance"] = "رصيد بطاقة الهدية";
$lang["sales_giftcard_filter"] = "";
$lang["sales_giftcard_number"] = "رقم بطاقة الهدية";
$lang["sales_group_by_category"] = "تصفية حسب الفئة";
$lang["sales_group_by_type"] = "تجميع حسب النوع";
@@ -89,6 +102,28 @@ $lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى م
$lang["sales_item_name"] = "اسم الصنف";
$lang["sales_item_number"] = "صنف #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف.";
$lang["sales_key_browser"] = "";
$lang["sales_key_cancel"] = "Cancels Current Quote/Invoice/Sale";
$lang["sales_key_customer_search"] = "Customer Search";
$lang["sales_key_finish_quote"] = "Finish Quote/Invoice witdout payment";
$lang["sales_key_finish_sale"] = "Add Payment and Complete Invoice/Sale";
$lang["sales_key_full"] = "";
$lang["sales_key_function"] = "Function";
$lang["sales_key_help"] = "Shortcuts";
$lang["sales_key_help_modal"] = "Open Shortcuts Window";
$lang["sales_key_in"] = "";
$lang["sales_key_item_search"] = "Item Search";
$lang["sales_key_out"] = "";
$lang["sales_key_payment"] = "Add Payment";
$lang["sales_key_print"] = "";
$lang["sales_key_restore"] = "";
$lang["sales_key_search"] = "";
$lang["sales_key_suspend"] = "Suspend Current Sale";
$lang["sales_key_suspended"] = "Show Suspended Sales";
$lang["sales_key_system"] = "";
$lang["sales_key_tendered"] = "Edit Amount Tendered";
$lang["sales_key_title"] = "Sales Keyboard Shortcuts";
$lang["sales_mc"] = "";
$lang["sales_mode"] = "وضع التسجيل";
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع.";
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
@@ -106,6 +141,7 @@ $lang["sales_payment"] = "طريقة الدفع";
$lang["sales_payment_amount"] = "المبلغ";
$lang["sales_payment_not_cover_total"] = "المبلغ المدفوع لايغطى المبلغ الإجمالى.";
$lang["sales_payment_type"] = "طريقة";
$lang["sales_payments"] = "";
$lang["sales_payments_total"] = "إجمالى المدفوعات";
$lang["sales_price"] = "السعر";
$lang["sales_print_after_sale"] = "اطبع بعد عملية البيع";
@@ -126,6 +162,7 @@ $lang["sales_receipt_unsent"] = "فشل إرسال الإيصال إلى";
$lang["sales_refund"] = "";
$lang["sales_register"] = "مسجل المبيعات";
$lang["sales_remove_customer"] = "حذف عميل";
$lang["sales_remove_discount"] = "";
$lang["sales_return"] = "إرتجاع";
$lang["sales_rewards"] = "نقاط المكافئة";
$lang["sales_rewards_balance"] = "رصيد نقاط المكافئة";
@@ -134,12 +171,15 @@ $lang["sales_sale_by_invoice"] = "البيع بفاتورة رسمية";
$lang["sales_sale_for_customer"] = "العميل:";
$lang["sales_sale_time"] = "الوقت";
$lang["sales_sales_tax"] = "ضريبة البيع";
$lang["sales_sales_total"] = "";
$lang["sales_select_customer"] = "اختيار عميل (اختياري)";
$lang["sales_send_invoice"] = "إرسال الفاتورة";
$lang["sales_send_quote"] = "ارسال عرض الاسعار";
$lang["sales_send_receipt"] = "إرسال إيصال";
$lang["sales_send_work_order"] = "ارسال طلب عمل";
$lang["sales_serial"] = "مسلسل";
$lang["sales_service_charge"] = "";
$lang["sales_show_due"] = "";
$lang["sales_show_invoice"] = "عرض الفاتورة";
$lang["sales_show_receipt"] = "عرض الإيصال";
$lang["sales_start_typing_customer_name"] = "ابداء بكتابة اسم العميل...";
@@ -174,6 +214,8 @@ $lang["sales_unsuspend"] = "إلغاء تعليق";
$lang["sales_unsuspend_and_delete"] = "إلغاء تعليق وحذف";
$lang["sales_update"] = "تحديث";
$lang["sales_upi"] = "رقم التعريف الشخصي";
$lang["sales_visa"] = "";
$lang["sales_wholesale"] = "";
$lang["sales_work_order"] = "طلب عمل";
$lang["sales_work_order_number"] = "رقم طلب العمل";
$lang["sales_work_order_number_duplicate"] = "رقم طلب العمل يجب ان يكون فريد.";

View File

@@ -14,6 +14,7 @@ $lang["taxes_group_seq"] = "تسلسل المجموعة";
$lang["taxes_jurisdiction_name"] = "اسم الولاية القضائية";
$lang["taxes_name"] = "الاسم";
$lang["taxes_new"] = "ضريبة جديدة";
$lang["taxes_no_taxes"] = "";
$lang["taxes_no_taxes_to_display"] = "لا يوجد أكواد ضريبية للعرض";
$lang["taxes_reporting_authority"] = "السلطة الضريبية";
$lang["taxes_round_half_down"] = "نصف الاسفل";

View File

@@ -3,23 +3,31 @@
$lang["cashups_amount"] = "قيمة المبلغ";
$lang["cashups_amount_number"] = "قيمة المبلغ يجب ان تتكون من ارقام";
$lang["cashups_amount_required"] = "قيمة المبلغ هي خانة إجبارية.";
$lang["cashups_cancel_cashups"] = "";
$lang["cashups_cancel_cashups_enter"] = "";
$lang["cashups_cannot_be_deleted"] = "لا يمكن حذف الصندوق النقدي";
$lang["cashups_cash_difference"] = "";
$lang["cashups_close_date"] = "تاريخ تسكير الصندوق";
$lang["cashups_close_employee"] = "تم التسكير من قبل";
$lang["cashups_closed_amount_card"] = "بطاقات ائتمان";
$lang["cashups_closed_amount_cash"] = "الصندوق النقدي";
$lang["cashups_closed_amount_check"] = "شيكات";
$lang["cashups_closed_amount_due"] = "الديون";
$lang["cashups_closed_amount_giftcard"] = "";
$lang["cashups_closed_amount_total"] = "المجموع";
$lang["cashups_closed_date"] = "تاريخ تسكير الصندوق";
$lang["cashups_confirm_delete"] = "هل انت متأكد من حذف الصندوق النقدي؟";
$lang["cashups_confirm_restore"] = "هل انت متأكد من استعادة الصندوق النقدي؟";
$lang["cashups_confirm_submit"] = "";
$lang["cashups_date_number"] = "التاريخ يجب ان يكون مكون من ارقام";
$lang["cashups_date_required"] = "التاريخ هي خانة اجبارية";
$lang["cashups_description"] = "الوصف";
$lang["cashups_enable_expected"] = "";
$lang["cashups_error_adding_updating"] = "خطأ في تعديل او اضافة صندوق نقدي";
$lang["cashups_giftcard"] = "";
$lang["cashups_id"] = "كود";
$lang["cashups_info"] = "معلومات عن الصندوق النقدي";
$lang["cashups_info_employee"] = "";
$lang["cashups_is_deleted"] = "محذوف";
$lang["cashups_new"] = "صندوق نقدي جديد";
$lang["cashups_no_cashups_to_display"] = "لا يوجد صناديق نقدية للاظهار";
@@ -35,4 +43,6 @@ $lang["cashups_successful_deleted"] = "تم حذف الصندوق النقدي
$lang["cashups_successful_updating"] = "تم تعديل الصندوق النقدي بنجاح";
$lang["cashups_total"] = "المجموع";
$lang["cashups_transfer_amount_cash"] = "حركة الصندوق";
$lang["cashups_transfer_amount_cash_minus"] = "";
$lang["cashups_update"] = "تعديل/تحديث الصندوق النقدي";
$lang["cashups_warning"] = "";

View File

@@ -2,14 +2,18 @@
$lang["common_address_1"] = "العنوان 1";
$lang["common_address_2"] = "العنوان 2";
$lang["common_admin"] = "";
$lang["common_city"] = "المدينة";
$lang["common_clerk"] = "";
$lang["common_close"] = "إغلاق";
$lang["common_color"] = "";
$lang["common_comments"] = "تعليقات";
$lang["common_common"] = "عام";
$lang["common_confirm_search"] = "لقد قمت اختيار أكتر من سجل، سوف تفقد هذه الاختيارات عند إرسال البحث، موافق؟";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "يرجى تصحيح الأخطاء المحددة قبل الحفظ";
$lang["common_country"] = "البلد";
$lang["common_dashboard"] = "";
$lang["common_date"] = "التاريخ";
$lang["common_delete"] = "حذف";
$lang["common_det"] = "تفاصيل";
@@ -21,12 +25,15 @@ $lang["common_export_csv"] = "تصدير إلى اكسل";
$lang["common_export_csv_no"] = "لا";
$lang["common_export_csv_yes"] = "نعم";
$lang["common_fields_required_message"] = "الحقول التي بالأحمر مطلوبة";
$lang["common_fields_required_message_unique"] = "";
$lang["common_first_name"] = "الاسم الأول";
$lang["common_first_name_required"] = "الاسم الأول مطلوب.";
$lang["common_first_page"] = "الأول";
$lang["common_gender"] = "النوع";
$lang["common_gender_female"] = "أنثى";
$lang["common_gender_male"] = "ذكر";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "كود";
$lang["common_import"] = "استيراد";
$lang["common_import_change_file"] = "تغيير";
@@ -40,15 +47,21 @@ $lang["common_last_name_required"] = "الاسم الأخير مطلوب.";
$lang["common_last_page"] = "الأخيرة";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
$lang["common_list_of"] = "قائمة بـ";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "خروج";
$lang["common_manager"] = "";
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
$lang["common_new"] = "جديد";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "لا يوجد اناس لعرضهم.";
$lang["common_none_selected_text"] = "[إختيار]";
$lang["common_or"] = "أو";
$lang["common_people"] = "";
$lang["common_phone_number"] = "رقم التليفون";
$lang["common_phone_number_required"] = "رقم التليفون مطلوب";
$lang["common_please_visit_my"] = "برجاء زيارة";
$lang["common_position"] = "";
$lang["common_powered_by"] = "مدعوم بواسطة";
$lang["common_price"] = "السعر";
$lang["common_print"] = "طباعة";
@@ -59,6 +72,8 @@ $lang["common_return_policy"] = "سياسة الاسترجاع";
$lang["common_search"] = "بحث";
$lang["common_search_options"] = "خيارات البحث";
$lang["common_searched_for"] = "بحث عن";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "المحافظة";
$lang["common_submit"] = "حفظ";
$lang["common_total_spent"] = "مجموع الصرف";
@@ -67,5 +82,6 @@ $lang["common_view_recent_sales"] = "عرض أحدث المبيعات";
$lang["common_website"] = "الموقع الإلكترونى";
$lang["common_welcome"] = "مرحباً";
$lang["common_welcome_message"] = "مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.";
$lang["common_yes"] = "";
$lang["common_you_are_using_ospos"] = "أنت تستخدم إصدار Open Source Point Of Sale";
$lang["common_zip"] = "الرقم البريدى";

View File

@@ -31,13 +31,22 @@ $lang["config_barcode_tooltip"] = "تحذير: قد تؤدي هذه الميزة
$lang["config_barcode_type"] = "نوعية الباركود";
$lang["config_barcode_width"] = "العرض (px)";
$lang["config_bottom"] = "الأسفل";
$lang["config_cash_button"] = "";
$lang["config_cash_button_1"] = "";
$lang["config_cash_button_2"] = "";
$lang["config_cash_button_3"] = "";
$lang["config_cash_button_4"] = "";
$lang["config_cash_button_5"] = "";
$lang["config_cash_button_6"] = "";
$lang["config_cash_decimals"] = "فواصل النقدية";
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
$lang["config_cash_rounding"] = "التقريب النقدي";
$lang["config_category_dropdown"] = "";
$lang["config_center"] = "الوسط";
$lang["config_change_apperance_tooltip"] = "";
$lang["config_comma"] = "فاصلة";
$lang["config_company"] = "اسم الشركة";
$lang["config_company_avatar"] = "";
$lang["config_company_change_image"] = "تغيير الصورة";
$lang["config_company_logo"] = "شعار الشركة";
$lang["config_company_remove_image"] = "إزالة الصورة";
@@ -49,6 +58,7 @@ $lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة ل
$lang["config_currency_code"] = "رمز العملة";
$lang["config_currency_decimals"] = "العلامة العشرية للعملة";
$lang["config_currency_symbol"] = "رمز العملة";
$lang["config_current_employee_only"] = "";
$lang["config_customer_reward"] = "المكافآت";
$lang["config_customer_reward_duplicate"] = "المكافئة يجب ان تكون فريدة.";
$lang["config_customer_reward_enable"] = "تمكين مكافآت العميل";
@@ -86,6 +96,7 @@ $lang["config_default_tax_name_required"] = "اسم الضريبة الافتر
$lang["config_default_tax_rate"] = "معدل الضريبة الافتراضي %";
$lang["config_default_tax_rate_1"] = "معدل الضريبة 1";
$lang["config_default_tax_rate_2"] = "معدل الضريبة 2";
$lang["config_default_tax_rate_3"] = "";
$lang["config_default_tax_rate_number"] = "معدل الضريبة الافتراضي يجب أن يكون رقم.";
$lang["config_default_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب.";
$lang["config_derive_sale_quantity"] = "السماح بأسعار البيع المشتقة";
@@ -110,6 +121,12 @@ $lang["config_email_smtp_pass"] = "كلمة سر SMTP";
$lang["config_email_smtp_port"] = "رقم منفذ SMTP";
$lang["config_email_smtp_timeout"] = "وقت فشل المحاولة (ثوانى) لـ SMTP";
$lang["config_email_smtp_user"] = "اسم مستخدم SMTP";
$lang["config_enable_avatar"] = "";
$lang["config_enable_avatar_tooltip"] = "";
$lang["config_enable_dropdown_tooltip"] = "";
$lang["config_enable_new_look"] = "";
$lang["config_enable_right_bar"] = "";
$lang["config_enable_right_bar_tooltip"] = "";
$lang["config_enforce_privacy"] = "فرض نظام الخصوصية";
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
$lang["config_fax"] = "الفاكس";
@@ -127,6 +144,7 @@ $lang["config_financial_year_may"] = "1 مايو";
$lang["config_financial_year_nov"] = "1 نوفمبر";
$lang["config_financial_year_oct"] = "1 أكتوبر";
$lang["config_financial_year_sep"] = "1 سبتمبر";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "صفحة تسجيل الدخول ريكابتشا";
$lang["config_gcaptcha_secret_key"] = "مفتاح السرية ريكابتشا";
$lang["config_gcaptcha_secret_key_required"] = "مفتاح السرية ريكابتشا هو حقل مطلوب";
@@ -146,6 +164,7 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
$lang["config_info"] = "معلومات";
$lang["config_info_configuration"] = "معلومات الشركة";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "التكامل";
$lang["config_integrations_configuration"] = "تكامل";
$lang["config_invoice"] = "الفاتورة";
@@ -157,6 +176,7 @@ $lang["config_invoice_printer"] = "طابعة الفواتير";
$lang["config_invoice_type"] = "نوع الفاتورة";
$lang["config_is_readable"] = "";
$lang["config_is_writable"] = "is writable, but the permissions are higher than 750.";
$lang["config_item_markup"] = "";
$lang["config_jsprintsetup_required"] = "تحذير! هذه الخاصية غير المفعلة سوف تعمل فقط مع وجود الاضافة jsPrintSetup على متصفح فايرفوكس. حفظ على أى حال؟";
$lang["config_language"] = "اللغة";
$lang["config_last_used_invoice_number"] = "اخر رقم مستخدم للفاتورة";
@@ -175,6 +195,7 @@ $lang["config_locale_info"] = "معلومات التهيئة الإقليمية"
$lang["config_location"] = "المخزون";
$lang["config_location_configuration"] = "أماكن المخزون";
$lang["config_location_info"] = "معلومات تهيئة الأماكن";
$lang["config_login_form"] = "";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.";
$lang["config_mailchimp"] = "mailchimp ميل تشامب";
$lang["config_mailchimp_api_key"] = "mailchimp مفتاح";
@@ -231,8 +252,10 @@ $lang["config_print_top_margin"] = "الهامش العلوى";
$lang["config_print_top_margin_number"] = "الهامش العلوى يجب أن يكون رقم.";
$lang["config_print_top_margin_required"] = "الهامش العلوى مطلوب.";
$lang["config_quantity_decimals"] = "العلامة العشرية للكمية";
$lang["config_quick_cash_enable"] = "";
$lang["config_quote_default_comments"] = "ملاحظات طلبات العمل الثابتة";
$lang["config_receipt"] = "الإيصال";
$lang["config_receipt_category"] = "";
$lang["config_receipt_configuration"] = "إعدادات طباعة الايصالات";
$lang["config_receipt_default"] = "افتراضى";
$lang["config_receipt_font_size"] = "الخط";
@@ -262,6 +285,8 @@ $lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
$lang["config_security_issue"] = "Security Vulnerability Warning";
$lang["config_server_notice"] = "يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.";
$lang["config_service_charge"] = "";
$lang["config_show_due_enable"] = "";
$lang["config_show_office_group"] = "اظهار ايكونة المكتب";
$lang["config_statistics"] = "إرسال اﻹحصائيات";
$lang["config_statistics_tooltip"] = "إرسال اﻹحصائيات ﻷغراض التطوير و التحسين.";
@@ -269,7 +294,9 @@ $lang["config_stock_location"] = "مكان المخزون";
$lang["config_stock_location_duplicate"] = "من فضلك إستخدم اسم مكان غير مكرر.";
$lang["config_stock_location_invalid_chars"] = "مكان المخزون لايمكن أن يحتوى على '_'.";
$lang["config_stock_location_required"] = "مكان المخزون مطلوب.";
$lang["config_suggestions_fifth_column"] = "";
$lang["config_suggestions_first_column"] = "العامود 1";
$lang["config_suggestions_fourth_column"] = "";
$lang["config_suggestions_layout"] = "تخطيط اقتراحات البحث";
$lang["config_suggestions_second_column"] = "العامود 2";
$lang["config_suggestions_third_column"] = "العامود 3";
@@ -289,6 +316,7 @@ $lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
$lang["config_tax_id"] = "الرقم الضريبي";
$lang["config_tax_included"] = "شامل الضريبة";
$lang["config_theme"] = "السمة";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "فاصل الاف";
$lang["config_timezone"] = "المنطقة الزمنية";
$lang["config_timezone_error"] = "";
@@ -296,5 +324,6 @@ $lang["config_top"] = "علوى";
$lang["config_use_destination_based_tax"] = "استخدام الضريبة المستندة على الوجهة";
$lang["config_user_timezone"] = "";
$lang["config_website"] = "موقع الشركة";
$lang["config_wholesale_markup"] = "";
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
$lang["config_work_order_format"] = "شكل طلبات العمل";

View File

@@ -3,6 +3,7 @@
$lang["customers_account_number"] = "رقم الحساب";
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل.";
$lang["customers_available_points"] = "النقاط المتاحة";
$lang["customers_available_points_value"] = "";
$lang["customers_average"] = "معدل الصرف";
$lang["customers_avg_discount"] = "معدل الخصم";
$lang["customers_basic_information"] = "معلومات الزبون";

View File

@@ -1,8 +1,12 @@
<?php
$lang["employees_administrator"] = "";
$lang["employees_basic_information"] = "المعلومات الأساسية للموظف";
$lang["employees_cannot_be_deleted"] = "لايمكن حذف الموظفين ، واحد أو أكثر من المظفين قام بإجراء مبيعات :).";
$lang["employees_change_employee"] = "";
$lang["employees_change_password"] = "تغيير كلمة المرور";
$lang["employees_clerk"] = "";
$lang["employees_commission"] = "";
$lang["employees_confirm_delete"] = "هل أنت متأكد أنك تريد حذف الموظفين المختارين؟";
$lang["employees_confirm_restore"] = "هل انت متاكد من استعادة الموظفين المحددين؟";
$lang["employees_current_password"] = "كلمة المرور الحالية";
@@ -13,6 +17,7 @@ $lang["employees_error_deleting_demo_admin"] = "لايمكن حذف المستخ
$lang["employees_error_updating_demo_admin"] = "لايمكن تغيير بيانات المستخدم admin الخاص بنسخة العرض.";
$lang["employees_language"] = "اللغة";
$lang["employees_login_info"] = "معلومات دخول الموظف";
$lang["employees_manager"] = "";
$lang["employees_new"] = "موظف جديد";
$lang["employees_none_selected"] = "لم تختار أى من الموظفين للحذف.";
$lang["employees_one_or_multiple"] = "موظف/موظفين";
@@ -33,5 +38,6 @@ $lang["employees_system_language"] = "لغة النظام";
$lang["employees_unsuccessful_change_password"] = "فشل في تغيير كلمة المرور.";
$lang["employees_update"] = "تحديث بيانات موظف";
$lang["employees_username"] = "اسم المستخدم";
$lang["employees_username_duplicate"] = "";
$lang["employees_username_minlength"] = "اسم المستخدم يجب أن يكون 5 حروف على الأقل.";
$lang["employees_username_required"] = "اسم المستخدم مطلوب.";

View File

@@ -29,9 +29,11 @@ $lang["expenses_error_adding_updating"] = "خطأ في الإضافة";
$lang["expenses_expense_id"] = "كود المصاريف";
$lang["expenses_expenses_employee"] = "موظف";
$lang["expenses_info"] = "معلومات عن المصاريف";
$lang["expenses_ip_address"] = "";
$lang["expenses_is_deleted"] = "ممسوحة";
$lang["expenses_name_required"] = "خانة مطلوبة: اسم المصاريف";
$lang["expenses_new"] = "مصاريف جديدة";
$lang["expenses_new_supplier"] = "";
$lang["expenses_no_expenses_to_display"] = "لا يوجد مصاريف في التاريخ المحدد";
$lang["expenses_none_selected"] = "لم يتم تحديد اي خيار";
$lang["expenses_one_or_multiple"] = "واحد او أكثر";
@@ -43,4 +45,5 @@ $lang["expenses_successful_updating"] = "تم تعديل المصاريف بنج
$lang["expenses_supplier_name"] = "اسم المورد";
$lang["expenses_supplier_tax_code"] = "كود ضريبة المورد";
$lang["expenses_tax_amount"] = "قيمة الضريبة";
$lang["expenses_tax_amount_number"] = "";
$lang["expenses_update"] = "تعديل";

View File

@@ -14,6 +14,10 @@ $lang["item_kits_error_adding_updating"] = "خطاء فى إضافة/تحديث
$lang["item_kits_find_kit_item"] = "صنف لمجموعة";
$lang["item_kits_info"] = "معلومات المجموعة";
$lang["item_kits_item"] = "صنف";
$lang["item_kits_item_kit_number"] = "";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "";
$lang["item_kits_item_number_duplicate"] = "";
$lang["item_kits_items"] = "أصناف";
$lang["item_kits_kit"] = "كود المجموعة";
$lang["item_kits_kit_and_components"] = "المجموعة ومحتوياتها";
@@ -32,4 +36,5 @@ $lang["item_kits_sequence"] = "التسلسل";
$lang["item_kits_successful_adding"] = "لقد تم إضافة المجموعة بنجاح";
$lang["item_kits_successful_deleted"] = "لقد تم حذف المجموعة بنجاح";
$lang["item_kits_successful_updating"] = "لقد تم تحديث بيانات المجموعة بنجاح";
$lang["item_kits_unit_price"] = "";
$lang["item_kits_update"] = "تحديث بيانات مجموعة";

View File

@@ -7,7 +7,9 @@ $lang["items_bulk_edit"] = "تحرير جماعى";
$lang["items_buy_price_required"] = "سعر الشراء مطلوب.";
$lang["items_cannot_be_deleted"] = "لايمكن حذف الأصناف المختارة، واحد أو أكثر منها لديه مبيعات.";
$lang["items_cannot_find_item"] = "لايمكن ايجاد معلومات حول الصنف.";
$lang["items_categories"] = "";
$lang["items_category"] = "التصنيف";
$lang["items_category_new"] = "";
$lang["items_category_required"] = "التصنيف مطلوب.";
$lang["items_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للجميع.";
$lang["items_change_all_to_not_allow_allow_desc"] = "عدم السماح بوصف بديل للجميع.";
@@ -31,6 +33,7 @@ $lang["items_default_pack_name"] = "كل";
$lang["items_description"] = "الوصف";
$lang["items_details_count"] = "حركة الصنف";
$lang["items_do_nothing"] = "لاتفعل شئ";
$lang["items_edit"] = "";
$lang["items_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل الأصناف المختارة.";
$lang["items_edit_multiple_items"] = "تحريد مجموعة اصناف";
$lang["items_empty_upc_items"] = "تفريغ اصناف UPC";
@@ -50,8 +53,10 @@ $lang["items_inventory_employee"] = "الموظف";
$lang["items_inventory_in_out_quantity"] = "+- كمية";
$lang["items_inventory_remarks"] = "ملاحظات";
$lang["items_is_deleted"] = "حذفت";
$lang["items_is_printed"] = "";
$lang["items_is_serialized"] = "الصنف له رقم مسلسل";
$lang["items_item"] = "صنف";
$lang["items_item_id"] = "";
$lang["items_item_number"] = "الباركود UPC/EAN/ISBN";
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل.";
$lang["items_kit"] = "مجموعة اصناف";
@@ -59,6 +64,7 @@ $lang["items_location"] = "مكان";
$lang["items_low_inventory_items"] = "الأصناف التى لا يوجد لها مخزون";
$lang["items_low_sell_item"] = "الصنف المركب";
$lang["items_manually_editing_of_quantity"] = "تحرير الكمية يدوياً";
$lang["items_markup"] = "";
$lang["items_name"] = "اسم الصنف";
$lang["items_name_required"] = "اسم الصنف مطلوب.";
$lang["items_new"] = "صنف جديد";
@@ -97,6 +103,7 @@ $lang["items_successful_updating"] = "لقد تم تحديث بيانات صنف
$lang["items_supplier"] = "المورد";
$lang["items_tax_1"] = "الضريبة 1";
$lang["items_tax_2"] = "الضريبة 2";
$lang["items_tax_3"] = "";
$lang["items_tax_category"] = "الفئة الضريبية";
$lang["items_tax_percent"] = "نسبة الضريبة";
$lang["items_tax_percent_number"] = "نسبة الضريبة يجب ان تكون رقم";

View File

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

View File

@@ -1,5 +1,7 @@
<?php
$lang["module_admin_cashups"] = "";
$lang["module_admin_cashups_desc"] = "";
$lang["module_attributes"] = "ميزات/مميزات";
$lang["module_attributes_desc"] = "إضافة، تعديل، حذف، وبحث بالميزات.";
$lang["module_both"] = "الاثنين";
@@ -39,3 +41,7 @@ $lang["module_suppliers"] = "الموردين";
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين.";
$lang["module_taxes"] = "الضرائب";
$lang["module_taxes_desc"] = "اعدادات ضريبة المبيعات.";
$lang["module_timeclocks"] = "";
$lang["module_timeclocks_categories"] = "";
$lang["module_timeclocks_categories_desc"] = "";
$lang["module_timeclocks_desc"] = "";

View File

@@ -1,5 +1,6 @@
<?php
$lang["receivings_amount_due"] = "";
$lang["receivings_cancel_receiving"] = "إلغاء";
$lang["receivings_cannot_be_deleted"] = "لايمكن حذف الإستلام/الإستلامات.";
$lang["receivings_comments"] = "تعليقات";
@@ -7,7 +8,9 @@ $lang["receivings_complete_receiving"] = "إنهاء";
$lang["receivings_confirm_cancel_receiving"] = "هل أنت متاكد أنك تريد إلغاء هذا الإستلام؟ سيتم حذف كل الأصناف.";
$lang["receivings_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف.";
$lang["receivings_confirm_finish_receiving"] = "هل أنت متاكد أنك تريد تنفيذ هذا الإستلام؟ لايمكن التراجع بعد الإرسال.";
$lang["receivings_confirm_restore"] = "";
$lang["receivings_cost"] = "التكلفة";
$lang["receivings_daily"] = "";
$lang["receivings_date"] = "تاريخ الإستلام";
$lang["receivings_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["receivings_date_type"] = "التاريخ مطلوب.";

View File

@@ -14,6 +14,7 @@ $lang["reports_code_return"] = "كود عمليات المرتجع";
$lang["reports_code_type"] = "النوع";
$lang["reports_code_work_order"] = "طلب عمل";
$lang["reports_comments"] = "التعليقات";
$lang["reports_commission"] = "";
$lang["reports_complete"] = "عمليات البيع والمرتجع المكتملة";
$lang["reports_completed_sales"] = "المبيعات المكتملة";
$lang["reports_confirm_delete"] = "هل انت متاكد من مسح البيانات المحددة؟";
@@ -28,6 +29,7 @@ $lang["reports_date"] = "التاريخ";
$lang["reports_date_range"] = "الفترة الزمنية";
$lang["reports_description"] = "الوصف";
$lang["reports_detailed_receivings_report"] = "تقرير مفصل لاستلام البضاعة";
$lang["reports_detailed_receivings_report_input"] = "";
$lang["reports_detailed_reports"] = "التقارير التفصيلية";
$lang["reports_detailed_requisition_report"] = "تقرير مفصل لطلبات الشراء";
$lang["reports_detailed_sales_report"] = "تقرير مفصل للمبيعات";
@@ -46,6 +48,7 @@ $lang["reports_expenses_amount"] = "القيمة";
$lang["reports_expenses_categories"] = "فئات المصاريف";
$lang["reports_expenses_categories_summary_report"] = "تقرير المصاريف حسب الفئات";
$lang["reports_expenses_category"] = "الفئة";
$lang["reports_expenses_payment_amount"] = "";
$lang["reports_expenses_tax_amount"] = "الضريبة";
$lang["reports_expenses_total_amount"] = "المبلغ الإجمالي";
$lang["reports_expenses_total_tax_amount"] = "الضريبة الإجمالية";
@@ -105,7 +108,9 @@ $lang["reports_sales_summary_report"] = "تقرير ملخص المبيعات";
$lang["reports_sales_taxes"] = "ضرائب المبيعات";
$lang["reports_sales_taxes_summary_report"] = "تقرير ملخص ضرائب المبيعات";
$lang["reports_serial_number"] = "مسلسل";
$lang["reports_service_charge"] = "";
$lang["reports_sold_by"] = "البائع";
$lang["reports_sold_items"] = "";
$lang["reports_sold_to"] = "مباع الى";
$lang["reports_stock_location"] = "مكان المخزون";
$lang["reports_sub_total_value"] = "المجموع الفرعى";
@@ -117,6 +122,7 @@ $lang["reports_suppliers"] = "الموردين";
$lang["reports_suppliers_summary_report"] = "تقرير ملخص الموردين";
$lang["reports_tax"] = "الضريبة";
$lang["reports_tax_category"] = "الفئة الضريبية";
$lang["reports_tax_name"] = "";
$lang["reports_tax_percent"] = "نسبة الضريبة";
$lang["reports_tax_rate"] = "معدل الضريبة";
$lang["reports_taxes"] = "الضرائب";

View File

@@ -10,36 +10,48 @@ $lang["sales_amount_tendered"] = "المبلغ المدفوع";
$lang["sales_authorized_signature"] = "توقيع معتمد";
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
$lang["sales_cash"] = "نقدى";
$lang["sales_cash_1"] = "";
$lang["sales_cash_2"] = "";
$lang["sales_cash_3"] = "";
$lang["sales_cash_4"] = "";
$lang["sales_cash_adjustment"] = "تعديل الدفع";
$lang["sales_cash_deposit"] = "ايداع نقدي";
$lang["sales_cash_filter"] = "نقدى";
$lang["sales_change_due"] = "الباقى";
$lang["sales_change_price"] = "";
$lang["sales_change_price"] = "تغيير سعر البيع";
$lang["sales_check"] = "شيك";
$lang["sales_check_balance"] = "تذكير بموعد الشيك";
$lang["sales_check_filter"] = "شيك";
$lang["sales_close"] = "";
$lang["sales_comment"] = "تعليق";
$lang["sales_comments"] = "تعليقات";
$lang["sales_company_name"] = "";
$lang["sales_complete"] = "";
$lang["sales_complete_sale"] = "إتمام البيع";
$lang["sales_confirm_cancel_sale"] = "هل أنت متأكد من الغاء عملية البيع ؟ سيتم إزالة كل الأصناف.";
$lang["sales_confirm_delete"] = "هل تريد حذف عمليات البيع المختارة؟";
$lang["sales_confirm_restore"] = "هل انت متاكد من استعادة عملية البيع؟";
$lang["sales_credit"] = "بطاقة إئتمانية";
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
$lang["sales_credit_filter"] = "";
$lang["sales_credit_filter"] = "بطاقة بنكية";
$lang["sales_current_table"] = "";
$lang["sales_customer"] = "العميل";
$lang["sales_customer_address"] = "العنوان";
$lang["sales_customer_discount"] = "الخصم";
$lang["sales_customer_email"] = "البريد الإلكترونى";
$lang["sales_customer_location"] = "المكان";
$lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
$lang["sales_customer_mailchimp_status"] = "حالة بريد ميل تشيمب";
$lang["sales_customer_optional"] = "(مطلوب للدفعات المستحقة)";
$lang["sales_customer_required"] = "(اجباري)";
$lang["sales_customer_total"] = "المجموع";
$lang["sales_customer_total_spent"] = "";
$lang["sales_daily_sales"] = "";
$lang["sales_date"] = "تاريخ البيع";
$lang["sales_date_range"] = "الفترة الزمنية";
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["sales_date_type"] = "التاريخ مطلوب.";
$lang["sales_debit"] = "بطاقة خصم";
$lang["sales_debit_filter"] = "";
$lang["sales_delete"] = "اسمح بالمسح";
$lang["sales_delete_confirmation"] = "هل أنت متأكد أنك تريد حذف عملية البيع هذه؟ لايمكن التراجع بعد الحذف.";
$lang["sales_delete_entire_sale"] = "حذف عملية البيع بالكامل";
@@ -53,26 +65,27 @@ $lang["sales_discount_included"] = "% خصم";
$lang["sales_discount_short"] = "%";
$lang["sales_due"] = "مستحق";
$lang["sales_due_filter"] = "مستحق";
$lang["sales_edit"] = "تحرير";
$lang["sales_edit_item"] = "تحرير صنف";
$lang["sales_edit_sale"] = "تحرير عملية بيع";
$lang["sales_edit"] = "تعديل";
$lang["sales_edit_item"] = "تعديل مادة";
$lang["sales_edit_sale"] = "تعديل عملية بيع";
$lang["sales_email_receipt"] = "إرسال الايصال بالبريد الالكترونى";
$lang["sales_employee"] = "الموظف";
$lang["sales_entry"] = "ادخال";
$lang["sales_error_editing_item"] = "خطاء فى تحرير الصنف";
$lang["sales_find_or_scan_item"] = "بحث/مسح باركود صنف";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو ايصال";
$lang["sales_error_editing_item"] = "خطاء فى تعديل المادة";
$lang["sales_find_or_scan_item"] = "بحث/مسح باركود المادة";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود المادة أو الايصال";
$lang["sales_giftcard"] = "بطاقة هدية";
$lang["sales_giftcard_balance"] = "رصيد بطاقة الهدية";
$lang["sales_giftcard_filter"] = "";
$lang["sales_giftcard_number"] = "رقم بطاقة الهدية";
$lang["sales_group_by_category"] = "تصفية حسب الفئة";
$lang["sales_group_by_type"] = "تجميع حسب النوع";
$lang["sales_group_by_category"] = "ترتيب حسب الفئة";
$lang["sales_group_by_type"] = "ترتيب حسب النوع";
$lang["sales_hsn"] = "رمز نظام منسق";
$lang["sales_id"] = "كود عملية البيع";
$lang["sales_id"] = "رقم عملية البيع";
$lang["sales_include_prices"] = "يشمل الاسعار؟";
$lang["sales_invoice"] = "فاتورة";
$lang["sales_invoice_confirm"] = "هذه الفاتورة سوف ترسل إلى";
$lang["sales_invoice_enable"] = "إنشاء فاتورة";
$lang["sales_invoice_enable"] = "رقم فاتورة";
$lang["sales_invoice_filter"] = "الفواتير";
$lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد الكترونى صالح.";
$lang["sales_invoice_number"] = "فاتورة رقم #";
@@ -85,32 +98,55 @@ $lang["sales_invoice_type_invoice"] = "الفاتورة (invoice.php)";
$lang["sales_invoice_type_tax_invoice"] = "الفاتورة الضريبية (tax_invoice.php)";
$lang["sales_invoice_unsent"] = "فشل إرسال الفاتورة إلى";
$lang["sales_invoice_update"] = "إعادة العد";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف.";
$lang["sales_item_name"] = "اسم الصنف";
$lang["sales_item_number"] = "صنف #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف.";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من المادة.";
$lang["sales_item_name"] = "اسم المادة";
$lang["sales_item_number"] = "مادة رقم #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من المادة.";
$lang["sales_key_browser"] = "";
$lang["sales_key_cancel"] = "Cancels Current Quote/Invoice/Sale";
$lang["sales_key_customer_search"] = "Customer Search";
$lang["sales_key_finish_quote"] = "Finish Quote/Invoice witdout payment";
$lang["sales_key_finish_sale"] = "Add Payment and Complete Invoice/Sale";
$lang["sales_key_full"] = "";
$lang["sales_key_function"] = "Function";
$lang["sales_key_help"] = "Shortcuts";
$lang["sales_key_help_modal"] = "Open Shortcuts Window";
$lang["sales_key_in"] = "";
$lang["sales_key_item_search"] = "Item Search";
$lang["sales_key_out"] = "";
$lang["sales_key_payment"] = "Add Payment";
$lang["sales_key_print"] = "";
$lang["sales_key_restore"] = "";
$lang["sales_key_search"] = "";
$lang["sales_key_suspend"] = "Suspend Current Sale";
$lang["sales_key_suspended"] = "Show Suspended Sales";
$lang["sales_key_system"] = "";
$lang["sales_key_tendered"] = "Edit Amount Tendered";
$lang["sales_key_title"] = "Sales Keyboard Shortcuts";
$lang["sales_mc"] = "";
$lang["sales_mode"] = "وضع التسجيل";
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع.";
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
$lang["sales_must_enter_numeric_giftcard"] = "رمز بطاقة الهدية يجب أن يكتون ارقام فقط.";
$lang["sales_new_customer"] = "عميل جديد";
$lang["sales_new_item"] = "صنف جديد";
$lang["sales_new_item"] = "مادة جديدة";
$lang["sales_no_description"] = "بدون وصف";
$lang["sales_no_filter"] = "الكل";
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة.";
$lang["sales_no_items_in_cart"] = "لايوجد اي مادة فى السلة.";
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها.";
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها.";
$lang["sales_nontaxed_ind"] = "";
$lang["sales_not_authorized"] = "هذه العملية لا يمكن فعلها لعدم تخويلك.";
$lang["sales_not_authorized"] = "ليس لديك صلاحية.";
$lang["sales_one_or_multiple"] = "عمليات بيع";
$lang["sales_payment"] = "طريقة الدفع";
$lang["sales_payment_amount"] = "المبلغ";
$lang["sales_payment_amount"] = "القيمة";
$lang["sales_payment_not_cover_total"] = "المبلغ المدفوع لايغطى المبلغ الإجمالى.";
$lang["sales_payment_type"] = "طريقة";
$lang["sales_payments"] = "";
$lang["sales_payments_total"] = "إجمالى المدفوعات";
$lang["sales_price"] = "السعر";
$lang["sales_print_after_sale"] = "اطبع بعد عملية البيع";
$lang["sales_quantity"] = "الكمية";
$lang["sales_quantity_less_than_reorder_level"] = "تحذير: الكمية/العدد المطلوب غير متوفر لهذا الصنف.";
$lang["sales_quantity_less_than_reorder_level"] = "تحذير: الكمية أقل من الحد المطلوب لهذه المادة.";
$lang["sales_quantity_less_than_zero"] = "تحذير! الكمية المطلوبة غير كافية، بإمكانك إتمام عملية البيع ، لكن تحقق من مخزنك.";
$lang["sales_quantity_of_items"] = "عدد ال 1% من الاصناف";
$lang["sales_quote"] = "عرض اسعار";
@@ -123,10 +159,11 @@ $lang["sales_receipt_no_email"] = "هذا العميل ليس له اي بريد
$lang["sales_receipt_number"] = "إيصال بيع";
$lang["sales_receipt_sent"] = "تم إرسال الإيصال إلى";
$lang["sales_receipt_unsent"] = "فشل إرسال الإيصال إلى";
$lang["sales_refund"] = "";
$lang["sales_register"] = "مسجل المبيعات";
$lang["sales_refund"] = "نوع/سبب الاسترجاع";
$lang["sales_register"] = "سجل المبيعات";
$lang["sales_remove_customer"] = "حذف عميل";
$lang["sales_return"] = "إرتجاع";
$lang["sales_remove_discount"] = "";
$lang["sales_return"] = "إسترجاع";
$lang["sales_rewards"] = "نقاط المكافئة";
$lang["sales_rewards_balance"] = "رصيد نقاط المكافئة";
$lang["sales_sale"] = "بيع";
@@ -134,18 +171,21 @@ $lang["sales_sale_by_invoice"] = "البيع بفاتورة رسمية";
$lang["sales_sale_for_customer"] = "العميل:";
$lang["sales_sale_time"] = "الوقت";
$lang["sales_sales_tax"] = "ضريبة البيع";
$lang["sales_sales_total"] = "";
$lang["sales_select_customer"] = "اختيار عميل (اختياري)";
$lang["sales_send_invoice"] = "إرسال الفاتورة";
$lang["sales_send_quote"] = "ارسال عرض الاسعار";
$lang["sales_send_receipt"] = "إرسال إيصال";
$lang["sales_send_work_order"] = "ارسال طلب عمل";
$lang["sales_serial"] = "مسلسل";
$lang["sales_service_charge"] = "";
$lang["sales_show_due"] = "";
$lang["sales_show_invoice"] = "عرض الفاتورة";
$lang["sales_show_receipt"] = "عرض الإيصال";
$lang["sales_start_typing_customer_name"] = "ابداء بكتابة اسم العميل...";
$lang["sales_start_typing_item_name"] = "ابداء بكتابة اسم أو مسح باركود الصنف...";
$lang["sales_stock"] = "المخزن";
$lang["sales_stock_location"] = "مكان المخزون";
$lang["sales_stock_location"] = "موقع التخزين";
$lang["sales_sub_total"] = "المجموع الفرعي";
$lang["sales_successfully_deleted"] = "لقد تم الحذف بنجاح";
$lang["sales_successfully_restored"] = "لقد تمت عملية الاستعادة بنجاح";
@@ -174,6 +214,8 @@ $lang["sales_unsuspend"] = "إلغاء تعليق";
$lang["sales_unsuspend_and_delete"] = "إلغاء تعليق وحذف";
$lang["sales_update"] = "تحديث";
$lang["sales_upi"] = "رقم التعريف الشخصي";
$lang["sales_visa"] = "";
$lang["sales_wholesale"] = "";
$lang["sales_work_order"] = "طلب عمل";
$lang["sales_work_order_number"] = "رقم طلب العمل";
$lang["sales_work_order_number_duplicate"] = "رقم طلب العمل يجب ان يكون فريد.";

View File

@@ -14,6 +14,7 @@ $lang["taxes_group_seq"] = "تسلسل المجموعة";
$lang["taxes_jurisdiction_name"] = "اسم الولاية القضائية";
$lang["taxes_name"] = "الاسم";
$lang["taxes_new"] = "ضريبة جديدة";
$lang["taxes_no_taxes"] = "";
$lang["taxes_no_taxes_to_display"] = "لا يوجد أكواد ضريبية للعرض";
$lang["taxes_reporting_authority"] = "السلطة الضريبية";
$lang["taxes_round_half_down"] = "نصف الاسفل";

View File

@@ -3,23 +3,31 @@
$lang["cashups_amount"] = "Məbləğ";
$lang["cashups_amount_number"] = "Məbləğ rəqəmlə olmalıdır";
$lang["cashups_amount_required"] = "Məbləğ zəruri sahədir.";
$lang["cashups_cancel_cashups"] = "";
$lang["cashups_cancel_cashups_enter"] = "";
$lang["cashups_cannot_be_deleted"] = "Pul vahidi silinməsi mümkün deyil";
$lang["cashups_cash_difference"] = "";
$lang["cashups_close_date"] = "Bağlanma Tarixi";
$lang["cashups_close_employee"] = "Bağlıdır";
$lang["cashups_closed_amount_card"] = "Kartlar";
$lang["cashups_closed_amount_cash"] = "Kassanın Bağlanması";
$lang["cashups_closed_amount_check"] = "Çeklər";
$lang["cashups_closed_amount_due"] = "Rüsum";
$lang["cashups_closed_amount_giftcard"] = "";
$lang["cashups_closed_amount_total"] = "Cəmi";
$lang["cashups_closed_date"] = "Bağlanma tarixi";
$lang["cashups_confirm_delete"] = "Seçilmiş Pul vahidi silmək istədiyinizə əminsinizmi?";
$lang["cashups_confirm_restore"] = "Seçilmiş Pul vahidi bərpa etmək istədiyinizə əminsinizmi?";
$lang["cashups_confirm_submit"] = "";
$lang["cashups_date_number"] = "Tarix rəqəmlə olmalıdır";
$lang["cashups_date_required"] = "Tarixi tələb olunan bir sahədir";
$lang["cashups_description"] = "Təsvir";
$lang["cashups_enable_expected"] = "";
$lang["cashups_error_adding_updating"] = "XƏTA Pul vahidi Əvavə/yenilənmədə";
$lang["cashups_giftcard"] = "";
$lang["cashups_id"] = "İD";
$lang["cashups_info"] = "Pul vahidi məlumatı";
$lang["cashups_info_employee"] = "";
$lang["cashups_is_deleted"] = "Silindi";
$lang["cashups_new"] = "Yeni Pul vahidi";
$lang["cashups_no_cashups_to_display"] = "Göstərmək üçün heç nağd pul yoxdur";
@@ -35,4 +43,6 @@ $lang["cashups_successful_deleted"] = "Pul vahidi silindi";
$lang["cashups_successful_updating"] = "Pul vahidi yeniləndi";
$lang["cashups_total"] = "Cəmi";
$lang["cashups_transfer_amount_cash"] = "Pul vahidi Giriş/Çıxışları";
$lang["cashups_transfer_amount_cash_minus"] = "";
$lang["cashups_update"] = "Pul vahidi Yeniləndi";
$lang["cashups_warning"] = "";

View File

@@ -2,14 +2,18 @@
$lang["common_address_1"] = "Ünvan 1";
$lang["common_address_2"] = "Ünvan 2";
$lang["common_admin"] = "";
$lang["common_city"] = "Şəhər";
$lang["common_clerk"] = "";
$lang["common_close"] = "Bağlı";
$lang["common_color"] = "";
$lang["common_comments"] = "Rəylər";
$lang["common_common"] = "ortaq";
$lang["common_confirm_search"] = "Bir və ya bir neçə sətir seçdiniz, bunlar axtarışınızdan sonra artıq seçilməyəcək. Bu axtarışı göndərmək istədiyinizə əminsinizmi?";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "Xahiş edirik təsdiqlə-dən əvvəl səhvləri düzəldin";
$lang["common_country"] = "Ölkə";
$lang["common_dashboard"] = "";
$lang["common_date"] = "Təqvim";
$lang["common_delete"] = "Sil";
$lang["common_det"] = "detallar";
@@ -21,12 +25,15 @@ $lang["common_export_csv"] = "CSV Export";
$lang["common_export_csv_no"] = "Xeyr";
$lang["common_export_csv_yes"] = "Bəli";
$lang["common_fields_required_message"] = "Qırmızı sahələr tələb olunur";
$lang["common_fields_required_message_unique"] = "";
$lang["common_first_name"] = "Ad";
$lang["common_first_name_required"] = "Ad yazmağınız tələb olunur.";
$lang["common_first_page"] = "Birinci";
$lang["common_gender"] = "Cins";
$lang["common_gender_female"] = "Q";
$lang["common_gender_male"] = "K";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "ID";
$lang["common_import"] = "Daxil et";
$lang["common_import_change_file"] = "Dəyiş";
@@ -40,15 +47,21 @@ $lang["common_last_name_required"] = "Soyad tələb olunur.";
$lang["common_last_page"] = "Son";
$lang["common_learn_about_project"] = "Proyekt haqqında ən son məlumatı öyrənmək.";
$lang["common_list_of"] = "Siyahısı";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Çıxış";
$lang["common_manager"] = "";
$lang["common_migration_needed"] = "Girişdən sonra bazaya %1 köçməsi başlayacaq.";
$lang["common_new"] = "Yenisi";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "Göstərmək üçün heç kim yoxdur.";
$lang["common_none_selected_text"] = "Seçin";
$lang["common_or"] = "Və ya";
$lang["common_people"] = "";
$lang["common_phone_number"] = "Telefon";
$lang["common_phone_number_required"] = "çıxarış ";
$lang["common_please_visit_my"] = "Xahiş edirik ziyarət edin";
$lang["common_position"] = "";
$lang["common_powered_by"] = "Yaradıcı";
$lang["common_price"] = "Qiymət";
$lang["common_print"] = "Çap";
@@ -59,6 +72,8 @@ $lang["common_return_policy"] = "Qaytarma siyasəti";
$lang["common_search"] = "Axtarış";
$lang["common_search_options"] = "Axtarış variantları";
$lang["common_searched_for"] = "Axtarıldı";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Əyalət";
$lang["common_submit"] = "Təsdiqlə";
$lang["common_total_spent"] = "Ümumi xərc";
@@ -67,5 +82,6 @@ $lang["common_view_recent_sales"] = "Son Satışları Göstər";
$lang["common_website"] = "Veb Sayt";
$lang["common_welcome"] = "Xoş Gəlmisiniz";
$lang["common_welcome_message"] = "ALSAN-a Xoş gəlmisiniz, başlamaq üçün bir modula basın.";
$lang["common_yes"] = "";
$lang["common_you_are_using_ospos"] = "ıq Layihədə Satışın Avtomatlaşdırma Nöqtəsi versiya";
$lang["common_zip"] = "Poçt Kodu";

View File

@@ -31,13 +31,22 @@ $lang["config_barcode_tooltip"] = "Diqqət: Bu xüsusiyyət malların dublikat o
$lang["config_barcode_type"] = "Barkod Növü";
$lang["config_barcode_width"] = "Genişlik";
$lang["config_bottom"] = "Aşağı";
$lang["config_cash_button"] = "";
$lang["config_cash_button_1"] = "";
$lang["config_cash_button_2"] = "";
$lang["config_cash_button_3"] = "";
$lang["config_cash_button_4"] = "";
$lang["config_cash_button_5"] = "";
$lang["config_cash_button_6"] = "";
$lang["config_cash_decimals"] = "Nəğd Pul Cədvəlləri";
$lang["config_cash_decimals_tooltip"] = "Nağd pul və Məzənnədəki ədədlər eyni olarsa, onda nağd pul yuvarlaqlaşması baş verməz.";
$lang["config_cash_rounding"] = "Nəğd Pul Yuvarlaqlaşdırılması";
$lang["config_category_dropdown"] = "Bölməni açılan siyahida göstər";
$lang["config_center"] = "Mərkəz";
$lang["config_change_apperance_tooltip"] = "";
$lang["config_comma"] = "vergül";
$lang["config_company"] = "Şirkətin Adı";
$lang["config_company_avatar"] = "";
$lang["config_company_change_image"] = "Şəkili Dəyiş";
$lang["config_company_logo"] = "Şirkətin Logosu";
$lang["config_company_remove_image"] = "Şəkili Sil";
@@ -49,6 +58,7 @@ $lang["config_country_codes_tooltip"] = "Vergüllə ayrılmış ölkə kodları
$lang["config_currency_code"] = "Valyuta Kodu";
$lang["config_currency_decimals"] = "Məzənnə Rəqəmləri";
$lang["config_currency_symbol"] = "Valyuta Simvolu";
$lang["config_current_employee_only"] = "";
$lang["config_customer_reward"] = "Mükafat";
$lang["config_customer_reward_duplicate"] = "Mükafat unikal olmalıdir.";
$lang["config_customer_reward_enable"] = "Müştəri mükafatlarını aktivləşdirin";
@@ -86,6 +96,7 @@ $lang["config_default_tax_name_required"] = "Adi vergi mütləq rəqəmlə olmal
$lang["config_default_tax_rate"] = "Adi vergi dərəcəsi %";
$lang["config_default_tax_rate_1"] = "Vergi Dərəcəsi 1";
$lang["config_default_tax_rate_2"] = "Vergi Məzənnəsi 2";
$lang["config_default_tax_rate_3"] = "";
$lang["config_default_tax_rate_number"] = "Standart Vergi Məzənnəsi rəqəm ilə olmalıdır.";
$lang["config_default_tax_rate_required"] = "Standart Vergi Məzənnəsi olan sahə boş qala bilməz.";
$lang["config_derive_sale_quantity"] = "Tərtib edilmiş satış məbləğinə icazə verin";
@@ -110,6 +121,12 @@ $lang["config_email_smtp_pass"] = "Faks";
$lang["config_email_smtp_port"] = "SMTP Portu";
$lang["config_email_smtp_timeout"] = "STMTP vaxt bitimi (lər)";
$lang["config_email_smtp_user"] = "SMTP İstifadəçi Adı";
$lang["config_enable_avatar"] = "";
$lang["config_enable_avatar_tooltip"] = "";
$lang["config_enable_dropdown_tooltip"] = "";
$lang["config_enable_new_look"] = "";
$lang["config_enable_right_bar"] = "";
$lang["config_enable_right_bar_tooltip"] = "";
$lang["config_enforce_privacy"] = "Məxvilik Təmin edin";
$lang["config_enforce_privacy_tooltip"] = "Müştərilərin gizliliyini qorumaq, silmək halında məlumat şifrələməsini təmin etmək";
$lang["config_fax"] = "Faks";
@@ -127,6 +144,7 @@ $lang["config_financial_year_may"] = "1 May";
$lang["config_financial_year_nov"] = "1 Noyabr";
$lang["config_financial_year_oct"] = "1 Oktyabr";
$lang["config_financial_year_sep"] = "1 Sentyabr";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Giriş Səyfəsi reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Gizli Açarı";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Gizli Açar olan sahə boş qala bilməz";
@@ -146,6 +164,7 @@ $lang["config_image_restrictions"] = "Şəkil yükləmə məhdudiyyətləri";
$lang["config_include_hsn"] = "HSN Kodlarına dəstək verin";
$lang["config_info"] = "Məlumat";
$lang["config_info_configuration"] = "Dükan İnformasiyası";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "İnteqrasiya";
$lang["config_integrations_configuration"] = "Üçüncü tərəf inteqrasiya";
$lang["config_invoice"] = "Faktura";
@@ -157,6 +176,7 @@ $lang["config_invoice_printer"] = "Faktura Printeri";
$lang["config_invoice_type"] = "Qaimənin Tipi";
$lang["config_is_readable"] = "oxunur, lakin icazələr 660-dan yüksəkdir.";
$lang["config_is_writable"] = "yazılabilir, lakin icazələr 750-dən yüksəkdir.";
$lang["config_item_markup"] = "";
$lang["config_jsprintsetup_required"] = "Xəbərdarlıq: Bu funksiya yalnız FireFox jsPrintSetup addon quraşdırıldığı halda işləyəcəkdir. Yadda saxlanılsın?";
$lang["config_language"] = "Dil";
$lang["config_last_used_invoice_number"] = "Son istifadə edilmiş Faktura nömrəsi";
@@ -175,6 +195,7 @@ $lang["config_locale_info"] = "Lokallaşdırma Konfiqurasiya Məlumatı";
$lang["config_location"] = "Fond";
$lang["config_location_configuration"] = "Anbar Yerləri";
$lang["config_location_info"] = "Yer Konfiqurasiya Məlumatı";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Çıxışdan əvvəl məlumatlari ehtiyat bazasına köçürmək istəyirsinizmi? Çıxış üçün Bekap və ya [Ləğv] üçün [OK]' düyməsinə basın.";
$lang["config_mailchimp"] = "Mailçimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Açarı";
@@ -231,8 +252,10 @@ $lang["config_print_top_margin"] = "Üstdəki Künc";
$lang["config_print_top_margin_number"] = "Üstdəki Künc rəqəm ilə olmalıdır.";
$lang["config_print_top_margin_required"] = "Üstdəki Sahə Boş qala bilməz.";
$lang["config_quantity_decimals"] = "Ondalıqların Miqdarı";
$lang["config_quick_cash_enable"] = "";
$lang["config_quote_default_comments"] = "Standart şərhlər";
$lang["config_receipt"] = "Çek";
$lang["config_receipt_category"] = "";
$lang["config_receipt_configuration"] = "Çek Cap Parametirləri";
$lang["config_receipt_default"] = "Adi";
$lang["config_receipt_font_size"] = "Yazı Tipi";
@@ -262,6 +285,8 @@ $lang["config_saved_successfully"] = "Konfiqurasiya uğurla saxlanıldı.";
$lang["config_saved_unsuccessfully"] = "Konfiqurasiyanı saxlamq mümkün olmadı.";
$lang["config_security_issue"] = "Təhlükəsizlik açığı xəbərdarlığı";
$lang["config_server_notice"] = "Xahiş edirik, hesabatın təqdim edilməsi üçün aşağıdakı məlumatı istifadə edin.";
$lang["config_service_charge"] = "";
$lang["config_show_due_enable"] = "";
$lang["config_show_office_group"] = "Ofis İşarəsini Göstər";
$lang["config_statistics"] = "Statistikalari Göndər";
$lang["config_statistics_tooltip"] = "İnkişaf və xüsusiyyət təkmilləşdirilməsi məqsədi ilə statistika göndərin.";
@@ -269,7 +294,9 @@ $lang["config_stock_location"] = "Ehtiyyat Yeri";
$lang["config_stock_location_duplicate"] = "Ehtiyyat Olan Yer Unikal Olmalıdir.";
$lang["config_stock_location_invalid_chars"] = "Ehtiyyat Yeri təşkil etməməlidir '_'.";
$lang["config_stock_location_required"] = "Ehtiyyat Yeri Olan Sahə boş qala bilməz.";
$lang["config_suggestions_fifth_column"] = "";
$lang["config_suggestions_first_column"] = "Sütun 1";
$lang["config_suggestions_fourth_column"] = "";
$lang["config_suggestions_layout"] = "Təklif Çərçivələrini Axtar";
$lang["config_suggestions_second_column"] = "Sütun 2";
$lang["config_suggestions_third_column"] = "Sütun 3";
@@ -289,6 +316,7 @@ $lang["config_tax_decimals"] = "Vaxt";
$lang["config_tax_id"] = "Vergi İD";
$lang["config_tax_included"] = "Vergi Daxildir";
$lang["config_theme"] = "Vebsayt";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Minliklər Ayıran";
$lang["config_timezone"] = "Vaxt Zonası";
$lang["config_timezone_error"] = "OSPOS Saat qurşağı Yerli saat qurşağınızdan fərqlidir.";
@@ -296,5 +324,6 @@ $lang["config_top"] = "Yuxarı";
$lang["config_use_destination_based_tax"] = "Təyinatından vergi istifadə edin";
$lang["config_user_timezone"] = "Yerli saat qurşağı:";
$lang["config_website"] = "Vebsayt";
$lang["config_wholesale_markup"] = "";
$lang["config_work_order_enable"] = "İş Sifariş Dəstəyi";
$lang["config_work_order_format"] = "İş Sifarş Farmatı";

View File

@@ -3,6 +3,7 @@
$lang["customers_account_number"] = "Hesab nömrəsi";
$lang["customers_account_number_duplicate"] = "Hesab nömrəsi artıq verilənlər bazasında mövcuddur.";
$lang["customers_available_points"] = "Mövcud ballar";
$lang["customers_available_points_value"] = "";
$lang["customers_average"] = "Orta xərclənən";
$lang["customers_avg_discount"] = "Orta endirim";
$lang["customers_basic_information"] = "Məlumat";

View File

@@ -1,8 +1,12 @@
<?php
$lang["employees_administrator"] = "";
$lang["employees_basic_information"] = "Məlumat";
$lang["employees_cannot_be_deleted"] = "Seçilmiş əməkdaş (lar) silinə bilməz, bir və ya birdən çox əməkdaş satışlar edib, əks halda siz öz heasabınızı silməyə çalışırsınız.";
$lang["employees_change_employee"] = "";
$lang["employees_change_password"] = "Şifrəni Dəyiş";
$lang["employees_clerk"] = "";
$lang["employees_commission"] = "";
$lang["employees_confirm_delete"] = "Siz əminsiniz ki seçilmiş əməkdaşları silmək istəyirsiniz?";
$lang["employees_confirm_restore"] = "Seçilmiş əməkdaşı (lar) yenidən bərpa etməyinizə əminsinizmi?";
$lang["employees_current_password"] = "İndiki Şifrə";
@@ -13,6 +17,7 @@ $lang["employees_error_deleting_demo_admin"] = "Demo administrator istifadəçis
$lang["employees_error_updating_demo_admin"] = "Demo administrator istifadəçisini dəyişə bilməzsiniz.";
$lang["employees_language"] = "Dil";
$lang["employees_login_info"] = "Daxil Ol";
$lang["employees_manager"] = "";
$lang["employees_new"] = "Yeni Əməkdaş";
$lang["employees_none_selected"] = "Silmək üçün heç bir işçi (lər) seçməmisiniz.";
$lang["employees_one_or_multiple"] = "İşçi (lər)";
@@ -33,5 +38,6 @@ $lang["employees_system_language"] = "Sistem Dili";
$lang["employees_unsuccessful_change_password"] = "Şifrə dəyişməsi uğursuz oldu.";
$lang["employees_update"] = "İşçini yeniləyin";
$lang["employees_username"] = "İstifadəçi Adı";
$lang["employees_username_duplicate"] = "";
$lang["employees_username_minlength"] = "İstifadəçi adı ən azı 5 simvol olmalıdır.";
$lang["employees_username_required"] = "İstifadəçi adı tələb olunan sahədir.";

View File

@@ -29,9 +29,11 @@ $lang["expenses_error_adding_updating"] = "Əlavədə Səhv/Xərci yeniləmək";
$lang["expenses_expense_id"] = "Kimlilk";
$lang["expenses_expenses_employee"] = "Əməkdaş";
$lang["expenses_info"] = "Xərc Məlumatı";
$lang["expenses_ip_address"] = "";
$lang["expenses_is_deleted"] = "Silinib";
$lang["expenses_name_required"] = "Xərcin məlumatı qeyd edilməlidir";
$lang["expenses_new"] = "Yeni Xərc";
$lang["expenses_new_supplier"] = "";
$lang["expenses_no_expenses_to_display"] = "Heç bir Xərclər göstərilmir";
$lang["expenses_none_selected"] = "Siz heç bir xərc seçməmisiniz";
$lang["expenses_one_or_multiple"] = "Xərc (lər)";
@@ -43,4 +45,5 @@ $lang["expenses_successful_updating"] = "Xərc Uğurla Yeniləndi";
$lang["expenses_supplier_name"] = "Təchizatçı";
$lang["expenses_supplier_tax_code"] = "Vergi Məcəlləsi";
$lang["expenses_tax_amount"] = "Vergi";
$lang["expenses_tax_amount_number"] = "";
$lang["expenses_update"] = "Xərci Yenilə";

View File

@@ -14,6 +14,10 @@ $lang["item_kits_error_adding_updating"] = "Malı yeniləməkdə və ya əlavə
$lang["item_kits_find_kit_item"] = "Mal Dəsti";
$lang["item_kits_info"] = "Mal Dəsti haqqında informasiya";
$lang["item_kits_item"] = "Maddə";
$lang["item_kits_item_kit_number"] = "Barkod";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "";
$lang["item_kits_item_number_duplicate"] = "";
$lang["item_kits_items"] = "Mallar";
$lang["item_kits_kit"] = "Dəstin İd";
$lang["item_kits_kit_and_components"] = "Dəst və Komponentlər";
@@ -32,4 +36,5 @@ $lang["item_kits_sequence"] = "Ardıcıllıq";
$lang["item_kits_successful_adding"] = "Siz uğurla mal dəsti əlavə etdiniz";
$lang["item_kits_successful_deleted"] = "siz uğurla sildiniz";
$lang["item_kits_successful_updating"] = "Siz uğurla malı yenilədiniz";
$lang["item_kits_unit_price"] = "";
$lang["item_kits_update"] = "Mal Dəstini Yenilənməsi";

View File

@@ -7,7 +7,9 @@ $lang["items_bulk_edit"] = "Kütləvi Redaktə";
$lang["items_buy_price_required"] = "Alış qiyməti tələb olunan sahədir.";
$lang["items_cannot_be_deleted"] = "Seçilmiş Mal (lar) silmək mükün deyil, bir və ya birdən çox Mallarda Satışlar var.";
$lang["items_cannot_find_item"] = "Mal Tapılmadı.";
$lang["items_categories"] = "";
$lang["items_category"] = "kateqoriya";
$lang["items_category_new"] = "";
$lang["items_category_required"] = "Bölmə sahəsi boş qala bilməz.";
$lang["items_change_all_to_allow_alt_desc"] = "Hamısı üçün Alternativ Təsvirə İcazə Verin.";
$lang["items_change_all_to_not_allow_allow_desc"] = "Hamısı üçün Alternativ Təsvirə İcazə Verməyin.";
@@ -31,6 +33,7 @@ $lang["items_default_pack_name"] = "Hər biri";
$lang["items_description"] = "təsvir";
$lang["items_details_count"] = "detallı inventor sayı";
$lang["items_do_nothing"] = "heç nə etməmək";
$lang["items_edit"] = "";
$lang["items_edit_fields_you_want_to_update"] = "Seçilmiş məhsullar üçün tələb olunan sahələri redaktə edin.";
$lang["items_edit_multiple_items"] = "bir neçə malın redaktəsi";
$lang["items_empty_upc_items"] = "Boş Barkod Malları";
@@ -50,8 +53,10 @@ $lang["items_inventory_employee"] = "Əmakdaş";
$lang["items_inventory_in_out_quantity"] = "Daxili və Xarici Say";
$lang["items_inventory_remarks"] = "Qeydlər";
$lang["items_is_deleted"] = "Silindi";
$lang["items_is_printed"] = "";
$lang["items_is_serialized"] = "Malın Seriya Nömrəsi var";
$lang["items_item"] = "Mal";
$lang["items_item_id"] = "";
$lang["items_item_number"] = "Barkod";
$lang["items_item_number_duplicate"] = "Malın Nömrəsi artiq Məlumat bazasında var.";
$lang["items_kit"] = "Dəst";
@@ -59,6 +64,7 @@ $lang["items_location"] = "Yer";
$lang["items_low_inventory_items"] = "Bitmış Mallar";
$lang["items_low_sell_item"] = "Malların aşağı qiy. satışı";
$lang["items_manually_editing_of_quantity"] = "Sayı Əl ilə Redeaktə Etmək";
$lang["items_markup"] = "";
$lang["items_name"] = "Malın Adı";
$lang["items_name_required"] = "Malın adı olan sahə boş qala bilməz.";
$lang["items_new"] = "Yeni Mal";
@@ -97,6 +103,7 @@ $lang["items_successful_updating"] = "Siz uğurla malı yenilədiniz";
$lang["items_supplier"] = "Təchizatcı";
$lang["items_tax_1"] = "Vergi 1";
$lang["items_tax_2"] = "Vergi 2";
$lang["items_tax_3"] = "";
$lang["items_tax_category"] = "Vergi Bolməsi";
$lang["items_tax_percent"] = "Vergi Faizi";
$lang["items_tax_percent_number"] = "Vergi Faizi rəqəmli dəyər vahidi olmalıdir";

View File

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

View File

@@ -1,5 +1,7 @@
<?php
$lang["module_admin_cashups"] = "";
$lang["module_admin_cashups_desc"] = "";
$lang["module_attributes"] = "Atributlar";
$lang["module_attributes_desc"] = "Atributları əlavə et, yenilə, sil və ya axtar.";
$lang["module_both"] = "Hər ikizi";
@@ -39,3 +41,7 @@ $lang["module_suppliers"] = "Təchizatçılar";
$lang["module_suppliers_desc"] = "Əlavə et, Yenilə, Sil və Təchizatçıları Axtar.";
$lang["module_taxes"] = "Vergi";
$lang["module_taxes_desc"] = "Satış üçün Vergiləri Ayarla.";
$lang["module_timeclocks"] = "";
$lang["module_timeclocks_categories"] = "";
$lang["module_timeclocks_categories_desc"] = "";
$lang["module_timeclocks_desc"] = "";

View File

@@ -1,5 +1,6 @@
<?php
$lang["receivings_amount_due"] = "";
$lang["receivings_cancel_receiving"] = "İmtina";
$lang["receivings_cannot_be_deleted"] = "Qəbul olunanlar silinmədi.";
$lang["receivings_comments"] = "Rəylər";
@@ -7,7 +8,9 @@ $lang["receivings_complete_receiving"] = "Bitirmək";
$lang["receivings_confirm_cancel_receiving"] = "Siz əminsinizmi bu qəbul olunanları silməyinizə? Bütün mallar təmizlənəcək.";
$lang["receivings_confirm_delete"] = "Bu qəbuldan silmək istədiyinizə əminsiniz? Bu hərəkət geri qaytarıla bilməz.";
$lang["receivings_confirm_finish_receiving"] = "Bu qəbulu təqdim etmək istədiyinizə əminsiniz? Bunu geri qaytarmaq mümkün deyil.";
$lang["receivings_confirm_restore"] = "";
$lang["receivings_cost"] = "Xərc";
$lang["receivings_daily"] = "";
$lang["receivings_date"] = "Qəbul olunma tarixi";
$lang["receivings_date_required"] = "Düzgün bir tarix daxil olunmalıdır.";
$lang["receivings_date_type"] = "Tarixi tələb olunan bir sahədir.";

View File

@@ -14,6 +14,7 @@ $lang["reports_code_return"] = "RET";
$lang["reports_code_type"] = "Növ";
$lang["reports_code_work_order"] = "W/O";
$lang["reports_comments"] = "bütün qiymət";
$lang["reports_commission"] = "";
$lang["reports_complete"] = "Tamamlanmış Satış və Geri Qaytarılanlar";
$lang["reports_completed_sales"] = "Tamamlanmış Satışlar";
$lang["reports_confirm_delete"] = "Seçdiyiniz giriş (lər) silmək istədiyinizə əminsinizmi?";
@@ -28,6 +29,7 @@ $lang["reports_date"] = "təsvir";
$lang["reports_date_range"] = "detallı göndərilən hesabatlar";
$lang["reports_description"] = "detallı hesabatlar";
$lang["reports_detailed_receivings_report"] = "Ətraflı satınalma hesabatı";
$lang["reports_detailed_receivings_report_input"] = "";
$lang["reports_detailed_reports"] = "etraflı məlumat";
$lang["reports_detailed_requisition_report"] = "endirimler";
$lang["reports_detailed_sales_report"] = "Ətraflı satış hesabatı";
@@ -46,6 +48,7 @@ $lang["reports_expenses_amount"] = "Məbləğ";
$lang["reports_expenses_categories"] = "Xərclər";
$lang["reports_expenses_categories_summary_report"] = "Xərc kateqoriyasında Son Hesabat";
$lang["reports_expenses_category"] = "Kategoriya";
$lang["reports_expenses_payment_amount"] = "";
$lang["reports_expenses_tax_amount"] = "Vergi";
$lang["reports_expenses_total_amount"] = "Ümumi Məbləğ";
$lang["reports_expenses_total_tax_amount"] = "Ümumi Vergi";
@@ -105,7 +108,9 @@ $lang["reports_sales_summary_report"] = "toplam";
$lang["reports_sales_taxes"] = "Satışdan Vergi";
$lang["reports_sales_taxes_summary_report"] = "Satışdan vergilərə dair yekun hesabat";
$lang["reports_serial_number"] = "hesabatlar";
$lang["reports_service_charge"] = "";
$lang["reports_sold_by"] = "kim tərəfindən qoyulub";
$lang["reports_sold_items"] = "";
$lang["reports_sold_to"] = "təchizatçı";
$lang["reports_stock_location"] = "təchizatçılar";
$lang["reports_sub_total_value"] = "təchizatci hesabatı";
@@ -117,6 +122,7 @@ $lang["reports_suppliers"] = "toplam";
$lang["reports_suppliers_summary_report"] = "Təchizatçıların Yekun Hesabatı";
$lang["reports_tax"] = "tip";
$lang["reports_tax_category"] = "Vergi Bolməsi";
$lang["reports_tax_name"] = "";
$lang["reports_tax_percent"] = "Retail Price";
$lang["reports_tax_rate"] = "Vergi dərəcəsi";
$lang["reports_taxes"] = "Vergilər";

View File

@@ -10,6 +10,11 @@ $lang["sales_amount_tendered"] = "Ödənilən məbləğ";
$lang["sales_authorized_signature"] = "Səlahiyyətli İmza";
$lang["sales_cancel_sale"] = "İmtina";
$lang["sales_cash"] = "Nəğd pullar";
$lang["sales_cash_1"] = "";
$lang["sales_cash_2"] = "";
$lang["sales_cash_3"] = "";
$lang["sales_cash_4"] = "";
$lang["sales_cash_adjustment"] = "";
$lang["sales_cash_deposit"] = "Nağd depozit";
$lang["sales_cash_filter"] = "Nəğd Pul";
$lang["sales_change_due"] = "Qalıq";
@@ -17,8 +22,11 @@ $lang["sales_change_price"] = "Satış qiymətini dəyiş";
$lang["sales_check"] = "Çek";
$lang["sales_check_balance"] = "Çek Xatırladan";
$lang["sales_check_filter"] = "Çek";
$lang["sales_close"] = "";
$lang["sales_comment"] = "Şərh";
$lang["sales_comments"] = "Şərhlər";
$lang["sales_company_name"] = "";
$lang["sales_complete"] = "";
$lang["sales_complete_sale"] = "Tamamlayın";
$lang["sales_confirm_cancel_sale"] = "Siz əminsiniz ki,satışı ləğv etmək istəyirsiniz? Bütün detallar silinəcək.";
$lang["sales_confirm_delete"] = "Siz əminsiniz ki seçilmiş satışı (lar) silmək istəyirsiz?";
@@ -26,6 +34,7 @@ $lang["sales_confirm_restore"] = "Seçilmiş Satışları bərpa etmək istədiy
$lang["sales_credit"] = "Kredit kartı";
$lang["sales_credit_deposit"] = "Kredit Depoziti";
$lang["sales_credit_filter"] = "";
$lang["sales_current_table"] = "";
$lang["sales_customer"] = "Ad";
$lang["sales_customer_address"] = "Ünvan";
$lang["sales_customer_discount"] = "Endirim";
@@ -35,11 +44,14 @@ $lang["sales_customer_mailchimp_status"] = "Mailchimp Statusu";
$lang["sales_customer_optional"] = "(Ödənişlərdə tələb olunur)";
$lang["sales_customer_required"] = "(Vacib)";
$lang["sales_customer_total"] = "Cəmi";
$lang["sales_customer_total_spent"] = "";
$lang["sales_daily_sales"] = "";
$lang["sales_date"] = "Satış Tarixi";
$lang["sales_date_range"] = "Tarix Aralığı";
$lang["sales_date_required"] = "Düzgün tarix daxil edilməlidir.";
$lang["sales_date_type"] = "Boşluğa tarix əlavə edilməlidir.";
$lang["sales_debit"] = "Debit kart";
$lang["sales_debit_filter"] = "";
$lang["sales_delete"] = "Silməyə izin ver";
$lang["sales_delete_confirmation"] = "Siz bu satışı silmək istəyinizə əminsiniz? Bu əməlliyat bərpa edilməyəcək.";
$lang["sales_delete_entire_sale"] = "Bütün Satışı Silmək";
@@ -64,6 +76,7 @@ $lang["sales_find_or_scan_item"] = "Malın axtarışı";
$lang["sales_find_or_scan_item_or_receipt"] = "Tapmaq skan etmək və ya kvitansiya";
$lang["sales_giftcard"] = "Hədiyyə Kartı";
$lang["sales_giftcard_balance"] = "Hədiyyə Kartı Balansı";
$lang["sales_giftcard_filter"] = "";
$lang["sales_giftcard_number"] = "Hədiyyə kartının nömrəsi";
$lang["sales_group_by_category"] = "Bölməyə görə grup";
$lang["sales_group_by_type"] = "Növə görə qrup";
@@ -89,6 +102,28 @@ $lang["sales_item_insufficient_of_stock"] = "Anbarda kifayət qədər mal yoxdur
$lang["sales_item_name"] = "Malın adı";
$lang["sales_item_number"] = "Mal #";
$lang["sales_item_out_of_stock"] = "Mal satılıb.";
$lang["sales_key_browser"] = "";
$lang["sales_key_cancel"] = "Cancels Current Quote/Invoice/Sale";
$lang["sales_key_customer_search"] = "Customer Search";
$lang["sales_key_finish_quote"] = "Finish Quote/Invoice witdout payment";
$lang["sales_key_finish_sale"] = "Add Payment and Complete Invoice/Sale";
$lang["sales_key_full"] = "";
$lang["sales_key_function"] = "Function";
$lang["sales_key_help"] = "Shortcuts";
$lang["sales_key_help_modal"] = "Open Shortcuts Window";
$lang["sales_key_in"] = "";
$lang["sales_key_item_search"] = "Item Search";
$lang["sales_key_out"] = "";
$lang["sales_key_payment"] = "Add Payment";
$lang["sales_key_print"] = "";
$lang["sales_key_restore"] = "";
$lang["sales_key_search"] = "";
$lang["sales_key_suspend"] = "Suspend Current Sale";
$lang["sales_key_suspended"] = "Show Suspended Sales";
$lang["sales_key_system"] = "";
$lang["sales_key_tendered"] = "Edit Amount Tendered";
$lang["sales_key_title"] = "Sales Keyboard Shortcuts";
$lang["sales_mc"] = "";
$lang["sales_mode"] = "Qeydiyyat Rejimi";
$lang["sales_must_enter_numeric"] = "Ödəniş məbləği rəqəm ilə olmalıdır.";
$lang["sales_must_enter_numeric_giftcard"] = "Hədiyyə Kartın nömrəsi rəqəmlə olmalıdır.";
@@ -106,6 +141,7 @@ $lang["sales_payment"] = "Ödəniş Növü";
$lang["sales_payment_amount"] = "Məbləğ";
$lang["sales_payment_not_cover_total"] = "Ödəmə məbləği Toplamdan çox və ya bərabər olmalıdır.";
$lang["sales_payment_type"] = "Növ";
$lang["sales_payments"] = "";
$lang["sales_payments_total"] = "Cəmi Ödənilənlər";
$lang["sales_price"] = "Qiymət";
$lang["sales_print_after_sale"] = "Satışdan sonra Çap edin";
@@ -126,6 +162,7 @@ $lang["sales_receipt_unsent"] = "Çek göndərilə Bilmədi";
$lang["sales_refund"] = "Qaytarılma növü";
$lang["sales_register"] = "jurnal satışı";
$lang["sales_remove_customer"] = "müştəriləri silmək";
$lang["sales_remove_discount"] = "";
$lang["sales_return"] = "qaytarmaq";
$lang["sales_rewards"] = "Mükafat Balları";
$lang["sales_rewards_balance"] = "Mükafat Balları Balansı";
@@ -134,12 +171,15 @@ $lang["sales_sale_by_invoice"] = "Faktura ilə Satış";
$lang["sales_sale_for_customer"] = "Müştəri:";
$lang["sales_sale_time"] = "Vaxt";
$lang["sales_sales_tax"] = "Satış Vergisi";
$lang["sales_sales_total"] = "";
$lang["sales_select_customer"] = "Müştəri seçmək";
$lang["sales_send_invoice"] = "Faktura Göndər";
$lang["sales_send_quote"] = "Sitat Göndər";
$lang["sales_send_receipt"] = "Çek Göndər";
$lang["sales_send_work_order"] = "İş Sifarişini Göndərin";
$lang["sales_serial"] = "seriya nömrəsi";
$lang["sales_service_charge"] = "";
$lang["sales_show_due"] = "";
$lang["sales_show_invoice"] = "Fakturanı Göstər";
$lang["sales_show_receipt"] = "Çek Göstər";
$lang["sales_start_typing_customer_name"] = "müştəri adını çap etməyə başlayın...";
@@ -174,6 +214,8 @@ $lang["sales_unsuspend"] = "blok etmək";
$lang["sales_unsuspend_and_delete"] = "blok etmək və silmək";
$lang["sales_update"] = "Yenilə";
$lang["sales_upi"] = "UPI";
$lang["sales_visa"] = "";
$lang["sales_wholesale"] = "";
$lang["sales_work_order"] = "İş Sifarişi";
$lang["sales_work_order_number"] = "Sifariş nömrəsi";
$lang["sales_work_order_number_duplicate"] = "İş sifarişinin nömrəsi unikal olmalıdır.";

View File

@@ -14,6 +14,7 @@ $lang["taxes_group_seq"] = "Qrup seq";
$lang["taxes_jurisdiction_name"] = "Yurisdiksiya Adı";
$lang["taxes_name"] = "Ad";
$lang["taxes_new"] = "Yeni Vergi";
$lang["taxes_no_taxes"] = "";
$lang["taxes_no_taxes_to_display"] = "Göstərməyə Vergi Kodu yoxdur";
$lang["taxes_reporting_authority"] = "Hesabat orqanı";
$lang["taxes_round_half_down"] = "Yarı Aşağı";

View File

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

View File

@@ -3,23 +3,31 @@
$lang["cashups_amount"] = "";
$lang["cashups_amount_number"] = "";
$lang["cashups_amount_required"] = "";
$lang["cashups_cancel_cashups"] = "";
$lang["cashups_cancel_cashups_enter"] = "";
$lang["cashups_cannot_be_deleted"] = "";
$lang["cashups_cash_difference"] = "";
$lang["cashups_close_date"] = "";
$lang["cashups_close_employee"] = "";
$lang["cashups_closed_amount_card"] = "";
$lang["cashups_closed_amount_cash"] = "";
$lang["cashups_closed_amount_check"] = "";
$lang["cashups_closed_amount_due"] = "";
$lang["cashups_closed_amount_giftcard"] = "";
$lang["cashups_closed_amount_total"] = "";
$lang["cashups_closed_date"] = "";
$lang["cashups_confirm_delete"] = "";
$lang["cashups_confirm_restore"] = "";
$lang["cashups_confirm_submit"] = "";
$lang["cashups_date_number"] = "";
$lang["cashups_date_required"] = "";
$lang["cashups_description"] = "";
$lang["cashups_enable_expected"] = "";
$lang["cashups_error_adding_updating"] = "";
$lang["cashups_giftcard"] = "";
$lang["cashups_id"] = "";
$lang["cashups_info"] = "";
$lang["cashups_info_employee"] = "";
$lang["cashups_is_deleted"] = "";
$lang["cashups_new"] = "";
$lang["cashups_no_cashups_to_display"] = "";
@@ -35,4 +43,6 @@ $lang["cashups_successful_deleted"] = "";
$lang["cashups_successful_updating"] = "";
$lang["cashups_total"] = "";
$lang["cashups_transfer_amount_cash"] = "";
$lang["cashups_transfer_amount_cash_minus"] = "";
$lang["cashups_update"] = "";
$lang["cashups_warning"] = "";

View File

@@ -2,14 +2,18 @@
$lang["common_address_1"] = "Адрес 1";
$lang["common_address_2"] = "Адрес 2";
$lang["common_admin"] = "";
$lang["common_city"] = "Град";
$lang["common_clerk"] = "";
$lang["common_close"] = "Затвори";
$lang["common_color"] = "";
$lang["common_comments"] = "Коментари";
$lang["common_common"] = "Често срещани";
$lang["common_confirm_search"] = "Избрали сте един или повече редове, след търсене няма да бъдат избрани. Наистина ли искате да подадете това търсене?";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "";
$lang["common_correct_errors"] = "Моля, коригирайте установените грешки преди записване";
$lang["common_country"] = "Държава";
$lang["common_dashboard"] = "";
$lang["common_date"] = "Дата";
$lang["common_delete"] = "Изтриване";
$lang["common_det"] = "Детайли";
@@ -21,12 +25,15 @@ $lang["common_export_csv"] = "Експорт на CSV";
$lang["common_export_csv_no"] = "Не";
$lang["common_export_csv_yes"] = "Да";
$lang["common_fields_required_message"] = "Полетата в червено са задължителни";
$lang["common_fields_required_message_unique"] = "";
$lang["common_first_name"] = "Име";
$lang["common_first_name_required"] = "Име е задължително поле.";
$lang["common_first_page"] = "Първи";
$lang["common_gender"] = "Пол";
$lang["common_gender_female"] = "Ж";
$lang["common_gender_male"] = "М";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "";
$lang["common_id"] = "Номер";
$lang["common_import"] = "Внос";
$lang["common_import_change_file"] = "Промяна";
@@ -40,15 +47,21 @@ $lang["common_last_name_required"] = "Фамилия е задължително
$lang["common_last_page"] = "Последна";
$lang["common_learn_about_project"] = "за да научите най-новата информация за проекта.";
$lang["common_list_of"] = "Списък с";
$lang["common_logo"] = "";
$lang["common_logo_mark"] = "";
$lang["common_logout"] = "Излизане от профила";
$lang["common_migration_needed"] = "";
$lang["common_manager"] = "";
$lang["common_migration_needed"] = "Мигриране на база данни ще започне след влизане.";
$lang["common_new"] = "Нов";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "Няма хора за показване.";
$lang["common_none_selected_text"] = "Нищо не е избрано.";
$lang["common_none_selected_text"] = "Нищо не е избрано";
$lang["common_or"] = "Или";
$lang["common_people"] = "";
$lang["common_phone_number"] = "Телефонен номер";
$lang["common_phone_number_required"] = "";
$lang["common_please_visit_my"] = "Моля, посетете";
$lang["common_position"] = "";
$lang["common_powered_by"] = "С подкрепата на";
$lang["common_price"] = "Цена";
$lang["common_print"] = "Принтиране";
@@ -59,6 +72,8 @@ $lang["common_return_policy"] = "Условия за връщане";
$lang["common_search"] = "Търсене";
$lang["common_search_options"] = "Опции за търсене";
$lang["common_searched_for"] = "Търсене за";
$lang["common_software_short"] = "";
$lang["common_software_title"] = "";
$lang["common_state"] = "Щат";
$lang["common_submit"] = "Изпращане";
$lang["common_total_spent"] = "Общо изразходвани";
@@ -67,5 +82,6 @@ $lang["common_view_recent_sales"] = "Преглед на последните п
$lang["common_website"] = "Уебсайт";
$lang["common_welcome"] = "Добре дошли";
$lang["common_welcome_message"] = "Добре дошли в OSPOS, кликнете върху модул по-долу, за да започнете.";
$lang["common_yes"] = "";
$lang["common_you_are_using_ospos"] = "Вие използвате Open Source Point Оf Sale версия";
$lang["common_zip"] = "Пощенски код";

View File

@@ -31,13 +31,22 @@ $lang["config_barcode_tooltip"] = "Warning: This feature can cause duplicate ite
$lang["config_barcode_type"] = "Barcode Type";
$lang["config_barcode_width"] = "Width (px)";
$lang["config_bottom"] = "Bottom";
$lang["config_cash_button"] = "";
$lang["config_cash_button_1"] = "";
$lang["config_cash_button_2"] = "";
$lang["config_cash_button_3"] = "";
$lang["config_cash_button_4"] = "";
$lang["config_cash_button_5"] = "";
$lang["config_cash_button_6"] = "";
$lang["config_cash_decimals"] = "Cash Decimals";
$lang["config_cash_decimals_tooltip"] = "If Cash Decimals and Currency Decimals are the same then no cash rounding will take place.";
$lang["config_cash_rounding"] = "Cash Rounding";
$lang["config_category_dropdown"] = "";
$lang["config_center"] = "Center";
$lang["config_change_apperance_tooltip"] = "";
$lang["config_comma"] = "comma";
$lang["config_company"] = "Company Name";
$lang["config_company_avatar"] = "";
$lang["config_company_change_image"] = "Change Image";
$lang["config_company_logo"] = "Company Logo";
$lang["config_company_remove_image"] = "Remove Image";
@@ -49,6 +58,7 @@ $lang["config_country_codes_tooltip"] = "Comma separated list of country codes f
$lang["config_currency_code"] = "";
$lang["config_currency_decimals"] = "Currency Decimals";
$lang["config_currency_symbol"] = "Currency Symbol";
$lang["config_current_employee_only"] = "";
$lang["config_customer_reward"] = "Reward";
$lang["config_customer_reward_duplicate"] = "Reward must be unique.";
$lang["config_customer_reward_enable"] = "Enable Customer Rewards";
@@ -86,6 +96,7 @@ $lang["config_default_tax_name_required"] = "Default Tax Name is a required fiel
$lang["config_default_tax_rate"] = "Default Tax Rate %";
$lang["config_default_tax_rate_1"] = "Tax 1 Rate";
$lang["config_default_tax_rate_2"] = "Tax 2 Rate";
$lang["config_default_tax_rate_3"] = "";
$lang["config_default_tax_rate_number"] = "Default Tax Rate must be a number.";
$lang["config_default_tax_rate_required"] = "Default Tax Rate is a required field.";
$lang["config_derive_sale_quantity"] = "";
@@ -110,6 +121,12 @@ $lang["config_email_smtp_pass"] = "SMTP Password";
$lang["config_email_smtp_port"] = "SMTP Port";
$lang["config_email_smtp_timeout"] = "SMTP Timeout (s)";
$lang["config_email_smtp_user"] = "SMTP Username";
$lang["config_enable_avatar"] = "";
$lang["config_enable_avatar_tooltip"] = "";
$lang["config_enable_dropdown_tooltip"] = "";
$lang["config_enable_new_look"] = "";
$lang["config_enable_right_bar"] = "";
$lang["config_enable_right_bar_tooltip"] = "";
$lang["config_enforce_privacy"] = "";
$lang["config_enforce_privacy_tooltip"] = "";
$lang["config_fax"] = "Fax";
@@ -127,6 +144,7 @@ $lang["config_financial_year_may"] = "1st of May";
$lang["config_financial_year_nov"] = "1st of November";
$lang["config_financial_year_oct"] = "1st of October";
$lang["config_financial_year_sep"] = "1st of September";
$lang["config_floating_labels"] = "";
$lang["config_gcaptcha_enable"] = "Login Page reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA Secret Key";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key is a required field";
@@ -146,6 +164,7 @@ $lang["config_image_restrictions"] = "";
$lang["config_include_hsn"] = "";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_input_groups"] = "";
$lang["config_integrations"] = "";
$lang["config_integrations_configuration"] = "";
$lang["config_invoice"] = "Invoice";
@@ -157,6 +176,7 @@ $lang["config_invoice_printer"] = "Invoice Printer";
$lang["config_invoice_type"] = "";
$lang["config_is_readable"] = "";
$lang["config_is_writable"] = "is writable, but the permissions are higher than 750.";
$lang["config_item_markup"] = "";
$lang["config_jsprintsetup_required"] = "Warning: This functionality will only work if you have the FireFox jsPrintSetup addon installed. Save anyway?";
$lang["config_language"] = "Language";
$lang["config_last_used_invoice_number"] = "Last used Invoice Number";
@@ -175,6 +195,7 @@ $lang["config_locale_info"] = "Localization Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_login_form"] = "";
$lang["config_logout"] = "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
@@ -231,8 +252,10 @@ $lang["config_print_top_margin"] = "Margin Top";
$lang["config_print_top_margin_number"] = "Margin Top must be a number.";
$lang["config_print_top_margin_required"] = "Margin Top is a required field.";
$lang["config_quantity_decimals"] = "Quantity Decimals";
$lang["config_quick_cash_enable"] = "";
$lang["config_quote_default_comments"] = "";
$lang["config_receipt"] = "Receipt";
$lang["config_receipt_category"] = "";
$lang["config_receipt_configuration"] = "Receipt Print Settings";
$lang["config_receipt_default"] = "Default";
$lang["config_receipt_font_size"] = "Font Size";
@@ -262,6 +285,8 @@ $lang["config_saved_successfully"] = "Configuration save successful.";
$lang["config_saved_unsuccessfully"] = "Configuration save failed.";
$lang["config_security_issue"] = "Security Vulnerability Warning";
$lang["config_server_notice"] = "Please use the below info for issue reporting.";
$lang["config_service_charge"] = "";
$lang["config_show_due_enable"] = "";
$lang["config_show_office_group"] = "Show office icon";
$lang["config_statistics"] = "Send Statistics";
$lang["config_statistics_tooltip"] = "Send statistics for development and feature improvement purposes.";
@@ -269,7 +294,9 @@ $lang["config_stock_location"] = "Stock location";
$lang["config_stock_location_duplicate"] = "Stock Location must be unique.";
$lang["config_stock_location_invalid_chars"] = "Stock Location can not contain '_'.";
$lang["config_stock_location_required"] = "Stock location is a required field.";
$lang["config_suggestions_fifth_column"] = "";
$lang["config_suggestions_first_column"] = "Column 1";
$lang["config_suggestions_fourth_column"] = "";
$lang["config_suggestions_layout"] = "Search Suggestions Layout";
$lang["config_suggestions_second_column"] = "Column 2";
$lang["config_suggestions_third_column"] = "Column 3";
@@ -289,6 +316,7 @@ $lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_id"] = "";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_theme_preview"] = "";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_timezone_error"] = "";
@@ -296,5 +324,6 @@ $lang["config_top"] = "Top";
$lang["config_use_destination_based_tax"] = "";
$lang["config_user_timezone"] = "";
$lang["config_website"] = "Website";
$lang["config_wholesale_markup"] = "";
$lang["config_work_order_enable"] = "Work Order Support";
$lang["config_work_order_format"] = "Work Order Format";

View File

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

View File

@@ -1,8 +1,12 @@
<?php
$lang["employees_administrator"] = "";
$lang["employees_basic_information"] = "Информация";
$lang["employees_cannot_be_deleted"] = "Невъзможно е да изтриете избрани служители, един или повече от тях са обработили продажби или се опитвате да изтриете профила си.";
$lang["employees_change_employee"] = "";
$lang["employees_change_password"] = "Промяна на паролата";
$lang["employees_clerk"] = "";
$lang["employees_commission"] = "";
$lang["employees_confirm_delete"] = "Наистина ли искате да изтриете избрания служител (и)?";
$lang["employees_confirm_restore"] = "Наистина ли искате да възстановите избраните служители?";
$lang["employees_current_password"] = "Настояща парола";
@@ -13,6 +17,7 @@ $lang["employees_error_deleting_demo_admin"] = "Не може да изтрие
$lang["employees_error_updating_demo_admin"] = "Не може да промените Пробният Администратор.";
$lang["employees_language"] = "Език";
$lang["employees_login_info"] = "Login";
$lang["employees_manager"] = "";
$lang["employees_new"] = "Нов служител";
$lang["employees_none_selected"] = "Не сте избрали служител (и), който да изтриете.";
$lang["employees_one_or_multiple"] = "служител (и)";
@@ -33,5 +38,6 @@ $lang["employees_system_language"] = "Системен език";
$lang["employees_unsuccessful_change_password"] = "Промяната на паролата се провали.";
$lang["employees_update"] = "Актуализиране на служителя";
$lang["employees_username"] = "Потребител";
$lang["employees_username_duplicate"] = "";
$lang["employees_username_minlength"] = "Потребителското име трябва да е с дължина най-малко 5 знака.";
$lang["employees_username_required"] = "Потребителското име е задължително поле.";

View File

@@ -29,9 +29,11 @@ $lang["expenses_error_adding_updating"] = "Error adding/updating Expense";
$lang["expenses_expense_id"] = "Id";
$lang["expenses_expenses_employee"] = "Employee";
$lang["expenses_info"] = "Expense Info";
$lang["expenses_ip_address"] = "";
$lang["expenses_is_deleted"] = "Deleted";
$lang["expenses_name_required"] = "Expense Name required";
$lang["expenses_new"] = "New Expense";
$lang["expenses_new_supplier"] = "";
$lang["expenses_no_expenses_to_display"] = "There are no Expenses to display";
$lang["expenses_none_selected"] = "You have not selected any Expense";
$lang["expenses_one_or_multiple"] = "Expense(s)";
@@ -43,4 +45,5 @@ $lang["expenses_successful_updating"] = "Expense update successful";
$lang["expenses_supplier_name"] = "Supplier";
$lang["expenses_supplier_tax_code"] = "Tax Code";
$lang["expenses_tax_amount"] = "Tax";
$lang["expenses_tax_amount_number"] = "";
$lang["expenses_update"] = "Update Expense";

View File

@@ -14,6 +14,10 @@ $lang["item_kits_error_adding_updating"] = "Item Kit add or update failed.";
$lang["item_kits_find_kit_item"] = "Kit Item";
$lang["item_kits_info"] = "Item Kit Info";
$lang["item_kits_item"] = "Item";
$lang["item_kits_item_kit_number"] = "";
$lang["item_kits_item_kit_number_duplicate"] = "";
$lang["item_kits_item_number"] = "";
$lang["item_kits_item_number_duplicate"] = "";
$lang["item_kits_items"] = "Items";
$lang["item_kits_kit"] = "Kit ID";
$lang["item_kits_kit_and_components"] = "Kit and Components";
@@ -32,4 +36,5 @@ $lang["item_kits_sequence"] = "Sequence";
$lang["item_kits_successful_adding"] = "You have successfully added Item Kit";
$lang["item_kits_successful_deleted"] = "You have successfully deleted";
$lang["item_kits_successful_updating"] = "You have successfully updated Item Kit";
$lang["item_kits_unit_price"] = "";
$lang["item_kits_update"] = "Update Item Kit";

View File

@@ -7,7 +7,9 @@ $lang["items_bulk_edit"] = "Bulk Edit";
$lang["items_buy_price_required"] = "Purchase Price is a required field.";
$lang["items_cannot_be_deleted"] = "Could not delete selected Item(s), one or more of the selected Items have sales.";
$lang["items_cannot_find_item"] = "Item not found.";
$lang["items_categories"] = "";
$lang["items_category"] = "Category";
$lang["items_category_new"] = "";
$lang["items_category_required"] = "Category is a required field.";
$lang["items_change_all_to_allow_alt_desc"] = "Allow Alternate Description for all.";
$lang["items_change_all_to_not_allow_allow_desc"] = "Do not allow Alternate Description for all.";
@@ -31,6 +33,7 @@ $lang["items_default_pack_name"] = "";
$lang["items_description"] = "Description";
$lang["items_details_count"] = "Inventory Count Details";
$lang["items_do_nothing"] = "Do Nothing";
$lang["items_edit"] = "";
$lang["items_edit_fields_you_want_to_update"] = "Edit the desired fields for selected item(s).";
$lang["items_edit_multiple_items"] = "Editing Multiple Items";
$lang["items_empty_upc_items"] = "Empty Barcode Items";
@@ -50,8 +53,10 @@ $lang["items_inventory_employee"] = "Employee";
$lang["items_inventory_in_out_quantity"] = "In/Out Quantity";
$lang["items_inventory_remarks"] = "Remarks";
$lang["items_is_deleted"] = "Deleted";
$lang["items_is_printed"] = "";
$lang["items_is_serialized"] = "Item has Serial Number";
$lang["items_item"] = "Item";
$lang["items_item_id"] = "";
$lang["items_item_number"] = "Barcode";
$lang["items_item_number_duplicate"] = "Item Number is already present in the database.";
$lang["items_kit"] = "Kit";
@@ -59,6 +64,7 @@ $lang["items_location"] = "Location";
$lang["items_low_inventory_items"] = "Out Of Stock Items";
$lang["items_low_sell_item"] = "";
$lang["items_manually_editing_of_quantity"] = "Manual Edit of Quantity";
$lang["items_markup"] = "";
$lang["items_name"] = "Item Name";
$lang["items_name_required"] = "Item Name is a required field.";
$lang["items_new"] = "New Item";
@@ -97,6 +103,7 @@ $lang["items_successful_updating"] = "You have successfully updated item";
$lang["items_supplier"] = "Supplier";
$lang["items_tax_1"] = "Tax 1";
$lang["items_tax_2"] = "Tax 2";
$lang["items_tax_3"] = "";
$lang["items_tax_category"] = "";
$lang["items_tax_percent"] = "Tax Percent";
$lang["items_tax_percent_number"] = "";

View File

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

View File

@@ -1,5 +1,7 @@
<?php
$lang["module_admin_cashups"] = "";
$lang["module_admin_cashups_desc"] = "";
$lang["module_attributes"] = "";
$lang["module_attributes_desc"] = "";
$lang["module_both"] = "Both";
@@ -39,3 +41,7 @@ $lang["module_suppliers"] = "Suppliers";
$lang["module_suppliers_desc"] = "Add, Update, Delete, and Search Suppliers.";
$lang["module_taxes"] = "Taxes";
$lang["module_taxes_desc"] = "Configure Sales Taxes.";
$lang["module_timeclocks"] = "";
$lang["module_timeclocks_categories"] = "";
$lang["module_timeclocks_categories_desc"] = "";
$lang["module_timeclocks_desc"] = "";

View File

@@ -1,5 +1,6 @@
<?php
$lang["receivings_amount_due"] = "";
$lang["receivings_cancel_receiving"] = "Cancel";
$lang["receivings_cannot_be_deleted"] = "Receiving(s) delete failed.";
$lang["receivings_comments"] = "Comments";
@@ -7,7 +8,9 @@ $lang["receivings_complete_receiving"] = "Finish";
$lang["receivings_confirm_cancel_receiving"] = "Are you sure you want to clear this receiving? All items will cleared.";
$lang["receivings_confirm_delete"] = "Are you sure you want to delete this receiving? This action cannot be undone.";
$lang["receivings_confirm_finish_receiving"] = "Are you sure you want to submit this receiving? This cannot be undone.";
$lang["receivings_confirm_restore"] = "";
$lang["receivings_cost"] = "Cost";
$lang["receivings_daily"] = "";
$lang["receivings_date"] = "Receiving Date";
$lang["receivings_date_required"] = "A correct date must be entered.";
$lang["receivings_date_type"] = "Date is a required field.";

View File

@@ -14,6 +14,7 @@ $lang["reports_code_return"] = "RET";
$lang["reports_code_type"] = "Type";
$lang["reports_code_work_order"] = "W/O";
$lang["reports_comments"] = "Comments";
$lang["reports_commission"] = "";
$lang["reports_complete"] = "Completed Sales and Returns";
$lang["reports_completed_sales"] = "Completed Sales";
$lang["reports_confirm_delete"] = "";
@@ -28,6 +29,7 @@ $lang["reports_date"] = "Date";
$lang["reports_date_range"] = "Date Range";
$lang["reports_description"] = "Description";
$lang["reports_detailed_receivings_report"] = "Detailed Receivings Report";
$lang["reports_detailed_receivings_report_input"] = "";
$lang["reports_detailed_reports"] = "Detailed Reports";
$lang["reports_detailed_requisition_report"] = "";
$lang["reports_detailed_sales_report"] = "Detailed Transactions Report";
@@ -46,6 +48,7 @@ $lang["reports_expenses_amount"] = "Amount";
$lang["reports_expenses_categories"] = "Expenses";
$lang["reports_expenses_categories_summary_report"] = "Expense Categories Summary Report";
$lang["reports_expenses_category"] = "Category";
$lang["reports_expenses_payment_amount"] = "";
$lang["reports_expenses_tax_amount"] = "Tax";
$lang["reports_expenses_total_amount"] = "Total Amount";
$lang["reports_expenses_total_tax_amount"] = "Total Tax";
@@ -105,7 +108,9 @@ $lang["reports_sales_summary_report"] = "Transactions Summary Report";
$lang["reports_sales_taxes"] = "";
$lang["reports_sales_taxes_summary_report"] = "";
$lang["reports_serial_number"] = "Serial Number";
$lang["reports_service_charge"] = "";
$lang["reports_sold_by"] = "Sold By";
$lang["reports_sold_items"] = "";
$lang["reports_sold_to"] = "Sold To";
$lang["reports_stock_location"] = "Stock Location";
$lang["reports_sub_total_value"] = "Subtotal";
@@ -117,6 +122,7 @@ $lang["reports_suppliers"] = "Suppliers";
$lang["reports_suppliers_summary_report"] = "Suppliers Summary Report";
$lang["reports_tax"] = "Tax";
$lang["reports_tax_category"] = "";
$lang["reports_tax_name"] = "";
$lang["reports_tax_percent"] = "Tax Percent";
$lang["reports_tax_rate"] = "";
$lang["reports_taxes"] = "Taxes";

View File

@@ -10,22 +10,31 @@ $lang["sales_amount_tendered"] = "Предоставена сума";
$lang["sales_authorized_signature"] = "Оторизиран подпис";
$lang["sales_cancel_sale"] = "Отказ";
$lang["sales_cash"] = "В брой";
$lang["sales_cash_1"] = "";
$lang["sales_cash_2"] = "";
$lang["sales_cash_3"] = "";
$lang["sales_cash_4"] = "";
$lang["sales_cash_adjustment"] = "Корекция на пари в брой";
$lang["sales_cash_deposit"] = "Депозит в брой";
$lang["sales_cash_filter"] = "В брой";
$lang["sales_change_due"] = "Промяна на дължимото";
$lang["sales_change_price"] = "";
$lang["sales_change_price"] = "Промяна на продажната цена";
$lang["sales_check"] = "Проверка";
$lang["sales_check_balance"] = "Проверете остатъка";
$lang["sales_check_filter"] = "Проверка";
$lang["sales_close"] = "";
$lang["sales_comment"] = "Коментар";
$lang["sales_comments"] = "Коментари";
$lang["sales_company_name"] = "";
$lang["sales_complete"] = "";
$lang["sales_complete_sale"] = "Завършен";
$lang["sales_confirm_cancel_sale"] = "Сигурни ли сте, че искате да изчистите тази продажба? Всичко ще бъде изтрито.";
$lang["sales_confirm_delete"] = "Наистина ли искате да изтриете избраната Продажба (и)?";
$lang["sales_confirm_restore"] = "Наистина ли искате да възстановите избраната Продажба (и)?";
$lang["sales_credit"] = "Кредитна карта";
$lang["sales_credit_deposit"] = "Кредитен депозит";
$lang["sales_credit_filter"] = "";
$lang["sales_credit_filter"] = "Кредитна карта";
$lang["sales_current_table"] = "";
$lang["sales_customer"] = "Име";
$lang["sales_customer_address"] = "Адрес";
$lang["sales_customer_discount"] = "Намаление";
@@ -35,11 +44,14 @@ $lang["sales_customer_mailchimp_status"] = "Състояние на Mailchimp";
$lang["sales_customer_optional"] = "(Незадължително)";
$lang["sales_customer_required"] = "(Задължително)";
$lang["sales_customer_total"] = "Обща сума";
$lang["sales_customer_total_spent"] = "";
$lang["sales_daily_sales"] = "";
$lang["sales_date"] = "Дата на продажба";
$lang["sales_date_range"] = "Период от време";
$lang["sales_date_required"] = "Трябва да въведете правилна дата.";
$lang["sales_date_type"] = "Датата е задължително поле.";
$lang["sales_debit"] = "Дебитна карта";
$lang["sales_debit_filter"] = "";
$lang["sales_delete"] = "Разреши изтриване";
$lang["sales_delete_confirmation"] = "Наистина ли искате да изтриете тази продажба? Това действие не може да бъде отменено.";
$lang["sales_delete_entire_sale"] = "Изтриване на цялата продажба";
@@ -64,10 +76,11 @@ $lang["sales_find_or_scan_item"] = "Намерете или сканирайте
$lang["sales_find_or_scan_item_or_receipt"] = "Намерете или сканирайте елемент или разпис";
$lang["sales_giftcard"] = "Gift Карта";
$lang["sales_giftcard_balance"] = "Gift Card Баланс";
$lang["sales_giftcard_filter"] = "";
$lang["sales_giftcard_number"] = "Gift Card Номер";
$lang["sales_group_by_category"] = "Групирайте по категория";
$lang["sales_group_by_type"] = "Групиране по тип";
$lang["sales_hsn"] = "";
$lang["sales_hsn"] = "HSN";
$lang["sales_id"] = "Номер на продажба";
$lang["sales_include_prices"] = "Включва цени?";
$lang["sales_invoice"] = "Фактура";
@@ -80,15 +93,37 @@ $lang["sales_invoice_number_duplicate"] = "Номерът на фактурит
$lang["sales_invoice_sent"] = "Фактура, изпратена до";
$lang["sales_invoice_total"] = "Фактура общо";
$lang["sales_invoice_type_custom_invoice"] = "Ръчна фактура";
$lang["sales_invoice_type_custom_tax_invoice"] = "";
$lang["sales_invoice_type_custom_tax_invoice"] = "Фактура по избор(custom_tax_invoice.php)";
$lang["sales_invoice_type_invoice"] = "Фактура";
$lang["sales_invoice_type_tax_invoice"] = "";
$lang["sales_invoice_type_tax_invoice"] = "Данъчна фактура (tax_invoice.php)";
$lang["sales_invoice_unsent"] = "Фактурата не можа да бъде изпратена до";
$lang["sales_invoice_update"] = "Преизчисляване";
$lang["sales_item_insufficient_of_stock"] = "Елементът има недостатъчен запас.";
$lang["sales_item_name"] = "Име на предмета";
$lang["sales_item_number"] = "Предмет #";
$lang["sales_item_out_of_stock"] = "Елементът е изчерпан.";
$lang["sales_key_browser"] = "";
$lang["sales_key_cancel"] = "Cancels Current Quote/Invoice/Sale";
$lang["sales_key_customer_search"] = "Customer Search";
$lang["sales_key_finish_quote"] = "Finish Quote/Invoice witdout payment";
$lang["sales_key_finish_sale"] = "Add Payment and Complete Invoice/Sale";
$lang["sales_key_full"] = "";
$lang["sales_key_function"] = "Function";
$lang["sales_key_help"] = "Shortcuts";
$lang["sales_key_help_modal"] = "Open Shortcuts Window";
$lang["sales_key_in"] = "";
$lang["sales_key_item_search"] = "Item Search";
$lang["sales_key_out"] = "";
$lang["sales_key_payment"] = "Add Payment";
$lang["sales_key_print"] = "";
$lang["sales_key_restore"] = "";
$lang["sales_key_search"] = "";
$lang["sales_key_suspend"] = "Suspend Current Sale";
$lang["sales_key_suspended"] = "Show Suspended Sales";
$lang["sales_key_system"] = "";
$lang["sales_key_tendered"] = "Edit Amount Tendered";
$lang["sales_key_title"] = "Sales Keyboard Shortcuts";
$lang["sales_mc"] = "";
$lang["sales_mode"] = "Режим на регистрация";
$lang["sales_must_enter_numeric"] = "Сумата Предложена трябва да е число.";
$lang["sales_must_enter_numeric_giftcard"] = "Gift Card номера трябва да бъде число.";
@@ -99,13 +134,14 @@ $lang["sales_no_filter"] = "Всичко";
$lang["sales_no_items_in_cart"] = "В количката няма продукти.";
$lang["sales_no_sales_to_display"] = "Няма продажби за показване .";
$lang["sales_none_selected"] = "Не сте избрали каквито и да е Продажби за изтриване.";
$lang["sales_nontaxed_ind"] = "";
$lang["sales_nontaxed_ind"] = " sales nontaxed ind ";
$lang["sales_not_authorized"] = "Това действие не е разрешено.";
$lang["sales_one_or_multiple"] = "Продажба (и)";
$lang["sales_payment"] = "Вид плащане";
$lang["sales_payment_amount"] = "Количество";
$lang["sales_payment_not_cover_total"] = "Сумата за плащане трябва да е по-голяма или равна на цялата сума.";
$lang["sales_payment_type"] = "Тип";
$lang["sales_payments"] = "";
$lang["sales_payments_total"] = "Общо плащания";
$lang["sales_price"] = "Цена";
$lang["sales_print_after_sale"] = "Печат след продажбата";
@@ -123,9 +159,10 @@ $lang["sales_receipt_no_email"] = "Този клиент няма валиден
$lang["sales_receipt_number"] = "Продажба #";
$lang["sales_receipt_sent"] = "Разписката е изпратена до";
$lang["sales_receipt_unsent"] = "Разписката не бе изпратена до";
$lang["sales_refund"] = "";
$lang["sales_refund"] = "Вид на въстановяването";
$lang["sales_register"] = "Регистър на продажбите";
$lang["sales_remove_customer"] = "Премахване на клиент";
$lang["sales_remove_discount"] = "";
$lang["sales_return"] = "Връщане";
$lang["sales_rewards"] = "Наградни точки";
$lang["sales_rewards_balance"] = "Reward Points Баланс";
@@ -134,12 +171,15 @@ $lang["sales_sale_by_invoice"] = "Продажба по фактура";
$lang["sales_sale_for_customer"] = "Клиент:";
$lang["sales_sale_time"] = "Време";
$lang["sales_sales_tax"] = "Данък върху продажбите";
$lang["sales_sales_total"] = "";
$lang["sales_select_customer"] = "Изберете клиент (по избор)";
$lang["sales_send_invoice"] = "Изпратете фактура";
$lang["sales_send_quote"] = "Изпрати цитат";
$lang["sales_send_receipt"] = "Изпращане на разписка";
$lang["sales_send_work_order"] = "Изпращане на поръчка за работа";
$lang["sales_serial"] = "Сериен";
$lang["sales_service_charge"] = "";
$lang["sales_show_due"] = "";
$lang["sales_show_invoice"] = "Показване на фактурата";
$lang["sales_show_receipt"] = "Показване на разписката";
$lang["sales_start_typing_customer_name"] = "Започнете да пишете подробности за клиента ...";
@@ -158,8 +198,8 @@ $lang["sales_suspended_sales"] = "Преустановен";
$lang["sales_table"] = "Маса";
$lang["sales_takings"] = "Ежедневни продажби";
$lang["sales_tax"] = "Данък";
$lang["sales_tax_id"] = "";
$lang["sales_tax_invoice"] = "";
$lang["sales_tax_id"] = "Данъчен номер";
$lang["sales_tax_invoice"] = "Данъчна фактура";
$lang["sales_tax_percent"] = "Данък %";
$lang["sales_taxed_ind"] = "";
$lang["sales_total"] = "Обща сума";
@@ -174,6 +214,8 @@ $lang["sales_unsuspend"] = "Възстановяване";
$lang["sales_unsuspend_and_delete"] = "Action";
$lang["sales_update"] = "Актуализация";
$lang["sales_upi"] = "";
$lang["sales_visa"] = "";
$lang["sales_wholesale"] = "";
$lang["sales_work_order"] = "Работна поръчка";
$lang["sales_work_order_number"] = "Номер работна поръчка";
$lang["sales_work_order_number_duplicate"] = "Номерът на работната поръчка трябва да е уникален.";

View File

@@ -14,6 +14,7 @@ $lang["taxes_group_seq"] = "";
$lang["taxes_jurisdiction_name"] = "";
$lang["taxes_name"] = "";
$lang["taxes_new"] = "Нов данъчен код";
$lang["taxes_no_taxes"] = "";
$lang["taxes_no_taxes_to_display"] = "Няма код за данъци, който да се показва.";
$lang["taxes_reporting_authority"] = "";
$lang["taxes_round_half_down"] = "Половина надолу";

View File

@@ -0,0 +1,31 @@
<?php
$lang["attributes_attribute_value_invalid_chars"] = "Vrijednost atributa ne može sadržavati ':' ili '|'";
$lang["attributes_confirm_delete"] = "Da li ste sigurni da želite da izbrišete izabrani atribut?";
$lang["attributes_confirm_restore"] = "Da li ste sigurni da želite vratiti izabrane atribute?";
$lang["attributes_definition_cannot_be_deleted"] = "Nije moguće izbrisati izabrane atribut";
$lang["attributes_definition_error_adding_updating"] = "Atribut %1 nije moguće dodati ili ažurirati. Molimo provjerite dnevnik grešaka.";
$lang["attributes_definition_flags"] = "Vidljivost atributa";
$lang["attributes_definition_group"] = "Grupa";
$lang["attributes_definition_id"] = "Id";
$lang["attributes_definition_name"] = "Dodaj Atribut";
$lang["attributes_definition_name_required"] = "Ime atributa je obavezno polje";
$lang["attributes_definition_one_or_multiple"] = "atributi";
$lang["attributes_definition_successful_adding"] = "Uspješno ste dodali stavku";
$lang["attributes_definition_successful_deleted"] = "Uspješno ste izbrisali";
$lang["attributes_definition_successful_updating"] = "Uspješno ste ažurirali atribute";
$lang["attributes_definition_type"] = "Tip atributa";
$lang["attributes_definition_type_required"] = "Tip atributa je obavezno polje";
$lang["attributes_definition_unit"] = "Jedinice mjere";
$lang["attributes_definition_values"] = "Vrijednosti atributa";
$lang["attributes_new"] = "Novi atribut";
$lang["attributes_no_attributes_to_display"] = "Nema stavki za prikaz";
$lang["attributes_receipt_visibility"] = "Račun";
$lang["attributes_show_in_items"] = "Prikaži u stavkama";
$lang["attributes_show_in_items_visibility"] = "Stavka";
$lang["attributes_show_in_receipt"] = "Prikaži u računu";
$lang["attributes_show_in_receivings"] = "Prikaži na ulazima";
$lang["attributes_show_in_receivings_visibility"] = "Ulazi";
$lang["attributes_show_in_sales"] = "Prikaži u prodaji";
$lang["attributes_show_in_sales_visibility"] = "Prodaja";
$lang["attributes_update"] = "Ažuriraj atribut";

View File

@@ -0,0 +1,10 @@
<?php
$lang["tables_all"] = "Sve";
$lang["tables_columns"] = "Kolone";
$lang["tables_hide_show_pagination"] = "Sakrij / prikaži paginaciju";
$lang["tables_loading"] = "Učitavanje sačekajte...";
$lang["tables_page_from_to"] = "Prikazivanje {0} do {1} od {2} redova";
$lang["tables_refresh"] = "Osvježi";
$lang["tables_rows_per_page"] = "{0} redova po stranici";
$lang["tables_toggle"] = "Promijeni prikaz";

View File

@@ -0,0 +1,48 @@
<?php
$lang["cashups_amount"] = "Iznos";
$lang["cashups_amount_number"] = "Iznos mora biti numerički";
$lang["cashups_amount_required"] = "Iznos je obavezno polje.";
$lang["cashups_cancel_cashups"] = "";
$lang["cashups_cancel_cashups_enter"] = "";
$lang["cashups_cannot_be_deleted"] = "Isplata se ne može izbrisati";
$lang["cashups_cash_difference"] = "";
$lang["cashups_close_date"] = "Datum zatvaranja";
$lang["cashups_close_employee"] = "Zatvorio";
$lang["cashups_closed_amount_card"] = "Kartica";
$lang["cashups_closed_amount_cash"] = "Zatvorena gotovina";
$lang["cashups_closed_amount_check"] = "Ček";
$lang["cashups_closed_amount_due"] = "Taksa";
$lang["cashups_closed_amount_giftcard"] = "";
$lang["cashups_closed_amount_total"] = "Ukupno";
$lang["cashups_closed_date"] = "Datum zatvaranja";
$lang["cashups_confirm_delete"] = "Da li ste sigurni da želite izbrisati izabrane isplate?";
$lang["cashups_confirm_restore"] = "Da li ste sigurni da želite vratiti izabranu isplatu?";
$lang["cashups_confirm_submit"] = "";
$lang["cashups_date_number"] = "Datum mora biti numerički";
$lang["cashups_date_required"] = "Datum je obavezno polje";
$lang["cashups_description"] = "Opis";
$lang["cashups_enable_expected"] = "";
$lang["cashups_error_adding_updating"] = "Greška prilikom dodavanja/ažuriranja isplate";
$lang["cashups_giftcard"] = "";
$lang["cashups_id"] = "Id";
$lang["cashups_info"] = "Informacije o isplatama";
$lang["cashups_info_employee"] = "";
$lang["cashups_is_deleted"] = "Izbrisano";
$lang["cashups_new"] = "Nova isplata";
$lang["cashups_no_cashups_to_display"] = "Nema isplate za prikaz";
$lang["cashups_none_selected"] = "Niste odabrali nijednu isplatu";
$lang["cashups_note"] = "Napomene";
$lang["cashups_one_or_multiple"] = "Gotovina";
$lang["cashups_open_amount_cash"] = "Otvorena gotovina";
$lang["cashups_open_date"] = "Datum otvaranja";
$lang["cashups_open_employee"] = "Otvorio";
$lang["cashups_opened_date"] = "Datum otvaranja";
$lang["cashups_successful_adding"] = "Isplata je uspješno dodata";
$lang["cashups_successful_deleted"] = "Isplata je uspješno izbrisata";
$lang["cashups_successful_updating"] = "Isplata je uspješno ažurirana";
$lang["cashups_total"] = "Ukupno";
$lang["cashups_transfer_amount_cash"] = "Ulaz/izlaz gotovine";
$lang["cashups_transfer_amount_cash_minus"] = "";
$lang["cashups_update"] = "Ažuriranje isplate";
$lang["cashups_warning"] = "";

View File

@@ -0,0 +1,86 @@
<?php
$lang["common_address_1"] = "Adresa 1";
$lang["common_address_2"] = "Adresa 2";
$lang["common_admin"] = "";
$lang["common_city"] = "Grad";
$lang["common_clerk"] = "";
$lang["common_close"] = "Zatvori";
$lang["common_color"] = "";
$lang["common_comments"] = "Komentari";
$lang["common_common"] = "Zajedničko";
$lang["common_confirm_search"] = "Odabrali ste jedan ili više redova koji neće biti izabrani nakon pretrage. Da li ste sigurni da želite pretragu?";
$lang["common_copyrights"] = "© 2010 - %1";
$lang["common_correct_errors"] = "Ispravite identifikovane pogreške prije snimanja";
$lang["common_country"] = "Država";
$lang["common_dashboard"] = "";
$lang["common_date"] = "Datum";
$lang["common_delete"] = "Izbriši";
$lang["common_det"] = "Detalji";
$lang["common_download_import_template"] = "Preuzmite šablon za uvoz(CSV)";
$lang["common_edit"] = "Uredi";
$lang["common_email"] = "E-mail";
$lang["common_email_invalid_format"] = "Adresa e-pošte nije u ispravnom formatu.";
$lang["common_export_csv"] = "CSV izvoz";
$lang["common_export_csv_no"] = "Ne";
$lang["common_export_csv_yes"] = "Da";
$lang["common_fields_required_message"] = "Polja u crvenom su obavezna";
$lang["common_fields_required_message_unique"] = "";
$lang["common_first_name"] = "Ime";
$lang["common_first_name_required"] = "Ime je obavezno polje.";
$lang["common_first_page"] = "Prva";
$lang["common_gender"] = "Pol";
$lang["common_gender_female"] = "Ž";
$lang["common_gender_male"] = "M";
$lang["common_gender_undefined"] = "";
$lang["common_icon"] = "Ikona";
$lang["common_id"] = "ID";
$lang["common_import"] = "Uvoz";
$lang["common_import_change_file"] = "Promjena";
$lang["common_import_csv"] = "CSV uvoz";
$lang["common_import_full_path"] = "Potrebna je puna putanja do CSV datoteke";
$lang["common_import_remove_file"] = "Ukloni";
$lang["common_import_select_file"] = "Odaberite datoteku";
$lang["common_inv"] = "Zaliha";
$lang["common_last_name"] = "Prezime";
$lang["common_last_name_required"] = "Prezime je obavezno polje.";
$lang["common_last_page"] = "Poslednja";
$lang["common_learn_about_project"] = "da biste saznali najnovije informacije o projektu.";
$lang["common_list_of"] = "Lista";
$lang["common_logo"] = "Logo";
$lang["common_logo_mark"] = "Znak";
$lang["common_logout"] = "Odjava";
$lang["common_manager"] = "";
$lang["common_migration_needed"] = "Premještanje baze podataka na %1 počinje nakon prijave.";
$lang["common_new"] = "Novi";
$lang["common_no"] = "";
$lang["common_no_persons_to_display"] = "Nema ljudi za prikaz.";
$lang["common_none_selected_text"] = "[Izaberi]";
$lang["common_or"] = "Ili";
$lang["common_people"] = "";
$lang["common_phone_number"] = "Broj telefona";
$lang["common_phone_number_required"] = "Broj telefona je obavezan";
$lang["common_please_visit_my"] = "Posjetite";
$lang["common_position"] = "";
$lang["common_powered_by"] = "Podržano od";
$lang["common_price"] = "Cijena";
$lang["common_print"] = "Štampanje";
$lang["common_remove"] = "Ukloni";
$lang["common_required"] = "Obavezan";
$lang["common_restore"] = "Vrati";
$lang["common_return_policy"] = "Povratna informacija";
$lang["common_search"] = "Traži";
$lang["common_search_options"] = "Opcije pretrage";
$lang["common_searched_for"] = "Traženo";
$lang["common_software_short"] = "OSPOS";
$lang["common_software_title"] = "Prodajno mjesto otvorenog koda";
$lang["common_state"] = "Entitet";
$lang["common_submit"] = "Prihvati";
$lang["common_total_spent"] = "Ukupno potrošeno";
$lang["common_unknown"] = "Nepoznato";
$lang["common_view_recent_sales"] = "Pogledaj nedavne prodaje";
$lang["common_website"] = "opensourcepos.org";
$lang["common_welcome"] = "Dobrodošli";
$lang["common_welcome_message"] = "Dobrodošli u OSPOS, kliknite na modul ispod da biste započeli.";
$lang["common_yes"] = "";
$lang["common_you_are_using_ospos"] = "";
$lang["common_zip"] = "Poštanski broj";

View File

@@ -0,0 +1,328 @@
<?php
$lang["config_address"] = "Adresa kompanije";
$lang["config_address_required"] = "Adresa kompanije je obavezno polje.";
$lang["config_all_set"] = "Sva su dopuštenja datoteka ispravno postavljena!";
$lang["config_allow_duplicate_barcodes"] = "Dozvoli dvostruke barkodove";
$lang["config_apostrophe"] = "apostrof";
$lang["config_backup_button"] = "Rezervna kopija";
$lang["config_backup_database"] = "Rezervna kopija baze podataka";
$lang["config_barcode"] = "Barkod";
$lang["config_barcode_company"] = "Kompanija";
$lang["config_barcode_configuration"] = "Konfiguracija barkoda";
$lang["config_barcode_content"] = "Sadržaj barkoda";
$lang["config_barcode_first_row"] = "1 red";
$lang["config_barcode_font"] = "Font";
$lang["config_barcode_formats"] = "Unesi format";
$lang["config_barcode_generate_if_empty"] = "Generiši ako je prazno.";
$lang["config_barcode_height"] = "Visina(px)";
$lang["config_barcode_id"] = "Id / naziv artikla";
$lang["config_barcode_info"] = "Informacije o konfiguraciji barkoda";
$lang["config_barcode_layout"] = "Izgled barkoda";
$lang["config_barcode_name"] = "Naziv";
$lang["config_barcode_number"] = "Barkod";
$lang["config_barcode_number_in_row"] = "Broj u redu";
$lang["config_barcode_page_cellspacing"] = "Prikaži razmak ćelija na stranici.";
$lang["config_barcode_page_width"] = "Širina stranice";
$lang["config_barcode_price"] = "Cijena";
$lang["config_barcode_second_row"] = "2.red";
$lang["config_barcode_third_row"] = "3.red";
$lang["config_barcode_tooltip"] = "Upozorenje: Ova funkcija može prouzrokovati uvoz ili kreiranje duplikata. Ne koristite ako ne želite duple barkodove.";
$lang["config_barcode_type"] = "Tip barkoda";
$lang["config_barcode_width"] = "Širina (px)";
$lang["config_bottom"] = "Dno";
$lang["config_cash_button"] = "";
$lang["config_cash_button_1"] = "";
$lang["config_cash_button_2"] = "";
$lang["config_cash_button_3"] = "";
$lang["config_cash_button_4"] = "";
$lang["config_cash_button_5"] = "";
$lang["config_cash_button_6"] = "";
$lang["config_cash_decimals"] = "Decimale gotovine";
$lang["config_cash_decimals_tooltip"] = "Ako su Decimale gotovine i Valutne decimale iste, onda neće biti zaokruživanja gotovine.";
$lang["config_cash_rounding"] = "Zaokruživanje gotovine";
$lang["config_category_dropdown"] = "Prikaži kategoriju kao padajući meni";
$lang["config_center"] = "Centar";
$lang["config_change_apperance_tooltip"] = "";
$lang["config_comma"] = "zarez";
$lang["config_company"] = "Kompanija";
$lang["config_company_avatar"] = "";
$lang["config_company_change_image"] = "Promijeni logo";
$lang["config_company_logo"] = "Logo kompanije";
$lang["config_company_remove_image"] = "Ukloni logo";
$lang["config_company_required"] = "Naziv kompanije je obavezno polje";
$lang["config_company_select_image"] = "Izaberite sliku";
$lang["config_company_website_url"] = "Veb lokacija kompanije nije važeća URL adresa (http://...).";
$lang["config_country_codes"] = "Kod zemlje";
$lang["config_country_codes_tooltip"] = "Lista kodova zemalja odvojena zarezima za traženje nominalnih adresa.";
$lang["config_currency_code"] = "Kod valute";
$lang["config_currency_decimals"] = "Velutne decimale";
$lang["config_currency_symbol"] = "Simbol valute";
$lang["config_current_employee_only"] = "";
$lang["config_customer_reward"] = "Nagrada";
$lang["config_customer_reward_duplicate"] = "Nagrada mora biti jedinstvena.";
$lang["config_customer_reward_enable"] = "Omogući nagrade kupcima";
$lang["config_customer_reward_invalid_chars"] = "Nagrada ne može sadržavati '_'";
$lang["config_customer_reward_required"] = "Nagrada je obavezno polje";
$lang["config_customer_sales_tax_support"] = "";
$lang["config_date_or_time_format"] = "Filter datuma i vremena";
$lang["config_datetimeformat"] = "Format datuma i vremena";
$lang["config_decimal_point"] = "Decimalna točka";
$lang["config_default_barcode_font_size_number"] = "Veličina fonta za barkod mora biti broj.";
$lang["config_default_barcode_font_size_required"] = "Veličina fonta barkoda je obavezno polje.";
$lang["config_default_barcode_height_number"] = "Visina barkoda mora biti broj.";
$lang["config_default_barcode_height_required"] = "Visina barkoda je obavezno polje.";
$lang["config_default_barcode_num_in_row_number"] = "Broj barkoda u redu mora biti broj.";
$lang["config_default_barcode_num_in_row_required"] = "Broj barkoda u redu je obavezno polje.";
$lang["config_default_barcode_page_cellspacing_number"] = "Razmak između ćelija sa barkodom mora biti broj.";
$lang["config_default_barcode_page_cellspacing_required"] = "Rastojanje ćelija na stranici sa barkodom je obavezno polje.";
$lang["config_default_barcode_page_width_number"] = "Širina stranice sa bar kodom mora biti broj.";
$lang["config_default_barcode_page_width_required"] = "Širina stranice sa barkodom je obavezno polje.";
$lang["config_default_barcode_width_number"] = "Standardna širina barkoda mora biti broj.";
$lang["config_default_barcode_width_required"] = "Širina barkoda je obavezno polje.";
$lang["config_default_item_columns"] = "Vidljiva stavka kolone";
$lang["config_default_origin_tax_code"] = "Šifra poreza";
$lang["config_default_receivings_discount"] = "Popust za ulaze";
$lang["config_default_receivings_discount_number"] = "Popust za ulaz mora biti broj.";
$lang["config_default_receivings_discount_required"] = "Popust za ulaz je obavezno polje.";
$lang["config_default_sales_discount"] = "Popust na prodaju";
$lang["config_default_sales_discount_number"] = "Popust na prodaju mora biti broj.";
$lang["config_default_sales_discount_required"] = "Popust na prodaju je obavezno polje.";
$lang["config_default_tax_category"] = "Poreska kategorija";
$lang["config_default_tax_code"] = "Poreska šifra";
$lang["config_default_tax_jurisdiction"] = "Poreska uprava";
$lang["config_default_tax_name_number"] = "Naziv poreza mora biti string.";
$lang["config_default_tax_name_required"] = "Naziv poreza je obavezno polje.";
$lang["config_default_tax_rate"] = "Stopa poreza %";
$lang["config_default_tax_rate_1"] = "Stopa poreza 1 %";
$lang["config_default_tax_rate_2"] = "Stopa poreza 2 %";
$lang["config_default_tax_rate_3"] = "";
$lang["config_default_tax_rate_number"] = "Stopa poreza mora biti broj.";
$lang["config_default_tax_rate_required"] = "Stopa poreza je obavezno polje.";
$lang["config_derive_sale_quantity"] = "Dozvoli izvedenu količinu prodaje";
$lang["config_derive_sale_quantity_tooltip"] = "Ako se izabere, za artikle naručene po produženom iznosu biće obezbjeđen novi tip artikla";
$lang["config_dinner_table"] = "Sto";
$lang["config_dinner_table_duplicate"] = "Sto mora biti jedinstven.";
$lang["config_dinner_table_enable"] = "Omogući stolove za večeru";
$lang["config_dinner_table_invalid_chars"] = "Naziv stola ne može sadržavati '_'.";
$lang["config_dinner_table_required"] = "Sto je obavezno polje.";
$lang["config_dot"] = "tačka";
$lang["config_email"] = "E-mail";
$lang["config_email_configuration"] = "Konfiguracija e-mail";
$lang["config_email_mailpath"] = "Putanja do Sendmaila";
$lang["config_email_protocol"] = "Protokol";
$lang["config_email_receipt_check_behaviour"] = "Polje za potvrdu e-mail";
$lang["config_email_receipt_check_behaviour_always"] = "Uvijek potvrđeno";
$lang["config_email_receipt_check_behaviour_last"] = "Zapamti poslednji izbor";
$lang["config_email_receipt_check_behaviour_never"] = "Uvijek nepotvrđeno";
$lang["config_email_smtp_crypto"] = "SMTP šifriranje";
$lang["config_email_smtp_host"] = "SMTP Server";
$lang["config_email_smtp_pass"] = "SMTP Lozinka";
$lang["config_email_smtp_port"] = "SMTP Port";
$lang["config_email_smtp_timeout"] = "SMTP pauza";
$lang["config_email_smtp_user"] = "SMTP Korisničko ime";
$lang["config_enable_avatar"] = "";
$lang["config_enable_avatar_tooltip"] = "";
$lang["config_enable_dropdown_tooltip"] = "";
$lang["config_enable_new_look"] = "";
$lang["config_enable_right_bar"] = "";
$lang["config_enable_right_bar_tooltip"] = "";
$lang["config_enforce_privacy"] = "Ostvarite privatnost";
$lang["config_enforce_privacy_tooltip"] = "Zaštitite privatnost kupaca primjenjujući kodiranje podataka u slučaju brisanja njihovih podataka";
$lang["config_fax"] = "Faks";
$lang["config_file_perm"] = "Postoje problemi sa dozvolama za datoteke, popravite i ponovo učitajte ovu stranicu.";
$lang["config_financial_year"] = "Početak fiskalne godine";
$lang["config_financial_year_apr"] = "1. April";
$lang["config_financial_year_aug"] = "1. Avgust";
$lang["config_financial_year_dec"] = "1. Decembar";
$lang["config_financial_year_feb"] = "1. Februar";
$lang["config_financial_year_jan"] = "1. Januar";
$lang["config_financial_year_jul"] = "1. Juli";
$lang["config_financial_year_jun"] = "1. Juni";
$lang["config_financial_year_mar"] = "1. Mart";
$lang["config_financial_year_may"] = "1. Maj";
$lang["config_financial_year_nov"] = "1. Novembar";
$lang["config_financial_year_oct"] = "1. Oktobar";
$lang["config_financial_year_sep"] = "1. Septembar";
$lang["config_floating_labels"] = "Plutajuće etikete";
$lang["config_gcaptcha_enable"] = "Stranica za prijavu reCAPTCHA";
$lang["config_gcaptcha_secret_key"] = "reCAPTCHA tajni ključ";
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA tajni ključ je obavezno polje";
$lang["config_gcaptcha_site_key"] = "reCAPTCHA ključ sajta";
$lang["config_gcaptcha_site_key_required"] = "reCAPTCHA Ključ sajta je obavezno polje";
$lang["config_gcaptcha_tooltip"] = "Zaštitite stranicu za prijavu pomoću Google reCAPTCHA, kliknite na ikonu za par API ključeva.";
$lang["config_general"] = "Generalno";
$lang["config_general_configuration"] = "Opšta konfiguracija";
$lang["config_giftcard_number"] = "Broj poklon kartice";
$lang["config_giftcard_random"] = "Generiši nasumice";
$lang["config_giftcard_series"] = "Generiši u seriji";
$lang["config_image_allowed_file_types"] = "Dozvoljeni tipovi datoteka";
$lang["config_image_max_height_tooltip"] = "Maksimalna dozvoljena visina učitavanja slike u pikselima (px).";
$lang["config_image_max_size_tooltip"] = "Maksimalna dozvoljena veličina datoteke za prijenos slike u kilobajtima (kb).";
$lang["config_image_max_width_tooltip"] = "Maksimalna dozvoljena širina slike u pikselima (px).";
$lang["config_image_restrictions"] = "Ograničenja za učitavanje slike";
$lang["config_include_hsn"] = "Uključite podršku za HSN kodove";
$lang["config_info"] = "Informacije";
$lang["config_info_configuration"] = "Info o web trgovini";
$lang["config_input_groups"] = "Grupe unosa";
$lang["config_integrations"] = "Integracije";
$lang["config_integrations_configuration"] = "Integracije trećih strana";
$lang["config_invoice"] = "Faktura";
$lang["config_invoice_configuration"] = "Podešavanja štamapnja";
$lang["config_invoice_default_comments"] = "Komentar na fakturi";
$lang["config_invoice_email_message"] = "Predložak e-mail za fakture";
$lang["config_invoice_enable"] = "Omogući fakturisanje";
$lang["config_invoice_printer"] = "Štampanje faktura";
$lang["config_invoice_type"] = "Tip fakture";
$lang["config_is_readable"] = "čitljiv je, ali dozvole su veće od 660.";
$lang["config_is_writable"] = "može se napisati, ali dozvole su veće od 750.";
$lang["config_item_markup"] = "";
$lang["config_jsprintsetup_required"] = "Upozorenje! Onemogućene opcije će raditi samo ako imate instaliran FireFox jsPrintSetup dodatak. Svakako snimiti?";
$lang["config_language"] = "Jezik";
$lang["config_last_used_invoice_number"] = "Zadnji korišćeni broj fakture";
$lang["config_last_used_quote_number"] = "Zadnji korišćeni broj citata";
$lang["config_last_used_work_order_number"] = "Zadnji korišćeni broj R/N";
$lang["config_left"] = "Lijevo";
$lang["config_license"] = "Licenca";
$lang["config_license_configuration"] = "Izjava o licenci";
$lang["config_line_sequence"] = "Redoslijed linija";
$lang["config_lines_per_page"] = "Linija po stranici";
$lang["config_lines_per_page_number"] = "Redovi po stranici moraju biti broj.";
$lang["config_lines_per_page_required"] = "Broj linija po stranici je obavezno polje.";
$lang["config_locale"] = "Lokalizacija";
$lang["config_locale_configuration"] = "Konfiguracija";
$lang["config_locale_info"] = "Info o lokalnoj konfiguraciji";
$lang["config_location"] = "Skladište";
$lang["config_location_configuration"] = "Lokacije skladišta";
$lang["config_location_info"] = "Informacije o konfiguraciji lokacije";
$lang["config_login_form"] = "Stil formulara za prijavu";
$lang["config_logout"] = "Zar ne želite da napravite rezervnu kopiju prije odjave? Kliknite [OK] za sigurnosnu kopiju, [Cancel] da biste se odjavili.";
$lang["config_mailchimp"] = "MeilChimp";
$lang["config_mailchimp_api_key"] = "MailChimp API ključ";
$lang["config_mailchimp_configuration"] = "MailChimp konfiguracija";
$lang["config_mailchimp_key_successfully"] = "API ključ je važeći.";
$lang["config_mailchimp_key_unsuccessfully"] = "API ključ je nevažeći.";
$lang["config_mailchimp_lists"] = "MailChimp lista(e)";
$lang["config_mailchimp_tooltip"] = "Kliknite na ikonu za API ključ.";
$lang["config_message"] = "Poruke";
$lang["config_message_configuration"] = "Konfigurisanje poruke";
$lang["config_msg_msg"] = "Snimljena tekst poruka";
$lang["config_msg_msg_placeholder"] = "Ako želite koristiti SMS šablon, snimite poruku ovdje. U suprotnom ostavite prazno polje.";
$lang["config_msg_pwd"] = "SMS-API lozinke";
$lang["config_msg_pwd_required"] = "SMS-API lozinke je obavezno polje";
$lang["config_msg_src"] = "SMS-API ID pošiljaoca";
$lang["config_msg_src_required"] = "SMS-API Id pošiljaoca je obavezno polje";
$lang["config_msg_uid"] = "SMS-API korisnika";
$lang["config_msg_uid_required"] = "SMS-API korisnika je obavezno polje";
$lang["config_multi_pack_enabled"] = "Više pakovanja po stavci";
$lang["config_no_risk"] = "Nema rizika / ugroženosti.";
$lang["config_none"] = "nijedan";
$lang["config_notify_alignment"] = "Položaj iskačuće obavijesti";
$lang["config_number_format"] = "Format broja";
$lang["config_number_locale"] = "Lokalizacija";
$lang["config_number_locale_invalid"] = "Unijeti jezik je nevažeći. Provjerite vezu u opisu alatke da biste pronašli važeći jezik.";
$lang["config_number_locale_required"] = "Broj lokacije je obavezno polje.";
$lang["config_number_locale_tooltip"] = "Pronađite odgovarajuću lokaciju na ovom linku.";
$lang["config_os_timezone"] = "OSPOS vremenska zona:";
$lang["config_ospos_info"] = "OSPOS instalacione informacije";
$lang["config_payment_options_order"] = "Narudžba opcije plaćanja";
$lang["config_perm_risk"] = "Dozvole veće od 750 za pisanje i 660 za čitanje dovode ovaj program u rizik.";
$lang["config_phone"] = "Telefon kompanije";
$lang["config_phone_required"] = "Telefon kompanije je obavezno polje.";
$lang["config_print_bottom_margin"] = "Donja margina";
$lang["config_print_bottom_margin_number"] = "Donja margina mora biti broj.";
$lang["config_print_bottom_margin_required"] = "Donja margina je obavezno polje.";
$lang["config_print_delay_autoreturn"] = "Automatski povratak na odgodu prodaje";
$lang["config_print_delay_autoreturn_number"] = "Odgoda automatskog povratka na prodaju je obavezno polje.";
$lang["config_print_delay_autoreturn_required"] = "Odlaganje automatskog povratka na prodaju mora biti broj.";
$lang["config_print_footer"] = "Štampanje podnožja";
$lang["config_print_header"] = "Štampanje zaglavlja";
$lang["config_print_left_margin"] = "Lijeva margina";
$lang["config_print_left_margin_number"] = "Lijeva margina mora biti broj.";
$lang["config_print_left_margin_required"] = "Lijeva margina je obavezno polje.";
$lang["config_print_receipt_check_behaviour"] = "Polje za potvrdu štampanja računa";
$lang["config_print_receipt_check_behaviour_always"] = "Uvijek potvrđeno";
$lang["config_print_receipt_check_behaviour_last"] = "Zapamti poslednji izbor";
$lang["config_print_receipt_check_behaviour_never"] = "Uvijek nepotvrđeno";
$lang["config_print_right_margin"] = "Desna margina";
$lang["config_print_right_margin_number"] = "Desna margina mora biti broj.";
$lang["config_print_right_margin_required"] = "Desna margina je obavezno polje.";
$lang["config_print_silently"] = "Prikaži dijalog za štampanje";
$lang["config_print_top_margin"] = "Gornja margina";
$lang["config_print_top_margin_number"] = "Gornja margina mora biti broj.";
$lang["config_print_top_margin_required"] = "Gornja margina je obavezno polje.";
$lang["config_quantity_decimals"] = "Decimale količine";
$lang["config_quick_cash_enable"] = "";
$lang["config_quote_default_comments"] = "Difoltni komentari citata";
$lang["config_receipt"] = "Račun";
$lang["config_receipt_category"] = "";
$lang["config_receipt_configuration"] = "Podešavanja štamapnja";
$lang["config_receipt_default"] = "Podrazumijevano";
$lang["config_receipt_font_size"] = "Veličina fonta";
$lang["config_receipt_font_size_number"] = "Veličina fonta mora biti broj.";
$lang["config_receipt_font_size_required"] = "Veličina fonta je obavezno polje.";
$lang["config_receipt_info"] = "Informacije o POS računu";
$lang["config_receipt_printer"] = "POS štampač";
$lang["config_receipt_short"] = "Kratko";
$lang["config_receipt_show_company_name"] = "Prikaži kompaniju";
$lang["config_receipt_show_description"] = "Prikaži opis";
$lang["config_receipt_show_serialnumber"] = "Prikaži serijski broj";
$lang["config_receipt_show_tax_ind"] = "Prikaži poreski indikator";
$lang["config_receipt_show_taxes"] = "Prikaži porez";
$lang["config_receipt_show_total_discount"] = "Prikaži ukupni popust";
$lang["config_receipt_template"] = "Šablon računa";
$lang["config_receiving_calculate_average_price"] = "Izrač. prosječnih cijena (ulaza)";
$lang["config_recv_invoice_format"] = "Format računa fakture";
$lang["config_register_mode_default"] = "Mod registracije";
$lang["config_report_an_issue"] = "Prijavi problem";
$lang["config_return_policy_required"] = "Politika povrata je obavezno polje.";
$lang["config_reward"] = "Nagrada";
$lang["config_reward_configuration"] = "Konfigurisanje poklona";
$lang["config_right"] = "Desno";
$lang["config_sales_invoice_format"] = "Format fakture";
$lang["config_sales_quote_format"] = "Format navedene prodaje";
$lang["config_saved_successfully"] = "Konfiguracija je uspješno snimljena.";
$lang["config_saved_unsuccessfully"] = "Konfiguracija nije uspješno snimljena.";
$lang["config_security_issue"] = "Upozorenje o sigurnosnoj ranjivosti";
$lang["config_server_notice"] = "Koristite informacije u nastavku za prijavljivanje problema.";
$lang["config_service_charge"] = "";
$lang["config_show_due_enable"] = "";
$lang["config_show_office_group"] = "Prikaži ikonu kancelarije";
$lang["config_statistics"] = "Pošalji statistiku";
$lang["config_statistics_tooltip"] = "Pošaljite statistiku u svrhu razvoja i poboljšanja funkcija.";
$lang["config_stock_location"] = "Lokacija skladišta";
$lang["config_stock_location_duplicate"] = "Lokacija zaliha mora biti jedinstvena.";
$lang["config_stock_location_invalid_chars"] = "Lokacija skaldišta ne može sadržavati '_'.";
$lang["config_stock_location_required"] = "Lokacija skladišta je obavezno polje.";
$lang["config_suggestions_fifth_column"] = "";
$lang["config_suggestions_first_column"] = "Kolona 1";
$lang["config_suggestions_fourth_column"] = "";
$lang["config_suggestions_layout"] = "Prijedlozi za pretraživanje";
$lang["config_suggestions_second_column"] = "Kolona 2";
$lang["config_suggestions_third_column"] = "Kolona 3";
$lang["config_system_conf"] = "Podešavanja & Konf";
$lang["config_system_info"] = "Sistem Info";
$lang["config_table"] = "Sto";
$lang["config_table_configuration"] = "Konfigurisanje stola";
$lang["config_takings_printer"] = "Štampanje računa";
$lang["config_tax"] = "Porez";
$lang["config_tax_category"] = "Kategorija";
$lang["config_tax_category_duplicate"] = "Unesena kategorija već postoji.";
$lang["config_tax_category_invalid_chars"] = "Unesena kategorija je nevažeća.";
$lang["config_tax_category_required"] = "Obavezna je kategorija.";
$lang["config_tax_category_used"] = "Kategorija se ne može izbrisati jer se koristi.";
$lang["config_tax_configuration"] = "Konfigurisanje poreza";
$lang["config_tax_decimals"] = "Poreske decimale";
$lang["config_tax_id"] = "ID poreza";
$lang["config_tax_included"] = "Uključen porez";
$lang["config_theme"] = "Tema";
$lang["config_theme_preview"] = "Pregled teme:";
$lang["config_thousands_separator"] = "Separator za hiljade";
$lang["config_timezone"] = "Vremenska zona";
$lang["config_timezone_error"] = "Vremenska zona OSPOS razlikuje se od vaše lokalne vremenske zone.";
$lang["config_top"] = "Vrh";
$lang["config_use_destination_based_tax"] = "Koristite porez na osnovu odredišta";
$lang["config_user_timezone"] = "Lokalna vremenska zona:";
$lang["config_website"] = "web stranica";
$lang["config_wholesale_markup"] = "";
$lang["config_work_order_enable"] = "Podnošenje radnog naloga";
$lang["config_work_order_format"] = "Format radnog naloga";

View File

@@ -0,0 +1,54 @@
<?php
$lang["customers_account_number"] = "Račun #";
$lang["customers_account_number_duplicate"] = "Broj računa već postoji u bazi podataka.";
$lang["customers_available_points"] = "Dostupni poeni";
$lang["customers_available_points_value"] = "";
$lang["customers_average"] = "Prosječna potrošnja";
$lang["customers_avg_discount"] = "Prosječni popust";
$lang["customers_basic_information"] = "Informacija";
$lang["customers_cannot_be_deleted"] = "Ne može se izbrisati izabrani kupac, jer jedan ili više izabranih kupaca imaju prodaju.";
$lang["customers_company_name"] = "Kompanija";
$lang["customers_confirm_delete"] = "Želite li izbrisati izabranog kupca?";
$lang["customers_confirm_restore"] = "Da li ste sigurni da želite da povratite izabranog kupca?";
$lang["customers_consent"] = "Pristanak na registraciju";
$lang["customers_consent_required"] = "Prihvatanje registracije je obavezno polje.";
$lang["customers_csv_import_failed"] = "Greška kod uvoza iz CSV-a";
$lang["customers_csv_import_nodata_wrongformat"] = "Učitana datoteka nema podataka ili je pogrešno formatirana.";
$lang["customers_csv_import_partially_failed"] = "Uvoz klijenata je uspio sa nekim greškama:";
$lang["customers_csv_import_success"] = "Uvoz korisnika je uspješan.";
$lang["customers_customer"] = "Kupac";
$lang["customers_date"] = "Datum";
$lang["customers_discount"] = "Popust";
$lang["customers_discount_fixed"] = "Fiksni popust";
$lang["customers_discount_percent"] = "Procenat popusta";
$lang["customers_discount_type"] = "Vrsta popusta";
$lang["customers_email_duplicate"] = "E-mail adresa već postoji u bazi podataka.";
$lang["customers_employee"] = "Zaposlenik";
$lang["customers_error_adding_updating"] = "Dodavanje ili ažuriranje kupca nije uspjelo.";
$lang["customers_import_items_csv"] = "Uvezi kupce iz CSV datoteke";
$lang["customers_mailchimp_activity_click"] = "Klik na e-mail";
$lang["customers_mailchimp_activity_lastopen"] = "Zadnji otvoreni e-mail";
$lang["customers_mailchimp_activity_open"] = "E-mail otvoren";
$lang["customers_mailchimp_activity_total"] = "E-mail poslat";
$lang["customers_mailchimp_activity_unopen"] = "E-mail nije otvoren";
$lang["customers_mailchimp_email_client"] = "E-mail klijenta";
$lang["customers_mailchimp_info"] = "MeilChimp";
$lang["customers_mailchimp_member_rating"] = "Ocjena";
$lang["customers_mailchimp_status"] = "Status";
$lang["customers_mailchimp_vip"] = "VIP";
$lang["customers_max"] = "Maks. potrošeno";
$lang["customers_min"] = "Min. potrošeno";
$lang["customers_new"] = "Novi kupac";
$lang["customers_none_selected"] = "Niste izabrali nijednog kupca za brisanje.";
$lang["customers_one_or_multiple"] = "kupac(i)";
$lang["customers_quantity"] = "Količina";
$lang["customers_stats_info"] = "Statistika";
$lang["customers_successful_adding"] = "Uspješno ste dodali kupca";
$lang["customers_successful_deleted"] = "Kupac je uspješno izbrisan";
$lang["customers_successful_updating"] = "Podaci o kupcu su uspješno ažurirani";
$lang["customers_tax_code"] = "Poreski broj";
$lang["customers_tax_id"] = "Porez Id";
$lang["customers_taxable"] = "Oporezivo";
$lang["customers_total"] = "Ukupno";
$lang["customers_update"] = "Ažuriraj kupca";
$lang["rewards_package"] = "Nagrade";

View File

@@ -0,0 +1,22 @@
<?php
$lang["datepicker_all_time"] = "Sve";
$lang["datepicker_apply"] = "Primjeni";
$lang["datepicker_cancel"] = "Otkaži";
$lang["datepicker_custom"] = "Slobodan izbor";
$lang["datepicker_from"] = "Od";
$lang["datepicker_last_30"] = "Zadnjih 30 dana";
$lang["datepicker_last_7"] = "Zadnjih 7 dana";
$lang["datepicker_last_financial_year"] = "Prošla fiskalna godina";
$lang["datepicker_last_month"] = "Prošli mjesec";
$lang["datepicker_last_year"] = "Prošla godina";
$lang["datepicker_same_month_last_year"] = "Ovaj mjesec prošle godine";
$lang["datepicker_same_month_to_same_day_last_year"] = "Prošle godine od istog mjeseca do istog dana";
$lang["datepicker_this_financial_year"] = "Trenutna fiskalna godina";
$lang["datepicker_this_month"] = "Ovaj mjesec";
$lang["datepicker_this_year"] = "Ova godina";
$lang["datepicker_to"] = "Do";
$lang["datepicker_today"] = "Danas";
$lang["datepicker_today_last_year"] = "Ovaj dan prošle godine";
$lang["datepicker_weekstart"] = "1";
$lang["datepicker_yesterday"] = "Juče";

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