Compare commits

...

881 Commits
3.1.1 ... 3.2.3

Author SHA1 Message Date
FrancescoUK
f1cf3d3c87 Release 3.2.3 2018-06-13 21:37:15 +01:00
FrancescoUK
8138db1a80 Fix Item form issue (#2021) 2018-06-13 21:19:55 +01:00
FrancescoUK
c5632a2f5a Release 3.2.2 2018-06-06 21:35:52 +01:00
FrancescoUK
2e7e9cecd8 Revert CSRF change (#2009) 2018-06-06 21:28:52 +01:00
FrancescoUK
5ce7fcf5ed Bump version to 3.3.0 for next phase 2018-06-04 22:01:10 +01:00
FrancescoUK
d3c215f744 Release 3.2.1 2018-06-04 21:41:10 +01:00
Aril Apria Susanto
73e2d01c91 Translated using Weblate (Indonesian)
Currently translated at 93.8% (152 of 162 strings)
2018-06-04 19:13:46 +02:00
Aril Apria Susanto
0a299d8858 Translated using Weblate (Indonesian)
Currently translated at 74.1% (201 of 271 strings)
2018-06-04 19:13:46 +02:00
Aril Apria Susanto
5adc3b18c2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (65 of 65 strings)
2018-06-04 19:13:46 +02:00
FrancescoUK
0c2c999746 Minor improvement 2018-06-03 16:39:40 +01:00
Rostislav Hučka
9d072da872 Translated using Weblate (Czech)
Currently translated at 85.1% (138 of 162 strings)
2018-05-31 17:59:36 +02:00
WebShells
a610346576 Translated using Weblate (French)
Currently translated at 100.0% (110 of 110 strings)
2018-05-31 17:59:34 +02:00
WebShells
e3e4c8b3a4 Translated using Weblate (French)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/fr/
2018-05-31 17:59:22 +02:00
WebShells
af8cb4243b Translated using Weblate (French)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/fr/
2018-05-31 14:35:14 +02:00
WebShells
3c87bdec57 Translated using Weblate (French)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/fr/
2018-05-31 14:25:52 +02:00
WebShells
4062b9890b Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/fr/
2018-05-31 14:24:38 +02:00
WebShells
0ccfe72a26 Translated using Weblate (French)
Currently translated at 80.0% (88 of 110 strings)
2018-05-31 13:58:39 +02:00
WebShells
79ca657a6e Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-31 13:58:21 +02:00
Rostislav Hučka
36bf371f38 Translated using Weblate (Czech)
Currently translated at 58.8% (30 of 51 strings)
2018-05-31 13:29:14 +02:00
Rostislav Hučka
efc689530e Translated using Weblate (Czech)
Currently translated at 92.2% (95 of 103 strings)
2018-05-31 13:29:14 +02:00
WebShells
6bc5842402 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-31 13:29:14 +02:00
Rostislav Hučka
d4761ad095 Translated using Weblate (Czech)
Currently translated at 92.2% (95 of 103 strings)
2018-05-31 13:29:14 +02:00
Rostislav Hučka
cdf0c819ac Added translation using Weblate (Czech) 2018-05-31 13:29:14 +02:00
FrancescoUK
fe2ae55e94 Minor tidy up 2018-05-30 11:49:26 +02:00
FrancescoUK
fea0462407 Remove additional csrf_form_base calls, general tidy up 2018-05-30 11:49:26 +02:00
jekkos
c9a50cdeaf Check first if type parameter exists (#1990) 2018-05-30 11:49:26 +02:00
jekkos
04cbd95c13 Add as query string in case we use url encoded form (#1990) 2018-05-30 11:49:26 +02:00
jekkos
07d4b852e0 Hook $.ajax instead of $.post 2018-05-30 11:49:26 +02:00
jekkos
5d00a4354c Update .gitignore, add generated database scripts 2018-05-30 11:49:26 +02:00
Rostislav Hučka
6e33838fb7 Translated using Weblate (Czech)
Currently translated at 94.2% (33 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/cs/
2018-05-30 10:15:36 +02:00
Rostislav Hučka
e96b54509a Translated using Weblate (Czech)
Currently translated at 89.3% (92 of 103 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
530c75df4d Added translation using Weblate (Czech) 2018-05-30 10:02:44 +02:00
Rostislav Hučka
a8bb790ebe Translated using Weblate (Czech)
Currently translated at 89.3% (92 of 103 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
f82701adae Translated using Weblate (Czech)
Currently translated at 100.0% (20 of 20 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
36ea11f96f Added translation using Weblate (Czech) 2018-05-30 10:02:44 +02:00
FrancescoUK
4fe4c8eb57 Merge pull request #2006 from RuleDomain/fix-receivings-receiving-quantity
Insure that the receiving_quantity is not zero
2018-05-30 05:38:00 +01:00
Steve Ireland
4d41ad5735 Insure that the receiving_quantity is not zero 2018-05-29 19:45:14 -04:00
WebShells
fae7702719 Translated using Weblate (French)
Currently translated at 97.1% (34 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-28 13:22:28 +02:00
FrancescoUK
ed888be463 Update README.md 2018-05-27 21:24:06 +01:00
FrancescoUK
c423bc4222 Fix Mailchimp config issue due to missing json payload format 2018-05-27 19:20:12 +01:00
WebShells
aa624f3680 Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-25 10:36:21 +02:00
WebShells
121cc000b3 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)
2018-05-25 10:36:08 +02:00
WebShells
458118469a Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-23 18:44:13 +02:00
Weblate
07d1a5fb9b Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-23 18:44:13 +02:00
WebShells
78436ee39d Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-22 23:56:25 +02:00
WebShells
3f1f4c8e05 Translated using Weblate (French)
Currently translated at 100.0% (103 of 103 strings)
2018-05-22 23:56:21 +02:00
WebShells
2704bd7e83 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)
2018-05-22 23:56:16 +02:00
Aril Apria Susanto
5d3643a8d0 Translated using Weblate (Indonesian)
Currently translated at 89.5% (145 of 162 strings)
2018-05-21 16:28:21 +02:00
Aril Apria Susanto
454155f8de Translated using Weblate (Indonesian)
Currently translated at 97.1% (34 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2018-05-21 16:27:53 +02:00
WebShells
e03f7a7af6 Translated using Weblate (French)
Currently translated at 100.0% (103 of 103 strings)
2018-05-21 14:16:50 +02:00
WebShells
7cce40af25 Translated using Weblate (French)
Currently translated at 100.0% (48 of 48 strings)
2018-05-20 13:10:07 +02:00
WebShells
8d7fb2cd25 Translated using Weblate (French)
Currently translated at 100.0% (271 of 271 strings)
2018-05-20 13:09:53 +02:00
WebShells
dcd78d8266 Translated using Weblate (French)
Currently translated at 100.0% (48 of 48 strings)
2018-05-19 22:18:58 +02:00
WebShells
3dc950d930 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-05-19 22:02:56 +02:00
WebShells
7ba8ddb0c0 Translated using Weblate (French)
Currently translated at 100.0% (271 of 271 strings)
2018-05-19 21:47:37 +02:00
WebShells
c3d232016e Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-05-19 20:57:13 +02:00
WebShells
9b6bfd6e2c Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-05-19 20:56:31 +02:00
WebShells
0e2dc1d6da Translated using Weblate (Arabic)
Currently translated at 100.0% (48 of 48 strings)
2018-05-19 20:55:23 +02:00
WebShells
5f072aecfa Translated using Weblate (Arabic)
Currently translated at 100.0% (271 of 271 strings)
2018-05-19 20:44:49 +02:00
FrancescoUK
c803f01774 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/it/
2018-05-13 18:44:39 +02:00
Rostislav Hučka
8b006f5386 Translated using Weblate (Czech)
Currently translated at 87.5% (7 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
f05136f203 Translated using Weblate (Czech)
Currently translated at 85.1% (138 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
ced7a7c641 Translated using Weblate (Czech)
Currently translated at 96.9% (63 of 65 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
6ab0e52a7c Translated using Weblate (Czech)
Currently translated at 84.5% (137 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
b65ad2ae74 Translated using Weblate (Czech)
Currently translated at 83.3% (135 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
fe20fb24ca Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
d1f74b60c7 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
69c222f686 Translated using Weblate (Czech)
Currently translated at 96.9% (63 of 65 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
d861b12abe Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
bf8d4d5f2b Translated using Weblate (Czech)
Currently translated at 100.0% (12 of 12 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
7b30bd6048 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
ac92e7cf7f Translated using Weblate (Czech)
Currently translated at 82.7% (134 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
15c161b6d1 Translated using Weblate (Czech)
Currently translated at 15.5% (16 of 103 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
7c3a6344b7 Translated using Weblate (Czech)
Currently translated at 0.3% (1 of 271 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
c0115d51df Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
2cfcd4d8a7 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
08c48bc9a7 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
1d8a79b2a9 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
4bb3e2774b Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
truchosky
fe7ba26ab8 Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
ea1a51c9f8 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
FrancescoUK
b13ac8d4f0 Fix Summary report table header (#1972) 2018-05-12 20:34:27 +01:00
FrancescoUK
37390ae9dd Fix issue with barcode scanner and customer field (#871) 2018-05-12 18:56:25 +01:00
FrancescoUK
5f0d8b2312 Add extra payment combinations (#1982) 2018-05-12 17:21:18 +01:00
FrancescoUK
b35ea35654 Fix Italian translation errors (#1978) 2018-05-12 14:02:44 +01:00
FrancescoUK
6071f9ab97 "fix" to wrong summary_payment report (#1972) 2018-05-12 13:47:16 +01:00
FrancescoUK
4558cf0e50 Add spaces to SQL statement 2018-05-12 13:42:47 +01:00
truchosky
507294a4a6 temporary "fix" to wrong summary_payment report
I still cant find a solution to this,  summary payment in cash is wrong, like you know it considers payment ammount and it doesnt discount change, so the cash payment will be always a higher value, and if you try to discount change directly on query then it only discounts sales with 1 item, and not discounts sales with multiple items, the condition sales_items.line = 1 cause that.

This change considers item price * item qty, so at lest summary payment in cash will be acurated no matter tendered ammount  but leaves out "due sales"
2018-05-11 21:48:52 -03:00
Weblate
f8f4644987 Translated using Weblate (Flemish)
Currently translated at 100.0% (65 of 65 strings)
2018-05-07 00:11:14 +02:00
Weblate
510fe8b14e Translated using Weblate (Flemish)
Currently translated at 95.5% (259 of 271 strings)
2018-05-07 00:11:14 +02:00
FrancescoUK
a3408c31ce Missing Payment Count (#1972) 2018-05-06 08:50:09 +01:00
truchosky
1acac824a1 Missing Payment Count 2018-05-06 00:26:19 -03:00
PICCORO Lenz McKAY
fa4e7cefac Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
a77a2be2ce Translated using Weblate (Russian)
Currently translated at 96.6% (262 of 271 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
b93c3b2177 Translated using Weblate (Spanish)
Currently translated at 100.0% (110 of 110 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
ec673dc596 Translated using Weblate (Spanish)
Currently translated at 100.0% (271 of 271 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
dff043534d Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
7a3ac75e53 Translated using Weblate (Spanish)
Currently translated at 100.0% (48 of 48 strings)
2018-05-05 15:53:03 +02:00
FrancescoUK
7234f2af53 Fix Docker run command 2018-05-05 09:02:39 +01:00
h00pl4
7ee6221952 Fix Docker run command
I believe that the quotation mark is in the wrong place currently.
2018-05-05 14:00:57 +10:00
FrancescoUK
0ba225cafd Fix CSRF error at login time (#1535) 2018-05-02 22:04:50 +01:00
FrancescoUK
e4690eb670 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/it/
2018-05-02 23:00:11 +02:00
FrancescoUK
be6e3480c2 Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/it/
2018-05-02 23:00:05 +02:00
FrancescoUK
18f65dbb89 Translated using Weblate (Italian)
Currently translated at 100.0% (110 of 110 strings)
2018-05-02 22:57:22 +02:00
FrancescoUK
2b7688d962 Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-05-02 22:57:06 +02:00
FrancescoUK
c7cebfa3a3 Translated using Weblate (Italian)
Currently translated at 100.0% (48 of 48 strings)
2018-05-02 22:56:11 +02:00
FrancescoUK
be3b50e36d Translated using Weblate (Italian)
Currently translated at 100.0% (271 of 271 strings)
2018-05-02 22:55:02 +02:00
Weblate
ee82f3e804 Translated using Weblate (Flemish)
Currently translated at 100.0% (65 of 65 strings)
2018-05-02 08:50:30 +02:00
Trần Ngọc Quân
180d40f00d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (271 of 271 strings)
2018-05-02 03:27:59 +02:00
Trần Ngọc Quân
f43df16d10 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-05-02 03:19:20 +02:00
Trần Ngọc Quân
c54b8dccd3 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (48 of 48 strings)
2018-05-02 03:18:54 +02:00
Trần Ngọc Quân
d65ee713ca Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-05-02 03:16:44 +02:00
Weblate
59a4f55cb5 Translated using Weblate (Flemish)
Currently translated at 100.0% (48 of 48 strings)
2018-05-01 23:18:12 +02:00
jekkos
34da40ce0b Sync language strings 2018-05-01 23:12:39 +02:00
FrancescoUK
9d149ad4f3 Autoreturn to Sale page after receipt printing (#1966) 2018-05-01 20:46:18 +01:00
FrancescoUK
455e39260d Translated using Weblate (Italian)
Currently translated at 100.0% (268 of 268 strings)
2018-05-01 19:13:00 +02:00
FrancescoUK
0015bdffcf Remove example entries from expenses tables 2018-04-30 21:33:54 +01:00
FrancescoUK
bcd1b05961 Fix customer import issue and complete anonymisation (#1949) 2018-04-30 21:28:32 +01:00
jekkos
c62dc5fe2a Add demo url to README.md (#1956) 2018-04-30 11:47:11 +02:00
jekkos
2426fad52e Add FORCE_HTTPS environment variable (#1956) 2018-04-30 11:09:20 +02:00
FrancescoUK
fdbdf55e71 Better Customer data privacy protection (#1949) 2018-04-29 14:13:00 +01:00
FrancescoUK
3e9e144075 Fix subtle error with Stock location SQL query 2018-04-29 10:38:38 +01:00
FrancescoUK
1fe94c3626 Fix rendering of discounted unit price on invoice (#1924 #1958) 2018-04-28 12:38:33 +01:00
Steve Ireland
b4f8667047 Fix rendering of discounted unit price on invoice and quotes. 2018-04-27 08:55:22 -04:00
jekkos
fe2c639f8a Remove duplicated .travis.yml (#1954) 2018-04-24 23:26:35 +02:00
FrancescoUK
c8d1bfee35 Fix Expense amount and tax amount update issue (#1955) 2018-04-24 20:39:41 +01:00
FrancescoUK
72825acfaf Fix Item Kit Items receipt issues (#1950) 2018-04-22 09:13:01 +01:00
FrancescoUK
0e14d5390f Minor fixes 2018-04-22 09:12:01 +01:00
Steve Ireland
cdd966878d Various fixes for the item kit feature. 2018-04-21 17:46:39 -04:00
FrancescoUK
9384b53a22 Bump version to 3.2.1 for next phase 2018-04-14 15:24:47 +01:00
FrancescoUK
4bab3fc4e3 Code style adjustments 2018-04-14 14:40:02 +01:00
FrancescoUK
5c1baf20b0 Improve get_found_rows query performance (#1940) 2018-04-13 19:54:22 +01:00
FrancescoUK
075d4e1aeb Improve get_found_rows query performance (#1940) 2018-04-12 22:42:56 +01:00
Aril Apria Susanto
8dc7855e56 Translated using Weblate (Indonesian)
Currently translated at 65.9% (29 of 44 strings)
2018-04-12 17:34:40 -04:00
WebShells
d992c434d8 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:38:10 -04:00
anonymous
1c07ba1945 Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:38:06 -04:00
WebShells
6357491874 Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 16:38:05 -04:00
WebShells
8880061e0e Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 16:38:05 -04:00
WebShells
c397a81b48 Translated using Weblate (French)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 16:38:00 -04:00
WebShells
76e1516147 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 16:37:53 -04:00
Leonardo Salazar
c495cf29a0 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 16:37:50 -04:00
WebShells
c64ac468a3 Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 16:37:50 -04:00
Leonardo Salazar
0892944aaa Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-04-11 16:37:47 -04:00
WebShells
abafd59683 Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-04-11 16:37:46 -04:00
WebShells
dab4a8f90d Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 16:31:31 -04:00
WebShells
ca7c3e9d76 Translated using Weblate (French)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 16:25:50 -04:00
WebShells
61eeed0b75 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:20:21 -04:00
WebShells
3852bd5c3e Translated using Weblate (Arabic)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/ar_EG/
2018-04-11 16:02:44 -04:00
WebShells
cf8890efdc Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 15:51:07 -04:00
Leonardo Salazar
e4fe32b85c Translated using Weblate (Russian)
Currently translated at 100.0% (266 of 266 strings)
2018-04-11 15:10:04 -04:00
Leonardo Salazar
6bed03a2e7 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 14:22:46 -04:00
Leonardo Salazar
390fefa803 Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
2018-04-11 14:22:45 -04:00
Aril Apria Susanto
3c069ad226 Translated using Weblate (Indonesian)
Currently translated at 72.8% (118 of 162 strings)
2018-04-11 14:22:43 -04:00
Leonardo Salazar
2e07818a2c Translated using Weblate (Russian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 14:22:24 -04:00
Leonardo Salazar
5ce8c9694d Translated using Weblate (Russian)
Currently translated at 100.0% (103 of 103 strings)
2018-04-11 14:22:20 -04:00
Leonardo Salazar
0415cb53e9 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 14:22:15 -04:00
Leonardo Salazar
a254f78750 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 14:22:13 -04:00
Leonardo Salazar
adde140660 Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 14:22:07 -04:00
Leonardo Salazar
0a3414f4f3 Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 14:22:03 -04:00
Aril Apria Susanto
4c3ab04e3d Translated using Weblate (Indonesian)
Currently translated at 65.9% (29 of 44 strings)
2018-04-11 14:22:02 -04:00
Leonardo Salazar
9e442e6c61 Translated using Weblate (Russian)
Currently translated at 73.6% (196 of 266 strings)
2018-04-11 14:21:57 -04:00
Chiraq Bookstore
64dd3afa54 Translated using Weblate (Russian)
Currently translated at 52.2% (139 of 266 strings)
2018-04-11 13:50:18 -04:00
Leonardo Salazar
bd17e73b36 Translated using Weblate (Russian)
Currently translated at 51.8% (138 of 266 strings)
2018-04-11 13:50:08 -04:00
Chiraq Bookstore
3e7faf1ea1 Translated using Weblate (Russian)
Currently translated at 50.3% (134 of 266 strings)
2018-04-11 13:46:27 -04:00
Leonardo Salazar
34048c2ba5 Translated using Weblate (Russian)
Currently translated at 50.3% (134 of 266 strings)
2018-04-11 13:46:02 -04:00
Leonardo Salazar
3848b72bbe Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/ru/
2018-04-11 13:40:45 -04:00
Leonardo Salazar
154db58f34 Translated using Weblate (Russian)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 13:36:06 -04:00
Leonardo Salazar
2e5cfbc1e7 Translated using Weblate (Russian)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 13:01:24 -04:00
Chiraq Bookstore
174338f9bf Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 12:50:22 -04:00
Leonardo Salazar
4d9840f9ad Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 12:41:59 -04:00
Leonardo Salazar
821aaa4e63 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 12:34:43 -04:00
Leonardo Salazar
425f0fd21b Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 12:31:07 -04:00
Leonardo Salazar
41117b7007 Translated using Weblate (Russian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 12:23:07 -04:00
Leonardo Salazar
6cc4196af8 Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
2018-04-11 12:00:19 -04:00
Leonardo Salazar
4329f519f8 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 11:36:55 -04:00
Leonardo Salazar
c29937ac68 Translated using Weblate (Russian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-11 11:32:10 -04:00
Chiraq Bookstore
9d7c07c1dd Translated using Weblate (Russian)
Currently translated at 90.0% (27 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 11:29:49 -04:00
Leonardo Salazar
f24f62c0c6 Translated using Weblate (Russian)
Currently translated at 86.6% (26 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 11:29:28 -04:00
Leonardo Salazar
9370d3434a Translated using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/ru/
2018-04-11 11:12:38 -04:00
Weblate
a60a58337e Translated using Weblate (Flemish)
Currently translated at 80.2% (130 of 162 strings)
2018-04-11 08:00:53 -04:00
Weblate
6e8d9bb85c Translated using Weblate (Flemish)
Currently translated at 99.0% (102 of 103 strings)
2018-04-11 08:00:47 -04:00
Weblate
7642e45850 Translated using Weblate (Flemish)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 08:00:46 -04:00
Weblate
4d37b29304 Translated using Weblate (Flemish)
Currently translated at 97.0% (100 of 103 strings)
2018-04-11 05:08:48 -04:00
Weblate
ac5dbe0b0f Translated using Weblate (Flemish)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 05:08:48 -04:00
jekkos
cd19babd6e Update Cloud install procedure (#1939) 2018-04-11 01:31:13 +02:00
Leonardo Salazar
bbb77a00ad Translated using Weblate (Russian)
Currently translated at 5.5% (1 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/ru/
2018-04-10 14:54:17 -04:00
Leonardo Salazar
c48563b703 Translated using Weblate (Russian)
Currently translated at 20.9% (9 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-10 14:54:16 -04:00
Leonardo Salazar
740d12e137 Translated using Weblate (Russian)
Currently translated at 96.2% (156 of 162 strings)
2018-04-09 16:34:23 -04:00
Leonardo Salazar
e4369db19c Translated using Weblate (Russian)
Currently translated at 2.3% (1 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-09 16:34:14 -04:00
Leonardo Salazar
d5086ba42f Translated using Weblate (Russian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/ru/
2018-04-09 16:27:52 -04:00
Leonardo Salazar
1c95ed432f Translated using Weblate (Russian)
Currently translated at 100.0% (103 of 103 strings)
2018-04-09 16:09:50 -04:00
Chiraq Bookstore
9f50a6ab92 Translated using Weblate (Russian)
Currently translated at 49.6% (132 of 266 strings)
2018-04-07 12:26:09 -04:00
Weblate
ee319189ed Translated using Weblate (Flemish)
Currently translated at 100.0% (68 of 68 strings)
2018-04-06 11:22:08 -04:00
Weblate
0053398037 Translated using Weblate (Flemish)
Currently translated at 100.0% (68 of 68 strings)
2018-04-06 11:22:08 -04:00
Weblate
f106097e2d Translated using Weblate (Flemish)
Currently translated at 97.6% (42 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/nl_BE/
2018-04-06 11:22:08 -04:00
FrancescoUK
cc1497baad Update README.md 2018-04-06 14:02:55 +01:00
FrancescoUK
87317b00bd Update ISSUE_TEMPLATE.md 2018-04-06 14:01:14 +01:00
jekkos
e949f776ac Correct link to install file 2018-04-06 14:17:27 +02:00
jekkos
27ca6cf6f8 Add more guidance towards posting issues about misconfigured installations 2018-04-06 14:03:15 +02:00
jekkos
6d35fae28e Add more guidance towards posting issues about misconfigured installations 2018-04-06 13:58:46 +02:00
jekkos
27c8f2614d Add system folder missing to first point in FAQ (#1930) 2018-04-06 13:49:58 +02:00
jekkos
fbce16acd1 Update INSTALL with commonly reported 'system folder missing' 'bug' 2018-04-06 13:48:33 +02:00
Weblate
a700d4ffff Translated using Weblate (Flemish)
Currently translated at 58.1% (25 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/nl_BE/
2018-04-06 07:44:53 -04:00
Weblate
738e1de6b4 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)
2018-04-06 07:39:26 -04:00
Weblate
5da3dc3928 Translated using Weblate (Flemish)
Currently translated at 91.4% (32 of 35 strings)
2018-04-06 07:38:49 -04:00
Weblate
129eb78552 Translated using Weblate (Flemish)
Currently translated at 88.5% (31 of 35 strings)
2018-04-06 07:38:49 -04:00
Weblate
97ab38436f Translated using Weblate (Flemish)
Currently translated at 85.7% (30 of 35 strings)
2018-04-06 07:38:49 -04:00
jekkos
0820a0d7ff Don't show company_name if it's empty (non null) (#1929) 2018-04-06 13:36:45 +02:00
FrancescoUK
a597fa86eb Fix composer.lock after CI 3.1.8 update 2018-04-06 10:23:22 +01:00
FrancescoUK
c05b814009 Minor helpers fixes 2018-04-06 09:58:11 +01:00
FrancescoUK
82c6954d1c Remove unused and add missing language files 2018-04-06 09:51:25 +01:00
Trần Ngọc Quân
b43ec350ae Translated using Weblate (Vietnamese)
Currently translated at 100.0% (2 of 2 strings)
2018-04-06 04:41:35 -04:00
FrancescoUK
c6bc1680fa Amend 3.2.0 release documentation 2018-04-06 08:56:06 +01:00
Trần Ngọc Quân
7d64b483ca Translated using Weblate (Vietnamese)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/vi/
2018-04-05 20:59:25 -04:00
jekkos
cfa7891b06 Catch warnings if config file rewrite fails 2018-04-06 01:00:12 +02:00
jekkos
3663c7e344 Update Dockerfile + CI 3.1.8 2018-04-06 00:54:08 +02:00
jekkos
3ca871aea9 Update LICENSE and INSTALL file links (#1921) 2018-04-05 23:35:13 +02:00
Weblate
6b935ca169 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/nl_BE/
2018-04-05 17:32:38 -04:00
Weblate
41a9b03761 Translated using Weblate (Flemish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-05 17:32:27 -04:00
Weblate
6a3da0f5dc Translated using Weblate (Flemish)
Currently translated at 99.6% (265 of 266 strings)
2018-04-05 17:32:25 -04:00
Weblate
a00c38bee8 Translated using Weblate (Flemish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-05 17:31:09 -04:00
PICCORO Lenz McKAY
593b5cebaa Translated using Weblate (Spanish)
Currently translated at 100.0% (110 of 110 strings)
2018-04-05 17:13:09 -04:00
Weblate
4b57b6144b Translated using Weblate (Flemish)
Currently translated at 89.0% (237 of 266 strings)
2018-04-05 16:45:19 -04:00
Weblate
d2fbceeb22 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/nl_BE/
2018-04-05 16:37:00 -04:00
Weblate
3113945f0f Translated using Weblate (Flemish)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/nl_BE/
2018-04-05 16:24:40 -04:00
FrancescoUK
8a9e0f352a Translated using Weblate (Italian)
Currently translated at 100.0% (2 of 2 strings)
2018-04-05 14:46:44 -04:00
FrancescoUK
c844f2c1e7 Remove unused language files (#1918) 2018-04-05 19:42:55 +01:00
Chiraq Bookstore
9b0dc5a9c3 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (266 of 266 strings)
2018-04-05 14:19:35 -04:00
Chiraq Bookstore
11ba752010 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (266 of 266 strings)
2018-04-05 14:19:35 -04:00
FrancescoUK
b26dbc7022 Minor fixes to README.md 2018-04-05 18:30:38 +01:00
FrancescoUK
22f1ed10be Fix migration helper $this issue (#1927) 2018-04-05 18:23:32 +01:00
jekkos
0a289f9ed4 Upade README.md, add INSTALL.md 2018-04-05 18:35:24 +02:00
jekkos
1b0eb0d936 Add migration_helper to config.php (#1927) 2018-04-05 18:10:19 +02:00
jekkos
d146a05991 Prettify docker build instructions (#1921) 2018-04-05 09:24:06 +02:00
jekkos
8c43345a20 Add instructions to run using docker from source (#1921) 2018-04-05 09:21:26 +02:00
jekkos
50c4b30df2 Hide discount / item if no discount for that item (#1924) 2018-04-05 08:57:36 +02:00
jekkos
9f2e39711f Migration refactor: move out common code (#1440) 2018-04-05 08:57:02 +02:00
jekkos
43b4cee636 Remove sockets from Dockerfile 2018-04-05 00:07:51 +02:00
Trần Ngọc Quân
ba8c0b7b15 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
86622615fd Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
3dfa877365 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
b22252be4e Translated using Weblate (German)
Currently translated at 100.0% (51 of 51 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
83697eaf8b Translated using Weblate (German)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
fe627eb943 Translated using Weblate (German)
Currently translated at 89.4% (238 of 266 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
4dea268e51 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
2f7d738a20 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (266 of 266 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
b99ec9117b Translated using Weblate (German)
Currently translated at 100.0% (103 of 103 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
3c56ae6cb6 Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)
2018-04-04 18:07:04 -04:00
FrancescoUK
b1fdd45372 Translated using Weblate (Italian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
FrancescoUK
4d46da7974 Preparing release 3.2.0 2018-03-28 19:09:29 +01:00
FrancescoUK
84a5f654b1 Remove php sockets from the dependency list 2018-03-28 19:01:34 +01:00
ratana chhun
01afdc5979 Translated using Weblate (Central Khmer)
Currently translated at 66.6% (34 of 51 strings)
2018-03-28 13:50:49 -04:00
Ethan Horseshoe
3c379a6458 Translated using Weblate (German)
Currently translated at 98.5% (67 of 68 strings)
2018-03-28 13:50:44 -04:00
Ethan Horseshoe
bb203efe21 Translated using Weblate (German)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2018-03-27 01:32:35 -04:00
FrancescoUK
9e2a757b16 Fix over counting of totals (#1896) 2018-03-25 21:44:11 +01:00
FrancescoUK
4079e44572 Allow password change with no restrictions + code reorg (#1894) 2018-03-25 19:18:03 +01:00
FrancescoUK
4595ab5c35 Allow editing of Customer from sales register (#1884) 2018-03-25 18:02:08 +01:00
FrancescoUK
35150f14ed Fix Submit button translation (#1894) 2018-03-25 15:53:57 +01:00
FrancescoUK
a7ecec4bd3 Small code refactoring (#1896) 2018-03-25 14:39:52 +01:00
FrancescoUK
ae472d0176 Print reports date in different formats, remove sorting (#1896) 2018-03-25 13:57:20 +01:00
PICCORO Lenz McKAY
b18ae57cf6 Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-03-25 06:58:58 -04:00
Riccardo Pieri
2f064d9a94 Translated using Weblate (Italian)
Currently translated at 99.0% (109 of 110 strings)
2018-03-25 06:58:57 -04:00
FrancescoUK
4f2b6badd9 Allow password change with no restriction (#1894) 2018-03-24 21:47:10 +00:00
FrancescoUK
bf76450ca5 Fix Summary_payments report location (#1896) 2018-03-24 18:32:02 +00:00
Xyko Arteiro
7c88bdb21f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
544d8a496e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (17 of 17 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
88625ad83c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (162 of 162 strings)
2018-03-22 16:29:11 -04:00
Weblate
e89f698dff Translated using Weblate (Flemish)
Currently translated at 72.8% (118 of 162 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
a1e0e7946c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
68ce90ad8e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (51 of 51 strings)
2018-03-22 16:29:11 -04:00
Hangman
06e36ac4f4 Translated using Weblate (German)
Currently translated at 100.0% (51 of 51 strings)
2018-03-22 16:29:11 -04:00
ratana chhun
ccd52e1ded Translated using Weblate (Central Khmer)
Currently translated at 62.7% (32 of 51 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
ed0fd469e6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
7884bab2ed Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/migrate/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
213bba8312 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (103 of 103 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
17982988f7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (30 of 30 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
a7d4e4c163 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (68 of 68 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
2411fe1e3f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/pt_BR/
2018-03-22 16:29:11 -04:00
Weblate
b2a2ee9613 Translated using Weblate (Flemish)
Currently translated at 27.7% (5 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/nl_BE/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
dc78162486 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
ffbb96fdee Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (35 of 35 strings)
2018-03-22 16:29:11 -04:00
Ethan Horseshoe
fd1cad99ed Translated using Weblate (German)
Currently translated at 100.0% (35 of 35 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
e7808b35cd Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)
2018-03-22 16:29:11 -04:00
Weblate
16b9bd1305 Translated using Weblate (Flemish)
Currently translated at 54.5% (24 of 44 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
3a3ddb99d2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.8% (263 of 266 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
49c6ec282f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (65 of 65 strings)
2018-03-22 16:29:11 -04:00
FrancescoUK
2557945713 Merge pull request #1899 from odiea/master
Update Specific_customer.php
2018-03-20 20:28:17 +00:00
odiea
3368c62690 Update Specific_customer.php 2018-03-20 12:07:45 -06:00
jekkos
3b411bbefc Skip cleanup after deploy 2018-03-17 17:55:34 +01:00
jekkos
4d8006da2e Use bleeding edge (dpl) for deploys 2018-03-17 17:42:51 +01:00
jekkos
a5c797b617 Add API key as travis environment variable 2018-03-17 13:59:54 +01:00
jekkos
b9bc7583b2 Change bintray API ke 2018-03-17 13:37:34 +01:00
FrancescoUK
b84d9d894f Fix Summary Takings including not completed transactions (#1886) 2018-03-16 19:56:56 +00:00
FrancescoUK
63d9fd219c Revert Giftcard broken fix (#1694) 2018-03-16 19:18:37 +00:00
jekkos
ddb0e7560c Update encrypted travis API key 2018-03-16 19:09:59 +01:00
jekkos
a24a55f812 Update bstables to 1.12.1 (#1884) 2018-03-15 13:12:10 +01:00
FrancescoUK
a353068ca5 Fix locale support to Giftcard with decimals (#1694) 2018-03-12 21:37:07 +00:00
FrancescoUK
442b64d1d1 Add locale support to Giftcard with decimals (#1694) 2018-03-10 11:29:04 +00:00
jekkos
8547c3b071 Fix employee form grants regression (#1870) 2018-03-09 18:26:42 +01:00
FrancescoUK
bf30652a3d Fix config view tabs errors 2018-03-04 20:54:38 +00:00
FrancescoUK
7525c650ab Total Inv. Retail Price & Quantity 2018-03-04 17:02:21 +00:00
FrancescoUK
f2ccebc84d Enable https for proxy offloading 2018-03-04 16:49:40 +00:00
FrancescoUK
5edfed5bfc Enable https for proxy offloading 2018-03-04 16:48:36 +00:00
FrancescoUK
8c60d6cdc6 Select full input line on click (#1863) 2018-03-04 16:35:14 +00:00
FrancescoUK
33cc7e3f9c Remove the "crap" (#1875) 2018-03-04 14:47:29 +00:00
WebShells
395ac217b8 Translated using Weblate (Arabic)
Currently translated at 100.0% (17 of 17 strings)
2018-03-04 12:46:26 +00:00
WebShells
1189c3dadf Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-03-04 12:46:24 +00:00
ratana chhun
4c92e26e37 Translated using Weblate (Central Khmer)
Currently translated at 9.8% (5 of 51 strings)
2018-03-04 12:46:14 +00:00
WebShells
ee1f23289a Translated using Weblate (Arabic)
Currently translated at 100.0% (51 of 51 strings)
2018-03-04 12:46:13 +00:00
WebShells
84f6adb532 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ar_EG/
2018-03-04 12:46:11 +00:00
WebShells
da5b6e2592 Translated using Weblate (Arabic)
Currently translated at 100.0% (103 of 103 strings)
2018-03-04 12:46:06 +00:00
WebShells
38b26a3e68 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)
2018-03-04 12:46:02 +00:00
WebShells
9d70b23b31 Translated using Weblate (Arabic)
Currently translated at 100.0% (68 of 68 strings)
2018-03-04 12:46:02 +00:00
WebShells
2466469a9c Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-03-04 12:45:57 +00:00
WebShells
ad47e64dfd Translated using Weblate (Arabic)
Currently translated at 100.0% (65 of 65 strings)
2018-03-04 12:45:55 +00:00
WebShells
520ae0d2a9 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ar_EG/
2018-03-02 20:31:56 +00:00
WebShells
8fccee51a7 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)
2018-03-02 20:27:51 +00:00
WebShells
32074771ac Translated using Weblate (Arabic)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/ar_EG/
2018-03-01 19:22:43 +00:00
WebShells
44a1c89292 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)
2018-03-01 19:21:55 +00:00
WebShells
55d4c004eb Translated using Weblate (Arabic)
Currently translated at 100.0% (108 of 108 strings)
2018-03-01 18:11:48 +00:00
WebShells
1fbc42c079 Translated using Weblate (Arabic)
Currently translated at 100.0% (266 of 266 strings)
2018-03-01 15:32:33 +00:00
WebShells
2b7a25d8a3 Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-03-01 12:25:45 +00:00
WebShells
1f3074232c Translated using Weblate (Arabic)
Currently translated at 100.0% (103 of 103 strings)
2018-03-01 11:54:22 +00:00
ratana chhun
d3a77118ba Translated using Weblate (Central Khmer)
Currently translated at 100.0% (12 of 12 strings)
2018-03-01 04:53:11 +00:00
ratana chhun
83732383a7 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (30 of 30 strings)
2018-03-01 04:27:08 +00:00
WebShells
b495a97483 Translated using Weblate (Arabic)
Currently translated at 100.0% (17 of 17 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
a0672d04ce Translated using Weblate (Swedish)
Currently translated at 99.3% (161 of 162 strings)
2018-02-28 21:51:14 +00:00
WebShells
e9ac0adb81 Translated using Weblate (Arabic)
Currently translated at 74.6% (121 of 162 strings)
2018-02-28 21:51:14 +00:00
WebShells
6febdc4e9d Translated using Weblate (Arabic)
Currently translated at 100.0% (51 of 51 strings)
2018-02-28 21:51:14 +00:00
WebShells
8ca18edfbd Translated using Weblate (Arabic)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/ar_EG/
2018-02-28 21:51:14 +00:00
ratana chhun
6f4cd9d5eb Translated using Weblate (Central Khmer)
Currently translated at 26.6% (8 of 30 strings)
2018-02-28 21:51:14 +00:00
WebShells
63866bf0d3 Translated using Weblate (Arabic)
Currently translated at 100.0% (68 of 68 strings)
2018-02-28 21:51:14 +00:00
WebShells
4e8b63c002 Translated using Weblate (Arabic)
Currently translated at 97.6% (42 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/ar_EG/
2018-02-28 21:51:14 +00:00
Zhivko Vanev
1500aa8b51 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-28 21:51:14 +00:00
WebShells
9af064f003 Translated using Weblate (Arabic)
Currently translated at 77.2% (34 of 44 strings)
2018-02-28 21:51:14 +00:00
WebShells
0e4f894b2a Translated using Weblate (Arabic)
Currently translated at 88.7% (236 of 266 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
91a677f018 Translated using Weblate (Swedish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Zhivko Vanev
556ab3c229 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Weblate
d7da611a76 Translated using Weblate (Dutch (Belgium))
Currently translated at 74.4% (198 of 266 strings)
2018-02-28 21:51:14 +00:00
WebShells
fa8f42629b Translated using Weblate (Arabic)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Zhivko Vanev
f8e1d57f71 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-28 21:51:14 +00:00
Henk Valk
380953d8b7 Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Henk Valk
aea080052a Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Henk Valk
3568debbe6 Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Mats Pålsson
d2e8a156ab Translated using Weblate (Swedish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
d6f6e2f234 Translated using Weblate (Swedish)
Currently translated at 100.0% (30 of 30 strings)
2018-02-28 21:51:14 +00:00
FrancescoUK
22c6d5401c Fix wrong language translations (#1842) 2018-02-25 19:02:10 +00:00
FrancescoUK
e44733599e Fix Quote, Invoice and Work Order comments (#1819) 2018-02-25 15:05:00 +00:00
FrancescoUK
acb12dd517 Bump migrate file name with newer date 2018-02-25 15:03:05 +00:00
Steve Ireland
3dbc124f62 Various fixes for comments for quotes, work orders, and invoices 2018-02-25 14:56:38 +00:00
FrancescoUK
563fcf2385 Rollback JQuery validator to vs 1.14.0 (#1858) 2018-02-25 14:23:56 +00:00
Ahmed Mahmoud Saad
accd11b74f Translated using Weblate (Arabic)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/ar_EG/
2018-02-25 11:04:27 +00:00
Ahmed Mahmoud Saad
c7b21362cb Translated using Weblate (Arabic)
Currently translated at 22.2% (4 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/ar_EG/
2018-02-25 10:59:31 +00:00
Chiraq Bookstore
78b9daac39 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (17 of 17 strings)
2018-02-25 10:24:27 +00:00
Chiraq Bookstore
00f90857a0 Translated using Weblate (az_AZ (generated))
Currently translated at 99.3% (161 of 162 strings)
2018-02-25 10:24:25 +00:00
Chiraq Bookstore
3bb8d7ad32 Translated using Weblate (az_AZ (generated))
Currently translated at 98.1% (106 of 108 strings)
2018-02-25 10:24:20 +00:00
Chiraq Bookstore
83ed48c7db Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-25 10:24:14 +00:00
Chiraq Bookstore
7e0f099479 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (68 of 68 strings)
2018-02-25 10:24:13 +00:00
Chiraq Bookstore
96af1b64ff Translated using Weblate (Russian)
Currently translated at 49.0% (130 of 265 strings)
2018-02-25 10:24:11 +00:00
Ahmed Mahmoud Saad
a005ed6862 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ar_EG/
2018-02-24 15:29:10 +00:00
Chiraq Bookstore
cf6df1e99c Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (17 of 17 strings)
2018-02-24 13:24:36 +00:00
Chiraq Bookstore
c1509a9dd1 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (44 of 44 strings)
2018-02-24 13:17:53 +00:00
Chiraq Bookstore
d78b547b98 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (65 of 65 strings)
2018-02-24 12:47:48 +00:00
Chiraq Bookstore
17136a011a Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-22 15:15:29 +00:00
Chiraq Bookstore
171870f512 Translated using Weblate (az_AZ (generated))
Currently translated at 66.6% (72 of 108 strings)
2018-02-22 15:15:28 +00:00
Mats Pålsson
04a3a0631f Translated using Weblate (Swedish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-22 15:15:18 +00:00
Chiraq Bookstore
2dd81f4e77 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 15:15:00 +00:00
Mats Pålsson
39a7665930 Translated using Weblate (Swedish)
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 15:14:59 +00:00
Mats Pålsson
1223dccd8c Translated using Weblate (Swedish)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/sv/
2018-02-22 15:14:45 +00:00
Mats Pålsson
d078523528 Translated using Weblate (Swedish)
Currently translated at 100.0% (265 of 265 strings)
2018-02-22 15:14:38 +00:00
Chiraq Bookstore
574bcbac09 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 11:12:36 +00:00
Chiraq Bookstore
8dad6d5249 Translated using Weblate (az_AZ (generated))
Currently translated at 72.8% (75 of 103 strings)
2018-02-21 14:15:08 +00:00
Chiraq Bookstore
75b9fdb698 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)
2018-02-21 14:14:57 +00:00
Henk Valk
6131e3db34 Translated using Weblate (Dutch (Belgium))
Currently translated at 11.6% (5 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/nl_BE/
2018-02-21 14:14:56 +00:00
Chiraq Bookstore
30f6e315e3 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)
2018-02-21 12:03:28 +00:00
Chiraq Bookstore
01dfed1793 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (68 of 68 strings)
2018-02-21 11:18:37 +00:00
Alexis Michaux
f82990a304 Translated using Weblate (French)
Currently translated at 96.9% (157 of 162 strings)
2018-02-21 11:15:45 +00:00
Chiraq Bookstore
6131c5eb53 Translated using Weblate (az_AZ (generated))
Currently translated at 97.0% (66 of 68 strings)
2018-02-21 11:15:41 +00:00
Chiraq Bookstore
a1b25d193c Translated using Weblate (Russian)
Currently translated at 41.5% (110 of 265 strings)
2018-02-21 11:15:28 +00:00
FrancescoUK
67eab51e4f Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-02-20 19:10:08 +00:00
FrancescoUK
97591e77fc Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-02-20 19:10:07 +00:00
Alexis Michaux
146d0ce6c8 Translated using Weblate (French)
Currently translated at 88.2% (143 of 162 strings)
2018-02-20 19:10:06 +00:00
FrancescoUK
9733ca9171 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-02-20 19:09:45 +00:00
FrancescoUK
b2fcd59841 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/it/
2018-02-20 19:09:44 +00:00
FrancescoUK
f769561a3c Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-02-20 19:09:37 +00:00
FrancescoUK
2a617f7c5c Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 19:09:37 +00:00
FrancescoUK
544c142ef0 Translated using Weblate (Italian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/it/
2018-02-20 19:09:36 +00:00
Alexis Michaux
8991407b16 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 19:09:35 +00:00
FrancescoUK
caedd4cfc0 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-20 19:09:29 +00:00
Alexis Michaux
9323f3803b Translated using Weblate (French)
Currently translated at 52.2% (23 of 44 strings)
2018-02-20 19:09:29 +00:00
FrancescoUK
a031fd924b Translated using Weblate (Italian)
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 19:09:25 +00:00
FrancescoUK
afadb1e171 Translated using Weblate (Italian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-20 19:09:20 +00:00
lucailvec
8f7f22726a Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 18:45:59 +00:00
lucailvec
5cbebec92f Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-02-20 18:45:26 +00:00
lucailvec
2b8e8bb13e Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 18:44:58 +00:00
lucailvec
cae200e06a Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-02-20 18:42:44 +00:00
FrancescoUK
49cbdb53ee Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-02-20 18:41:09 +00:00
lucailvec
e96e00d902 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-02-20 18:40:38 +00:00
lucailvec
6ae6fa7c32 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-20 18:39:49 +00:00
FrancescoUK
4653cde725 Translated using Weblate (Italian)
Currently translated at 100.0% (108 of 108 strings)
2018-02-20 18:38:24 +00:00
Alexis Michaux
97f2ee521f Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-02-20 18:37:58 +00:00
FrancescoUK
ee55be347d Update JQuery plugins (#1694) 2018-02-20 18:24:36 +00:00
Chiraq Bookstore
cee7956788 Translated using Weblate (az_AZ (generated))
Currently translated at 77.1% (125 of 162 strings)
2018-02-20 17:49:15 +00:00
Chiraq Bookstore
ffa77cfb71 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/az_AZ/
2018-02-20 17:49:07 +00:00
Chiraq Bookstore
a956a009f9 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 12:32:59 +00:00
Chiraq Bookstore
9f7ca1a747 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 12:21:00 +00:00
Chiraq Bookstore
66d319f082 Translated using Weblate (az_AZ (generated))
Currently translated at 93.2% (247 of 265 strings)
2018-02-20 12:20:55 +00:00
PICCORO Lenz McKAY
010a3c7126 Translated using Weblate (Spanish)
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 12:20:27 +00:00
Chiraq Bookstore
c1b3382795 Translated using Weblate (Russian)
Currently translated at 41.1% (109 of 265 strings)
2018-02-20 12:20:24 +00:00
Chiraq Bookstore
2a8078aac9 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (51 of 51 strings)
2018-02-20 11:22:38 +00:00
ratana chhun
409f0f0084 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 09:00:27 +00:00
ratana chhun
df2a76b4cf Translated using Weblate (Central Khmer)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/km/
2018-02-20 07:03:48 +00:00
ratana chhun
ec97cd5cdf Translated using Weblate (Central Khmer)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/km/
2018-02-20 06:33:53 +00:00
Trần Ngọc Quân
46da8bab1d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-02-19 07:19:07 +00:00
ratana chhun
ae6e082983 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (8 of 8 strings)
2018-02-19 03:17:31 +00:00
PICCORO Lenz McKAY
028f38784e Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-02-19 00:36:07 +00:00
FrancescoUK
136093b8ab Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-02-18 22:51:17 +00:00
FrancescoUK
17f3635574 Revert work_order_email changes (#1824) 2018-02-18 17:43:16 +00:00
Trần Ngọc Quân
c33a3b3720 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/vi/
2018-02-18 17:16:54 +00:00
Mats Pålsson
63b728b118 Translated using Weblate (Swedish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
1cfdee4114 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
98ccea3419 Translated using Weblate (Swedish)
Currently translated at 100.0% (159 of 159 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
5306b6d26f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (108 of 108 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
63bc9d70a7 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
2590feee6c Translated using Weblate (Swedish)
Currently translated at 100.0% (51 of 51 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
1dd375311c Translated using Weblate (Swedish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
f121a31bb9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
75d54f4f62 Translated using Weblate (Swedish)
Currently translated at 4.8% (5 of 103 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
8d16b28160 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (68 of 68 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
97d07d96c8 Translated using Weblate (Swedish)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
78f9560e6d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-18 17:16:54 +00:00
Mats Pålsson
fd625afeb6 Translated using Weblate (Swedish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
91374a54b4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (265 of 265 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
9c4591ea31 Translated using Weblate (Swedish)
Currently translated at 30.1% (80 of 265 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
5ade46bc35 Translated using Weblate (Swedish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
b1bee3196a Translated using Weblate (Swedish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-18 17:16:54 +00:00
FrancescoUK
16dd8fb0a1 Fix work_order_email similar to quote_email (#1824) 2018-02-18 17:12:43 +00:00
FrancescoUK
b69d57a4b9 Fix missing sales_receipt_no_email translation (#1824) 2018-02-18 16:27:20 +00:00
FrancescoUK
1ba0f3c839 Fix quote email issue (#1824) 2018-02-18 09:23:44 +00:00
FrancescoUK
a258a27d9b Merge pull request #1842 from RuleDomain/quote-comments
Expand comments for quotes and invoices add notice when customer is required
2018-02-18 09:15:17 +00:00
Mats Pålsson
082bfeca88 Translated using Weblate (Swedish)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/sv/
2018-02-17 23:46:18 +00:00
Mats Pålsson
32075b96dd Translated using Weblate (Swedish)
Currently translated at 100.0% (35 of 35 strings)
2018-02-17 22:10:02 +00:00
Mats Pålsson
3844d6b5f5 Translated using Weblate (Swedish)
Currently translated at 72.5% (37 of 51 strings)
2018-02-17 21:43:01 +00:00
Mats Pålsson
aa6eed2947 Translated using Weblate (Swedish)
Currently translated at 29.0% (77 of 265 strings)
2018-02-17 21:42:54 +00:00
Mats Pålsson
4a74c645ad Translated using Weblate (Swedish)
Currently translated at 8.3% (22 of 265 strings)
2018-02-17 21:18:33 +00:00
Mats Pålsson
dc2c77752b Translated using Weblate (Swedish)
Currently translated at 8.3% (22 of 265 strings)
2018-02-17 21:18:09 +00:00
Mats Pålsson
85fdc661d1 Translated using Weblate (Swedish)
Currently translated at 7.9% (21 of 265 strings)
2018-02-17 21:17:46 +00:00
Chiraq Bookstore
64163e8e6e Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
810ba78776 Translated using Weblate (Russian)
Currently translated at 76.6% (23 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
82a17eb6ce Translated using Weblate (Russian)
Currently translated at 88.2% (15 of 17 strings)
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
b726596ec1 Translated using Weblate (az_AZ (generated))
Currently translated at 45.0% (23 of 51 strings)
2018-02-17 21:07:50 +00:00
FrancescoUK
5aac69ad6d Add discount per item to quote and invoice (#1824) 2018-02-17 21:03:29 +00:00
FrancescoUK
c24c7ed721 Merge pull request #1836 from crmeye/master
Italian Translation (Fix)
2018-02-17 20:23:12 +00:00
FrancescoUK
f4519251af Print and Email checkbox default behaviour (#1784) 2018-02-17 17:36:15 +00:00
FrancescoUK
ba6e38f755 Fix Discount Report pop up notification (#1823) 2018-02-17 12:15:35 +00:00
Chiraq Bookstore
f838dae4b5 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-17 09:19:39 +00:00
Chiraq Bookstore
380d3a1355 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/az_AZ/
2018-02-17 09:13:34 +00:00
PICCORO Lenz McKAY
ceb5b85640 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/es/
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
fc6f8e4d92 Translated using Weblate (Russian)
Currently translated at 70.0% (21 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
37dcba63bb Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
edf5c1ec90 Translated using Weblate (Spanish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
426bdfbadd Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
40114601df Translated using Weblate (Spanish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
e2d9b2e141 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
427a2c3777 Translated using Weblate (az_AZ (generated))
Currently translated at 25.6% (66 of 257 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
98864c0446 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
0995c71630 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/az_AZ/
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
407e8723d8 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
022435d0db Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
7f7943d538 Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
780a4c37a7 Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)
2018-02-17 08:51:31 +00:00
crmeye
b24879c9ef Merge branch 'master' into master 2018-02-17 00:18:20 +01:00
FrancescoUK
d6000c79f7 Revert "Removed edit from Discount Report" (#1823)
This reverts commit 60d77e1f61.
2018-02-16 22:46:19 +00:00
FrancescoUK
9ed0984c21 Fix indentation issue 2018-02-16 22:13:56 +00:00
FrancescoUK
21415ccb3c Fix indentation issue 2018-02-16 22:10:02 +00:00
PICCORO Lenz McKAY
cadae3eabc Translated using Weblate (Spanish)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/es/
2018-02-16 04:24:29 +00:00
PICCORO Lenz McKAY
54150940ee Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-16 04:18:41 +00:00
Steve Ireland
81d76b0c03 Expand comments for quotes and invoices add notice when customer is required. 2018-02-15 22:45:45 -05:00
PICCORO Lenz McKAY
469d3d500e Translated using Weblate (Spanish)
Currently translated at 100.0% (257 of 257 strings)
2018-02-16 02:23:07 +00:00
PICCORO Lenz McKAY
36fe5ded7e Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-02-16 02:22:24 +00:00
PICCORO Lenz McKAY
fec096915a Translated using Weblate (Spanish)
Currently translated at 100.0% (51 of 51 strings)
2018-02-16 02:20:13 +00:00
PICCORO Lenz McKAY
abdcd31b9e Translated using Weblate (Spanish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-16 02:12:51 +00:00
PICCORO Lenz McKAY
efd58f2281 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-02-16 01:21:10 +00:00
PICCORO Lenz McKAY
211c18a99e Translated using Weblate (Spanish)
Currently translated at 91.8% (146 of 159 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
166c2558e6 Translated using Weblate (Spanish)
Currently translated at 98.0% (50 of 51 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
54237a1fed Translated using Weblate (Spanish)
Currently translated at 91.4% (32 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
1d9548870b Translated using Weblate (Spanish)
Currently translated at 98.8% (254 of 257 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
032276de87 Translated using Weblate (Spanish)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/es/
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
61e16d2d33 Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
463dfcd1a4 Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-16 01:17:54 +00:00
odiea
022dfea51a Update Specific_customer.php 2018-02-15 23:46:12 +01:00
odiea
ef23596b6e Update Reports.php 2018-02-15 23:46:12 +01:00
odiea
58e8469dde Added filters to customer 2018-02-15 23:46:12 +01:00
odiea
60d77e1f61 Removed edit from Discount Report 2018-02-15 23:46:12 +01:00
odiea
49d60313f6 Update Detailed Reports. Add payment type to Specific Customer. 2018-02-15 23:46:12 +01:00
jekkos
ed54adb70c Merge branch 'master' of weblate.jpeelaer.net:/root/docker/ospos/common 2018-02-15 23:19:12 +01:00
Chiraq Bookstore
a353e73549 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-15 21:29:53 +00:00
Chiraq Bookstore
e1508e610b Translated using Weblate (az_AZ (generated))
Currently translated at 58.8% (30 of 51 strings)
2018-02-15 21:29:48 +00:00
Chiraq Bookstore
463cf9266d Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-15 21:29:44 +00:00
Alexis Michaux
23a6ae791b Translated using Weblate (French)
Currently translated at 74.7% (192 of 257 strings)
2018-02-15 21:29:41 +00:00
jekkos
48d58b822a Sync translations (#1841) 2018-02-15 22:27:44 +01:00
Alexis Michaux
08de3e1167 Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-02-15 15:52:05 +00:00
Chiraq Bookstore
20c30a2c15 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)
2018-02-15 07:51:12 +00:00
Diego Campiglia
b51ea94eb5 Italian Translation (Fix) 2018-02-14 16:45:15 +01:00
Chiraq Bookstore
2c613bdc86 Translated using Weblate (Russian)
Currently translated at 66.6% (20 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
f784aa3956 Translated using Weblate (az_AZ (generated))
Currently translated at 74.2% (118 of 159 strings)
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
73b97de3e5 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
5cc2898a4b Translated using Weblate (az_AZ (generated))
Currently translated at 93.1% (41 of 44 strings)
2018-02-13 23:12:28 +00:00
HanseGucker
820cae2d3d Translated using Weblate (German)
Currently translated at 98.0% (252 of 257 strings)
2018-02-13 23:12:28 +00:00
Zhivko Vanev
3569165097 Translated using Weblate (Bulgarian)
Currently translated at 99.2% (255 of 257 strings)
2018-02-13 23:12:28 +00:00
ratana chhun
2c1f2823f2 Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
ratana chhun
ce45769163 Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
ratana chhun
12b62119bf Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
FrancescoUK
9caf22aea4 Merge pull request #1827 from RuleDomain/fix-missing-comment
This adds the comment back to quote and corrects a couple of bad DEFINE references
2018-02-12 07:40:08 +00:00
Steve Ireland
2258938604 More missing language elements and one bad reference to a config value. 2018-02-11 20:09:24 -05:00
FrancescoUK
3f2a9e8c52 Merge pull request #1820 from opensourcepos/Readme-patch
Minor URL change
2018-02-09 11:14:51 +00:00
objecttothis
385de892fe Minor URL change
Changed translation website URL from http://weblate.jpeelaer.net to http://translate.opensourcepos.org to reflect the updated alias.
2018-02-09 11:31:56 +04:00
Chiraq Bookstore
a5787ecb4e Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-08 22:35:09 +00:00
PICCORO Lenz McKAY
bfecf15ee2 Translated using Weblate (Russian)
Currently translated at 100.0% (159 of 159 strings)
2018-02-08 22:35:08 +00:00
Trần Ngọc Quân
5ffb6b4c18 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-08 22:34:53 +00:00
abderrahim nabih
a6d70b6fcd Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-02-08 22:34:52 +00:00
PICCORO Lenz McKAY
bee9c7af5d Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-08 22:34:46 +00:00
Chiraq Bookstore
f0bdb84422 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/az_AZ/
2018-02-08 22:34:46 +00:00
Chiraq Bookstore
12e7c5d440 Translated using Weblate (az_AZ (generated))
Currently translated at 26.0% (67 of 257 strings)
2018-02-08 22:34:41 +00:00
Chiraq Bookstore
623ff4fee9 Translated using Weblate (Russian)
Currently translated at 39.2% (101 of 257 strings)
2018-02-08 22:34:41 +00:00
Chiraq Bookstore
579a85a9fc Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-08 11:16:40 +00:00
Trần Ngọc Quân
22e3bba649 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (68 of 68 strings)
2018-02-08 08:11:44 +00:00
ratana chhun
9075bfcf37 Added translation using Weblate (Central Khmer) 2018-02-08 03:54:07 +00:00
Trần Ngọc Quân
478b2c0ea5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (257 of 257 strings)
2018-02-08 01:18:47 +00:00
Trần Ngọc Quân
91918fc937 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/vi/
2018-02-08 00:28:24 +00:00
PICCORO Lenz McKAY
017df21f17 Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ru/
2018-02-07 13:07:36 +00:00
PICCORO Lenz McKAY
e7d420f44f Translated using Weblate (Spanish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-07 12:45:54 +00:00
Trần Ngọc Quân
04f2e916bb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)
2018-02-07 07:22:30 +00:00
Trần Ngọc Quân
7770c6817f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/vi/
2018-02-07 01:26:12 +00:00
Trần Ngọc Quân
6caf2ea672 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
317d0adb78 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (159 of 159 strings)

try again
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
a7659d7b76 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
4353f5a12b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
160b7ca189 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-06 10:39:52 +00:00
Chiraq Bookstore
c9b15c7eeb Translated using Weblate (az_AZ (generated))
Currently translated at 26.0% (67 of 257 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
a1f6dbccc5 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
d399637c18 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (65 of 65 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
54740f734f Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
7e8ac7c100 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-06 10:39:52 +00:00
FrancescoUK
4cff8d7dd2 Fix wrong label for tag in sale register (#1814) 2018-02-04 21:15:45 +00:00
FrancescoUK
a7ada7e85a Fix broken chartist plugin dependency 2018-02-04 20:58:58 +00:00
Trần Ngọc Quân
a3bf1d7eeb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/vi/
2018-02-03 00:45:37 +00:00
Trần Ngọc Quân
ecce5d39bb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (12 of 12 strings)
2018-02-03 00:38:16 +00:00
Zhivko Vanev
9d113c3327 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-02 16:42:54 +00:00
Zhivko Vanev
1f3b05a37b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (159 of 159 strings)
2018-02-02 16:14:27 +00:00
Trần Ngọc Quân
8e60437db0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 09:42:09 +00:00
Chiraq Bookstore
6cb6e2fb24 Translated using Weblate (Russian)
Currently translated at 60.0% (3 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/ru/
2018-02-02 09:42:09 +00:00
Trần Ngọc Quân
71a95d7b31 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-02 09:42:08 +00:00
Trần Ngọc Quân
8be987f564 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (8 of 8 strings)
2018-02-02 07:47:01 +00:00
Trần Ngọc Quân
8bf147f025 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-02 07:38:27 +00:00
Weblate
b3c42d4d06 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-02 07:38:14 +00:00
Trần Ngọc Quân
043493ba0a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (20 of 20 strings)
2018-02-02 07:20:01 +00:00
Trần Ngọc Quân
88d5b3336a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 07:12:00 +00:00
Weblate
3a1b16c070 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 07:11:36 +00:00
Trần Ngọc Quân
44e57c59e4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-02 06:49:11 +00:00
Trần Ngọc Quân
204499e5d0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (35 of 35 strings)
2018-02-02 01:13:09 +00:00
Trần Ngọc Quân
31f736e2e0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (44 of 44 strings)
2018-02-02 01:00:15 +00:00
Trần Ngọc Quân
5a4d7a40ec Translated using Weblate (Vietnamese)
Currently translated at 100.0% (17 of 17 strings)
2018-02-01 14:05:43 +00:00
Weblate
8c5706bc1f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-01 14:05:43 +00:00
Trần Ngọc Quân
04af352fad Translated using Weblate (Vietnamese)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/vi/
2018-02-01 14:05:41 +00:00
Chiraq Bookstore
677b296721 Translated using Weblate (az_AZ (generated))
Currently translated at 98.4% (64 of 65 strings)
2018-02-01 14:05:38 +00:00
Trần Ngọc Quân
a4c8db7592 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (65 of 65 strings)
2018-02-01 07:34:28 +00:00
Trần Ngọc Quân
241f05a000 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (8 of 8 strings)
2018-02-01 07:18:23 +00:00
Trần Ngọc Quân
1f5ffb04a1 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (2 of 2 strings)
2018-02-01 07:13:27 +00:00
Trần Ngọc Quân
5f12d8ade3 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/vi/
2018-02-01 07:08:49 +00:00
Trần Ngọc Quân
da64b67e26 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (17 of 17 strings)
2018-02-01 07:03:16 +00:00
Trần Ngọc Quân
beedb7e2f6 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-01 06:53:46 +00:00
Trần Ngọc Quân
fa63933f69 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-01 06:46:00 +00:00
Weblate
b32b767260 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-01-31 08:01:47 +00:00
Weblate
4457cf7055 Add Vietnamese language 2018-01-31 07:57:49 +00:00
Weblate
458e9a2db5 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
3245ddb22d Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
5c833e48fb Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
49c3ad57fc Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
67402b6cd5 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
cd2f2c35a4 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
4efbfe2581 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
2fd350d924 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
e1c6a7c98a Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
873bbfd2b8 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
523cbd40e3 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
c97393f53b Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
PICCORO Lenz McKAY
d175b97596 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-31 07:56:08 +00:00
PICCORO Lenz McKAY
aff5dd146e Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-31 07:56:08 +00:00
FrancescoUK
768f73770f Merge pull request #1810 from vnwildman/master
Add Vietnamese language (#1809)
2018-01-31 06:19:04 +00:00
Trần Ngọc Quân
b8f4da9314 Add Vietnamese language
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2018-01-31 08:13:51 +07:00
FrancescoUK
9c29e066ff Upgrade to CodeIgniter 3.1.7 2018-01-30 21:43:14 +00:00
PICCORO Lenz McKAY
7b0abf5982 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/es/
2018-01-28 13:35:08 +00:00
PICCORO Lenz McKAY
9fe8cffa16 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-01-28 13:35:04 +00:00
PICCORO Lenz McKAY
024990dac8 Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-01-28 13:35:00 +00:00
PICCORO Lenz McKAY
d479ed2512 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)
2018-01-28 13:34:57 +00:00
PICCORO Lenz McKAY
f799d4f296 Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)
2018-01-28 13:34:56 +00:00
PICCORO Lenz McKAY
c389a2c8a5 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-01-28 13:34:54 +00:00
PICCORO Lenz McKAY
0c8b4de6ac Translated using Weblate (Spanish)
Currently translated at 100.0% (257 of 257 strings)
2018-01-28 13:34:54 +00:00
lucailvec
0d5cad8f27 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-28 13:34:48 +00:00
lucailvec
abf163c6fa Translated using Weblate (Italian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-27 09:45:22 +00:00
lucailvec
e1011b2662 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-01-23 20:39:40 +00:00
PICCORO Lenz McKAY
cea2a2e051 Translated using Weblate (Russian)
Currently translated at 88.6% (141 of 159 strings)
2018-01-23 20:39:39 +00:00
lucailvec
376c8cd3b2 Translated using Weblate (Italian)
Currently translated at 100.0% (107 of 107 strings)
2018-01-23 20:39:23 +00:00
lucailvec
bea420032a Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-23 20:39:12 +00:00
lucailvec
0e8594b92b Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-01-23 20:39:11 +00:00
PICCORO Lenz McKAY
fff072d302 Translated using Weblate (Russian)
Currently translated at 47.7% (21 of 44 strings)
2018-01-23 20:39:10 +00:00
PICCORO Lenz McKAY
803e2391ff Translated using Weblate (Spanish)
Currently translated at 98.8% (254 of 257 strings)
2018-01-23 20:39:10 +00:00
lucailvec
a6cc775d17 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-23 20:39:06 +00:00
lucailvec
c02f93bdf9 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-21 10:29:59 +00:00
lucailvec
c3bbf75d0e Translated using Weblate (Italian)
Currently translated at 100.0% (159 of 159 strings)
2018-01-20 17:43:15 +00:00
PICCORO Lenz McKAY
f533e7629b Translated using Weblate (Spanish)
Currently translated at 98.1% (105 of 107 strings)
2018-01-20 17:42:59 +00:00
Hangman
54099bf43a Translated using Weblate (German)
Currently translated at 79.4% (85 of 107 strings)
2018-01-20 17:42:47 +00:00
Hangman
60ce1970e7 Translated using Weblate (German)
Currently translated at 20.0% (1 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/de/
2018-01-20 17:42:39 +00:00
lucailvec
9abb83f98b Translated using Weblate (Italian)
Currently translated at 100.0% (12 of 12 strings)
2018-01-20 17:42:38 +00:00
lucailvec
7302b0c5d8 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
2018-01-20 17:42:36 +00:00
PICCORO Lenz McKAY
b7a03e1a85 Translated using Weblate (Spanish)
Currently translated at 99.0% (102 of 103 strings)
2018-01-20 17:42:35 +00:00
lucailvec
91e08639b0 Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-01-20 17:42:34 +00:00
Hangman
c5874e71bb Translated using Weblate (German)
Currently translated at 100.0% (103 of 103 strings)
2018-01-20 17:42:24 +00:00
lucailvec
1315c52d41 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-01-20 17:42:22 +00:00
Hangman
e9c56184e0 Translated using Weblate (German)
Currently translated at 76.6% (23 of 30 strings)
2018-01-20 17:42:19 +00:00
lucailvec
99fbbb94a8 Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-01-20 17:42:18 +00:00
lucailvec
3b3d019a5d Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-01-20 17:42:11 +00:00
Hangman
ee20237021 Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)
2018-01-20 17:42:08 +00:00
lucailvec
4341501307 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-20 17:42:05 +00:00
Hangman
fc657f1776 Translated using Weblate (German)
Currently translated at 94.5% (243 of 257 strings)
2018-01-20 17:41:45 +00:00
lucailvec
6f55bb8626 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-01-20 15:20:25 +00:00
lucailvec
62d34178b0 Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-01-20 14:49:03 +00:00
Hangman
9d1152c392 Translated using Weblate (German)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 18:49:00 +00:00
Hangman
84cbef62f8 Translated using Weblate (German)
Currently translated at 100.0% (17 of 17 strings)
2018-01-19 18:19:38 +00:00
Hangman
8e2f5b6a5e Translated using Weblate (German)
Currently translated at 100.0% (65 of 65 strings)
2018-01-19 17:51:58 +00:00
PICCORO Lenz McKAY
58764ac632 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 12:24:33 +00:00
PICCORO Lenz McKAY
49ed5ac10a Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-01-19 12:10:04 +00:00
lucailvec
02f873aa64 Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-01-19 11:49:46 +00:00
lucailvec
1e431582b5 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-01-19 07:49:53 +00:00
Hangman
0d49fa72e1 Translated using Weblate (German)
Currently translated at 3.3% (1 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/de/
2018-01-19 07:49:53 +00:00
lucailvec
364886e395 Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-01-19 07:49:53 +00:00
lucailvec
9d3b215fc2 Translated using Weblate (Italian)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 07:49:53 +00:00
Hangman
4cd0f13485 Translated using Weblate (German)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 07:49:53 +00:00
lucailvec
937896d436 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-19 07:49:53 +00:00
lucailvec
d5c3d8056a Translated using Weblate (Italian)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/it/
2018-01-19 07:49:53 +00:00
lucailvec
69fc834118 Translated using Weblate (Italian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/it/
2018-01-19 07:49:53 +00:00
lucailvec
bac9897bed Translated using Weblate (Italian)
Currently translated at 100.0% (2 of 2 strings)
2018-01-19 07:49:53 +00:00
Zhivko Vanev
424e4f0f87 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)
2018-01-19 07:49:53 +00:00
lucailvec
8e069c4e10 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 07:49:53 +00:00
lucailvec
3fff00c1f5 Translated using Weblate (Italian)
Currently translated at 100.0% (20 of 20 strings)
2018-01-19 07:49:53 +00:00
lucailvec
57a6a8b1a5 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-01-19 07:49:53 +00:00
Hangman
e0f7e48d5a Translated using Weblate (German)
Currently translated at 52.2% (23 of 44 strings)
2018-01-19 07:49:53 +00:00
lucailvec
a7733bd244 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-19 07:49:53 +00:00
lucailvec
eb39c0ba56 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
2018-01-19 07:49:53 +00:00
lucailvec
69a2f6b7f3 Translated using Weblate (Italian)
Currently translated at 96.9% (63 of 65 strings)
2018-01-19 07:49:53 +00:00
lucailvec
e241b1eb89 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 07:49:53 +00:00
FrancescoUK
f1edb38be8 Remove duplicated language entry (#1773) 2018-01-12 21:51:55 +00:00
FrancescoUK
6d74f80306 Add Italian to the language list, resort languages (#1779) 2018-01-12 21:51:50 +00:00
FrancescoUK
0456465383 Add missing en_GB translations (#1773) 2018-01-12 21:50:09 +00:00
jekkos
f4fedef0fb Another attempt at stabilizing the build (#1759) 2018-01-11 19:15:07 +01:00
Weblate
713f6106c1 Translated using Weblate (Italian)
Currently translated at 3.0% (2 of 65 strings)
2018-01-11 17:34:54 +00:00
Weblate
e44683e6b6 Added translation using Weblate (Italian) 2018-01-11 17:34:54 +00:00
jekkos
9d594854b3 Move to travis edge environment (#1759) 2018-01-11 00:17:38 +01:00
Steve Ireland
7a55c2311e More missing language elements and one bad reference to a config value. 2018-01-11 00:07:22 +01:00
FrancescoUK
ba5fa39151 Fix missing language lines (#1773) 2018-01-06 16:40:43 +00:00
FrancescoUK
75b401b068 Add a couple of missing reports language elements 2018-01-06 16:39:02 +00:00
Steve Ireland
7029858f58 Add a couple of missing reports language elements 2018-01-05 19:46:13 -05:00
FrancescoUK
fad12b9de2 Fix PHP7.2 and MCrypt issue, use OpenSSL instead (#1770) 2018-01-03 22:01:12 +00:00
FrancescoUK
8b96af3d19 Use define instead of hard number (#1647) 2018-01-02 22:24:56 +00:00
FrancescoUK
447571090f Provide a way to enter a line total and have the quantity sold automatically calculated (#1647) 2018-01-02 22:07:20 +00:00
Steve Ireland
a6e08b5d7d Provide a way to enter a line total and have the quantity sold automatically calculated. 2018-01-02 13:42:25 -05:00
FrancescoUK
b3835ec6a3 Fix register regression (#1647) 2018-01-01 14:03:39 +00:00
FrancescoUK
080d3c0e3b Fix GB translation typo (#1647) 2018-01-01 12:20:06 +00:00
FrancescoUK
86019e002d Provide a way to enter a line total and have the quantity sold automatically calculated (#1647) 2018-01-01 12:01:43 +00:00
FrancescoUK
e0329472ef Various fixes 2018-01-01 11:59:25 +00:00
Steve Ireland
62f34663ae Provide a way to enter a line total and have the quantity sold automatically calculated. 2017-12-31 16:22:04 -05:00
FrancescoUK
9bf1d66b74 Set a larger receipt Barcode size 2017-12-31 21:18:42 +00:00
FrancescoUK
74449f6570 Remove unused Barcode quality (#1753) 2017-12-31 15:05:19 +00:00
FrancescoUK
2a306b888f Fix discount detail report (#1736) 2017-12-31 14:29:51 +00:00
FrancescoUK
161fa4f5d3 Fix to Languages and LICENSE 2017-12-31 13:35:26 +00:00
Thin Siphachanh
20791d7c12 Translated using Weblate (Lao)
Currently translated at 100.0% (42 of 42 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/lo/
2017-12-31 00:55:44 +00:00
Weblate
1a8a19d568 Add lao language 2017-12-29 16:01:33 +00:00
FrancescoUK
61062e1278 Add Lao language, small locale refactoring 2017-12-25 21:14:14 +00:00
Thin Siphachanh
1e87fe0a24 Translated using Weblate (Lao)
Currently translated at 100.0% (16 of 16 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
5f3a42592e Translated using Weblate (Lao)
Currently translated at 100.0% (12 of 12 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8e27a88d3a Translated using Weblate (Lao)
Currently translated at 100.0% (8 of 8 strings)
2017-12-25 10:04:47 +00:00
Chonh Ssp
b98b842ebe Translated using Weblate (Lao)
Currently translated at 100.0% (101 of 101 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8f634d7cff Translated using Weblate (Lao)
Currently translated at 100.0% (29 of 29 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
7ab2272abc Translated using Weblate (Lao)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/lo/
2017-12-25 10:04:47 +00:00
Thin Siphachanh
c0e63cbdfd Translated using Weblate (Lao)
Currently translated at 100.0% (42 of 42 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/lo/
2017-12-25 10:04:47 +00:00
Thin Siphachanh
173574ffaf Translated using Weblate (Lao)
Currently translated at 100.0% (2 of 2 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8f0af3b450 Translated using Weblate (Lao)
Currently translated at 100.0% (34 of 34 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
2d71d3bd02 Translated using Weblate (Lao)
Currently translated at 100.0% (20 of 20 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
7be5816fa1 Translated using Weblate (Lao)
Currently translated at 100.0% (254 of 254 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
56864e6919 Translated using Weblate (Lao)
Currently translated at 100.0% (8 of 8 strings)
2017-12-25 10:04:47 +00:00
Weblate
846d99d037 Translated using Weblate (Lao)
Currently translated at 100.0% (65 of 65 strings)
2017-12-25 10:04:47 +00:00
Weblate
6c563a210e Added translation using Weblate (Lao) 2017-12-25 10:04:47 +00:00
jekkos
b49dbd39ed Run in travis trusty environment 2017-12-25 02:19:26 +01:00
jekkos
25282381f4 Update project badges 2017-12-24 22:44:48 +01:00
FrancescoUK
13b3a3b98f Add Swedish, Khmer and Bulgarian languages support 2017-12-24 19:08:14 +00:00
FrancescoUK
455b462d25 Preparing 3.2.0 release 2017-12-24 19:08:14 +00:00
Weblate
058cf639db Added translation using Weblate (Arabic) 2017-12-24 19:00:38 +00:00
Weblate
2c97c79737 Translated using Weblate (Dutch (Belgium))
Currently translated at 13.7% (4 of 29 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/nl_BE/
2017-12-24 18:33:00 +00:00
Weblate
11135e9e4f Translated using Weblate (Dutch (Belgium))
Currently translated at 20.0% (1 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/nl_BE/
2017-12-24 18:29:28 +00:00
Weblate
ce321877ff Translated using Weblate (Bulgarian)
Currently translated at 100.0% (20 of 20 strings)
2017-12-24 18:29:27 +00:00
Weblate
630017aea1 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2017-12-24 18:15:04 +00:00
Weblate
e7c7af36ac Added translation using Weblate (Bulgarian) 2017-12-24 18:01:55 +00:00
Weblate
9632e8b508 Added translation using Weblate (Bulgarian) 2017-12-24 18:01:18 +00:00
Weblate
546167ac01 Added translation using Weblate (Bulgarian) 2017-12-24 18:00:35 +00:00
Weblate
7bcc3d0f56 Added translation using Weblate (Bulgarian) 2017-12-24 18:00:10 +00:00
Weblate
751e70fc15 Added translation using Weblate (Bulgarian) 2017-12-24 17:59:24 +00:00
Weblate
8b1b5fc1d7 Added translation using Weblate (Bulgarian) 2017-12-24 17:56:10 +00:00
FrancescoUK
f49bf8d4d4 Translated using Weblate (Swedish)
Currently translated at 24.6% (16 of 65 strings)
2017-12-24 17:55:20 +00:00
FrancescoUK
af4e93f483 Translated using Weblate (Swedish)
Currently translated at 16.9% (11 of 65 strings)
2017-12-24 17:52:01 +00:00
FrancescoUK
4e9236b2e3 Translated using Weblate (Swedish)
Currently translated at 13.8% (9 of 65 strings)
2017-12-24 17:51:27 +00:00
FrancescoUK
195a24feb0 Translated using Weblate (Swedish)
Currently translated at 12.3% (8 of 65 strings)
2017-12-24 17:50:46 +00:00
FrancescoUK
6c5ab60f59 Translated using Weblate (Swedish)
Currently translated at 10.7% (7 of 65 strings)
2017-12-24 17:50:22 +00:00
FrancescoUK
0458fcc99c Translated using Weblate (Swedish)
Currently translated at 9.2% (6 of 65 strings)
2017-12-24 17:49:39 +00:00
Weblate
a11e1dc585 Translated using Weblate (Swedish)
Currently translated at 1.2% (2 of 159 strings)
2017-12-23 22:57:48 +00:00
Weblate
072396f951 Translated using Weblate (Swedish)
Currently translated at 0.6% (1 of 159 strings)
2017-12-23 22:56:37 +00:00
Weblate
b3a2ca4db4 Translated using Weblate (Swedish)
Currently translated at 1.5% (1 of 65 strings)
2017-12-23 22:47:58 +00:00
Salvador Hurtado
66278805c6 Translated using Weblate (Spanish)
Currently translated at 86.7% (138 of 159 strings)
2017-12-23 22:22:12 +00:00
Weblate
b91d383acf Translated using Weblate (Dutch (Belgium))
Currently translated at 100.0% (65 of 65 strings)
2017-12-23 22:22:12 +00:00
FrancescoUK
a7d7cbe43c Fix clash of item_id and item_number (Barcode) (#1747) 2017-12-23 21:20:48 +00:00
FrancescoUK
ab2685ef62 Fix circular lib dependency (#1668) upgrade to CI 3.1.6 2017-12-22 20:58:18 +00:00
FrancescoUK
c96c2a69a6 Fix Reports and few other minor things 2017-12-12 20:58:36 +00:00
FrancescoUK
323738210b Merge pull request #1748 from i92guboj/master
Incorrect header in spanish invoice template
2017-12-11 21:48:29 +00:00
i92guboj
d61d3b46f3 fix spanish invoice header 2017-12-11 22:41:11 +01:00
FrancescoUK
a08826e909 Add extra Expense fields (#1235) 2017-12-11 17:28:42 +00:00
FrancescoUK
ad1e63fa3a Fix rounding issue with GST and discounts (#1437) 2017-12-09 17:08:05 +00:00
FrancescoUK
a25a87ec60 Update README.md 2017-12-03 12:15:08 +00:00
FrancescoUK
8c6ff0ceb1 ISSUE_TEMPLATE.md minor amendment 2017-12-03 12:06:22 +00:00
FrancescoUK
0f352abcaa Simplified ISSUE_TEMPLATE.md 2017-12-03 12:03:25 +00:00
FrancescoUK
4910441099 Add table sticky header (#1610) 2017-12-02 18:57:39 +00:00
FrancescoUK
c248086566 Add table export to pdf (#1681) 2017-12-02 18:19:10 +00:00
FrancescoUK
c784a537dd Fix export all records #868 2017-12-02 17:42:57 +00:00
FrancescoUK
00958608e0 Merge pull request #1739 from odiea/master
Add Company search to Customer and Sales
2017-12-02 16:10:08 +00:00
odiea
d3cb3b7f87 Added Company search to Customer and Sales 2017-11-30 16:07:01 -07:00
FrancescoUK
983830ef70 Allow receipt item name to be wrapped. 2017-11-30 19:29:18 +00:00
FrancescoUK
35b6609327 Hide Deleted in Expense form when new expense (#1235) 2017-11-27 21:14:01 +00:00
FrancescoUK
b058e91a99 Fix code indentation issues 2017-11-27 20:52:46 +00:00
FrancescoUK
2cde603949 Add Expenses support (#1235) 2017-11-26 20:45:57 +00:00
FrancescoUK
b5b2d4f62f Restore cancelled sales (#682) 2017-11-25 21:45:59 +00:00
FrancescoUK
473676fb08 Add British English translations 2017-11-25 21:43:13 +00:00
Steve Ireland
64c2996c74 Improve the ability to restore canceled sales. 2017-11-25 21:38:00 +00:00
FrancescoUK
15ad253c3a Merge pull request #1723 from RuleDomain/fix-gift-card-vat-amount
Fix gift card amount due in a VAT tax environment.
2017-11-22 20:09:10 +00:00
Steve Ireland
fcab8e1fc9 Fix gift card amount due in a VAT tax environment. 2017-11-21 23:29:28 -05:00
FrancescoUK
8b92d19732 Merge pull request #1701 from RuleDomain/rename-location-fix
Fix issue with renaming stock locations (#1691)
2017-10-29 07:58:08 +00:00
Steve Ireland
2f221004fb Correct issues with renaming stock locations 2017-10-28 19:57:36 -04:00
FrancescoUK
2b2396521c Update bootstrap-table js version to latest master 2017-10-21 14:07:10 +01:00
FrancescoUK
f26c703626 Merge pull request #1686 from ertanyildiz/master
Updated Giftcards 81 line
2017-10-21 12:15:08 +01:00
FrancescoUK
eef9dc82ca Ensure php-mbstring extension is installed (#1673) 2017-10-21 11:57:20 +01:00
Ertan YILDIZ
5a21ac7c89 Updated Giftcards 81 line
it throws error if there is no gift cart in database. 

*check if row is set. if not, set $max_giftnumber to zero
2017-10-20 15:33:59 +03:00
FrancescoUK
269bb900b5 Export all reports records (#868) 2017-10-14 11:01:58 +01:00
FrancescoUK
37ed01ed3e Move Office Icons to the right (#1624) 2017-10-13 20:17:38 +01:00
FrancescoUK
fe4961be8e Insert Try->Catch clause (#1616) 2017-10-13 19:16:09 +01:00
FrancescoUK
058414e78c Fix invoice pdf name bug (#1163) 2017-10-07 17:01:47 +01:00
FrancescoUK
49dba3035c Various fixes to language files 2017-10-07 13:58:33 +01:00
Chiraq Bookstore
e73c33279a Translated using Weblate (az_AZ (generated))
Currently translated at 42.0% (21 of 50 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
cc2916b65b Translated using Weblate (az_AZ (generated))
Currently translated at 0.0% (0 of 12 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
a64c4db252 Translated using Weblate (az_AZ (generated))
Currently translated at 79.1% (53 of 67 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
57172e17fc Translated using Weblate (az_AZ (generated))
Currently translated at 5.0% (1 of 20 strings)
2017-10-06 07:05:53 +00:00
Chiraq Bookstore
cc61365f4d Translated using Weblate (az_AZ (generated))
Currently translated at 30.2% (13 of 43 strings)
2017-10-06 07:05:53 +00:00
Chiraq Bookstore
59c27f275c Translated using Weblate (Russian)
Currently translated at 98.4% (62 of 63 strings)
2017-10-06 07:05:52 +00:00
Chiraq Bookstore
95453620b7 Translated using Weblate (az_AZ (generated))
Currently translated at 13.2% (33 of 249 strings)
2017-10-04 08:04:10 +00:00
Chiraq Bookstore
daa99997d8 Translated using Weblate (az_AZ (generated))
Currently translated at 65.5% (19 of 29 strings)
2017-10-04 07:29:16 +00:00
Chiraq Bookstore
c3e5291e06 Translated using Weblate (az_AZ (generated))
Currently translated at 50.5% (48 of 95 strings)
2017-10-04 07:29:16 +00:00
Chiraq Bookstore
e2e84eccaa Translated using Weblate (az_AZ (generated))
Currently translated at 62.1% (59 of 95 strings)
2017-09-29 15:18:43 +00:00
Weblate
9d67268693 Translated using Weblate (az_AZ (generated))
Currently translated at 12.0% (30 of 249 strings)
2017-09-29 15:18:42 +00:00
Chiraq Bookstore
f9490ba571 Translated using Weblate (az_AZ (generated))
Currently translated at 0.0% (0 of 8 strings)
2017-09-29 15:18:41 +00:00
Weblate
767c818e8e Translated using Weblate (az_AZ (generated))
Currently translated at 55.5% (35 of 63 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
6c3fcc29f3 Translated using Weblate (Russian)
Currently translated at 50.3% (77 of 153 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
b2c2749c99 Translated using Weblate (Russian)
Currently translated at 73.6% (70 of 95 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
c28061f006 Translated using Weblate (Russian)
Currently translated at 52.0% (26 of 50 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
bfd7e95db4 Translated using Weblate (Russian)
Currently translated at 0.0% (0 of 12 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
358104d6db Translated using Weblate (Russian)
Currently translated at 69.3% (70 of 101 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
0f3b0a0095 Translated using Weblate (Russian)
Currently translated at 50.0% (10 of 20 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
54efec81d3 Translated using Weblate (Russian)
Currently translated at 30.2% (13 of 43 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
0910e86724 Translated using Weblate (Russian)
Currently translated at 13.2% (33 of 249 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
504d69f9cc Translated using Weblate (Russian)
Currently translated at 63.4% (40 of 63 strings)
2017-09-29 06:45:52 +00:00
FrancescoUK
b1b6301b93 Allow return to Giftcard with 0 balance (#1620) 2017-09-24 20:23:53 +01:00
FrancescoUK
7aca0a57c5 Fix typo in migration classes 2017-09-24 18:52:56 +01:00
FrancescoUK
9ff7f9f212 Rename Sales to be Transactions (#1599) 2017-09-24 18:14:14 +01:00
FrancescoUK
c5a78613ba Newer migration support (#1576) 2017-09-24 16:49:36 +01:00
FrancescoUK
826837e902 Merge pull request #1641 from RuleDomain/fix-invoice-override (#1638)
Add support for providing a manual invoice number
2017-09-24 16:23:58 +01:00
Steve Ireland
1b9fc76757 Add support for providing a manual invoice number 2017-09-24 10:50:08 -04:00
FrancescoUK
e7ea24bcda Merge pull request #1639 from RuleDomain/item-maint-fix
Fix item maintenance issue related to item kit permissions #1629
2017-09-24 07:56:55 +01:00
Steve Ireland
3d38b2322e Fix item maintenance issue where item cannot be saved if employee is not authorized to work with Item Kits. 2017-09-23 20:46:16 -04:00
jekkos
66b1e538ad Install language files using docker (#1458) 2017-09-22 19:37:48 +02:00
FrancescoUK
77714b97c4 Fix duplicate barcode warning icon being on the wrong row 2017-09-20 21:03:35 +01:00
FrancescoUK
f5e2f1ac0a Add duplicate barcode warning en_GB translation 2017-09-20 19:52:53 +01:00
FrancescoUK
fe79af8efd Revert "Added translation using Weblate (Azerbaijani)"
This reverts commit dc5ebd2e85.
2017-09-20 19:50:05 +01:00
objecttothis
1802a16c02 Removing link 2017-09-20 19:38:42 +02:00
objecttothis
86470a68f5 Add warning tooltip for duplicate barcodes 2017-09-20 19:38:42 +02:00
objecttothis
dd538e07cb Add warning about duplicate barcodes 2017-09-20 19:38:42 +02:00
FrancescoUK
0f09ae6657 Merge pull request #1618 from objecttothis/patch-4
Remove unneeded app_config entry (#1614)
2017-09-19 18:35:47 +01:00
objecttothis
b2d21dd8a5 Remove unneeded app_config entry
this entry is automatically created on first save, so is not needed to manually be entered.
2017-09-19 16:53:15 +04:00
FrancescoUK
89a1224ec3 Merge pull request #1617 from objecttothis/patch-3
Correcting Round-up and Round-down bug (#1590)
2017-09-19 13:44:14 +01:00
objecttothis
79d5bc9156 Correcting Round-up and Round-down bug
Former code ignored precision and just rounded up or down to the nearest integer.  This code rounds up or down to the precision in cash decimals.
2017-09-19 16:28:40 +04:00
Chiraq Bookstore
a98bf2d69c Translated using Weblate (Russian)
Currently translated at 93.7% (15 of 16 strings)
2017-09-18 18:53:19 +00:00
Chiraq Bookstore
852aa48463 Translated using Weblate (Russian)
Currently translated at 81.1% (82 of 101 strings)
2017-09-18 18:53:18 +00:00
Chiraq Bookstore
398edf40a1 Translated using Weblate (Russian)
Currently translated at 60.2% (144 of 239 strings)
2017-09-18 18:53:16 +00:00
FrancescoUK
dc5ebd2e85 Added translation using Weblate (Azerbaijani) 2017-09-17 16:41:46 +00:00
FrancescoUK
5c375636a2 Fix 3.1.1 to 3.2.0 SQL upgrade script error 2017-09-17 16:10:40 +01:00
FrancescoUK
39dbd9af52 Small code refactoring 2017-09-17 15:17:48 +01:00
FrancescoUK
5514676dee Merge pull request #1606 from RuleDomain/suspend-anytype
Suspending Work Order lost work order number
2017-09-17 15:17:08 +01:00
Steve Ireland
d63446cdb8 Suspending Work Order lost work order number 2017-09-17 09:24:52 -04:00
FrancescoUK
7789675a55 Merge branch 'RuleDomain-fix-item-kit-cost' (#1580 #1595)
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-09-16 20:46:12 +01:00
Steve Ireland
729283af37 Add support for item kit costing 2017-09-16 11:39:03 -04:00
FrancescoUK
01f4ea3890 Merge pull request #1597 from objecttothis/patch-2
Azerbaijani and Russian Translation
2017-09-15 12:08:42 +01:00
objecttothis
92575844e3 Submit Translation 2017-09-15 13:15:52 +04:00
objecttothis
883d42d529 Submit Translation 2017-09-15 13:15:15 +04:00
objecttothis
efc9b36fdd Submit Translation 2017-09-15 13:10:22 +04:00
objecttothis
775721a059 Submit Translation 2017-09-15 13:09:50 +04:00
objecttothis
15d0e0b1f9 Submit Translation 2017-09-15 13:09:10 +04:00
objecttothis
8b6e83e05c Submit Translation 2017-09-15 13:08:33 +04:00
objecttothis
25e5751d8d Submit Translation 2017-09-15 13:07:58 +04:00
objecttothis
09179be68b Submit Translation 2017-09-15 13:07:27 +04:00
objecttothis
2a3c4bf655 Submit Translation 2017-09-15 13:06:43 +04:00
objecttothis
76e37dedfe Submit Translation 2017-09-15 13:06:12 +04:00
objecttothis
616f65306a Submit Translation 2017-09-15 13:05:31 +04:00
objecttothis
e8f5102f99 Submit Translation 2017-09-15 13:04:53 +04:00
objecttothis
1b93713028 Submit Translation 2017-09-15 13:04:20 +04:00
objecttothis
e772f8d150 Submit Translation 2017-09-15 13:03:50 +04:00
objecttothis
9020a67338 Corrected misspelling 2017-09-15 13:01:58 +04:00
FrancescoUK
6144902cc1 Fix PHP 5.6 incompatibility (#1580) 2017-09-15 09:36:25 +01:00
FrancescoUK
ad913c79fc Merge pull request #1591 from RuleDomain/fix-sale-return
Change invalid SALE_SALE reference to SALE_RETURN.
2017-09-14 07:05:26 +01:00
Steve Ireland
62c5f2ad16 Change invalid SALE_SALE reference to SALE_RETURN. 2017-09-13 20:53:39 -04:00
FrancescoUK
ac32a06689 Merge pull request #1588 from objecttothis/patch-1
Forgot to commit this one
2017-09-13 21:05:11 +01:00
objecttothis
be15e98182 Forgot to commit this one
oops
2017-09-13 18:55:36 +04:00
FrancescoUK
bd18549613 Merge Allow Duplicate Barcodes 2017-09-13 09:16:57 +01:00
objecttothis
18e6a3f78b Support for custom search suggestion format 2017-09-13 09:12:41 +01:00
objecttothis
35b17b120b Modify database creation to allow duplicate barcodes 2017-09-13 09:12:41 +01:00
objecttothis
dbaf7e8481 Modify items to allow duplicate barcodes 2017-09-13 09:12:41 +01:00
objecttothis
372c3ab6bf Disables unique check and fixes return
- If allow duplicate barcodes is enabled then this function automatically returns FALSE allowing item imports and new items to no longer balk.
- Modified the code to return TRUE not only when there is 1 row but when there are one or more rows.  This will fix problems with users that allow duplicate barcodes and who upgraded from older versions before unique barcode was required.
2017-09-13 09:11:32 +01:00
objecttothis
27e9f3ff1a move save to save_barcode 2017-09-13 09:11:32 +01:00
objecttothis
783b7f0205 checkbox to allow duplicate barcodes 2017-09-13 09:11:32 +01:00
objecttothis
02159d5045 move to barcode_config 2017-09-13 09:11:32 +01:00
objecttothis
6b00091332 correct default value 2017-09-13 09:11:32 +01:00
objecttothis
59297f6954 correct default value 2017-09-13 09:10:52 +01:00
objecttothis
8d7e8d6b9b Save value of allow_duplicate_barcodes 2017-09-13 09:10:22 +01:00
objecttothis
c11973f78b misspelling 2017-09-13 09:10:22 +01:00
objecttothis
6f1da83723 misspelling 2017-09-13 09:09:31 +01:00
objecttothis
d1af54ff21 Checkbox to enable/disable allow duplicate barcode 2017-09-13 09:08:43 +01:00
objecttothis
2c8fe60035 Add language line for duplicate barcodes 2017-09-13 09:08:43 +01:00
objecttothis
8e6b8f4da0 Add allow_duplicate_barcode to master table 2017-09-13 09:08:43 +01:00
objecttothis
e687e505f8 Database entry to allow duplicate barcodes 2017-09-13 09:07:59 +01:00
FrancescoUK
ce6e9d6ba4 Merge Search suggestions formatting 2017-09-13 09:02:14 +01:00
objecttothis
67cace93c7 allow custom format in receivings as well 2017-09-13 08:55:54 +01:00
objecttothis
6e82602a47 Allow custom suggestions format
This changes the display of the search suggestions to match the format set by the user in app_config.  It does not change the logic of how the search suggestions are gathered.
2017-09-13 08:55:54 +01:00
objecttothis
178ba9f702 Add option to select custom columns for search suggestions 2017-09-13 08:55:54 +01:00
objecttothis
cac02eaf96 Add language strings 2017-09-13 08:55:54 +01:00
objecttothis
aa346cbb3f Add support for custom search suggestion format 2017-09-13 08:55:54 +01:00
objecttothis
07dd8158e5 Support for custom search suggestion format 2017-09-13 08:55:54 +01:00
FrancescoUK
f01537247b Merge pull request #1582 from RuleDomain/sales-update-fix
Restore code that was mistakenly "cleaned up"
2017-09-12 07:04:20 +01:00
Steve Ireland
8408901e5a Restore code that was mistakenly "cleaned up" 2017-09-11 19:50:13 -04:00
FrancescoUK
4c7abd7728 Update links to replace jekkos with opensourcepos 2017-09-11 22:30:15 +01:00
FrancescoUK
1fd6f5fb70 Individual languages 2017-09-11 21:02:41 +01:00
FrancescoUK
3a8b28fcb6 Fix en-GB translation Canceled -> Cancelled (#1539) 2017-09-10 18:05:44 +01:00
FrancescoUK
3de96b03a0 Fix missing cancel option (#1549) 2017-09-10 18:01:20 +01:00
Steve Ireland
3e91eb33de Final touch on Work Orders 2017-09-10 12:43:00 -04:00
FrancescoUK
4dc05063b8 Merge pull request #1574 from RuleDomain/backoffice-2
Backoffice Permissions Fix (#1543)
2017-09-10 16:56:13 +01:00
Steve Ireland
4f93bc7430 Final touch on Work Orders 2017-09-10 11:12:34 -04:00
FrancescoUK
8816c37236 Merge branch 'RuleDomain-work-order-6'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-09-10 09:08:17 +01:00
FrancescoUK
b93d6a851d Add en_GB translations 2017-09-10 08:45:09 +01:00
Steve Ireland
e85e2e5e55 Final touch on Work Orders 2017-09-09 17:39:23 -04:00
FrancescoUK
c01663f901 Fix stylesheet for Office view (#1543) 2017-09-09 16:21:31 +01:00
FrancescoUK
700e695b4b Consistency in database upgrade script 2017-09-09 15:59:38 +01:00
FrancescoUK
07541bf933 Do not show migration module if no migration is required (#1440) 2017-09-09 15:26:17 +01:00
FrancescoUK
ec76d85350 Merge pull request #1567 from objecttothis/patch-2
Adding Azerbaijani language
2017-09-09 10:34:31 +01:00
FrancescoUK
717bda9f31 Merge branch 'feature/backoffice' (#1543 #1539) 2017-09-09 10:30:12 +01:00
FrancescoUK
4de3cbeab6 More support for Work Orders (#1539) 2017-09-08 22:18:12 +01:00
FrancescoUK
da1d435114 Add CSRF issue with suhosin to FAQ with link to #1492 2017-09-08 22:05:34 +01:00
FrancescoUK
4036caf829 Add en_GB translations to backoffice feature (#1543 #1539) 2017-09-08 22:04:45 +01:00
Steve Ireland
36d549cb9b Add support for Work Orders 2017-09-08 22:04:45 +01:00
Steve Ireland
af84a617de Fix database and table script. 2017-09-08 22:04:45 +01:00
FrancescoUK
e42e01a07f Bump version to 3.2.0 2017-09-08 22:04:45 +01:00
Steve Ireland
de91510beb Add Office Menu 2017-09-08 22:04:45 +01:00
objecttothis
7a3aab92b9 Adding Azerbaijani language for 3.2.0 2017-09-08 22:26:07 +04:00
Steve Ireland
771c1b9d1e Enance reporting to accomodate work orders and canceled transactions. 2017-09-08 08:54:25 -04:00
FrancescoUK
cfa051cee8 Add en_GB translations to backoffice feature (#1543 #1539) 2017-09-07 21:40:18 +01:00
Steve Ireland
981aceda53 Add support for Work Orders 2017-09-07 21:37:50 +01:00
Steve Ireland
23b4dacb9a Fix database and table script. 2017-09-07 21:35:42 +01:00
FrancescoUK
d5c390706b Bump version to 3.2.0 2017-09-07 21:35:42 +01:00
Steve Ireland
893aad3502 Add Office Menu 2017-09-07 21:35:42 +01:00
632 changed files with 22324 additions and 8365 deletions

View File

@@ -1,47 +1,29 @@
### IMPORTANT IMPORTANT IMPORTANT
### Background information
1. Chose what you want to report between the sections "New Feature / Enhancement" and "Issue / Question / Bug".
2. Remove just the one of the two sections you don't need
3. Remove this section as it's just a guideline
4. Fill in all the details as requested by the section you chose
__IMPORTANT: If you choose to ignore this issue report template, your issue will be closed as we cannot help without the requested information.__
If you remove the complete template when submitting a Bug your issue will be closed as we cannot help without basic information.
Please make sure you tick (add an x between the square brackets with no spaces) the following check boxes:
### New Feature / Enhancement
*For New Features or Enhancements please clearly write your proposal.
It's important to state whether you expect the community to implement it or you will contribute the work.
Please bear in mind that we will implement new features only on the current code, there is no support for older versions.*
### Issue / Question / Bug
Before submitting an issue please make sure you tick (add an x between the square brackets with no spaces) the following check boxes:
- [] I'm reporting an issue of an unmodified OSPOS installation
- [] I checked open and closed issues database and no similar issue was already discussed (please make sure you searched!)
- [] I read the README, WHATS_NEW and UPGRADE
- [] I read the FAQ (https://github.com/jekkos/opensourcepos#faq) for any known install and/or upgrade gotchas (in specific PHP has php-gd, php-intl, sockets and etc. installed)
- [] I read the wiki
- [] I ran any database upgrade scripts (e.g. database/2.4_to_3.0.sql), and migrating function
- [] I'm aware the latest master could be a development version and therefore not stable
- [] I know the version of OSPOS and git commit hash (check the footer of your OSPOS), the name and version of OS, Web server, PHP and MySQL and will add them to my issue report
- [] Reporting an issue of an unmodified OSPOS installation
- [] Checked [open and closed issues](https://github.com/opensourcepos/opensourcepos/issues?utf8=%E2%9C%93&q=is%3Aissue) and no similar issue was already reported (please make sure you searched!)
- [] Read [README](https://github.com/opensourcepos/opensourcepos/blob/master/README.md), [WHATS_NEW](https://github.com/opensourcepos/opensourcepos/blob/master/WHATS_NEW.txt), [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) and [UPGRADE](https://github.com/opensourcepos/opensourcepos/blob/master/UPGRADE.txt)
- [] 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
### Installation information
- OSPOS version is:
- OSPOS version is:
- OSPOS git commit hash is:
- PHP version is: (e.g. 5.5, 5.6, 7.0, 7.1)
- MySQL or MariaDB version is: (e.g. MySQL 5.5, MySQL 5.6, MySQL 5.7, MariaDB 10.0, MariaDB 10.1, MariaDB 10.2)
- OS and version is: (e.g. CentOS 6.9, Ubuntu 16.4, Windows 10)
- WebServer is: (e.g. Apache 2.2, Apache 2.4, Nginx 1.12, Nginx 1.13)
- (If applicable) Installation package for the LAMP/LEMP stack is: (e.g. WAMP, XAMPP)
- PHP version is:
- MySQL or MariaDB version is:
- OS and version is:
- WebServer is:
- Selected language is:
- (If applicable) Docker installation:
- (If applicable) Installation package for the LAMP/LEMP stack is:
### Expected behaviour
### Issue / Bug / Question / New Feature
### Actual behaviour
### Steps to reproduce the issue
Please write your issue here. If a bug, please make sure to provide as much information as possible including configuration settings (e.g. Decimals set, Tax mode), language and steps to reproduce the bug.

2
.gitignore vendored
View File

@@ -1,5 +1,7 @@
node_modules
tmp
database/database.sql
database/migrate_phppos_dist.sql
application/config/email.php
application/sessions/*
application/logs/*

View File

@@ -1,32 +1,39 @@
sudo: true
sudo: required
dist: trusty
group: deprecated-2017Q4
branches:
except:
- weblate
except:
- weblate
services:
- docker
- docker
before_install:
- curl -L https://github.com/docker/compose/releases/download/1.7.1/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
- curl -L https://github.com/docker/compose/releases/download/1.7.1/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:
- docker run --rm -v $(pwd):/app composer/composer install
- git clone https://github.com/bcit-ci/codeigniter3-translations dist/ci-translations && sudo cp -r dist/ci-translations/language/* vendor/codeigniter/framework/system/language
- docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt sh -c "npm install && bower install && grunt package"
- docker-compose build
- docker run --rm -v $(pwd):/app composer/composer install
- docker run --rm -v $(pwd):/app -w /app lucor/php7-cli php bin/install.php translations
develop
- docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt
sh -c "npm install && bower install && grunt package"
- docker-compose build
env:
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
after_success:
'[ -n ${DOCKER_USERNAME} ] && docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
&& docker tag opensourcepos_php "jekkos/opensourcepos:$TAG" && docker tag opensourcepos_sqlscript
jekkos/opensourcepos:sqlscript && docker push "jekkos/opensourcepos:$TAG" && docker
push jekkos/opensourcepos:sqlscript'
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
after_success: '[ -n ${DOCKER_USERNAME} ] && docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
&& docker tag opensourcepos_php "jekkos/opensourcepos:$TAG" && docker tag opensourcepos_sqlscript
jekkos/opensourcepos:sqlscript && docker push "jekkos/opensourcepos:$TAG" && docker
push jekkos/opensourcepos:sqlscript'
deploy:
provider: bintray
file: deployment.json
user: jekkos
on:
all_branches: true
key:
secure: NGzLiwBZ4A6zO9AqUsVeht29A7UZejO/LKEJntQMdzYaBXD6Ao3zXpS3bPN3UwU/YTNdcm3I7DemAL2ypAkCxcdzfp842eeTlFMDuzUiD5MxrQyWeZnbFxyeN4bJgXOnH/93eXxoIg0qT7ORVzwHrrA6vOqfxB1Nq/DAV2MpK/0=
edge:
source: travis-ci/dpl
branch: master
file: deployment.json
provider: bintray
skip_cleanup: true
key: ${BINTRAY_API_KEY}
user: jekkos
on:
all_branches: true

View File

@@ -1,13 +1,12 @@
FROM php:7.0.15-apache
FROM php:7.0.29-apache
MAINTAINER jekkos
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
php5-apcu \
libicu-dev \
libgd-dev \
libmcrypt-dev
openssl
RUN a2enmod rewrite
RUN docker-php-ext-install mysqli bcmath intl gd sockets mbstring mcrypt
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

View File

@@ -11,7 +11,7 @@ module.exports = function(grunt) {
bower_concat: {
all: {
mainFiles: {
'bootstrap-table': [ "src/bootstrap-table.js", "src/bootstrap-table.css", "dist/extensions/export/bootstrap-table-export.js", "dist/extensions/mobile/bootstrap-table-mobile.js"]
'bootstrap-table': [ "src/bootstrap-table.js", "src/bootstrap-table.css", "dist/extensions/export/bootstrap-table-export.js", "dist/extensions/mobile/bootstrap-table-mobile.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.css"]
},
dest: {
'js': 'tmp/opensourcepos_bower.js',

87
INSTALL.md Normal file
View File

@@ -0,0 +1,87 @@
Server Requirements
-------------------
* PHP version 5.6 to 7.2 is recommended. Please note that PHP needs to have `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 is supported and apparently offering better performance.
* 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)
* 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) and also existing closed issues as this topic has been covered well in all the variants and issues.
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 on ospos can be deployed using Docker on Linux, Mac or Windows. 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, but will require more overhead on windows. Please refer to the docker documentation for instructions on how to set it up on your platform.
* To build and run the image, download the latest build from bintray and issue following commands in a terminal with docker installed
```
docker-compose build
docker-compose up
```
* If you want to run from the latest git source, then use docker and composer to run the build
```
docker run --rm -v $(pwd):/app composer/composer install
docker run --rm -v $(pwd):/app -w /app lucor/php7-cli php bin/install.php translations develop
docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt sh -c "npm install && bower install"
docker-compose build
docker-compose up
```
Cloud install
-------------
A quick option would be to install directly to [Digitalocean](https://m.do.co/c/ac38c262507b) using their preconfigured LAMP stack.
Create a DO account first, add a droplet with preconfigured LAMP and follow the instructions for Local Install below. You will be running a provisioned VPS within minutes.
Cloud install using Docker
--------------------------
This installation is NOT Recommended anymore and will soon be replaced by a one click DO installation procedure.
Existing setups will keep working until the 21th of May but will need to be migrated in time in order to ensure user's safety.
If you want to run a quick demo of ospos or run it permanently in the cloud, then we
suggest using Docker cloud together with the DigitalOcean hosting platform. This way all the
configuration is done automatically and the install will just work.
If you choose *DigitalOcean* [through this link](https://m.do.co/c/ac38c262507b), you will get a *$10 credit* for a first
month of uptime on the platform. A full setup will only take about 2 minutes by following steps below.
1. Create a [Digitalocean account](https://m.do.co/c/ac38c262507b)
2. Create a [docker cloud account](https://cloud.docker.com)
3. Login to docker cloud
4. Associate your docker cloud account with your previously created digital ocean account under settings
5. Create a new node on DigitalOcean through the `Infrastructure > Nodes` tab. Fill in a name (ospos) and choose a region near to you. We recommend to choose a node with minimum 1G RAM for the whole stack
6. Click [![Deploy to Docker Cloud](https://files.cloud.docker.com/images/deploy-to-dockercloud.svg)](https://cloud.docker.com/stack/deploy/?repo=https://github.com/opensourcepos/opensourcepos)
7. Othewise create a new stack under `Applications > Stacks` and paste the [contents of docker-cloud.yml](https://github.com/opensourcepos/opensourcepos/blob/master/docker-cloud.yml) from the source repository in the text field and hit `Create and deploy`
8. Find your website url under `Infrastructure > Nodes > <yournode> > Endpoints > web`
9. Login with default username/password admin/pointofsale
10. DNS name for this server can be easily configured in the DigitalOcean control panel
More info [on maintaining a docker](https://github.com/opensourcepos/opensourcepos/wiki/Docker-cloud-maintenance) install can be found on the wiki

View File

@@ -5,18 +5,19 @@ Copyright (c) 2012 Alain
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2013-2017 jekkos
Copyright (c) 2015-2017 FrancescoUK (aka daN4cat)
Copyright (c) 2013-2018 jekkos
Copyright (c) 2015-2018 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 Steve Ireland
Copyright (c) 2017-2018 Steve Ireland
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 odiea
Copyright (c) 2017 asadjaved63
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

134
README.md
View File

@@ -1,6 +1,6 @@
[![Build Status](https://travis-ci.org/jekkos/opensourcepos.svg?branch=master)](https://travis-ci.org/jekkos/opensourcepos)
[![Build Status](https://travis-ci.org/opensourcepos/opensourcepos.svg?branch=master)](https://travis-ci.org/opensourcepos/opensourcepos)
[![Join the chat at https://gitter.im/jekkos/opensourcepos](https://badges.gitter.im/jekkos/opensourcepos.svg)](https://gitter.im/jekkos/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![devDependency Status](https://david-dm.org/jekkos/opensourcepos/dev-status.svg)](https://david-dm.org/jekkos/opensourcepos#info=devDependencie)
[![devDependency Status](https://david-dm.org/jekkos/opensourcepos/dev-status.svg)](https://david-dm.org/jekkos/opensourcepos#info=dev)
[![Dependency Status](https://gemnasium.com/badges/github.com/jekkos/opensourcepos.svg)](https://gemnasium.com/github.com/jekkos/opensourcepos)
[![GitHub version](https://badge.fury.io/gh/jekkos%2Fopensourcepos.svg)](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
[![Translation status](http://weblate.jpeelaer.net/widgets/ospos/-/svg-badge.svg)](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
@@ -15,10 +15,12 @@ The main features are:
* VAT, customer and multi tiers taxation
* Sale register with transactions logging
* Quotation and invoicing
* Expenses logging
* 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
@@ -28,7 +30,7 @@ The main features are:
* Selectable Boostrap (Bootswatch) based UI theme
* Mailchimp integration
* reCAPTCHA to protect login page from brute force attacks
* Reporting on sales, orders, inventory status
* GDPR ready
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.
@@ -38,6 +40,25 @@ It also has improved functionality and security.
Deployed to a Cloud it's a SaaS (Software as a Service) solution.
DEMO
----
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.
LOGIN using
* username: admin
* password: pointofsale
Installation
------------
Please **refrain from creating issues** about installation issues **before reading 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 setup in many different ways** and we only **support the ones described in the INSTALL file linked below**.
Read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) in our repository.
License
-------
@@ -53,7 +74,7 @@ Also worth noting:
_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__.
For more details please read the file [LICENSE](https://github.com/opensourcepos/opensourcepos/blob/master/LICENSE).
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:
@@ -64,96 +85,23 @@ Therefore any actions like:
In short you are free to use the software but you cannot claim any property on it.
Any person or company found breaching the license agreement will be chased up.
Any person or company found breaching the license agreement will have a bunch of monkeys at the door ready to destroy their servers.
Keep the Machine Running
------------------------
If you like the project, and you are making money out of it on a daily basis, then consider buying me a coffee so I can keep adding features.
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)
Server Requirements
-------------------
PHP version 5.6 or newer is recommended (PHP 7.x is supported). Please note that PHP needs to have `php-gd`, `php-bcmath`, `php-intl`, `php-sockets`, `php-mcrypt` and `php-curl` installed and enabled.
MySQL 5.5, 5.6 and 5.7 are supported, also MariaDB replacement is supported and apparently offering better performance.
Apache 2.2 and 2.4 are supported. Also Nginx has been proven to work fine, see [wiki page here](https://github.com/jekkos/opensourcepos/wiki/Local-Deployment-using-LEMP)
Raspberry PI based installations proved to work, see [wiki page here](https://github.com/jekkos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS))
For Windows based installations please read [the wiki](https://github.com/jekkos/opensourcepos/wiki) and also existing closed issues as this topic has been covered well in all the variants and issues.
Local install
-------------
1. Dowload the latest [stable release](https://github.com/jekkos/opensourcepos/releases) from github or [unstable build](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=asc#files) from bintray
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 on ospos can be deployed using Docker on Linux, Mac or Windows. 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, but will require more overhead on windows. Please refer to the docker documentation for instructions on how to set it up on your platform.
To build and run the image, issue following commands in a terminal with docker installed
docker-compose build
docker-compose up
Cloud install
-------------
A quick option would be to install directly to [Digitalocean](https://m.do.co/c/ac38c262507b) using their preconfigured LAMP stack.
Create a DO account first, add a droplet with preconfigured LAMP and follow the instructions for Local Install below. You will be running a provisioned VPS within minutes.
Cloud install using Docker
--------------------------
If you want to run a quick demo of ospos or run it permanently in the cloud, then we
suggest using Docker cloud together with the DigitalOcean hosting platform. This way all the
configuration is done automatically and the install will just work.
If you choose *DigitalOcean* [through this link](https://m.do.co/c/ac38c262507b), you will get a *$10 credit* for a first
month of uptime on the platform. A full setup will only take about 2 minutes by following steps below.
1. Create a [Digitalocean account](https://m.do.co/c/ac38c262507b)
2. Create a [docker cloud account](https://cloud.docker.com)
3. Login to docker cloud
4. Associate your docker cloud account with your previously created digital ocean account under settings
5. Create a new node on DigitalOcean through the `Infrastructure > Nodes` tab. Fill in a name (ospos) and choose a region near to you. We recommend to choose a node with minimum 1G RAM for the whole stack
6. Click [![Deploy to Docker Cloud](https://files.cloud.docker.com/images/deploy-to-dockercloud.svg)](https://cloud.docker.com/stack/deploy/?repo=https://github.com/jekkos/opensourcepos)
7. Othewise create a new stack under `Applications > Stacks` and paste the [contents of docker-cloud.yml](https://github.com/jekkos/opensourcepos/blob/master/docker-cloud.yml) from the source repository in the text field and hit `Create and deploy`
8. Find your website url under `Infrastructure > Nodes > <yournode> > Endpoints > web`
9. Login with default username/password admin/pointofsale
10. DNS name for this server can be easily configured in the DigitalOcean control panel
More info [on maintaining a docker](https://github.com/jekkos/opensourcepos/wiki/Docker-cloud-maintenance) install can be found on the wiki
Language Translations
---------------------
To help us with OSPOS translations please use [Weblate website here](http://weblate.jpeelaer.net) and sign up. After registering you can subscribe to different languages and you will be notified once a new translation is added.
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/jekkos/opensourcepos/wiki/Adding-translations) to find our Translations Guideline.
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.
@@ -167,10 +115,10 @@ Please DO NOT post issues if you have not done those step.
Bug reports must follow this schema:
1. Ospos **version string with git commit hash** (see ospos footer)
2. OS name and version running your Web Server (e.g. Linux Ubuntu 16.04)
3. Web Server name and version (e.g. Apache 2.4)
4. Database name and version (e.g. MySQL 5.6)
5. PHP version (e.g. PHP 5.6)
2. OS name and version running your Web Server (e.g. CentOS 6.9, Ubuntu 16.4, Windows 10)
3. Web Server name and version (e.g. Apache 2.2, Apache 2.4, Nginx 1.12, Nginx 1.13)
4. Database name and version (e.g. MySQL 5.5, MySQL 5.6, MySQL 5.7, MariaDB 10.0, MariaDB 10.1, MariaDB 10.2)
5. PHP version (e.g. 5.5, 5.6, 7.0, 7.1)
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)
@@ -183,18 +131,16 @@ If missing information is not provided within a week we will close your issue.
FAQ
---
* If a blank page (HTTP status 500) shows after search completion or receipt generation, then double check `php5-gd` presence in your php installation. On windows check in php.ini whether the lib is installed. On Ubuntu issue `sudo apt-get install php5-gd`. Also have a look at the Dockerfile for a complete list of recommended packages.
* 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 sales and receiving views don't show properly, please make sure BCMath lib (`php-bcmath`) is installed. On windows check php.ini and make sure php_bcmath extension is not commented out
* 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).
* If the following error is seen in sales module `Message: Class 'NumberFormatter' not found` then you don't have `php5-intl` extension installed. Please check the [wiki](https://github.com/jekkos/opensourcepos/wiki/Localisation-support#php5-intl-extension-installation) to resolve this issue on your platform. If you use WAMP, please read [issue #949](https://github.com/jekkos/opensourcepos/issues/949)
* 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.
* If you read errors containing messages with Socket word in it, please make sure you have installed PHP Sockets support (e.g. go to PHP.ini and make sure all the needed modules are not commented out. This means `php5-gd`, `php-intl` and `php-sockets`. Restart the web server)
* 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 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/jekkos/opensourcepos/issues/920) for more help
* 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 755.
* 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 755
* 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 problems with the encryption support or you get an error please make sure `php5-mcrypt` is installed
* If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/jekkos/opensourcepos/issues/1492)
* 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).

View File

@@ -4,13 +4,13 @@ How to Upgrade
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. Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from)
5. Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from and only applicable if upgrading from pre 3.0.0)
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 updated and config files are sorted you are good to start the new OSPOS
10. Once logged in in OSPOS go to Migrate (see Migrate button after Store Config) and run the Migrate script
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 FAQ and/or GitHub issues as somebody else might have had your problem already or post a question
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,3 +1,43 @@
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

View File

@@ -89,7 +89,7 @@ $autoload['drivers'] = array();
|
| $autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array('form', 'url', 'table', 'text', 'locale', 'html', 'download', 'directory');
$autoload['helper'] = array('form', 'url', 'tabular', 'text', 'locale', 'html', 'download', 'directory', 'migration');
/*
| -------------------------------------------------------------------
@@ -132,4 +132,4 @@ $autoload['language'] = array();
|
| $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array('Appconfig', 'Person', 'Customer', 'Employee', 'Module', 'Item', 'Item_taxes', 'Sale', 'Supplier', 'Inventory', 'Receiving', 'Giftcard', 'Item_kit', 'Item_kit_items', 'Stock_location', 'Item_quantity', 'Dinner_table', 'Customer_rewards', 'Rewards', 'Tax');
$autoload['model'] = array('Appconfig', 'Person', 'Customer', 'Employee', 'Module', 'Item', 'Item_taxes', 'Sale', 'Supplier', 'Inventory', 'Receiving', 'Giftcard', 'Item_kit', 'Item_kit_items', 'Stock_location', 'Item_quantity', 'Dinner_table', 'Customer_rewards', 'Rewards', 'Tax', 'Expense_category', 'Expense' );

View File

@@ -8,7 +8,7 @@
|
|
*/
$config['application_version'] = '3.1.1';
$config['application_version'] = '3.2.3';
/*
|--------------------------------------------------------------------------
@@ -65,7 +65,7 @@ $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') ? 'https' : 'http';
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || isset($_ENV['FORCE_HTTPS'])) ? 'https' : 'http';
$config['base_url'] .= '://' . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
@@ -487,7 +487,7 @@ $config['csrf_token_name'] = 'csrf_ospos_v3';
$config['csrf_cookie_name'] = 'csrf_cookie_ospos_v3';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
$config['csrf_exclude_uris'] = array('login');
/*
|--------------------------------------------------------------------------

View File

@@ -18,13 +18,6 @@ $hook['post_controller_constructor'][] = array(
'filepath' => 'hooks'
);
$hook['post_controller_constructor'][] = array(
'class' => '',
'function' => 'load_stats',
'filename' => 'load_stats.php',
'filepath' => 'hooks'
);
// 'post_controller' indicated execution of hooks after controller is finished
$hook['post_controller'] = array(
'class' => '',
@@ -41,4 +34,4 @@ $hook['pre_system'] = function() {
} catch(Exception $e) {
// continue, .env file not present
}
};
};

View File

@@ -69,7 +69,7 @@ $config['migration_auto_latest'] = FALSE;
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 20170502221500;
$config['migration_version'] = 20171126100000;
/*
|--------------------------------------------------------------------------

View File

@@ -53,13 +53,19 @@ defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'login';
$route['no_access/([^/]+)'] = 'no_access/index/$1';
$route['no_access/([^/]+)/([^/]+)'] = 'no_access/index/$1/$2';
$route['sales/index/([^/]+)'] = 'sales/manage/$1';
$route['sales/index/([^/]+)/([^/]+)'] = 'sales/manage/$1/$2';
$route['sales/index/([^/]+)/([^/]+)/([^/]+)'] = 'sales/manage/$1/$2/$3';
$route['reports/(summary_:any)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3/$4';
$route['reports/summary_expenses_categories'] = 'reports/date_input_only';
$route['reports/summary_:any'] = 'reports/date_input';
$route['reports/(graphical_:any)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3/$4';
$route['reports/graphical_summary_expenses_categories'] = 'reports/date_input_only';
$route['reports/graphical_:any'] = 'reports/date_input';
$route['reports/(inventory_:any)/([^/]+)'] = 'reports/$1/$2';
$route['reports/inventory_summary'] = 'reports/inventory_summary_input';
$route['reports/(inventory_summary)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2';
@@ -68,10 +74,11 @@ $route['reports/(detailed_sales)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3$/
$route['reports/detailed_sales'] = 'reports/date_input_sales';
$route['reports/(detailed_receivings)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3/$4';
$route['reports/detailed_receivings'] = 'reports/date_input_recv';
$route['reports/(specific_:any)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3/$4';
$route['reports/specific_customer'] = 'reports/specific_customer_input';
$route['reports/specific_employee'] = 'reports/specific_employee_input';
$route['reports/specific_discount'] = 'reports/specific_discount_input';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['translate_uri_dashes'] = FALSE;

View File

@@ -206,6 +206,7 @@ class Config extends Secure_Controller
$data['register_mode_options'] = $this->sale_lib->get_register_mode_options();
$data['rounding_options'] = Rounding_mode::get_rounding_options();
$data['tax_codes'] = $this->get_tax_code_options();
$data['show_office_group'] = $this->Module->get_show_office_group();
$data = $this->xss_clean($data);
@@ -232,7 +233,6 @@ class Config extends Secure_Controller
$this->load->view("configs/manage", $data);
}
public function get_tax_code_options()
{
$tax_codes = $this->Tax->get_all_tax_codes()->result_array();
@@ -246,7 +246,6 @@ class Config extends Secure_Controller
return $tax_code_options;
}
public function save_info()
{
$upload_success = $this->_handle_logo_upload();
@@ -287,6 +286,7 @@ class Config extends Secure_Controller
$batch_save_data = array(
'theme' => $this->input->post('theme'),
'default_sales_discount' => $this->input->post('default_sales_discount'),
'enforce_privacy' => $this->input->post('enforce_privacy'),
'receiving_calculate_average_price' => $this->input->post('receiving_calculate_average_price') != NULL,
'lines_per_page' => $this->input->post('lines_per_page'),
'notify_horizontal_position' => $this->input->post('notify_horizontal_position'),
@@ -294,8 +294,11 @@ class Config extends Secure_Controller
'gcaptcha_enable' => $this->input->post('gcaptcha_enable') != NULL,
'gcaptcha_secret_key' => $this->input->post('gcaptcha_secret_key'),
'gcaptcha_site_key' => $this->input->post('gcaptcha_site_key'),
'suggestions_first_column' => $this->input->post('suggestions_first_column'),
'suggestions_second_column' => $this->input->post('suggestions_second_column'),
'suggestions_third_column' => $this->input->post('suggestions_third_column'),
'giftcard_number' => $this->input->post('giftcard_number'),
'statistics' => $this->input->post('statistics') != NULL,
'derive_sale_quantity' => $this->input->post('derive_sale_quantity') != NULL,
'custom1_name' => $this->input->post('custom1_name'),
'custom2_name' => $this->input->post('custom2_name'),
'custom3_name' => $this->input->post('custom3_name'),
@@ -308,6 +311,8 @@ class Config extends Secure_Controller
'custom10_name' => $this->input->post('custom10_name')
);
$this->Module->set_show_office_group($this->input->post('show_office_group') != NULL);
$result = $this->Appconfig->batch_save($batch_save_data);
$success = $result ? TRUE : FALSE;
@@ -317,7 +322,7 @@ class Config extends Secure_Controller
));
}
public function check_number_locale()
public function ajax_check_number_locale()
{
$number_locale = $this->input->post('number_locale');
$fmt = new \NumberFormatter($number_locale, \NumberFormatter::CURRENCY);
@@ -544,11 +549,13 @@ class Config extends Secure_Controller
if(strstr($key, 'stock_location'))
{
$location_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
$not_to_delete[] = $location_id;
// save or update
$location_data = array('location_name' => $value);
if($this->Stock_location->save($location_data, $location_id))
{
$location_id = $this->Stock_location->get_location_id($value);
$not_to_delete[] = $location_id;
$this->_clear_session_state();
}
}
@@ -696,11 +703,11 @@ class Config extends Secure_Controller
$success &= $this->db->trans_status();
$message = "";
$message = '';
if($success && $delete_rejected)
{
$message = $this->lang->line('config_tax_category_used');
$success = false;
$success = FALSE;
}
else
{
@@ -776,7 +783,6 @@ class Config extends Secure_Controller
{
$batch_save_data = array(
'barcode_type' => $this->input->post('barcode_type'),
'barcode_quality' => $this->input->post('barcode_quality'),
'barcode_width' => $this->input->post('barcode_width'),
'barcode_height' => $this->input->post('barcode_height'),
'barcode_font' => $this->input->post('barcode_font'),
@@ -788,6 +794,7 @@ class Config extends Secure_Controller
'barcode_page_width' => $this->input->post('barcode_page_width'),
'barcode_page_cellspacing' => $this->input->post('barcode_page_cellspacing'),
'barcode_generate_if_empty' => $this->input->post('barcode_generate_if_empty') != NULL,
'allow_duplicate_barcodes' => $this->input->post('allow_duplicate_barcodes') != NULL,
'barcode_content' => $this->input->post('barcode_content'),
'barcode_formats' => json_encode($this->input->post('barcode_formats'))
);
@@ -806,6 +813,9 @@ class Config extends Secure_Controller
$batch_save_data = array (
'receipt_template' => $this->input->post('receipt_template'),
'receipt_font_size' => $this->input->post('receipt_font_size'),
'print_delay_autoreturn' => $this->input->post('print_delay_autoreturn'),
'email_receipt_check_behaviour' => $this->input->post('email_receipt_check_behaviour'),
'print_receipt_check_behaviour' => $this->input->post('print_receipt_check_behaviour'),
'receipt_show_company_name' => $this->input->post('receipt_show_company_name') != NULL,
'receipt_show_taxes' => $this->input->post('receipt_show_taxes') != NULL,
'receipt_show_total_discount' => $this->input->post('receipt_show_total_discount') != NULL,
@@ -841,7 +851,11 @@ class Config extends Secure_Controller
'invoice_email_message' => $this->input->post('invoice_email_message'),
'line_sequence' => $this->input->post('line_sequence'),
'last_used_invoice_number' =>$this->input->post('last_used_invoice_number'),
'last_used_quote_number' =>$this->input->post('last_used_quote_number')
'last_used_quote_number' =>$this->input->post('last_used_quote_number'),
'quote_default_comments' => $this->input->post('quote_default_comments'),
'work_order_enable' => $this->input->post('work_order_enable') != NULL,
'work_order_format' => $this->input->post('work_order_format'),
'last_used_work_order_number' =>$this->input->post('last_used_work_order_number')
);
$result = $this->Appconfig->batch_save($batch_save_data);
@@ -918,17 +932,16 @@ class Config extends Secure_Controller
// Chmod the file
@chmod($config_path, 0777);
// Write the new config.php file
$handle = fopen($config_path, 'w+');
// Verify file permissions
if(is_writable($config_path))
{
// Write the new config.php file
$handle = @fopen($config_path, 'w+');
// Write the file
$result = (fwrite($handle, $config) === FALSE) ? FALSE : TRUE;
}
fclose($handle);
fclose($handle);
}
// Chmod the file
@chmod($config_path, 0444);

View File

@@ -45,7 +45,7 @@ class Customers extends Persons
$stats->quantity = 0;
}
$data_row = $this->xss_clean(get_customer_data_row($person, $stats, $this));
$data_row = $this->xss_clean(get_customer_data_row($person, $stats));
echo json_encode($data_row);
}
@@ -81,11 +81,9 @@ class Customers extends Persons
$stats->quantity = 0;
}
$data_rows[] = get_customer_data_row($person, $stats, $this);
$data_rows[] = $this->xss_clean(get_customer_data_row($person, $stats));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
@@ -119,6 +117,16 @@ class Customers extends Persons
$info->$property = $this->xss_clean($value);
}
$data['person_info'] = $info;
if(empty($info->person_id) || empty($info->date) || empty($info->employee_id))
{
$data['person_info']->date = date('Y-m-d H:i:s');
$data['person_info']->employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
}
$employee_info = $this->Employee->get_info($info->employee_id);
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name;
$data['sales_tax_code_label'] = $info->sales_tax_code . ' ' . $this->Tax->get_info($info->sales_tax_code)->tax_code_name;
$packages = array('' => $this->lang->line('items_none'));
foreach($this->Customer_rewards->get_all()->result_array() as $row)
@@ -128,7 +136,7 @@ class Customers extends Persons
$data['packages'] = $packages;
$data['selected_package'] = $info->package_id;
if ($customer_sales_tax_support == '1')
if($customer_sales_tax_support == '1')
{
$data['customer_sales_tax_enabled'] = TRUE;
}
@@ -234,12 +242,17 @@ class Customers extends Persons
'comments' => $this->input->post('comments')
);
$date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $this->input->post('date'));
$customer_data = array(
'consent' => $this->input->post('consent') != NULL,
'account_number' => $this->input->post('account_number') == '' ? NULL : $this->input->post('account_number'),
'company_name' => $this->input->post('company_name') == '' ? NULL : $this->input->post('company_name'),
'discount_percent' => $this->input->post('discount_percent') == '' ? 0.00 : $this->input->post('discount_percent'),
'package_id' => $this->input->post('package_id') == '' ? NULL : $this->input->post('package_id'),
'taxable' => $this->input->post('taxable') != NULL
'taxable' => $this->input->post('taxable') != NULL,
'date' => $date_formatter->format('Y-m-d H:i:s'),
'employee_id' => $this->input->post('employee_id')
);
$tax_code = $this->input->post('sales_tax_code');
@@ -307,16 +320,23 @@ class Customers extends Persons
$customers_to_delete = $this->input->post('ids');
$customers_info = $this->Customer->get_multiple_info($customers_to_delete);
if($this->Customer->delete_list($customers_to_delete))
$count = 0;
foreach($customers_info->result() as $info)
{
foreach($customers_info->result() as $info)
if($this->Customer->delete($info->person_id))
{
// remove customer from Mailchimp selected list
$this->mailchimp_lib->removeMember($this->_list_id, $info->email);
}
$count++;
}
}
if($count == count($customers_to_delete))
{
echo json_encode(array('success' => TRUE,
'message' => $this->lang->line('customers_successful_deleted') . ' ' . count($customers_to_delete) . ' ' . $this->lang->line('customers_one_or_multiple')));
'message' => $this->lang->line('customers_successful_deleted') . ' ' . $count . ' ' . $this->lang->line('customers_one_or_multiple')));
}
else
{
@@ -360,30 +380,35 @@ class Customers extends Persons
// XSS file data sanity check
$data = $this->xss_clean($data);
if(sizeof($data) >= 15)
$consent = $data[3] == '' ? 0 : 1;
if(sizeof($data) >= 16 && $consent)
{
$email = strtolower($data[3]);
$email = strtolower($data[4]);
$person_data = array(
'first_name' => $data[0],
'last_name' => $data[1],
'gender' => $data[2],
'email' => $email,
'phone_number' => $data[4],
'address_1' => $data[5],
'address_2' => $data[6],
'city' => $data[7],
'state' => $data[8],
'zip' => $data[9],
'country' => $data[10],
'comments' => $data[11]
'phone_number' => $data[5],
'address_1' => $data[6],
'address_2' => $data[7],
'city' => $data[8],
'state' => $data[9],
'zip' => $data[10],
'country' => $data[11],
'comments' => $data[12]
);
$customer_data = array(
'company_name' => $data[12],
'discount_percent' => $data[14],
'taxable' => $data[15] == '' ? 0 : 1
'consent' => $consent,
'company_name' => $data[13],
'discount_percent' => $data[15],
'taxable' => $data[16] == '' ? 0 : 1,
'date' => date('Y-m-d H:i:s'),
'employee_id' => $this->Employee->get_logged_in_employee_info()->person_id
);
$account_number = $data[13];
$account_number = $data[14];
// don't duplicate people with same email
$invalidated = $this->Customer->check_email_exists($email);

View File

@@ -26,11 +26,9 @@ class Employees extends Persons
$data_rows = array();
foreach($employees->result() as $person)
{
$data_rows[] = get_person_data_row($person, $this);
$data_rows[] = $this->xss_clean(get_person_data_row($person));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
@@ -61,6 +59,7 @@ class Employees extends Persons
{
$module->module_id = $this->xss_clean($module->module_id);
$module->grant = $this->xss_clean($this->Employee->has_grant($module->module_id, $person_info->person_id));
$module->menu_group = $this->xss_clean($this->Employee->get_menu_group($module->module_id, $person_info->person_id));
$modules[] = $module;
}
@@ -85,93 +84,86 @@ class Employees extends Persons
*/
public function save($employee_id = -1)
{
if($this->input->post('current_password') != '')
{
if($this->Employee->check_password($this->input->post('username'), $this->input->post('current_password')))
{
$employee_data = array(
'username' => $this->input->post('username'),
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'hash_version' => 2
);
$first_name = $this->xss_clean($this->input->post('first_name'));
$last_name = $this->xss_clean($this->input->post('last_name'));
$email = $this->xss_clean(strtolower($this->input->post('email')));
if($this->Employee->change_password($employee_data, $employee_id))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_change_password'), 'id' => $employee_id));
}
else//failure
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_unsuccessful_change_password'), 'id' => -1));
}
}
else
// format first and last name properly
$first_name = $this->nameize($first_name);
$last_name = $this->nameize($last_name);
$person_data = array(
'first_name' => $first_name,
'last_name' => $last_name,
'gender' => $this->input->post('gender'),
'email' => $email,
'phone_number' => $this->input->post('phone_number'),
'address_1' => $this->input->post('address_1'),
'address_2' => $this->input->post('address_2'),
'city' => $this->input->post('city'),
'state' => $this->input->post('state'),
'zip' => $this->input->post('zip'),
'country' => $this->input->post('country'),
'comments' => $this->input->post('comments'),
);
$grants_array = array();
foreach($this->Module->get_all_permissions()->result() as $permission)
{
$grants = array();
$grant = $this->input->post('grant_'.$permission->permission_id) != NULL ? $this->input->post('grant_'.$permission->permission_id) : '';
if($grant == $permission->permission_id)
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_current_password_invalid'), 'id' => -1));
$grants['permission_id'] = $permission->permission_id;
$grants['menu_group'] = $this->input->post('menu_group_'.$permission->permission_id) != NULL ? $this->input->post('menu_group_'.$permission->permission_id) : '--';
$grants_array[] = $grants;
}
}
else
//Password has been changed OR first time password set
if($this->input->post('password') != '')
{
$first_name = $this->xss_clean($this->input->post('first_name'));
$last_name = $this->xss_clean($this->input->post('last_name'));
$email = $this->xss_clean(strtolower($this->input->post('email')));
// format first and last name properly
$first_name = $this->nameize($first_name);
$last_name = $this->nameize($last_name);
$person_data = array(
'first_name' => $first_name,
'last_name' => $last_name,
'gender' => $this->input->post('gender'),
'email' => $email,
'phone_number' => $this->input->post('phone_number'),
'address_1' => $this->input->post('address_1'),
'address_2' => $this->input->post('address_2'),
'city' => $this->input->post('city'),
'state' => $this->input->post('state'),
'zip' => $this->input->post('zip'),
'country' => $this->input->post('country'),
'comments' => $this->input->post('comments'),
$exploded = explode(":", $this->input->post('language'));
$employee_data = array(
'username' => $this->input->post('username'),
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'hash_version' => 2,
'language_code' => $exploded[0],
'language' => $exploded[1]
);
$grants_data = $this->input->post('grants') != NULL ? $this->input->post('grants') : array();
}
else //Password not changed
{
$exploded = explode(":", $this->input->post('language'));
$employee_data = array(
'username' => $this->input->post('username'),
'language_code' => $exploded[0],
'language' => $exploded[1]
);
}
//Password has been changed OR first time password set
if($this->input->post('password') != '')
if($this->Employee->save_employee($person_data, $employee_data, $grants_array, $employee_id))
{
// New employee
if($employee_id == -1)
{
$employee_data = array(
'username' => $this->input->post('username'),
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'hash_version' => 2
);
echo json_encode(array('success' => TRUE,
'message' => $this->lang->line('employees_successful_adding') . ' ' . $first_name . ' ' . $last_name,
'id' => $this->xss_clean($employee_data['person_id'])));
}
else //Password not changed
else // Existing employee
{
$employee_data = array('username' => $this->input->post('username'));
}
if($this->Employee->save_employee($person_data, $employee_data, $grants_data, $employee_id))
{
// New employee
if($employee_id == -1)
{
echo json_encode(array('success' => TRUE,
'message' => $this->lang->line('employees_successful_adding') . ' ' . $first_name . ' ' . $last_name,
'id' => $this->xss_clean($employee_data['person_id'])));
}
else // Existing employee
{
echo json_encode(array('success' => TRUE,
'message' => $this->lang->line('employees_successful_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => $employee_id));
}
}
else // Failure
{
echo json_encode(array('success' => FALSE,
'message' => $this->lang->line('employees_error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => -1));
echo json_encode(array('success' => TRUE,
'message' => $this->lang->line('employees_successful_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => $employee_id));
}
}
else // Failure
{
echo json_encode(array('success' => FALSE,
'message' => $this->lang->line('employees_error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => -1));
}
}
/*
@@ -191,20 +183,5 @@ class Employees extends Persons
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_cannot_be_deleted')));
}
}
/*
Loads the change password form
*/
public function change_password($employee_id = -1)
{
$person_info = $this->Employee->get_info($employee_id);
foreach(get_object_vars($person_info) as $property => $value)
{
$person_info->$property = $this->xss_clean($value);
}
$data['person_info'] = $person_info;
$this->load->view('employees/form_change_password', $data);
}
}
?>

View File

@@ -0,0 +1,176 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("Secure_Controller.php");
class Expenses extends Secure_Controller
{
public function __construct()
{
parent::__construct('expenses');
}
public function index()
{
$data['table_headers'] = $this->xss_clean(get_expenses_manage_table_headers());
// filters that will be loaded in the multiselect dropdown
$data['filters'] = array('only_cash' => $this->lang->line('expenses_cash_filter'),
'only_due' => $this->lang->line('expenses_due_filter'),
'only_check' => $this->lang->line('expenses_check_filter'),
'only_credit' => $this->lang->line('expenses_credit_filter'),
'only_debit' => $this->lang->line('expenses_debit_filter'),
'is_deleted' => $this->lang->line('expenses_is_deleted'));
$this->load->view('expenses/manage', $data);
}
public function search()
{
$payments = 0;
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$filters = array(
'start_date' => $this->input->get('start_date'),
'end_date' => $this->input->get('end_date'),
'only_cash' => FALSE,
'only_due' => FALSE,
'only_check' => FALSE,
'only_credit' => FALSE,
'only_debit' => FALSE,
'is_deleted' => FALSE);
// check if any filter is set in the multiselect dropdown
$filledup = array_fill_keys($this->input->get('filters'), TRUE);
$filters = array_merge($filters, $filledup);
$expenses = $this->Expense->search($search, $filters, $limit, $offset, $sort, $order);
$total_rows = $this->Expense->get_found_rows($search, $filters);
$payments = $this->Expense->get_payments_summary($search, $filters);
$payment_summary = get_expenses_manage_payments_summary($payments, $expenses);
$data_rows = array();
foreach($expenses->result() as $expense)
{
$data_rows[] = $this->xss_clean(get_expenses_data_row($expense));
}
if($total_rows > 0)
{
$data_rows[] = $this->xss_clean(get_expenses_data_last_row($expenses));
}
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows, 'payment_summary' => $payment_summary));
}
public function view($expense_id = -1)
{
$data = array();
$data['employees'] = array();
foreach($this->Employee->get_all()->result() as $employee)
{
foreach(get_object_vars($employee) as $property => $value)
{
$employee->$property = $this->xss_clean($value);
}
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
}
$data['expenses_info'] = $this->Expense->get_info($expense_id);
$data['expense_categories'] = array();
foreach($this->Expense_category->get_all(0, 0, TRUE)->result_array() as $row)
{
$expense_categories[$row['expense_category_id']] = $row['category_name'];
}
$data['expense_categories'] = $expense_categories;
$expense_id = $data['expenses_info']->expense_id;
if(empty($expense_id))
{
$data['expenses_info']->date = date('Y-m-d H:i:s');
$data['expenses_info']->employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
}
$data['payments'] = array();
foreach($this->Expense->get_expense_payment($expense_id)->result() as $payment)
{
foreach(get_object_vars($payment) as $property => $value)
{
$payment->$property = $this->xss_clean($value);
}
$data['payments'][] = $payment;
}
// don't allow gift card to be a payment option in a sale transaction edit because it's a complex change
$data['payment_options'] = $this->xss_clean($this->Expense->get_payment_options(FALSE));
$this->load->view("expenses/form", $data);
}
public function get_row($row_id)
{
$expense_info = $this->Expense->get_info($row_id);
$data_row = $this->xss_clean(get_expenses_data_row($expense_info));
echo json_encode($data_row);
}
public function save($expense_id = -1)
{
$newdate = $this->input->post('date');
$date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $newdate);
$expense_data = array(
'date' => $date_formatter->format('Y-m-d H:i:s'),
'supplier_name' => $this->input->post('supplier_name'),
'supplier_tax_code' => $this->input->post('supplier_tax_code'),
'amount' => parse_decimals($this->input->post('amount')),
'tax_amount' => parse_decimals($this->input->post('tax_amount')),
'payment_type' => $this->input->post('payment_type'),
'expense_category_id' => $this->input->post('expense_category_id'),
'description' => $this->input->post('description'),
'employee_id' => $this->input->post('employee_id'),
'deleted' => $this->input->post('deleted') != NULL
);
if($this->Expense->save($expense_data, $expense_id))
{
$expense_data = $this->xss_clean($expense_data);
//New expense_id
if($expense_id == -1)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_successful_adding'), 'id' => $expense_data['expense_id']));
}
else // Existing Expense
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_successful_updating'), 'id' => $expense_id));
}
}
else//failure
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('expenses_error_adding_updating'), 'id' => -1));
}
}
public function delete()
{
$expenses_to_delete = $this->input->post('ids');
if($this->Expense->delete_list($expenses_to_delete))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_successful_deleted') . ' ' . count($expenses_to_delete) . ' ' . $this->lang->line('expenses_one_or_multiple'), 'ids' => $expenses_to_delete));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('expenses_cannot_be_deleted'), 'ids' => $expenses_to_delete));
}
}
}
?>

View File

@@ -0,0 +1,97 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("Secure_Controller.php");
class Expenses_categories extends Secure_Controller
{
public function __construct()
{
parent::__construct('expenses_categories');
}
public function index()
{
$data['table_headers'] = $this->xss_clean(get_expense_category_manage_table_headers());
$this->load->view('expenses_categories/manage', $data);
}
/*
Returns expense_category_manage table data rows. This will be called with AJAX.
*/
public function search()
{
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$expense_categories = $this->Expense_category->search($search, $limit, $offset, $sort, $order);
$total_rows = $this->Expense_category->get_found_rows($search);
$data_rows = array();
foreach($expense_categories->result() as $expense_category)
{
$data_rows[] = $this->xss_clean(get_expense_category_data_row($expense_category));
}
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
public function get_row($row_id)
{
$data_row = $this->xss_clean(get_expense_category_data_row($this->Expense_category->get_info($row_id)));
echo json_encode($data_row);
}
public function view($expense_category_id = -1)
{
$data['category_info'] = $this->Expense_category->get_info($expense_category_id);
$this->load->view("expenses_categories/form", $data);
}
public function save($expense_category_id = -1)
{
$expense_category_data = array(
'category_name' => $this->input->post('category_name'),
'category_description' => $this->input->post('category_description')
);
if($this->Expense_category->save($expense_category_data, $expense_category_id))
{
$expense_category_data = $this->xss_clean($expense_category_data);
// New expense_category_id
if($expense_category_id == -1)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_categories_successful_adding'), 'id' => $expense_category_data['expense_category_id']));
}
else // Existing Expense Category
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_categories_successful_updating'), 'id' => $expense_category_id));
}
}
else//failure
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('expenses_categories_error_adding_updating') . ' ' . $expense_category_data['category_name'], 'id' => -1));
}
}
public function delete()
{
$expense_category_to_delete = $this->input->post('ids');
if($this->Expense_category->delete_list($expense_category_to_delete))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('expenses_categories_successful_deleted') . ' ' . count($expense_category_to_delete) . ' ' . $this->lang->line('expenses_categories_one_or_multiple')));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('expenses_categories_cannot_be_deleted')));
}
}
}
?>

View File

@@ -33,11 +33,9 @@ class Giftcards extends Secure_Controller
$data_rows = array();
foreach($giftcards->result() as $giftcard)
{
$data_rows[] = get_giftcard_data_row($giftcard, $this);
$data_rows[] = $this->xss_clean(get_giftcard_data_row($giftcard));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
@@ -51,7 +49,7 @@ class Giftcards extends Secure_Controller
echo json_encode($suggestions);
}
public function suggest_search()
{
$suggestions = $this->xss_clean($this->Giftcard->get_search_suggestions($this->input->post('term')));
@@ -61,7 +59,7 @@ class Giftcards extends Secure_Controller
public function get_row($row_id)
{
$data_row = $this->xss_clean(get_giftcard_data_row($this->Giftcard->get_info($row_id), $this));
$data_row = $this->xss_clean(get_giftcard_data_row($this->Giftcard->get_info($row_id)));
echo json_encode($data_row);
}
@@ -78,7 +76,8 @@ class Giftcards extends Secure_Controller
}
else
{
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : $this->Giftcard->get_max_number()->giftcard_number + 1;
$max_giftnumber = isset($this->Giftcard->get_max_number()->giftcard_number) ? $this->Giftcard->get_max_number()->giftcard_number : 0;
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : $max_giftnumber + 1;
}
$data['giftcard_id'] = $giftcard_id;
$data['giftcard_value'] = $giftcard_info->value;
@@ -87,27 +86,27 @@ class Giftcards extends Secure_Controller
$this->load->view("giftcards/form", $data);
}
public function save($giftcard_id = -1)
{
$giftcard_number = $this->input->post('giftcard_number');
if($giftcard_id == -1 && trim($giftcard_number) == '')
{
$giftcard_number = $this->Giftcard->generate_unique_giftcard_name($this->input->post('value'));
$giftcard_number = $this->Giftcard->generate_unique_giftcard_name($this->input->post('giftcard_amount'));
}
$giftcard_data = array(
'record_time' => date('Y-m-d H:i:s'),
'giftcard_number' => $giftcard_number,
'value' => parse_decimals($this->input->post('value')),
'value' => parse_decimals($this->input->post('giftcard_amount')),
'person_id' => $this->input->post('person_id') == '' ? NULL : $this->input->post('person_id')
);
if($this->Giftcard->save($giftcard_data, $giftcard_id))
{
$giftcard_data = $this->xss_clean($giftcard_data);
//New giftcard
if($giftcard_id == -1)
{
@@ -129,6 +128,12 @@ class Giftcards extends Secure_Controller
}
}
public function ajax_check_number_giftcard()
{
$parsed_value = parse_decimals($this->input->post('giftcard_amount'));
echo json_encode(array('success' => $parsed_value !== FALSE, 'giftcard_amount' => $parsed_value));
}
public function delete()
{
$giftcards_to_delete = $this->xss_clean($this->input->post('ids'));

View File

@@ -4,16 +4,69 @@ require_once("Secure_Controller.php");
class Home extends Secure_Controller
{
function __construct()
{
parent::__construct(NULL, NULL, 'home');
}
public function index()
{
$this->load->view('home');
$this->load->view('home/home');
}
public function logout()
{
$this->track_page('logout', 'logout');
$this->Employee->logout();
}
/*
Loads the change employee password form
*/
public function change_password($employee_id = -1)
{
$person_info = $this->Employee->get_info($employee_id);
foreach(get_object_vars($person_info) as $property => $value)
{
$person_info->$property = $this->xss_clean($value);
}
$data['person_info'] = $person_info;
$this->load->view('home/form_change_password', $data);
}
/*
Change employee password
*/
public function save($employee_id = -1)
{
if($this->input->post('current_password') != '' && $employee_id != -1)
{
if($this->Employee->check_password($this->input->post('username'), $this->input->post('current_password')))
{
$employee_data = array(
'username' => $this->input->post('username'),
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'hash_version' => 2
);
if($this->Employee->change_password($employee_data, $employee_id))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_change_password'), 'id' => $employee_id));
}
else//failure
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_unsuccessful_change_password'), 'id' => -1));
}
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_current_password_invalid'), 'id' => -1));
}
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_current_password_invalid'), 'id' => -1));
}
}
}
?>

View File

@@ -14,9 +14,11 @@ class Item_kits extends Secure_Controller
*/
private function _add_totals_to_item_kit($item_kit)
{
$kit_item_info = $this->Item->get_info($item_kit->item_id);
$item_kit->total_cost_price = 0;
$item_kit->total_unit_price = 0;
$item_kit->total_unit_price = $kit_item_info->unit_price;
foreach($this->Item_kit_items->get_info($item_kit->item_kit_id) as $item_kit_item)
{
$item_info = $this->Item->get_info($item_kit_item['item_id']);
@@ -24,11 +26,18 @@ class Item_kits extends Secure_Controller
{
$item_info->$property = $this->xss_clean($value);
}
$item_kit->total_cost_price += $item_info->cost_price * $item_kit_item['quantity'];
$item_kit->total_unit_price += $item_info->unit_price * $item_kit_item['quantity'];
if($item_kit->price_option == PRICE_OPTION_ALL || ($item_kit->price_option == PRICE_OPTION_KIT_STOCK && $item_info->stock_type == HAS_STOCK ))
{
$item_kit->total_unit_price += $item_info->unit_price * $item_kit_item['quantity'];
}
}
$discount_fraction = bcdiv($item_kit->kit_discount_percent, 100);
$item_kit->total_unit_price = $item_kit->total_unit_price - round(bcmul($item_kit->total_unit_price, $discount_fraction), totals_decimals(), PHP_ROUND_HALF_UP);
return $item_kit;
}
@@ -58,11 +67,9 @@ class Item_kits extends Secure_Controller
{
// calculate the total cost and retail price of the Kit so it can be printed out in the manage table
$item_kit = $this->_add_totals_to_item_kit($item_kit);
$data_rows[] = get_item_kit_data_row($item_kit, $this);
$data_rows[] = $this->xss_clean(get_item_kit_data_row($item_kit));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
@@ -77,8 +84,8 @@ class Item_kits extends Secure_Controller
{
// calculate the total cost and retail price of the Kit so it can be added to the table refresh
$item_kit = $this->_add_totals_to_item_kit($this->Item_kit->get_info($row_id));
echo json_encode(get_item_kit_data_row($item_kit, $this));
echo json_encode(get_item_kit_data_row($item_kit));
}
public function view($item_kit_id = -1)
@@ -133,7 +140,7 @@ class Item_kits extends Secure_Controller
$success = TRUE;
$new_item = FALSE;
//New item kit
if ($item_kit_id == -1)
if($item_kit_id == -1)
{
$item_kit_id = $item_kit_data['item_kit_id'];
$new_item = TRUE;

View File

@@ -63,7 +63,7 @@ class Items extends Secure_Controller
$data_rows = array();
foreach($items->result() as $item)
{
$data_rows[] = $this->xss_clean(get_item_data_row($item, $this));
$data_rows[] = $this->xss_clean(get_item_data_row($item));
if($item->pic_filename!='')
{
$this->_update_pic_filename($item);
@@ -169,7 +169,7 @@ class Items extends Secure_Controller
$result = array();
foreach($item_infos->result() as $item_info)
{
$result[$item_info->item_id] = $this->xss_clean(get_item_data_row($item_info, $this));
$result[$item_info->item_id] = $this->xss_clean(get_item_data_row($item_info));
}
echo json_encode($result);
@@ -369,8 +369,8 @@ class Items extends Secure_Controller
'name' => $this->input->post('name'),
'description' => $this->input->post('description'),
'category' => $this->input->post('category'),
'item_type' => $this->input->post('item_type'),
'stock_type' => $this->input->post('stock_type'),
'item_type' => $this->input->post('item_type') == NULL ? ITEM : $this->input->post('item_type'),
'stock_type' => $this->input->post('stock_type') == NULL ? HAS_STOCK : $this->input->post('stock_type'),
'supplier_id' => $this->input->post('supplier_id') == '' ? NULL : $this->input->post('supplier_id'),
'item_number' => $this->input->post('item_number') == '' ? NULL : $this->input->post('item_number'),
'cost_price' => parse_decimals($this->input->post('cost_price')),
@@ -478,7 +478,7 @@ class Items extends Secure_Controller
echo json_encode(array('success' => FALSE, 'message' => $message, 'id' => $item_id));
}
}
else//failure
else // failure
{
$message = $this->xss_clean($this->lang->line('items_error_adding_updating') . ' ' . $item_data['name']);
@@ -497,7 +497,7 @@ class Items extends Secure_Controller
*/
public function check_kit_exists()
{
if ($this->input->post('item_number') === -1)
if($this->input->post('item_number') === -1)
{
$exists = $this->Item_kit->item_kit_exists_for_name($this->input->post('name'));
}
@@ -702,7 +702,8 @@ class Items extends Secure_Controller
needs further discussion */
$pic_file = $data[24];
/*if(strcmp('.htaccess', $pic_file)==0) {
/*if(strcmp('.htaccess', $pic_file)==0)
{
$pic_file='';
}*/
$item_data['pic_filename'] = $pic_file;
@@ -750,7 +751,7 @@ class Items extends Secure_Controller
// array to store information if location got a quantity
$allowed_locations = $this->Stock_location->get_allowed_locations();
for ($col = 25; $col < $cols; $col = $col + 2)
for($col = 25; $col < $cols; $col = $col + 2)
{
$location_id = $data[$col];
if(array_key_exists($location_id, $allowed_locations))
@@ -835,19 +836,20 @@ class Items extends Secure_Controller
private function _update_pic_filename($item)
{
$filename = pathinfo($item->pic_filename, PATHINFO_FILENAME);
if($filename=='')
// if the field is empty there's nothing to check
if(!empty($filename))
{
// if the field is empty there's nothing to check
return;
}
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
if ($ext == '') {
$images = glob('./uploads/item_pics/' . $item->pic_filename . '.*');
if (sizeof($images) > 0) {
$new_pic_filename = pathinfo($images[0], PATHINFO_BASENAME);
$item_data = array('pic_filename' => $new_pic_filename);
$this->Item->save($item_data, $item->item_id);
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
if(empty($ext))
{
$images = glob('./uploads/item_pics/' . $item->pic_filename . '.*');
if(sizeof($images) > 0)
{
$new_pic_filename = pathinfo($images[0], PATHINFO_BASENAME);
$item_data = array('pic_filename' => $new_pic_filename);
$this->Item->save($item_data, $item->item_id);
}
}
}
}

View File

@@ -25,26 +25,6 @@ class Login extends CI_Controller
}
else
{
if($this->config->item('statistics'))
{
$this->load->library('tracking_lib');
$this->tracking_lib->track_page('login', 'login');
$this->tracking_lib->track_event('Stats', 'Theme', $this->config->item('theme'));
$this->tracking_lib->track_event('Stats', 'Language', $this->config->item('language'));
$this->tracking_lib->track_event('Stats', 'Timezone', $this->config->item('timezone'));
$this->tracking_lib->track_event('Stats', 'Currency', $this->config->item('currency_symbol'));
$this->tracking_lib->track_event('Stats', 'Customer Sales Tax Support', $this->config->item('customer_sales_tax_support'));
$this->tracking_lib->track_event('Stats', 'Tax Included', $this->config->item('tax_included'));
$this->tracking_lib->track_event('Stats', 'Thousands Separator', $this->config->item('thousands_separator'));
$this->tracking_lib->track_event('Stats', 'Currency Decimals', $this->config->item('currency_decimals'));
$this->tracking_lib->track_event('Stats', 'Tax Decimals', $this->config->item('tax_decimals'));
$this->tracking_lib->track_event('Stats', 'Quantity Decimals', $this->config->item('quantity_decimals'));
$this->tracking_lib->track_event('Stats', 'Invoice Enable', $this->config->item('invoice_enable'));
$this->tracking_lib->track_event('Stats', 'Date or Time Format', $this->config->item('date_or_time_format'));
}
redirect('home');
}
}
@@ -68,6 +48,10 @@ class Login extends CI_Controller
return FALSE;
}
// trigger any required upgrade before starting the application
$this->load->library('migration');
$this->migration->latest();
return TRUE;
}
@@ -98,7 +82,7 @@ class Login extends CI_Controller
{
// get PHP extensions and check that the required ones are installed
$extensions = implode(', ', get_loaded_extensions());
$keys = array('bcmath', 'intl', 'gd', 'sockets', 'mcrypt');
$keys = array('bcmath', 'intl', 'gd', 'openssl', 'mbstring', 'curl');
$pattern = '/';
foreach($keys as $key)
{
@@ -113,10 +97,6 @@ class Login extends CI_Controller
error_log('PHP installed extensions: ' . $extensions);
error_log('PHP required extensions: ' . implode(', ', $keys));
}
else
{
$result = preg_match('~\b(Copyright|(c)|©|All rights reserved|Developed|Crafted|Implemented|Made|Powered|Code|Design|unblockUI|blockUI|blockOverlay|hide|opacity)\b~i', file_get_contents(APPPATH . 'views/partial/footer.php')) != TRUE;
}
return $result;
}

View File

@@ -1,31 +0,0 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once("Secure_Controller.php");
class Migrate extends Secure_Controller
{
public function __construct()
{
parent::__construct('migrate');
$this->load->library('migration');
}
public function index()
{
$this->load->view('migrate/manage');
}
public function perform_migration()
{
if( ! $this->migration->latest())
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('migrate_failed - ' . $this->migration->error_string())));
}
else
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('migrate_success')));
}
}
}
?>

View File

@@ -0,0 +1,22 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("Secure_Controller.php");
class Office extends Secure_Controller
{
function __construct()
{
parent::__construct('office', NULL, 'office');
}
public function index()
{
$this->load->view('home/office');
}
public function logout()
{
$this->Employee->logout();
}
}
?>

View File

@@ -31,7 +31,7 @@ abstract class Persons extends Secure_Controller
*/
public function get_row($row_id)
{
$data_row = $this->xss_clean(get_person_data_row($this->Person->get_info($row_id), $this));
$data_row = $this->xss_clean(get_person_data_row($this->Person->get_info($row_id)));
echo json_encode($data_row);
}

View File

@@ -148,7 +148,7 @@ class Receivings extends Secure_Controller
}
$data['employees'] = array();
foreach ($this->Employee->get_all()->result() as $employee)
foreach($this->Employee->get_all()->result() as $employee)
{
$data['employees'][$employee->person_id] = $this->xss_clean($employee->first_name . ' '. $employee->last_name);
}
@@ -198,7 +198,6 @@ class Receivings extends Secure_Controller
$data['cart'] = $this->receiving_lib->get_cart();
$data['total'] = $this->receiving_lib->get_total();
$data['receipt_title'] = $this->lang->line('receivings_receipt');
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'));
$data['mode'] = $this->receiving_lib->get_mode();
$data['comment'] = $this->receiving_lib->get_comment();
@@ -285,7 +284,6 @@ class Receivings extends Secure_Controller
$data['cart'] = $this->receiving_lib->get_cart();
$data['total'] = $this->receiving_lib->get_total();
$data['mode'] = $this->receiving_lib->get_mode();
$data['receipt_title'] = $this->lang->line('receivings_receipt');
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), strtotime($receiving_info['receiving_time']));
$data['show_stock_locations'] = $this->Stock_location->show_locations('receivings');
$data['payment_type'] = $receiving_info['payment_type'];

View File

@@ -17,8 +17,6 @@ class Reports extends Secure_Controller
preg_match('/^(.*?)([sy])?$/', array_pop($matches), $matches);
$submodule_id = $matches[1] . ((count($matches) > 2) ? $matches[2] : 's');
$this->track_page('reports/' . $submodule_id, 'reports_' . $submodule_id);
// check access to report submodule
if(!$this->Employee->has_grant('reports_' . $submodule_id, $this->Employee->get_logged_in_employee_info()->person_id))
{
@@ -29,11 +27,11 @@ class Reports extends Secure_Controller
$this->load->helper('report');
}
//Initial report listing screen
//Initial Report listing screen
public function index()
{
$data['grants'] = $this->xss_clean($this->Employee->get_employee_grants($this->session->userdata('person_id')));
$this->load->view('reports/listing', $data);
}
@@ -52,7 +50,7 @@ class Reports extends Secure_Controller
foreach($report_data as $row)
{
$tabular_data[] = $this->xss_clean(array(
'sale_date' => $row['sale_date'],
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
'quantity' => to_quantity_decimals($row['quantity_purchased']),
'subtotal' => to_currency($row['subtotal']),
'tax' => to_currency_tax($row['tax']),
@@ -73,7 +71,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary categories report
//Summary Categories report
public function summary_categories($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -109,7 +107,40 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary customers report
//Summary Expenses by Categories report
public function summary_expenses_categories($start_date, $end_date, $sale_type)
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type);
$this->load->model('reports/Summary_expenses_categories');
$model = $this->Summary_expenses_categories;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
$tabular_data = array();
foreach($report_data as $row)
{
$tabular_data[] = $this->xss_clean(array(
'category_name' => $row['category_name'],
'count' => $row['count'],
'total_amount' => to_currency($row['total_amount']),
'total_tax_amount' => to_currency($row['total_tax_amount'])
));
}
$data = array(
'title' => $this->lang->line('reports_expenses_categories_summary_report'),
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
'headers' => $this->xss_clean($model->getDataColumns()),
'data' => $tabular_data,
'summary_data' => $summary
);
$this->load->view('reports/tabular', $data);
}
//Summary Customers report
public function summary_customers($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -145,7 +176,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary suppliers report
//Summary Suppliers report
public function summary_suppliers($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -181,7 +212,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary items report
//Summary Items report
public function summary_items($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -217,7 +248,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary employees report
//Summary Employees report
public function summary_employees($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -253,7 +284,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary taxes report
//Summary Taxes report
public function summary_taxes($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -287,7 +318,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary discounts report
//Summary Discounts report
public function summary_discounts($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -318,7 +349,7 @@ class Reports extends Secure_Controller
$this->load->view('reports/tabular', $data);
}
//Summary payments report
//Summary Payments report
public function summary_payments($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
@@ -335,7 +366,7 @@ class Reports extends Secure_Controller
$tabular_data[] = $this->xss_clean(array(
'payment_type' => $row['payment_type'],
'report_count' => $row['count'],
'amount_tendered' => to_currency($row['payment_amount'])
'amount_due' => to_currency($row['payment_amount'])
));
}
@@ -358,6 +389,15 @@ class Reports extends Secure_Controller
$stock_locations['all'] = $this->lang->line('reports_all');
$data['stock_locations'] = array_reverse($stock_locations, TRUE);
$data['mode'] = 'sale';
$data['sale_type_options'] = $this->get_sale_type_options();
$this->load->view('reports/date_input', $data);
}
//Input for reports that require only a date range. (see routes.php to see that all graphical summary reports route here)
public function date_input_only()
{
$data = array();
$this->load->view('reports/date_input', $data);
}
@@ -370,6 +410,7 @@ class Reports extends Secure_Controller
$stock_locations['all'] = $this->lang->line('reports_all');
$data['stock_locations'] = array_reverse($stock_locations, TRUE);
$data['mode'] = 'sale';
$data['sale_type_options'] = $this->get_sale_type_options();
$this->load->view('reports/date_input', $data);
}
@@ -385,6 +426,40 @@ class Reports extends Secure_Controller
$this->load->view('reports/date_input', $data);
}
//Graphical Expenses by Categories report
public function graphical_summary_expenses_categories($start_date, $end_date, $sale_type)
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type);
$this->load->model('reports/Summary_expenses_categories');
$model = $this->Summary_expenses_categories;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
$labels = array();
$series = array();
foreach($report_data as $row)
{
$row = $this->xss_clean($row);
$labels[] = $row['category_name'];
$series[] = array('meta' => $row['category_name'] . ' ' . round($row['total_amount'] / $summary['expenses_total_amount'] * 100, 2) . '%', 'value' => $row['total_amount']);
}
$data = array(
'title' => $this->lang->line('reports_expenses_categories_summary_report'),
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
'chart_type' => 'reports/graphs/pie',
'labels_1' => $labels,
'series_data_1' => $series,
'summary_data_1' => $summary,
'show_currency' => TRUE
);
$this->load->view('reports/graphical', $data);
}
//Graphical summary sales report
public function graphical_summary_sales($start_date, $end_date, $sale_type, $location_id = 'all')
{
@@ -533,7 +608,7 @@ class Reports extends Secure_Controller
$this->load->model('reports/Summary_employees');
$model = $this->Summary_employees;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
@@ -567,7 +642,7 @@ class Reports extends Secure_Controller
$this->load->model('reports/Summary_taxes');
$model = $this->Summary_taxes;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
@@ -598,10 +673,10 @@ class Reports extends Secure_Controller
public function graphical_summary_customers($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
$this->load->model('reports/Summary_customers');
$model = $this->Summary_customers;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
@@ -637,7 +712,7 @@ class Reports extends Secure_Controller
$this->load->model('reports/Summary_discounts');
$model = $this->Summary_discounts;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
@@ -670,10 +745,10 @@ class Reports extends Secure_Controller
public function graphical_summary_payments($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
$this->load->model('reports/Summary_payments');
$model = $this->Summary_payments;
$report_data = $model->getData($inputs);
$summary = $this->xss_clean($model->getSummaryData($inputs));
@@ -704,21 +779,41 @@ class Reports extends Secure_Controller
{
$data = array();
$data['specific_input_name'] = $this->lang->line('reports_customer');
$customers = array();
foreach($this->Customer->get_all()->result() as $customer)
{
$customers[$customer->person_id] = $this->xss_clean($customer->first_name . ' ' . $customer->last_name);
{
if(isset($customer->company_name))
{
$customers[$customer->person_id] = $this->xss_clean($customer->first_name . ' ' . $customer->last_name. ' ' . ' [ '.$customer->company_name.' ] ');
}
else
{
$customers[$customer->person_id] = $this->xss_clean($customer->first_name . ' ' . $customer->last_name);
}
}
$data['specific_input_data'] = $customers;
$data['sale_type_options'] = $this->get_sale_type_options();
$this->load->view('reports/specific_input', $data);
$data['payment_type'] = $this->get_payment_type();
$this->load->view('reports/specific_customer_input', $data);
}
public function specific_customer($start_date, $end_date, $customer_id, $sale_type)
public function get_payment_type()
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'customer_id' => $customer_id, 'sale_type' => $sale_type);
$payment_type = array( 'all' => $this->lang->line('common_none_selected_text'),
'cash' => $this->lang->line('sales_cash'),
'due' => $this->lang->line('sales_due'),
'check' => $this->lang->line('sales_check'),
'credit' => $this->lang->line('sales_credit'),
'debit' => $this->lang->line('sales_debit'),
'invoices' => $this->lang->line('sales_invoice'));
return $payment_type;
}
public function specific_customer($start_date, $end_date, $customer_id, $sale_type, $payment_type)
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'customer_id' => $customer_id, 'sale_type' => $sale_type, 'payment_type' => $payment_type);
$this->load->model('reports/Specific_customer');
$model = $this->Specific_customer;
@@ -733,9 +828,21 @@ class Reports extends Secure_Controller
foreach($report_data['summary'] as $key => $row)
{
if($row['sale_status'] == CANCELED)
{
$button_key = 'data-btn-restore';
$button_label = $this->lang->line('common_restore');
}
else
{
$button_key = 'data-btn-delete';
$button_label = $this->lang->line('common_delete');
}
$summary_data[] = $this->xss_clean(array(
'id' => anchor('sales/receipt/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target'=>'_blank')),
'sale_date' => $row['sale_date'],
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'subtotal' => to_currency($row['subtotal']),
@@ -744,7 +851,10 @@ class Reports extends Secure_Controller
'cost' => to_currency($row['cost']),
'profit' => to_currency($row['profit']),
'payment_type' => $row['payment_type'],
'comment' => $row['comment']));
'comment' => $row['comment'],
'edit' => anchor('sales/edit/'. $row['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))
));
foreach($report_data['details'][$key] as $drow)
{
@@ -772,10 +882,20 @@ class Reports extends Secure_Controller
}
$customer_info = $this->Customer->get_info($customer_id);
if(!empty($customer_info->company_name))
{
$customer_name ='[ '.$customer_info->company_name.' ]';
}
else
{
$customer_name = $customer_info->company_name;
}
$data = array(
'title' => $this->xss_clean($customer_info->first_name . ' ' . $customer_info->last_name . ' ' . $this->lang->line('reports_report')),
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
'headers' => $headers,
'editable' => 'sales',
'summary_data' => $summary_data,
'details_data' => $details_data,
'details_data_rewards' => $details_data_rewards,
@@ -796,6 +916,7 @@ class Reports extends Secure_Controller
$employees[$employee->person_id] = $this->xss_clean($employee->first_name . ' ' . $employee->last_name);
}
$data['specific_input_data'] = $employees;
$data['sale_type_options'] = $this->get_sale_type_options();
$this->load->view('reports/specific_input', $data);
}
@@ -818,9 +939,21 @@ class Reports extends Secure_Controller
foreach($report_data['summary'] as $key => $row)
{
if($row['sale_status'] == CANCELED)
{
$button_key = 'data-btn-restore';
$button_label = $this->lang->line('common_restore');
}
else
{
$button_key = 'data-btn-delete';
$button_label = $this->lang->line('common_delete');
}
$summary_data[] = $this->xss_clean(array(
'id' => anchor('sales/receipt/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target'=>'_blank')),
'sale_date' => $row['sale_date'],
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'customer_name' => $row['customer_name'],
'subtotal' => to_currency($row['subtotal']),
@@ -829,7 +962,10 @@ class Reports extends Secure_Controller
'cost' => to_currency($row['cost']),
'profit' => to_currency($row['profit']),
'payment_type' => $row['payment_type'],
'comment' => $row['comment']));
'comment' => $row['comment'],
'edit' => anchor('sales/edit/'. $row['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))
));
foreach($report_data['details'][$key] as $drow)
{
@@ -861,6 +997,7 @@ class Reports extends Secure_Controller
'title' => $this->xss_clean($employee_info->first_name . ' ' . $employee_info->last_name . ' ' . $this->lang->line('reports_report')),
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
'headers' => $headers,
'editable' => 'sales',
'summary_data' => $summary_data,
'details_data' => $details_data,
'details_data_rewards' => $details_data_rewards,
@@ -876,12 +1013,13 @@ class Reports extends Secure_Controller
$data['specific_input_name'] = $this->lang->line('reports_discount');
$discounts = array();
for ($i = 0; $i <= 100; $i += 10)
for($i = 0; $i <= 100; $i += 10)
{
$discounts[$i] = $i . '%';
}
$data['specific_input_data'] = $discounts;
$data['sale_type_options'] = $this->get_sale_type_options();
$data = $this->xss_clean($data);
$this->load->view('reports/specific_input', $data);
@@ -890,7 +1028,7 @@ class Reports extends Secure_Controller
public function specific_discount($start_date, $end_date, $discount, $sale_type)
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'discount' => $discount, 'sale_type' => $sale_type);
$this->load->model('reports/Specific_discount');
$model = $this->Specific_discount;
@@ -905,17 +1043,33 @@ class Reports extends Secure_Controller
foreach($report_data['summary'] as $key => $row)
{
if($row['sale_status'] == CANCELED)
{
$button_key = 'data-btn-restore';
$button_label = $this->lang->line('common_restore');
}
else
{
$button_key = 'data-btn-delete';
$button_label = $this->lang->line('common_delete');
}
$summary_data[] = $this->xss_clean(array(
'id' => anchor('sales/receipt/'.$row['sale_id'], 'POS '.$row['sale_id'], array('target'=>'_blank')),
'sale_date' => $row['sale_date'],
'id' => $row['sale_id'],
'type_code' => $row['type_code'],
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'customer_name' => $row['customer_name'],
'subtotal' => to_currency($row['subtotal']),
'tax' => to_currency_tax($row['tax']),
'total' => to_currency($row['total']),
'cost' => to_currency($row['cost']),
'profit' => to_currency($row['profit']),
'payment_type' => $row['payment_type'],
'comment' => $row['comment']
'comment' => $row['comment'],
'edit' => anchor('sales/edit/'. $row['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))
));
foreach($report_data['details'][$key] as $drow)
@@ -929,6 +1083,7 @@ class Reports extends Secure_Controller
to_currency($drow['subtotal']),
to_currency_tax($drow['tax']),
to_currency($drow['total']),
to_currency($drow['cost']),
to_currency($drow['profit']),
$drow['discount_percent'].'%'));
}
@@ -958,7 +1113,7 @@ class Reports extends Secure_Controller
public function get_detailed_sales_row($sale_id)
{
$inputs = array('sale_id' => $sale_id);
$this->load->model('reports/Detailed_sales');
$model = $this->Detailed_sales;
@@ -966,9 +1121,20 @@ class Reports extends Secure_Controller
$report_data = $model->getDataBySaleId($sale_id);
if($report_data['sale_status'] == CANCELED)
{
$button_key = 'data-btn-restore';
$button_label = $this->lang->line('common_restore');
}
else
{
$button_key = 'data-btn-delete';
$button_label = $this->lang->line('common_delete');
}
$summary_data = $this->xss_clean(array(
'sale_id' => $report_data['sale_id'],
'sale_date' => $report_data['sale_date'],
'sale_date' => date($this->config->item('dateformat'), strtotime($report_data['sale_date'])),
'quantity' => to_quantity_decimals($report_data['items_purchased']),
'employee_name' => $report_data['employee_name'],
'customer_name' => $report_data['customer_name'],
@@ -980,17 +1146,34 @@ class Reports extends Secure_Controller
'payment_type' => $report_data['payment_type'],
'comment' => $report_data['comment'],
'edit' => anchor('sales/edit/'. $report_data['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg print_hide', 'data-btn-delete' => $this->lang->line('common_delete'), 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update'))
)
array('class'=>'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))
));
echo json_encode(array($sale_id => $summary_data));
}
public function get_sale_type_options()
{
$sale_type_options = array();
$sale_type_options['complete'] = $this->lang->line('reports_complete');
$sale_type_options['sales'] = $this->lang->line('reports_completed_sales');
if($this->config->item('invoice_enable') == '1')
{
$sale_type_options['quotes'] = $this->lang->line('reports_quotes');
if($this->config->item('work_order_enable') == '1')
{
$sale_type_options['work_orders'] = $this->lang->line('reports_work_orders');
}
}
$sale_type_options['canceled'] = $this->lang->line('reports_canceled');
$sale_type_options['returns'] = $this->lang->line('reports_returns');
return $sale_type_options;
}
public function detailed_sales($start_date, $end_date, $sale_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
$this->load->model('reports/Detailed_sales');
$model = $this->Detailed_sales;
@@ -1008,9 +1191,21 @@ class Reports extends Secure_Controller
foreach($report_data['summary'] as $key => $row)
{
if($row['sale_status'] == CANCELED)
{
$button_key = 'data-btn-restore';
$button_label = $this->lang->line('common_restore');
}
else
{
$button_key = 'data-btn-delete';
$button_label = $this->lang->line('common_delete');
}
$summary_data[] = $this->xss_clean(array(
'id' => $row['sale_id'],
'sale_date' => $row['sale_date'],
'type_code' => $row['type_code'],
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'customer_name' => $row['customer_name'],
@@ -1022,8 +1217,7 @@ class Reports extends Secure_Controller
'payment_type' => $row['payment_type'],
'comment' => $row['comment'],
'edit' => anchor('sales/edit/'.$row['sale_id'], '<span class="glyphicon glyphicon-edit"></span>',
array('class' => 'modal-dlg print_hide', 'data-btn-delete' => $this->lang->line('common_delete'), 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update'))
)
array('class' => 'modal-dlg print_hide', $button_key => $button_label, 'data-btn-submit' => $this->lang->line('common_submit'), 'title' => $this->lang->line('sales_update')))
));
foreach($report_data['details'][$key] as $drow)
@@ -1075,14 +1269,14 @@ class Reports extends Secure_Controller
$this->load->model('reports/Detailed_receivings');
$model = $this->Detailed_receivings;
$model->create($inputs);
$report_data = $model->getDataByReceivingId($receiving_id);
$summary_data = $this->xss_clean(array(
'receiving_id' => $report_data['receiving_id'],
'receiving_date' => $report_data['receiving_date'],
'receiving_date' => date($this->config->item('dateformat'), strtotime($report_data['receiving_date'])),
'quantity' => to_quantity_decimals($report_data['items_purchased']),
'employee_name' => $report_data['employee_name'],
'supplier_name' => $report_data['supplier_name'],
@@ -1101,10 +1295,10 @@ class Reports extends Secure_Controller
public function detailed_receivings($start_date, $end_date, $receiving_type, $location_id = 'all')
{
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'receiving_type' => $receiving_type, 'location_id' => $location_id);
$this->load->model('reports/Detailed_receivings');
$model = $this->Detailed_receivings;
$model->create($inputs);
$headers = $this->xss_clean($model->getDataColumns());
@@ -1119,7 +1313,7 @@ class Reports extends Secure_Controller
{
$summary_data[] = $this->xss_clean(array(
'id' => $row['receiving_id'],
'receiving_date' => $row['receiving_date'],
'receiving_date' => date($this->config->item('dateformat'), strtotime($row['receiving_date'])),
'quantity' => to_quantity_decimals($row['items_purchased']),
'employee_name' => $row['employee_name'],
'supplier_name' => $row['supplier_name'],
@@ -1136,11 +1330,17 @@ class Reports extends Secure_Controller
foreach($report_data['details'][$key] as $drow)
{
$quantity_purchased = $drow['receiving_quantity'] > 1 ? to_quantity_decimals($drow['quantity_purchased']) . ' x ' . to_quantity_decimals($drow['receiving_quantity']) : to_quantity_decimals($drow['quantity_purchased']);
if ($show_locations)
if($show_locations)
{
$quantity_purchased .= ' [' . $this->Stock_location->get_location_name($drow['item_location']) . ']';
}
$details_data[$row['receiving_id']][] = $this->xss_clean(array($drow['item_number'], $drow['name'], $drow['category'], $quantity_purchased, to_currency($drow['total']), $drow['discount_percent'].'%'));
$details_data[$row['receiving_id']][] = $this->xss_clean(array(
$drow['item_number'],
$drow['name'],
$drow['category'],
$quantity_purchased,
to_currency($drow['total']),
$drow['discount_percent'].'%'));
}
}
@@ -1165,7 +1365,7 @@ class Reports extends Secure_Controller
$model = $this->Inventory_low;
$report_data = $model->getData($inputs);
$tabular_data = array();
foreach($report_data as $row)
{
@@ -1193,7 +1393,7 @@ class Reports extends Secure_Controller
{
$this->load->model('reports/Inventory_summary');
$model = $this->Inventory_summary;
$data = array();
$data['item_count'] = $model->getItemCountDropdownArray();
@@ -1207,7 +1407,7 @@ class Reports extends Secure_Controller
public function inventory_summary($location_id = 'all', $item_count = 'all')
{
$inputs = array('location_id' => $location_id, 'item_count' => $item_count);
$this->load->model('reports/Inventory_summary');
$model = $this->Inventory_summary;
@@ -1252,7 +1452,7 @@ class Reports extends Secure_Controller
{
$subtitle .= date($this->config->item('dateformat').' '.$this->config->item('timeformat'), strtotime(rawurldecode($inputs['start_date']))) . ' - ' . date($this->config->item('dateformat').' '.$this->config->item('timeformat'), strtotime(rawurldecode($inputs['end_date'])));
}
return $subtitle;
}
}

View File

@@ -2,6 +2,9 @@
require_once("Secure_Controller.php");
define('PRICE_MODE_STANDARD', 0);
define('PRICE_MODE_KIT', 1);
class Sales extends Secure_Controller
{
public function __construct()
@@ -9,7 +12,6 @@ class Sales extends Secure_Controller
parent::__construct('sales');
$this->load->library('sale_lib');
$this->load->library('tax_lib');
$this->load->library('barcode_lib');
$this->load->library('email_lib');
$this->load->library('token_lib');
@@ -54,7 +56,7 @@ class Sales extends Secure_Controller
public function get_row($row_id)
{
$sale_info = $this->Sale->get_info($row_id)->row();
$data_row = $this->xss_clean(get_sale_data_row($sale_info, $this));
$data_row = $this->xss_clean(get_sale_data_row($sale_info));
echo json_encode($data_row);
}
@@ -84,17 +86,17 @@ 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, $this));
$payment_summary = $this->xss_clean(get_sales_manage_payments_summary($payments, $sales));
$data_rows = array();
foreach($sales->result() as $sale)
{
$data_rows[] = $this->xss_clean(get_sale_data_row($sale, $this));
$data_rows[] = $this->xss_clean(get_sale_data_row($sale));
}
if($total_rows > 0)
{
$data_rows[] = $this->xss_clean(get_sale_data_last_row($sales, $this));
$data_rows[] = $this->xss_clean(get_sale_data_last_row($sales));
}
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows, 'payment_summary' => $payment_summary));
@@ -147,13 +149,36 @@ class Sales extends Secure_Controller
public function change_mode()
{
$mode = $this->input->post('mode');
$this->sale_lib->set_mode($mode);
if($mode == 'sale')
{
$this->sale_lib->set_sale_type(SALE_TYPE_POS);
}
else if($mode == 'sale_quote')
{
$this->sale_lib->set_sale_type(SALE_TYPE_QUOTE);
}
else if($mode == 'sale_work_order')
{
$this->sale_lib->set_sale_type(SALE_TYPE_WORK_ORDER);
}
else if($mode == 'sale_invoice')
{
$this->sale_lib->set_sale_type(SALE_TYPE_INVOICE);
}
else
{
$this->sale_lib->set_sale_type(SALE_TYPE_RETURN);
}
$stock_location = $this->input->post('stock_location');
if(!$stock_location || $stock_location == $this->sale_lib->get_sale_location())
{
$mode = $this->input->post('mode');
$this->sale_lib->set_mode($mode);
$dinner_table = $this->input->post('dinner_table');
$this->sale_lib->set_dinner_table($dinner_table);
}
elseif($this->Stock_location->is_allowed_location($stock_location, 'sales'))
{
@@ -163,6 +188,34 @@ class Sales extends Secure_Controller
$this->_reload();
}
public function change_register_mode($sale_type)
{
if($sale_type == SALE_TYPE_POS)
{
$this->sale_lib->set_mode('sale');
}
elseif($sale_type == SALE_TYPE_QUOTE)
{
$this->sale_lib->set_mode('sale_quote');
}
elseif($sale_type == SALE_TYPE_WORK_ORDER)
{
$this->sale_lib->set_mode('sale_work_order');
}
elseif($sale_type == SALE_TYPE_INVOICE)
{
$this->sale_lib->set_mode('sale_invoice');
}
elseif($sale_type == SALE_TYPE_RETURN)
{
$this->sale_lib->set_mode('return');
}
else
{
$this->sale_lib->set_mode('sale');
}
}
public function set_comment()
{
$this->sale_lib->set_comment($this->input->post('comment'));
@@ -189,6 +242,11 @@ class Sales extends Secure_Controller
$this->sale_lib->set_print_after_sale($this->input->post('sales_print_after_sale'));
}
public function set_price_work_orders()
{
$this->sale_lib->set_price_work_orders($this->input->post('price_work_orders'));
}
public function set_email_receipt()
{
$this->sale_lib->set_email_receipt($this->input->post('email_receipt'));
@@ -237,7 +295,7 @@ class Sales extends Secure_Controller
{
$data['error'] = $this->lang->line('giftcards_cannot_use', $giftcard_num);
}
elseif(($cur_giftcard_value - $current_payments_with_giftcard) <= 0)
elseif(($cur_giftcard_value - $current_payments_with_giftcard) <= 0 && $this->sale_lib->get_mode() == 'sale')
{
$data['error'] = $this->lang->line('giftcards_remaining_balance', $giftcard_num, to_currency($cur_giftcard_value));
}
@@ -261,7 +319,7 @@ class Sales extends Secure_Controller
{
$package_name = $this->Customer_rewards->get_name($package_id);
$points = $this->Customer->get_info($customer_id)->points;
$points = ($points==NULL ? 0 : $points);
$points = ($points == NULL ? 0 : $points);
$payments = $this->sale_lib->get_payments();
$payment_type = $payment_type;
@@ -344,8 +402,7 @@ class Sales extends Secure_Controller
$item_kit_id = $pieces[1];
$item_kit_info = $this->Item_kit->get_info($item_kit_id);
$kit_item_id = $item_kit_info->kit_item_id;
$price_option = $item_kit_info->price_option;
$stock_type = $item_kit_info->stock_type;
$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_percent != 0 && $item_kit_info->kit_discount_percent > $discount)
@@ -358,7 +415,7 @@ class Sales extends Secure_Controller
if(!empty($kit_item_id))
{
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $price, NULL, NULL, NULL, $print_option, $stock_type))
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, PRICE_MODE_STANDARD))
{
$data['error'] = $this->lang->line('sales_unable_to_add_item');
}
@@ -370,7 +427,7 @@ class Sales extends Secure_Controller
// Add item kit items to order
$stock_warning = NULL;
if(!$this->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location, $discount, $price_option, $kit_print_option, $stock_warning))
if(!$this->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location, $discount, $kit_price_option, $kit_print_option, $stock_warning))
{
$data['error'] = $this->lang->line('sales_unable_to_add_item');
}
@@ -381,7 +438,7 @@ class Sales extends Secure_Controller
}
else
{
if(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location, $discount))
if(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location, $discount, PRICE_MODE_STANDARD))
{
$data['error'] = $this->lang->line('sales_unable_to_add_item');
}
@@ -397,9 +454,9 @@ class Sales extends Secure_Controller
{
$data = array();
$this->form_validation->set_rules('price', 'lang:items_price', 'required|callback_numeric');
$this->form_validation->set_rules('quantity', 'lang:items_quantity', 'required|callback_numeric');
$this->form_validation->set_rules('discount', 'lang:items_discount', 'required|callback_numeric');
$this->form_validation->set_rules('price', 'lang:sales_price', 'required|callback_numeric');
$this->form_validation->set_rules('quantity', 'lang:sales_quantity', 'required|callback_numeric');
$this->form_validation->set_rules('discount', 'lang:sales_discount', 'required|callback_numeric');
$description = $this->input->post('description');
$serialnumber = $this->input->post('serialnumber');
@@ -407,10 +464,11 @@ class Sales extends Secure_Controller
$quantity = parse_decimals($this->input->post('quantity'));
$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;
if($this->form_validation->run() != FALSE)
{
$this->sale_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $price);
$this->sale_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $price, $discounted_total);
}
else
{
@@ -443,10 +501,11 @@ class Sales extends Secure_Controller
public function complete()
{
$sale_id = $this->sale_lib->get_sale_id();
$sale_type = $this->sale_lib->get_sale_type();
$data = array();
$data['dinner_table'] = $this->sale_lib->get_dinner_table();
$data['cart'] = $this->sale_lib->get_cart();
$data['receipt_title'] = $this->lang->line('sales_receipt');
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'));
$data['transaction_date'] = date($this->config->item('dateformat'));
$data['show_stock_locations'] = $this->Stock_location->show_locations('sales');
@@ -463,10 +522,16 @@ class Sales extends Secure_Controller
$data['cur_giftcard_value'] = $this->sale_lib->get_giftcard_remainder();
$data['cur_rewards_value'] = $this->sale_lib->get_rewards_remainder();
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
$data['email_receipt'] = $this->sale_lib->get_email_receipt();
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
$customer_id = $this->sale_lib->get_customer();
$data["invoice_number"] = $this->sale_lib->get_invoice_number();
$data["quote_number"] = $this->sale_lib->get_quote_number();
$invoice_number_enabled = $this->sale_lib->get_invoice_number_enabled();
$invoice_number = $this->sale_lib->get_invoice_number();
$data["invoice_number"] = $invoice_number;
$work_order_number = $this->sale_lib->get_work_order_number();
$data["work_order_number"] = $work_order_number;
$quote_number = $this->sale_lib->get_quote_number();
$data["quote_number"] = $quote_number;
$customer_info = $this->_load_customer_data($customer_id, $data);
if($customer_info != NULL)
{
@@ -501,13 +566,36 @@ class Sales extends Secure_Controller
}
$data['amount_change'] = $data['amount_due'] * -1;
if($this->sale_lib->is_invoice_mode() || $data['invoice_number_enabled'] == TRUE)
$data['print_price_info'] = TRUE;
$override_invoice_number = NULL;
if($this->sale_lib->is_sale_by_receipt_mode() && $invoice_number_enabled )
{
$pos_invoice = TRUE;
$candidate_invoice_number = $invoice_number;
if($candidate_invoice_number != NULL && strlen($candidate_invoice_number) > 3)
{
if(strpos($candidate_invoice_number, '{') == FALSE)
{
$override_invoice_number = $candidate_invoice_number;
}
}
}
else
{
$pos_invoice = FALSE;
}
if($this->sale_lib->is_invoice_mode() || $pos_invoice)
{
// 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
if($this->sale_lib->is_sale_by_receipt_mode())
if($pos_invoice)
{
// The user can retain the default encoded format or can manually override it. It still passes through the rendering step.
$this->sale_lib->set_invoice_number($this->input->post('invoice_number'), $keep_custom = TRUE);
$invoice_format = $this->sale_lib->get_invoice_number();
// If the user blanks out the invoice number and doesn't put anything in there then revert back to the default format encoding
if(empty($invoice_format))
{
$invoice_format = $this->config->item('sales_invoice_format');
@@ -517,10 +605,17 @@ class Sales extends Secure_Controller
{
$invoice_format = $this->config->item('sales_invoice_format');
}
$invoice_number = $this->token_lib->render($invoice_format);
// TODO If duplicate invoice then determine the number of employees and repeat until until success or tried the number of employees (if QSEQ was used).
if($this->Sale->check_invoice_number_exists($invoice_number))
if($override_invoice_number == NULL)
{
$invoice_number = $this->token_lib->render($invoice_format);
}
else
{
$invoice_number = $override_invoice_number;
}
if($sale_id == -1 && $this->Sale->check_invoice_number_exists($invoice_number))
{
$data['error'] = $this->lang->line('sales_invoice_number_duplicate');
$this->_reload($data);
@@ -529,9 +624,10 @@ class Sales extends Secure_Controller
{
$data['invoice_number'] = $invoice_number;
$data['sale_status'] = COMPLETED;
$sale_type = SALE_TYPE_INVOICE;
// Save the data to the sales table
$data['sale_id_num'] = $this->Sale->save($data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $data["quote_number"], $data['payments'], $data['dinner_table'], $data['taxes']);
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
$data['sale_id'] = 'POS ' . $data['sale_id_num'];
// Resort and filter cart lines for printing
@@ -551,10 +647,53 @@ class Sales extends Secure_Controller
}
}
}
elseif($this->sale_lib->is_work_order_mode())
{
if(!($data['price_work_orders'] == 1))
{
$data['print_price_info'] = FALSE;
}
$data['sales_work_order'] = $this->lang->line('sales_work_order');
$data['work_order_number_label'] = $this->lang->line('sales_work_order_number');
if($work_order_number == NULL)
{
// generate work order number
$work_order_format = $this->config->item('work_order_format');
$work_order_number = $this->token_lib->render($work_order_format);
}
if($sale_id == -1 && $this->Sale->check_work_order_number_exists($work_order_number))
{
$data['error'] = $this->lang->line('sales_work_order_number_duplicate');
$this->_reload($data);
}
else
{
$data['work_order_number'] = $work_order_number;
$data['sale_status'] = SUSPENDED;
$sale_type = SALE_TYPE_WORK_ORDER;
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
$this->sale_lib->set_suspended_id($data['sale_id_num']);
$data['cart'] = $this->sale_lib->sort_and_filter_cart($data['cart']);
$data = $this->xss_clean($data);
$data['barcode'] = NULL;
$this->load->view('sales/work_order', $data);
$this->sale_lib->clear_mode();
$this->sale_lib->clear_all();
}
}
elseif($this->sale_lib->is_quote_mode())
{
$invoice_number = NULL;
$quote_number = $this->sale_lib->get_quote_number();
$data['sales_quote'] = $this->lang->line('sales_quote');
$data['quote_number_label'] = $this->lang->line('sales_quote_number');
if($quote_number == NULL)
{
@@ -563,19 +702,18 @@ class Sales extends Secure_Controller
$quote_number = $this->token_lib->render($quote_format);
}
// TODO If duplicate quote then determine the number of employees and repeat until until success or tried the number of employees (if QSEQ was used).
if($this->Sale->check_quote_number_exists($quote_number))
if($sale_id == -1 && $this->Sale->check_quote_number_exists($quote_number))
{
$data['error'] = $this->lang->line('sales_quote_number_duplicate');
$this->_reload($data);
}
else
{
$data['invoice_number'] = $invoice_number;
$data['quote_number'] = $quote_number;
$data['sale_status'] = SUSPENDED;
$sale_type = SALE_TYPE_QUOTE;
$data['sale_id_num'] = $this->Sale->save($data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $quote_number, $data['payments'], $data['dinner_table'], $data['taxes']);
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
$this->sale_lib->set_suspended_id($data['sale_id_num']);
$data['cart'] = $this->sale_lib->sort_and_filter_cart($data['cart']);
@@ -592,8 +730,17 @@ class Sales extends Secure_Controller
else
{
// Save the data to the sales table
$data['sale_status'] = '0'; // Complete
$data['sale_id_num'] = $this->Sale->save($data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], NULL, NULL, $data['payments'], $data['dinner_table'], $data['taxes']);
$data['sale_status'] = COMPLETED;
if($this->sale_lib->is_return_mode())
{
$sale_type = SALE_TYPE_RETURN;
}
else
{
$sale_type = SALE_TYPE_POS;
}
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
$data['sale_id'] = 'POS ' . $data['sale_id_num'];
@@ -640,7 +787,7 @@ class Sales extends Secure_Controller
$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_N") . '-' . str_replace('/', '-', $number) . '.pdf';
$filename = sys_get_temp_dir() . '/' . $this->lang->line("sales_$type") . '-' . str_replace('/', '-', $number) . '.pdf';
if(file_put_contents($filename, pdf_create($html)) !== FALSE)
{
$result = $this->email_lib->sendEmail($to, $subject, $text, $filename);
@@ -691,7 +838,8 @@ class Sales extends Secure_Controller
if($customer_id != -1)
{
$customer_info = $this->Customer->get_info($customer_id);
if(isset($customer_info->company_name))
$data['customer_id'] = $customer_id;
if(!empty($customer_info->company_name))
{
$data['customer'] = $customer_info->company_name;
}
@@ -719,7 +867,7 @@ class Sales extends Secure_Controller
$package_name = $this->Customer_rewards->get_name($package_id);
$points = $this->Customer->get_info($customer_id)->points;
$data['customer_rewards']['package_id'] = $package_id;
$data['customer_rewards']['points'] = ($points==NULL ? 0 : $points);
$data['customer_rewards']['points'] = empty($points) ? 0 : $points;
$data['customer_rewards']['package_name'] = $package_name;
}
@@ -753,7 +901,6 @@ class Sales extends Secure_Controller
$data['taxes'] = $this->sale_lib->get_taxes();
$data['discount'] = $this->sale_lib->get_discount();
$data['receipt_title'] = $this->lang->line('sales_receipt');
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), strtotime($sale_info['sale_time']));
$data['transaction_date'] = date($this->config->item('dateformat'), strtotime($sale_info['sale_time']));
$data['show_stock_locations'] = $this->Stock_location->show_locations('sales');
@@ -801,13 +948,32 @@ class Sales extends Secure_Controller
));
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['sale_id']);
$data['print_after_sale'] = FALSE;
$data['price_work_orders'] = FALSE;
if($this->sale_lib->get_mode() == 'sale_invoice')
{
$data['mode_label'] = $this->lang->line('sales_invoice');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'sale_quote')
{
$data['mode_label'] = $this->lang->line('sales_quote');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'sale_work_order')
{
$data['mode_label'] = $this->lang->line('sales_work_order');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'return')
{
$data['mode_label'] = $this->lang->line('sales_return');
$data['customer_required'] = $this->lang->line('sales_customer_optional');
}
else
{
$data['mode_label'] = $this->lang->line('sales_receipt');
$data['customer_required'] = $this->lang->line('sales_customer_optional');
}
return $this->xss_clean($data);
@@ -815,23 +981,16 @@ class Sales extends Secure_Controller
private function _reload($data = array())
{
$sale_id = $this->session->userdata('sale_id');
if($sale_id == '')
{
$sale_id = -1;
$this->session->set_userdata('sale_id', -1);
}
$data['cart'] = $this->sale_lib->get_cart();
$customer_info = $this->_load_customer_data($this->sale_lib->get_customer(), $data, TRUE);
if($this->config->item('invoice_enable') == '0')
{
$data['modes'] = array(
'sale' => $this->lang->line('sales_sale'),
'return' => $this->lang->line('sales_return'));
}
else
{
$data['modes'] = array(
'sale' => $this->lang->line('sales_sale'),
'sale_invoice' => $this->lang->line('sales_sale_by_invoice'),
'sale_quote' => $this->lang->line('sales_quote'),
'return' => $this->lang->line('sales_return'));
}
$data['modes'] = $this->sale_lib->get_register_mode_options();
$data['mode'] = $this->sale_lib->get_mode();
$data['empty_tables'] = $this->sale_lib->get_empty_tables();
$data['selected_table'] = $this->sale_lib->get_dinner_table();
@@ -841,9 +1000,13 @@ class Sales extends Secure_Controller
$data['taxes'] = $this->sale_lib->get_taxes();
$data['discount'] = $this->sale_lib->get_discount();
$data['payments'] = $this->sale_lib->get_payments();
// sale_type (0=pos, 1=invoice, 2=work order, 3=quote, 4=return)
$sale_type = $this->sale_lib->get_sale_type();
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
$totals = $this->sale_lib->get_totals();
$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'];
@@ -868,7 +1031,7 @@ class Sales extends Secure_Controller
$data['amount_change'] = $data['amount_due'] * -1;
$data['comment'] = $this->sale_lib->get_comment();
$data['email_receipt'] = $this->sale_lib->get_email_receipt();
$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)
{
@@ -878,11 +1041,6 @@ class Sales extends Secure_Controller
{
$data['payment_options'] = $this->Sale->get_payment_options();
}
$quote_number = $this->sale_lib->get_quote_number();
if($quote_number != NULL)
{
$data['quote_number'] = $quote_number;
}
$data['items_module_allowed'] = $this->Employee->has_grant('items', $this->Employee->get_logged_in_employee_info()->person_id);
@@ -894,20 +1052,39 @@ class Sales extends Secure_Controller
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
$data['quote_or_invoice_mode'] = $data['mode'] == 'sale_invoice' || $data['mode'] == 'sale_quote';
$data['sales_or_return_mode'] = $data['mode'] == 'sale' || $data['mode'] == 'return';
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
$data['pos_mode'] = $data['mode'] == 'sale' || $data['mode'] == 'return';
$data['quote_number'] = $this->sale_lib->get_quote_number();
$data['work_order_number'] = $this->sale_lib->get_work_order_number();
if($this->sale_lib->get_mode() == 'sale_invoice')
{
$data['mode_label'] = $this->lang->line('sales_invoice');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'sale_quote')
{
$data['mode_label'] = $this->lang->line('sales_quote');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'sale_work_order')
{
$data['mode_label'] = $this->lang->line('sales_work_order');
$data['customer_required'] = $this->lang->line('sales_customer_required');
}
elseif($this->sale_lib->get_mode() == 'return')
{
$data['mode_label'] = $this->lang->line('sales_return');
$data['customer_required'] = $this->lang->line('sales_customer_optional');
}
else
{
$data['mode_label'] = $this->lang->line('sales_receipt');
$data['customer_required'] = $this->lang->line('sales_customer_optional');
}
$data = $this->xss_clean($data);
$this->load->view("sales/register", $data);
@@ -965,23 +1142,64 @@ class Sales extends Secure_Controller
public function delete($sale_id = -1, $update_inventory = TRUE)
{
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
$sale_ids = $sale_id == -1 ? $this->input->post('ids') : array($sale_id);
$has_grant = $this->Employee->has_grant('sales_delete', $employee_id);
if($this->Sale->delete_list($sale_ids, $employee_id, $update_inventory))
if(!$has_grant)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('sales_successfully_deleted') . ' ' .
count($sale_ids) . ' ' . $this->lang->line('sales_one_or_multiple'), 'ids' => $sale_ids));
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('sales_not_authorized')));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('sales_unsuccessfully_deleted')));
$sale_ids = $sale_id == -1 ? $this->input->post('ids') : array($sale_id);
if($this->Sale->delete_list($sale_ids, $employee_id, $update_inventory))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('sales_successfully_deleted') . ' ' .
count($sale_ids) . ' ' . $this->lang->line('sales_one_or_multiple'), 'ids' => $sale_ids));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('sales_unsuccessfully_deleted')));
}
}
}
public function restore($sale_id = -1, $update_inventory = TRUE)
{
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
$has_grant = $this->Employee->has_grant('sales_delete', $employee_id);
if(!$has_grant)
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('sales_not_authorized')));
}
else
{
$sale_ids = $sale_id == -1 ? $this->input->post('ids') : array($sale_id);
if($this->Sale->restore_list($sale_ids, $employee_id, $update_inventory))
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('sales_successfully_restored') . ' ' .
count($sale_ids) . ' ' . $this->lang->line('sales_one_or_multiple'), 'ids' => $sale_ids));
}
else
{
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('sales_unsuccessfully_restored')));
}
}
}
/**
* This saves the sale from the update sale view (sales/form).
* It only updates the sales table and payments.
* @param int $sale_id
*/
public function save($sale_id = -1)
{
$newdate = $this->input->post('date');
$date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $newdate);
$sale_data = array(
'sale_time' => $date_formatter->format('Y-m-d H:i:s'),
'customer_id' => $this->input->post('customer_id') != '' ? $this->input->post('customer_id') : NULL,
@@ -1035,13 +1253,33 @@ class Sales extends Secure_Controller
}
}
/**
* This is used to cancel a suspended pos sale, quote.
* Completed sales (POS Sales or Invoiced Sales) can not be removed from the system
* Work orders can be canceled but are not physically removed from the sales history
*/
public function cancel()
{
$sale_id = $this->sale_lib->get_sale_id();
if($sale_id != -1 && $sale_id != '')
{
$sale_type = $this->sale_lib->get_sale_type();
if($sale_type == SALE_TYPE_WORK_ORDER)
{
$this->Sale->update_sale_status($sale_id, CANCELED);
}
else
{
$this->Sale->delete($sale_id, FALSE);
$this->session->set_userdata('sale_id', -1);
}
}
$this->sale_lib->clear_all();
$this->_reload();
}
public function discard_quote()
public function discard_suspended_sale()
{
$suspended_id = $this->sale_lib->get_suspended_id();
$this->sale_lib->clear_all();
@@ -1049,8 +1287,15 @@ class Sales extends Secure_Controller
$this->_reload();
}
/**
* Suspend the current sale.
* If the current sale is already suspended then update the existing suspended sale.
* Otherwise create it as a new suspended sale
*/
public function suspend()
{
$mode = $this->sale_lib->get_mode();
$sale_id = $this->sale_lib->get_sale_id();
$dinner_table = $this->sale_lib->get_dinner_table();
$cart = $this->sale_lib->get_cart();
$payments = $this->sale_lib->get_payments();
@@ -1058,13 +1303,20 @@ class Sales extends Secure_Controller
$customer_id = $this->sale_lib->get_customer();
$customer_info = $this->Customer->get_info($customer_id);
$invoice_number = $this->sale_lib->get_invoice_number();
$work_order_number = $this->sale_lib->get_work_order_number();
$quote_number = $this->sale_lib->get_quote_number();
$sale_id = $this->sale_lib->get_sale_id();
$sale_type = $this->sale_lib->get_sale_type();
if($sale_type == '')
{
$sale_type = SALE_TYPE_POS;
}
$comment = $this->sale_lib->get_comment();
$sale_status = $this->sale_lib->is_quote_mode() ? QUOTE : SUSPENDED;
$sale_status = SUSPENDED;
$data = array();
$sales_taxes = array();
if($this->Sale->save($sale_status, $cart, $customer_id, $employee_id, $comment, $invoice_number, $quote_number, $payments, $dinner_table, $sales_taxes) == '-1')
if($this->Sale->save($sale_id, $sale_status, $cart, $customer_id, $employee_id, $comment, $invoice_number, $work_order_number, $quote_number, $sale_type, $payments, $dinner_table, $sales_taxes) == '-1')
{
$data['error'] = $this->lang->line('sales_unsuccessfully_suspended_sale');
}
@@ -1077,6 +1329,9 @@ class Sales extends Secure_Controller
$this->_reload($data);
}
/**
* List suspended sales
*/
public function suspended()
{
$customer_id = $this->sale_lib->get_customer();
@@ -1087,8 +1342,8 @@ class Sales extends Secure_Controller
}
/*
* We will eventually drop the current set of "suspended" tables since suspended sales
* are now stored in the sales tables with a sale_status value of suspended.
* Unsuspended sales are now left in the tables and are only removed
* when they are intentionally cancelled.
*/
public function unsuspend()
{
@@ -1098,9 +1353,11 @@ class Sales extends Secure_Controller
if($sale_id > 0)
{
$this->sale_lib->copy_entire_sale($sale_id);
$this->Sale->delete_suspended_sale($sale_id);
}
// Set current register mode to reflect that of unsuspended order type
$this->change_register_mode($this->sale_lib->get_sale_type());
$this->_reload();
}

View File

@@ -6,7 +6,7 @@ class Secure_Controller extends CI_Controller
* Controllers that are considered secure extend Secure_Controller, optionally a $module_id can
* be set to also check if a user can access a particular module in the system.
*/
public function __construct($module_id = NULL, $submodule_id = NULL)
public function __construct($module_id = NULL, $submodule_id = NULL, $menu_group = NULL)
{
parent::__construct();
@@ -18,8 +18,6 @@ class Secure_Controller extends CI_Controller
redirect('login');
}
$this->track_page($module_id, $module_id);
$logged_in_employee_info = $model->get_logged_in_employee_info();
if(!$model->has_module_grant($module_id, $logged_in_employee_info->person_id) ||
(isset($submodule_id) && !$model->has_module_grant($submodule_id, $logged_in_employee_info->person_id)))
@@ -28,7 +26,31 @@ class Secure_Controller extends CI_Controller
}
// load up global data visible to all the loaded views
$data['allowed_modules'] = $this->Module->get_allowed_modules($logged_in_employee_info->person_id);
$this->load->library('session');
if($menu_group == NULL)
{
$menu_group = $this->session->userdata('menu_group');
}
else
{
$this->session->set_userdata('menu_group', $menu_group);
}
if($menu_group == 'home')
{
$allowed_modules = $this->Module->get_allowed_home_modules($logged_in_employee_info->person_id);
}
else
{
$allowed_modules = $this->Module->get_allowed_office_modules($logged_in_employee_info->person_id);
}
foreach($allowed_modules->result() as $module)
{
$data['allowed_modules'][] = $module;
}
$data['user_info'] = $logged_in_employee_info;
$data['controller_name'] = $module_id;
@@ -53,32 +75,6 @@ class Secure_Controller extends CI_Controller
}
}
protected function track_page($path, $page)
{
if(get_instance()->Appconfig->get('statistics'))
{
$this->load->library('tracking_lib');
if(empty($path))
{
$path = 'home';
$page = 'home';
}
$this->tracking_lib->track_page('controller/' . $path, $page);
}
}
protected function track_event($category, $action, $label, $value = NULL)
{
if(get_instance()->Appconfig->get('statistics'))
{
$this->load->library('tracking_lib');
$this->tracking_lib->track_event($category, $action, $label, $value);
}
}
public function numeric($str)
{
return parse_decimals($str);
@@ -90,13 +86,12 @@ class Secure_Controller extends CI_Controller
foreach($this->input->get() as $str)
{
$result = parse_decimals($str);
$result &= parse_decimals($str);
}
echo $result !== FALSE ? 'true' : 'false';
}
// this is the basic set of methods most OSPOS Controllers will implement
public function index() { return FALSE; }
public function search() { return FALSE; }
@@ -104,6 +99,5 @@ class Secure_Controller extends CI_Controller
public function view($data_item_id = -1) { return FALSE; }
public function save($data_item_id = -1) { return FALSE; }
public function delete() { return FALSE; }
}
?>
?>

View File

@@ -21,7 +21,7 @@ class Suppliers extends Persons
*/
public function get_row($row_id)
{
$data_row = $this->xss_clean(get_supplier_data_row($this->Supplier->get_info($row_id), $this));
$data_row = $this->xss_clean(get_supplier_data_row($this->Supplier->get_info($row_id)));
echo json_encode($data_row);
}
@@ -43,11 +43,9 @@ class Suppliers extends Persons
$data_rows = array();
foreach($suppliers->result() as $supplier)
{
$data_rows[] = get_supplier_data_row($supplier, $this);
$data_rows[] = $this->xss_clean(get_supplier_data_row($supplier));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}

View File

@@ -37,11 +37,9 @@ class Taxes extends Secure_Controller
$data_rows = array();
foreach($tax_codes->result() as $tax_code_row)
{
$data_rows[] = get_tax_data_row($tax_code_row, $this);
$data_rows[] = $this->xss_clean(get_tax_data_row($tax_code_row));
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
@@ -85,7 +83,7 @@ class Taxes extends Secure_Controller
$data['rounding_options'] = Rounding_mode::get_rounding_options();
$data['html_rounding_options'] = $this->get_html_rounding_options();
if ($tax_code == -1)
if($tax_code == -1)
{
$data['tax_code'] = '';
$data['tax_code_name'] = '';
@@ -172,7 +170,7 @@ class Taxes extends Secure_Controller
}
}
if (!empty($tax_code_rate_exceptions))
if(!empty($tax_code_rate_exceptions))
{
$success = $this->Tax->save_tax_rate_exceptions($tax_code_rate_exceptions, $entered_tax_code);
}
@@ -219,4 +217,4 @@ class Taxes extends Secure_Controller
}
}
?>
?>

View File

@@ -1,5 +1,9 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* PDF helper
*/
function pdf_create($html, $filename = '')
{
// need to enable magic quotes for the

View File

@@ -4,31 +4,270 @@
* Currency locale helper
*/
function current_language_code()
function current_language_code($load_system_language = FALSE)
{
return get_instance()->config->item('language_code');
$employee = get_instance()->Employee;
// Returns the language code of the employee if set or system language code if not
if($employee->is_logged_in() && $load_system_language != TRUE)
{
$employee_language_code = $employee->get_logged_in_employee_info()->language_code;
if($employee_language_code != NULL && $employee_language_code != '')
{
return $employee_language_code;
}
}
return get_instance()->config->item('language_code');
}
function current_language()
function current_language($load_system_language = FALSE)
{
return get_instance()->config->item('language');
$employee = get_instance()->Employee;
// Returns the language of the employee if set or system language if not
if($employee->is_logged_in() && $load_system_language != TRUE)
{
$employee_language = $employee->get_logged_in_employee_info()->language;
if($employee_language != NULL && $employee_language != '')
{
return $employee_language;
}
}
return get_instance()->config->item('language');
}
function get_languages()
{
return array(
'ar-EG:arabic' => 'Arabic (Egypt)',
'az-AZ:azerbaijani' => 'Azerbaijani (Azerbaijan)',
'bg:bulgarian' => 'Bulgarian',
'de:german' => 'German (Germany)',
'de-CH:german' => 'German (Swiss)',
'en-GB:english' => 'English (Great Britain)',
'en-US:english' => 'English (United States)',
'es:spanish' => 'Spanish',
'fr:french' => 'French',
'hr-HR:croatian' => 'Croatian (Croatia)',
'hu-HU:hungarian' => 'Hungarian (Hungary)',
'id:indonesian' => 'Indonesian',
'it:italian' => 'Italian',
'km:khmer' => 'Central Khmer (Cambodia)',
'lo:lao' => 'Lao (Laos)',
'nl-BE:dutch' => 'Dutch (Belgium)',
'pt-BR:portuguese-brazilian' => 'Portuguese (Brazil)',
'ru:russian' => 'Russian',
'sv:swedish' => 'Swedish',
'th:thai' => 'Thai',
'tr:turkish' => 'Turkish',
'vi:vietnamese' => 'Vietnamese',
'zh:simplified-chinese' => 'Chinese'
);
}
function load_language($load_system_language = FALSE, array $lang_array)
{
$lang = get_instance()->lang;
if($load_system_language = TRUE)
{
foreach($lang_array as $language_file)
{
$lang->load($language_file, current_language_code(TRUE));
}
}
else
{
foreach($lang_array as $language_file)
{
$lang->load($language_file, current_language_code());
}
}
}
function get_timezones()
{
return array(
'Pacific/Midway' => '(GMT-11:00) Midway Island, Samoa',
'America/Adak' => '(GMT-10:00) Hawaii-Aleutian',
'Etc/GMT+10' => '(GMT-10:00) Hawaii',
'Pacific/Marquesas' => '(GMT-09:30) Marquesas Islands',
'Pacific/Gambier' => '(GMT-09:00) Gambier Islands',
'America/Anchorage' => '(GMT-09:00) Alaska',
'America/Ensenada' => '(GMT-08:00) Tijuana, Baja California',
'Etc/GMT+8' => '(GMT-08:00) Pitcairn Islands',
'America/Los_Angeles' => '(GMT-08:00) Pacific Time (US & Canada)',
'America/Denver' => '(GMT-07:00) Mountain Time (US & Canada)',
'America/Chihuahua' => '(GMT-07:00) Chihuahua, La Paz, Mazatlan',
'America/Dawson_Creek' => '(GMT-07:00) Arizona',
'America/Belize' => '(GMT-06:00) Saskatchewan, Central America',
'America/Cancun' => '(GMT-06:00) Guadalajara, Mexico City, Monterrey',
'Chile/EasterIsland' => '(GMT-06:00) Easter Island',
'America/Chicago' => '(GMT-06:00) Central Time (US & Canada)',
'America/New_York' => '(GMT-05:00) Eastern Time (US & Canada)',
'America/Havana' => '(GMT-05:00) Cuba',
'America/Bogota' => '(GMT-05:00) Bogota, Lima, Quito, Rio Branco',
'America/Caracas' => '(GMT-04:30) Caracas',
'America/Santiago' => '(GMT-04:00) Santiago',
'America/La_Paz' => '(GMT-04:00) La Paz',
'Atlantic/Stanley' => '(GMT-04:00) Falkland Islands',
'America/Campo_Grande' => '(GMT-04:00) Brazil',
'America/Goose_Bay' => '(GMT-04:00) Atlantic Time (Goose Bay)',
'America/Glace_Bay' => '(GMT-04:00) Atlantic Time (Canada)',
'America/St_Johns' => '(GMT-03:30) Newfoundland',
'America/Araguaina' => '(GMT-03:00) UTC-3',
'America/Montevideo' => '(GMT-03:00) Montevideo',
'America/Miquelon' => '(GMT-03:00) Miquelon, St. Pierre',
'America/Godthab' => '(GMT-03:00) Greenland',
'America/Argentina/Buenos_Aires' => '(GMT-03:00) Buenos Aires',
'America/Sao_Paulo' => '(GMT-03:00) Brasilia',
'America/Noronha' => '(GMT-02:00) Mid-Atlantic',
'Atlantic/Cape_Verde' => '(GMT-01:00) Cape Verde Is.',
'Atlantic/Azores' => '(GMT-01:00) Azores',
'Europe/Belfast' => '(GMT) Greenwich Mean Time : Belfast',
'Europe/Dublin' => '(GMT) Greenwich Mean Time : Dublin',
'Europe/Lisbon' => '(GMT) Greenwich Mean Time : Lisbon',
'Europe/London' => '(GMT) Greenwich Mean Time : London',
'Africa/Abidjan' => '(GMT) Monrovia, Reykjavik',
'Europe/Amsterdam' => '(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',
'Europe/Belgrade' => '(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague',
'Europe/Brussels' => '(GMT+01:00) Brussels, Copenhagen, Madrid, Paris',
'Africa/Algiers' => '(GMT+01:00) West Central Africa',
'Africa/Windhoek' => '(GMT+01:00) Windhoek',
'Asia/Beirut' => '(GMT+02:00) Beirut',
'Africa/Cairo' => '(GMT+02:00) Cairo',
'Asia/Gaza' => '(GMT+02:00) Gaza',
'Africa/Blantyre' => '(GMT+02:00) Harare, Pretoria',
'Asia/Jerusalem' => '(GMT+02:00) Jerusalem',
'Europe/Minsk' => '(GMT+02:00) Minsk',
'Asia/Damascus' => '(GMT+02:00) Syria',
'Europe/Moscow' => '(GMT+03:00) Moscow, St. Petersburg, Volgograd',
'Africa/Addis_Ababa' => '(GMT+03:00) Nairobi',
'Asia/Tehran' => '(GMT+03:30) Tehran',
'Asia/Dubai' => '(GMT+04:00) Abu Dhabi, Muscat',
'Asia/Yerevan' => '(GMT+04:00) Yerevan',
'Asia/Kabul' => '(GMT+04:30) Kabul',
'Asia/Baku' => '(GMT+04:00) Baku',
'Asia/Yekaterinburg' => '(GMT+05:00) Ekaterinburg',
'Asia/Tashkent' => '(GMT+05:00) Tashkent',
'Asia/Kolkata' => '(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi',
'Asia/Katmandu' => '(GMT+05:45) Kathmandu',
'Asia/Dhaka' => '(GMT+06:00) Astana, Dhaka',
'Asia/Novosibirsk' => '(GMT+06:00) Novosibirsk',
'Asia/Rangoon' => '(GMT+06:30) Yangon (Rangoon)',
'Asia/Bangkok' => '(GMT+07:00) Bangkok, Hanoi, Jakarta',
'Asia/Krasnoyarsk' => '(GMT+07:00) Krasnoyarsk',
'Asia/Hong_Kong' => '(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi',
'Asia/Irkutsk' => '(GMT+08:00) Irkutsk, Ulaan Bataar',
'Australia/Perth' => '(GMT+08:00) Perth',
'Australia/Eucla' => '(GMT+08:45) Eucla',
'Asia/Tokyo' => '(GMT+09:00) Osaka, Sapporo, Tokyo',
'Asia/Seoul' => '(GMT+09:00) Seoul',
'Asia/Yakutsk' => '(GMT+09:00) Yakutsk',
'Australia/Adelaide' => '(GMT+09:30) Adelaide',
'Australia/Darwin' => '(GMT+09:30) Darwin',
'Australia/Brisbane' => '(GMT+10:00) Brisbane',
'Australia/Hobart' => '(GMT+10:00) Hobart',
'Asia/Vladivostok' => '(GMT+10:00) Vladivostok',
'Australia/Lord_Howe' => '(GMT+10:30) Lord Howe Island',
'Etc/GMT-11' => '(GMT+11:00) Solomon Is., New Caledonia',
'Asia/Magadan' => '(GMT+11:00) Magadan',
'Pacific/Norfolk' => '(GMT+11:30) Norfolk Island',
'Asia/Anadyr' => '(GMT+12:00) Anadyr, Kamchatka',
'Pacific/Auckland' => '(GMT+12:00) Auckland, Wellington',
'Etc/GMT-12' => '(GMT+12:00) Fiji, Kamchatka, Marshall Is.',
'Pacific/Chatham' => '(GMT+12:45) Chatham Islands',
'Pacific/Tongatapu' => '(GMT+13:00) Nuku\'alofa',
'Pacific/Kiritimati' => '(GMT+14:00) Kiritimati'
);
}
function get_dateformats()
{
return array(
'd/m/Y' => 'dd/mm/yyyy',
'd.m.Y' => 'dd.mm.yyyy',
'm/d/Y' => 'mm/dd/yyyy',
'Y/m/d' => 'yyyy/mm/dd',
'd/m/y' => 'dd/mm/yy',
'm/d/y' => 'mm/dd/yy',
'y/m/d' => 'yy/mm/dd'
);
}
function get_timeformats()
{
return array(
'H:i:s' => 'hh:mm:ss (24h)',
'h:i:s a' => 'hh:mm:ss am/pm',
'h:i:s A' => 'hh:mm:ss AM/PM'
);
}
/*
Gets the payment options
*/
function get_payment_options()
{
$config = get_instance()->config;
$lang = get_instance()->lang;
$payments = array();
if($config->item('payment_options_order') == 'debitcreditcash')
{
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
$payments[$lang->line('sales_credit')] = $lang->line('sales_credit');
$payments[$lang->line('sales_cash')] = $lang->line('sales_cash');
}
elseif($config->item('payment_options_order') == 'debitcashcredit')
{
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
$payments[$lang->line('sales_cash')] = $lang->line('sales_cash');
$payments[$lang->line('sales_credit')] = $lang->line('sales_credit');
}
elseif($config->item('payment_options_order') == 'creditdebitcash')
{
$payments[$lang->line('sales_credit')] = $lang->line('sales_credit');
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
$payments[$lang->line('sales_cash')] = $lang->line('sales_cash');
}
elseif($config->item('payment_options_order') == 'creditcashdebit')
{
$payments[$lang->line('sales_credit')] = $lang->line('sales_credit');
$payments[$lang->line('sales_cash')] = $lang->line('sales_cash');
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
}
else // default: if($config->item('payment_options_order') == 'cashdebitcredit')
{
$payments[$lang->line('sales_cash')] = $lang->line('sales_cash');
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
$payments[$lang->line('sales_credit')] = $lang->line('sales_credit');
}
$payments[$lang->line('sales_due')] = $lang->line('sales_due');
$payments[$lang->line('sales_check')] = $lang->line('sales_check');
return $payments;
}
function currency_side()
{
$config = get_instance()->config;
$config = get_instance()->config;
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::CURRENCY);
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::CURRENCY);
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
return !preg_match('/^¤/', $fmt->getPattern());
return !preg_match('/^¤/', $fmt->getPattern());
}
function quantity_decimals()
{
$config = get_instance()->config;
$config = get_instance()->config;
return $config->item('quantity_decimals') ? $config->item('quantity_decimals') : 0;
return $config->item('quantity_decimals') ? $config->item('quantity_decimals') : 0;
}
function totals_decimals()
@@ -54,83 +293,93 @@ function tax_decimals()
function to_currency($number)
{
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
}
function to_currency_no_money($number)
{
return to_decimals($number, 'currency_decimals');
return to_decimals($number, 'currency_decimals');
}
function to_currency_tax($number)
{
$config = get_instance()->config;
if($config->item('customer_sales_tax_support') == '1')
{
if($config->item('customer_sales_tax_support') == '1')
{
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
}
else
{
}
else
{
return to_decimals($number, 'tax_decimals', \NumberFormatter::CURRENCY);
}
}
}
function to_tax_decimals($number)
{
// taxes that are NULL, '' or 0 don't need to be displayed
// NOTE: do not remove this line otherwise the items edit form will show a tax with 0 and it will save it
if(empty($number))
{
return $number;
}
if(empty($number))
{
return $number;
}
return to_decimals($number, 'tax_decimals');
return to_decimals($number, 'tax_decimals');
}
function to_quantity_decimals($number)
{
return to_decimals($number, 'quantity_decimals');
return to_decimals($number, 'quantity_decimals');
}
function to_decimals($number, $decimals, $type=\NumberFormatter::DECIMAL)
{
// ignore empty strings and return
// NOTE: do not change it to empty otherwise tables will show a 0 with no decimal nor currency symbol
if(!isset($number))
{
return $number;
}
if(!isset($number))
{
return $number;
}
$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));
if(empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
}
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
$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));
if(empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
}
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
return $fmt->format($number);
return $fmt->format($number);
}
function parse_decimals($number)
{
// ignore empty strings and return
if(empty($number))
{
return $number;
}
// ignore empty strings and return
if(empty($number))
{
return $number;
}
$config = get_instance()->config;
$fmt = new \NumberFormatter( $config->item('number_locale'), \NumberFormatter::DECIMAL );
if (empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
}
$config = get_instance()->config;
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::DECIMAL);
return $fmt->parse($number);
$fmt->setAttribute(\NumberFormatter::FRACTION_DIGITS, $config->item('currency_decimals'));
if(empty($config->item('thousands_separator')))
{
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
}
try
{
return $fmt->parse($number);
}
catch(Exception $e)
{
return FALSE;
}
}
/*
@@ -139,88 +388,88 @@ function parse_decimals($number)
function dateformat_momentjs($php_format)
{
$SYMBOLS_MATCHING = array(
'd' => 'DD',
'D' => 'ddd',
'j' => 'D',
'l' => 'dddd',
'N' => 'E',
'S' => 'o',
'w' => 'e',
'z' => 'DDD',
'W' => 'W',
'F' => 'MMMM',
'm' => 'MM',
'M' => 'MMM',
'n' => 'M',
't' => '', // no equivalent
'L' => '', // no equivalent
'o' => 'YYYY',
'Y' => 'YYYY',
'y' => 'YY',
'a' => 'a',
'A' => 'A',
'B' => '', // no equivalent
'g' => 'h',
'G' => 'H',
'h' => 'hh',
'H' => 'HH',
'i' => 'mm',
's' => 'ss',
'u' => 'SSS',
'e' => 'zz', // deprecated since version $1.6.0 of moment.js
'I' => '', // no equivalent
'O' => '', // no equivalent
'P' => '', // no equivalent
'T' => '', // no equivalent
'Z' => '', // no equivalent
'c' => '', // no equivalent
'r' => '', // no equivalent
'U' => 'X'
);
$SYMBOLS_MATCHING = array(
'd' => 'DD',
'D' => 'ddd',
'j' => 'D',
'l' => 'dddd',
'N' => 'E',
'S' => 'o',
'w' => 'e',
'z' => 'DDD',
'W' => 'W',
'F' => 'MMMM',
'm' => 'MM',
'M' => 'MMM',
'n' => 'M',
't' => '', // no equivalent
'L' => '', // no equivalent
'o' => 'YYYY',
'Y' => 'YYYY',
'y' => 'YY',
'a' => 'a',
'A' => 'A',
'B' => '', // no equivalent
'g' => 'h',
'G' => 'H',
'h' => 'hh',
'H' => 'HH',
'i' => 'mm',
's' => 'ss',
'u' => 'SSS',
'e' => 'zz', // deprecated since version $1.6.0 of moment.js
'I' => '', // no equivalent
'O' => '', // no equivalent
'P' => '', // no equivalent
'T' => '', // no equivalent
'Z' => '', // no equivalent
'c' => '', // no equivalent
'r' => '', // no equivalent
'U' => 'X'
);
return strtr($php_format, $SYMBOLS_MATCHING);
return strtr($php_format, $SYMBOLS_MATCHING);
}
function dateformat_bootstrap($php_format)
{
$SYMBOLS_MATCHING = array(
// Day
'd' => 'dd',
'D' => 'd',
'j' => 'd',
'l' => 'dd',
'N' => '',
'S' => '',
'w' => '',
'z' => '',
// Week
'W' => '',
// Month
'F' => 'MM',
'm' => 'mm',
'M' => 'M',
'n' => 'm',
't' => '',
// Year
'L' => '',
'o' => '',
'Y' => 'yyyy',
'y' => 'yy',
// Time
'a' => 'p',
'A' => 'P',
'B' => '',
'g' => 'H',
'G' => 'h',
'h' => 'HH',
'H' => 'hh',
'i' => 'ii',
's' => 'ss',
'u' => ''
);
$SYMBOLS_MATCHING = array(
// Day
'd' => 'dd',
'D' => 'd',
'j' => 'd',
'l' => 'dd',
'N' => '',
'S' => '',
'w' => '',
'z' => '',
// Week
'W' => '',
// Month
'F' => 'MM',
'm' => 'mm',
'M' => 'M',
'n' => 'm',
't' => '',
// Year
'L' => '',
'o' => '',
'Y' => 'yyyy',
'y' => 'yy',
// Time
'a' => 'p',
'A' => 'P',
'B' => '',
'g' => 'H',
'G' => 'h',
'h' => 'HH',
'H' => 'hh',
'i' => 'ii',
's' => 'ss',
'u' => ''
);
return strtr($php_format, $SYMBOLS_MATCHING);
return strtr($php_format, $SYMBOLS_MATCHING);
}
?>

View File

@@ -0,0 +1,40 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Migration helper
*/
function execute_script($path)
{
$CI =& get_instance();
$version = preg_replace("/(.*_)?(.*).sql/", "$2", $path);
error_log("Migrating to $version");
$sql = file_get_contents($path);
/*
CI migration only allows you to run one statement at a time.
This small script splits the statements allowing you to run them all in one go.
*/
$sqls = explode(';', $sql);
array_pop($sqls);
foreach($sqls as $statement)
{
$statement = $statement . ';';
if(!$CI->db->simple_query($statement))
{
foreach($CI->db->error() as $error)
{
error_log('error: ' . $error);
}
}
}
error_log("Migrated to $version");
}
?>

View File

@@ -1,5 +1,9 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Report helper
*/
function show_report_if_allowed($report_prefix, $report_name, $person_id, $permission_id = '')
{
$CI =& get_instance();

View File

@@ -1,5 +1,60 @@
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Tabular views helper
*/
/*
Basic tabular headers function
*/
function transform_headers_readonly($array)
{
$result = array();
foreach($array as $key => $value)
{
$result[] = array('field' => $key, 'title' => $value, 'sortable' => $value != '', 'switchable' => !preg_match('(^$|&nbsp)', $value));
}
return json_encode($result);
}
/*
Basic tabular headers function
*/
function transform_headers($array, $readonly = FALSE, $editable = TRUE)
{
$result = array();
if(!$readonly)
{
$array = array_merge(array(array('checkbox' => 'select', 'sortable' => FALSE)), $array);
}
if($editable)
{
$array[] = array('edit' => '');
}
foreach($array as $element)
{
reset($element);
$result[] = array('field' => key($element),
'title' => current($element),
'switchable' => isset($element['switchable']) ? $element['switchable'] : !preg_match('(^$|&nbsp)', current($element)),
'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' : '',
'sorter' => isset($element['sorter']) ? $element ['sorter'] : '');
}
return json_encode($result);
}
/*
Get the header for the sales tabular view
*/
function get_sales_manage_table_headers()
{
$CI =& get_instance();
@@ -20,43 +75,22 @@ function get_sales_manage_table_headers()
$headers[] = array('invoice' => '&nbsp', 'sortable' => FALSE);
}
return transform_headers(array_merge($headers, array(array('receipt' => '&nbsp', 'sortable' => FALSE))));
$headers[] = array('receipt' => '&nbsp', 'sortable' => FALSE);
return transform_headers($headers);
}
/*
Gets the html data rows for the sales.
*/
function get_sale_data_last_row($sales, $controller)
{
$CI =& get_instance();
$sum_amount_due = 0;
$sum_amount_tendered = 0;
$sum_change_due = 0;
foreach($sales->result() as $key=>$sale)
{
$sum_amount_due += $sale->amount_due;
$sum_amount_tendered += $sale->amount_tendered;
$sum_change_due += $sale->change_due;
}
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>'
);
}
function get_sale_data_row($sale, $controller)
Get the html data row for the sales
*/
function get_sale_data_row($sale)
{
$CI =& get_instance();
$controller_name = $CI->uri->segment(1);
$row = array (
'sale_id' => $sale->sale_id,
'sale_time' => date( $CI->config->item('dateformat') . ' ' . $CI->config->item('timeformat'), strtotime($sale->sale_time) ),
'sale_time' => date($CI->config->item('dateformat') . ' ' . $CI->config->item('timeformat'), strtotime($sale->sale_time)),
'customer_name' => $sale->customer_name,
'amount_due' => to_currency($sale->amount_due),
'amount_tendered' => to_currency($sale->amount_tendered),
@@ -82,10 +116,36 @@ function get_sale_data_row($sale, $controller)
return $row;
}
/*
Get the html data last row for the sales
*/
function get_sale_data_last_row($sales)
{
$CI =& get_instance();
$sum_amount_due = 0;
$sum_amount_tendered = 0;
$sum_change_due = 0;
foreach($sales->result() as $key=>$sale)
{
$sum_amount_due += $sale->amount_due;
$sum_amount_tendered += $sale->amount_tendered;
$sum_change_due += $sale->change_due;
}
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>'
);
}
/*
Get the sales payments summary
*/
function get_sales_manage_payments_summary($payments, $sales, $controller)
function get_sales_manage_payments_summary($payments, $sales)
{
$CI =& get_instance();
$table = '<div id="report_summary">';
@@ -110,50 +170,10 @@ function get_sales_manage_payments_summary($payments, $sales, $controller)
return $table;
}
function transform_headers_readonly($array)
{
$result = array();
foreach($array as $key => $value)
{
$result[] = array('field' => $key, 'title' => $value, 'sortable' => $value != '', 'switchable' => !preg_match('(^$|&nbsp)', $value));
}
return json_encode($result);
}
function transform_headers($array, $readonly = FALSE, $editable = TRUE)
{
$result = array();
if (!$readonly)
{
$array = array_merge(array(array('checkbox' => 'select', 'sortable' => FALSE)), $array);
}
if ($editable)
{
$array[] = array('edit' => '');
}
foreach($array as $element)
{
reset($element);
$result[] = array('field' => key($element),
'title' => current($element),
'switchable' => isset($element['switchable']) ?
$element['switchable'] : !preg_match('(^$|&nbsp)', current($element)),
'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' : '',
'sorter' => isset($element['sorter']) ?
$element ['sorter'] : '');
}
return json_encode($result);
}
/*
Get the header for the people tabular view
*/
function get_people_manage_table_headers()
{
$CI =& get_instance();
@@ -174,7 +194,10 @@ function get_people_manage_table_headers()
return transform_headers($headers);
}
function get_person_data_row($person, $controller)
/*
Get the html data row for the person
*/
function get_person_data_row($person)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
@@ -192,6 +215,10 @@ function get_person_data_row($person, $controller)
));
}
/*
Get the header for the customer tabular view
*/
function get_customer_manage_table_headers()
{
$CI =& get_instance();
@@ -213,7 +240,10 @@ function get_customer_manage_table_headers()
return transform_headers($headers);
}
function get_customer_data_row($person, $stats, $controller)
/*
Get the html data row for the customer
*/
function get_customer_data_row($person, $stats)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
@@ -232,6 +262,10 @@ function get_customer_data_row($person, $stats, $controller)
));
}
/*
Get the header for the suppliers tabular view
*/
function get_suppliers_manage_table_headers()
{
$CI =& get_instance();
@@ -254,7 +288,10 @@ function get_suppliers_manage_table_headers()
return transform_headers($headers);
}
function get_supplier_data_row($supplier, $controller)
/*
Get the html data row for the supplier
*/
function get_supplier_data_row($supplier)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
@@ -274,6 +311,10 @@ function get_supplier_data_row($supplier, $controller)
);
}
/*
Get the header for the items tabular view
*/
function get_items_manage_table_headers()
{
$CI =& get_instance();
@@ -296,7 +337,10 @@ function get_items_manage_table_headers()
return transform_headers($headers);
}
function get_item_data_row($item, $controller)
/*
Get the html data row for the item
*/
function get_item_data_row($item)
{
$CI =& get_instance();
$item_tax_info = $CI->Item_taxes->get_info($item->item_id);
@@ -310,7 +354,7 @@ function get_item_data_row($item, $controller)
$controller_name = strtolower(get_class($CI));
$image = NULL;
if ($item->pic_filename != '')
if($item->pic_filename != '')
{
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
if($ext == '')
@@ -324,7 +368,7 @@ function get_item_data_row($item, $controller)
$images = glob('./uploads/item_pics/' . $item->pic_filename);
}
if (sizeof($images) > 0)
if(sizeof($images) > 0)
{
$image .= '<a class="rollover" href="'. base_url($images[0]) .'"><img src="'.site_url('items/pic_thumb/' . pathinfo($images[0], PATHINFO_BASENAME)) . '"></a>';
}
@@ -352,6 +396,10 @@ function get_item_data_row($item, $controller)
));
}
/*
Get the header for the giftcard tabular view
*/
function get_giftcards_manage_table_headers()
{
$CI =& get_instance();
@@ -367,6 +415,29 @@ function get_giftcards_manage_table_headers()
return transform_headers($headers);
}
/*
Get the html data row for the giftcard
*/
function get_giftcard_data_row($giftcard)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
return array (
'giftcard_id' => $giftcard->giftcard_id,
'last_name' => $giftcard->last_name,
'first_name' => $giftcard->first_name,
'giftcard_number' => $giftcard->giftcard_number,
'value' => to_currency($giftcard->value),
'edit' => anchor($controller_name."/view/$giftcard->giftcard_id", '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
));
}
/*
Get the header for the taxes tabular view
*/
function get_taxes_manage_table_headers()
{
$CI =& get_instance();
@@ -384,23 +455,10 @@ function get_taxes_manage_table_headers()
return transform_headers($headers);
}
function get_giftcard_data_row($giftcard, $controller)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
return array (
'giftcard_id' => $giftcard->giftcard_id,
'last_name' => $giftcard->last_name,
'first_name' => $giftcard->first_name,
'giftcard_number' => $giftcard->giftcard_number,
'value' => to_currency($giftcard->value),
'edit' => anchor($controller_name."/view/$giftcard->giftcard_id", '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
));
}
function get_tax_data_row($tax_code_row, $controller)
/*
Get the html data row for the tax
*/
function get_tax_data_row($tax_code_row)
{
$CI =& get_instance();
$controller_name=strtolower(get_class($CI));
@@ -420,6 +478,10 @@ function get_tax_data_row($tax_code_row, $controller)
));
}
/*
Get the header for the item kits tabular view
*/
function get_item_kits_manage_table_headers()
{
$CI =& get_instance();
@@ -428,14 +490,17 @@ function get_item_kits_manage_table_headers()
array('item_kit_id' => $CI->lang->line('item_kits_kit')),
array('name' => $CI->lang->line('item_kits_name')),
array('description' => $CI->lang->line('item_kits_description')),
array('cost_price' => $CI->lang->line('items_cost_price'), 'sortable' => FALSE),
array('unit_price' => $CI->lang->line('items_unit_price'), 'sortable' => FALSE)
array('total_cost_price' => $CI->lang->line('items_cost_price'), 'sortable' => FALSE),
array('total_unit_price' => $CI->lang->line('items_unit_price'), 'sortable' => FALSE)
);
return transform_headers($headers);
}
function get_item_kit_data_row($item_kit, $controller)
/*
Get the html data row for the item kit
*/
function get_item_kit_data_row($item_kit)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
@@ -444,10 +509,133 @@ function get_item_kit_data_row($item_kit, $controller)
'item_kit_id' => $item_kit->item_kit_id,
'name' => $item_kit->name,
'description' => $item_kit->description,
'cost_price' => to_currency($item_kit->total_cost_price),
'unit_price' => to_currency($item_kit->total_unit_price),
'total_cost_price' => to_currency($item_kit->total_cost_price),
'total_unit_price' => to_currency($item_kit->total_unit_price),
'edit' => anchor($controller_name."/view/$item_kit->item_kit_id", '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
));
}
/*
Get the header for the expense categories tabular view
*/
function get_expense_category_manage_table_headers()
{
$CI =& get_instance();
$headers = array(
array('expense_category_id' => $CI->lang->line('expenses_categories_category_id')),
array('category_name' => $CI->lang->line('expenses_categories_name')),
array('category_description' => $CI->lang->line('expenses_categories_description'))
);
return transform_headers($headers);
}
/*
Gets the html data row for the expenses category
*/
function get_expense_category_data_row($expense_category)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
return array (
'expense_category_id' => $expense_category->expense_category_id,
'category_name' => $expense_category->category_name,
'category_description' => $expense_category->category_description,
'edit' => anchor($controller_name."/view/$expense_category->expense_category_id", '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
));
}
/*
Get the header for the expenses tabular view
*/
function get_expenses_manage_table_headers()
{
$CI =& get_instance();
$headers = array(
array('expense_id' => $CI->lang->line('expenses_expense_id')),
array('date' => $CI->lang->line('expenses_date')),
array('supplier_name' => $CI->lang->line('expenses_supplier_name')),
array('supplier_tax_code' => $CI->lang->line('expenses_supplier_tax_code')),
array('amount' => $CI->lang->line('expenses_amount')),
array('tax_amount' => $CI->lang->line('expenses_tax_amount')),
array('payment_type' => $CI->lang->line('expenses_payment')),
array('category_name' => $CI->lang->line('expenses_categories_name')),
array('description' => $CI->lang->line('expenses_description')),
array('createdBy' => $CI->lang->line('expenses_employee'))
);
return transform_headers($headers);
}
/*
Gets the html data row for the expenses.
*/
function get_expenses_data_row($expense)
{
$CI =& get_instance();
$controller_name = strtolower(get_class($CI));
return array (
'expense_id' => $expense->expense_id,
'date' => date($CI->config->item('dateformat') . ' ' . $CI->config->item('timeformat'), strtotime($expense->date)),
'supplier_name' => $expense->supplier_name,
'supplier_tax_code' => $expense->supplier_tax_code,
'amount' => to_currency($expense->amount),
'tax_amount' => to_currency($expense->tax_amount),
'payment_type' => $expense->payment_type,
'category_name' => $expense->category_name,
'description' => $expense->description,
'createdBy' => $expense->first_name.' '. $expense->last_name,
'edit' => anchor($controller_name."/view/$expense->expense_id", '<span class="glyphicon glyphicon-edit"></span>',
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
));
}
/*
Get the html data last row for the expenses
*/
function get_expenses_data_last_row($expense)
{
$CI =& get_instance();
$table_data_rows = '';
$sum_amount_expense = 0;
$sum_tax_amount_expense = 0;
foreach($expense->result() as $key=>$expense)
{
$sum_amount_expense += $expense->amount;
$sum_tax_amount_expense += $expense->tax_amount;
}
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>'
);
}
/*
Get the expenses payments summary
*/
function get_expenses_manage_payments_summary($payments, $expenses)
{
$CI =& get_instance();
$table = '<div id="report_summary">';
foreach($payments as $key=>$payment)
{
$amount = $payment['amount'];
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency($amount) . '</div>';
}
$table .= '</div>';
return $table;
}
?>

View File

@@ -1,5 +1,8 @@
<?php
// Name of function same as mentioned in Hooks Config
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Name of function same as mentioned in Hooks Config
*/
function db_log_queries()
{
$CI = & get_instance();
@@ -14,7 +17,7 @@ function db_log_queries()
// Get execution time of all the queries executed by controller
$times = $CI->db->query_times;
foreach ($CI->db->queries as $key => $query)
foreach($CI->db->queries as $key => $query)
{
// Generating SQL file alongwith execution time
$sql = $query . " \n Execution Time:" . $times[$key];
@@ -26,4 +29,5 @@ function db_log_queries()
fclose($handle);
}
}
?>
?>

View File

@@ -1,5 +1,8 @@
<?php
//Loads configuration from database into global CI config
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Loads configuration from database into global CI config
*/
function load_config()
{
$CI =& get_instance();
@@ -13,14 +16,14 @@ function load_config()
if(!empty(current_language()))
{
// fallback to English if language folder does not exist
if (!file_exists('../application/language/' . current_language_code()))
if(!file_exists('../application/language/' . current_language_code()))
{
$CI->config->set_item('language', 'english');
$CI->config->set_item('language_code', 'en-US');
}
load_language_files('../vendor/codeigniter/framework/system/language', current_language());
load_language_files('../application/language', current_language_code());
_load_language_files($CI, '../vendor/codeigniter/framework/system/language', current_language());
_load_language_files($CI, '../application/language', current_language_code());
}
//Set timezone from config database
@@ -37,13 +40,12 @@ function load_config()
}
/**
* @param $language
* @param $CI
* @param $path
* @param $language
*/
function load_language_files($path, $language)
function _load_language_files($CI, $path, $language)
{
$CI =& get_instance();
$map = directory_map($path . DIRECTORY_SEPARATOR . $language);
foreach($map as $file)

View File

@@ -1,58 +0,0 @@
<?php
function load_stats()
{
$CI =& get_instance();
$line = $CI->lang->line('common_you_are_using_ospos');
if(count($CI->session->userdata('session_sha1')) == 0)
{
$footer_tags = file_get_contents(APPPATH . 'views/partial/footer.php');
$d = preg_replace('/\$Id:\s.*?\s\$/', '$Id$', $footer_tags);
$session_sha1 = sha1("blob " .strlen( $d ). "\0" . $d);
$CI->session->set_userdata('session_sha1', substr($session_sha1, 0, 7));
preg_match('/\$Id:\s(.*?)\s\$/', $footer_tags, $matches);
$needle = 'Open Source Point Of Sale';
if(!stristr($line, $needle) || $session_sha1 != $matches[1])
{
$CI->load->library('tracking_lib');
$roguer = $CI->Appconfig->get('company') . ' | ' . $CI->Appconfig->get('address') . ' | ' . $CI->Appconfig->get('email') . ' | ' . $CI->Appconfig->get('website') . ' | ' . $CI->config->item('base_url');
$CI->tracking_lib->track_page('rogue/roguer', 'roguer', $roguer);
$CI->tracking_lib->track_page('rogue/footer', 'rogue footer', $footer_tags);
$login_footer = '';
if($handle = @fopen(APPPATH . 'views/login.php', 'r'))
{
while(!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $needle) !== FALSE)
{
$login_footer = '';
}
elseif(strpos($buffer, 'form_close') !== FALSE)
{
$login_footer = 'Footer: ';
}
elseif($login_footer != '')
{
$login_footer .= $buffer;
}
}
fclose($handle);
}
if($login_footer != '')
{
$CI->tracking_lib->track_page('rogue/login', 'rogue login', $login_footer);
}
}
}
}
?>

View File

@@ -14,13 +14,13 @@ $lang["common_det"] = "تفاصيل";
$lang["common_download_import_template"] = "تنزيل قالب الاستيراد من اكسل (CSV)";
$lang["common_edit"] = "تحرير";
$lang["common_email"] = "بريد إلكتروني";
$lang["common_email_invalid_format"] = "شكل البريد الإلكتروني غير صحيح";
$lang["common_email_invalid_format"] = "شكل البريد الإلكتروني غير صحيح.";
$lang["common_export_excel"] = "تصدير إلى اكسل";
$lang["common_export_excel_no"] = "لا";
$lang["common_export_excel_yes"] = "نعم";
$lang["common_fields_required_message"] = "الحقول التي بالأحمر مطلوبة";
$lang["common_first_name"] = "الاسم الأول";
$lang["common_first_name_required"] = "الاسم الأول مطلوب";
$lang["common_first_name_required"] = "الاسم الأول مطلوب.";
$lang["common_first_page"] = "الأول";
$lang["common_gender"] = "النوع";
$lang["common_gender_female"] = "أنثى";
@@ -34,14 +34,14 @@ $lang["common_import_remove_file"] = "إزالة";
$lang["common_import_select_file"] = "اختار ملف";
$lang["common_inv"] = "المخزن";
$lang["common_last_name"] = "الاسم الأخير";
$lang["common_last_name_required"] = "الاسم الأخير مطلوب";
$lang["common_last_name_required"] = "الاسم الأخير مطلوب.";
$lang["common_last_page"] = "الأخيرة";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع";
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
$lang["common_list_of"] = "قائمة بـ";
$lang["common_logout"] = "خروج";
$lang["common_new"] = "جديد";
$lang["common_no_persons_to_display"] = "لا يوجد اناس لعرضهم";
$lang["common_none_selected_text"] = "لم يتم اختيار شيء";
$lang["common_no_persons_to_display"] = "لا يوجد اناس لعرضهم.";
$lang["common_none_selected_text"] = "لم يتم اختيار شيء.";
$lang["common_or"] = "أو";
$lang["common_phone_number"] = "رقم التليفون";
$lang["common_phone_number_required"] = "رقم التليفون مطلوب";
@@ -51,17 +51,18 @@ $lang["common_price"] = "السعر";
$lang["common_print"] = "طباعة";
$lang["common_remove"] = "إزالة";
$lang["common_required"] = "مطلوب";
$lang["common_restore"] = "الإستعادة";
$lang["common_return_policy"] = "سياسة الاسترجاع";
$lang["common_search"] = "بحث";
$lang["common_search_options"] = "خيارات البحث";
$lang["common_searched_for"] = "بحث عن";
$lang["common_state"] = "المحافظة";
$lang["common_submit"] = "حفظ";
$lang["common_total_spent"] = "";
$lang["common_unknown"] = "";
$lang["common_total_spent"] = "مجموع الصرف";
$lang["common_unknown"] = "غير معروف";
$lang["common_view_recent_sales"] = "عرض أحدث المبيعات";
$lang["common_website"] = "الموقع الإلكترونى";
$lang["common_welcome"] = "مرحباً";
$lang["common_welcome_message"] = "مرحباً فى OSPOS برجاء إختيار أى قسم للبدء";
$lang["common_you_are_using_ospos"] = "أنت تستخدم إصدار Open Source Point Of Sale ";
$lang["common_welcome_message"] = "مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.";
$lang["common_you_are_using_ospos"] = "أنت تستخدم إصدار Open Source Point Of Sale";
$lang["common_zip"] = "الرقم البريدى";

View File

@@ -1,7 +1,7 @@
<?php
<?php
$lang["config_address"] = "عنوان الشركة";
$lang["config_address_required"] = "عنوان الشركة مطلوب";
$lang["config_address_required"] = "عنوان الشركة مطلوب.";
$lang["config_allow_duplicate_barcodes"] = "السماح بتشابة الباركود";
$lang["config_apostrophe"] = "الفاصلة";
$lang["config_backup_button"] = "نسخ إحتياطى";
$lang["config_backup_database"] = "نسخ إحتياطى لقاعدة البيانات";
@@ -11,8 +11,8 @@ $lang["config_barcode_configuration"] = "اعدادات الباركود";
$lang["config_barcode_content"] = "محتويات الباركود";
$lang["config_barcode_first_row"] = "الصف 1";
$lang["config_barcode_font"] = "الخط";
$lang["config_barcode_formats"] = "";
$lang["config_barcode_generate_if_empty"] = "توليد اذا كان الباركود فارغ";
$lang["config_barcode_formats"] = "اشكال الادخال";
$lang["config_barcode_generate_if_empty"] = "توليد اذا كان الباركود فارغ.";
$lang["config_barcode_height"] = "الارتفاع (px)";
$lang["config_barcode_id"] = "كود/اسم الصنف";
$lang["config_barcode_info"] = "معلومات اعدادات الباركود";
@@ -20,18 +20,18 @@ $lang["config_barcode_layout"] = "تخطيط الباركود";
$lang["config_barcode_name"] = "الاسم";
$lang["config_barcode_number"] = "الباركود UPC/EAN/ISBN";
$lang["config_barcode_number_in_row"] = "الرقم فى الصف";
$lang["config_barcode_page_cellspacing"] = "المسافة بين الخلايا فى صفحة العرض";
$lang["config_barcode_page_cellspacing"] = "المسافة بين الخلايا فى صفحة العرض.";
$lang["config_barcode_page_width"] = "عرض الصفحة";
$lang["config_barcode_price"] = "السعر";
$lang["config_barcode_quality"] = "الجودة (1-100)";
$lang["config_barcode_second_row"] = "الصف 2";
$lang["config_barcode_third_row"] = "الصف 3";
$lang["config_barcode_tooltip"] = "تحذير: قد تؤدي هذه الميزة إلى استيراد اصناف مكررة أو إنشاؤها. لا تستخدمها إذا كنت لا تريد الباركود مكررة.";
$lang["config_barcode_type"] = "نوعية الباركود";
$lang["config_barcode_width"] = "العرض (px)";
$lang["config_bottom"] = "الأسفل";
$lang["config_cash_decimals"] = "";
$lang["config_cash_decimals_tooltip"] = "";
$lang["config_cash_rounding"] = "";
$lang["config_cash_decimals"] = "فواصل النقدية";
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
$lang["config_cash_rounding"] = "التقريب النقدي";
$lang["config_center"] = "الوسط";
$lang["config_comma"] = "فاصلة";
$lang["config_company"] = "اسم الشركة";
@@ -40,9 +40,9 @@ $lang["config_company_logo"] = "شعار الشركة";
$lang["config_company_remove_image"] = "إزالة الصورة";
$lang["config_company_required"] = "اسم الشركة مطلوب";
$lang["config_company_select_image"] = "اختار صورة";
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح";
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح.";
$lang["config_country_codes"] = "أكواد الدولة";
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث";
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث.";
$lang["config_currency_decimals"] = "العلامة العشرية للعملة";
$lang["config_currency_symbol"] = "رمز العملة";
$lang["config_custom1"] = "حقل مخصص 1";
@@ -55,81 +55,87 @@ $lang["config_custom6"] = "حقل مخصص 6";
$lang["config_custom7"] = "حقل مخصص 7";
$lang["config_custom8"] = "حقل مخصص 8";
$lang["config_custom9"] = "حقل مخصص 9";
$lang["config_customer_reward"] = "";
$lang["config_customer_reward_duplicate"] = "";
$lang["config_customer_reward_enable"] = "";
$lang["config_customer_reward_invalid_chars"] = "";
$lang["config_customer_reward_required"] = "";
$lang["config_customer_sales_tax_support"] = "";
$lang["config_date_or_time_format"] = "";
$lang["config_customer_reward"] = "المكافآت";
$lang["config_customer_reward_duplicate"] = "المكافئة يجب ان تكون فريدة.";
$lang["config_customer_reward_enable"] = "تمكين مكافآت العميل";
$lang["config_customer_reward_invalid_chars"] = "لا يمكن أن تحتوي المكافأة على '_'";
$lang["config_customer_reward_required"] = "المكافأة هي حقل مطلوب";
$lang["config_customer_sales_tax_support"] = "دعم الضرائب المبيعات العملاء";
$lang["config_date_or_time_format"] = "تصفية التاريخ والوقت";
$lang["config_datetimeformat"] = "شكل الوقت و التاريخ";
$lang["config_decimal_point"] = "العلامة العشرية";
$lang["config_default_barcode_font_size_number"] = "الحجم الافتراضي لخط الباركود لابد أن يكون رقم";
$lang["config_default_barcode_font_size_required"] = "الحجم الافتراضي لخط الباركود مطلوب";
$lang["config_default_barcode_height_number"] = "الارتفاع الافتراضي للباركود لابد ان يكون رقم";
$lang["config_default_barcode_height_required"] = "الارتفاع الافتراضي للباركود مطلوب";
$lang["config_default_barcode_num_in_row_number"] = "رقم الباركود فى اى سطر لابد ان يكون رقم";
$lang["config_default_barcode_num_in_row_required"] = "رقم الباركود فى اى سطر مطلوب";
$lang["config_default_barcode_page_cellspacing_number"] = "المسافة الافتراضية بين خلايا الباركود لابد أن تكون رقم";
$lang["config_default_barcode_page_cellspacing_required"] = "المسافة الافتراضية بين خلايا الباركود مطلوبة";
$lang["config_default_barcode_page_width_number"] = "عرض الصفحة الافتراضي للباركود لابد ان يكون رقم";
$lang["config_default_barcode_page_width_required"] = "عرض الصفحة الافتراضي للباركود مطلوب";
$lang["config_default_barcode_quality_number"] = "الجودة الافتراضية للباركود لابد ان تكون رقم";
$lang["config_default_barcode_quality_required"] = "الجودة الافتراضية للباركود مطلوبة";
$lang["config_default_barcode_width_number"] = "العرض الافتراضي للباركود لابد ان يكون رقم";
$lang["config_default_barcode_width_required"] = "العرض الافتراضي للباركود مطلوب";
$lang["config_default_origin_tax_code"] = "";
$lang["config_default_barcode_font_size_number"] = "الحجم الافتراضي لخط الباركود لابد أن يكون رقم.";
$lang["config_default_barcode_font_size_required"] = "الحجم الافتراضي لخط الباركود مطلوب.";
$lang["config_default_barcode_height_number"] = "الارتفاع الافتراضي للباركود لابد ان يكون رقم.";
$lang["config_default_barcode_height_required"] = "الارتفاع الافتراضي للباركود مطلوب.";
$lang["config_default_barcode_num_in_row_number"] = "رقم الباركود فى اى سطر لابد ان يكون رقم.";
$lang["config_default_barcode_num_in_row_required"] = "رقم الباركود فى اى سطر مطلوب.";
$lang["config_default_barcode_page_cellspacing_number"] = "المسافة الافتراضية بين خلايا الباركود لابد أن تكون رقم.";
$lang["config_default_barcode_page_cellspacing_required"] = "المسافة الافتراضية بين خلايا الباركود مطلوبة.";
$lang["config_default_barcode_page_width_number"] = "عرض الصفحة الافتراضي للباركود لابد ان يكون رقم.";
$lang["config_default_barcode_page_width_required"] = "عرض الصفحة الافتراضي للباركود مطلوب.";
$lang["config_default_barcode_width_number"] = "العرض الافتراضي للباركود لابد ان يكون رقم.";
$lang["config_default_barcode_width_required"] = "العرض الافتراضي للباركود مطلوب.";
$lang["config_default_origin_tax_code"] = "كود الضريبة الاساسي الافتراضي";
$lang["config_default_sales_discount"] = "نسبة الخصم الافتراضية %";
$lang["config_default_sales_discount_number"] = "نسبة الخصم الافتراضية لابد ان تكون رقم";
$lang["config_default_sales_discount_required"] = "نسبة الخصم الافتراضية مطلوبة";
$lang["config_default_tax_name_number"] = "";
$lang["config_default_tax_name_required"] = "اسم الضريبة الافتراضية مطلوب";
$lang["config_default_sales_discount_number"] = "نسبة الخصم الافتراضية لابد ان تكون رقم.";
$lang["config_default_sales_discount_required"] = "نسبة الخصم الافتراضية مطلوبة.";
$lang["config_default_tax_name_number"] = "يجب أن يكون الاسم الافتراضي للضريبة سلسلة.";
$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_number"] = "معدل الضريبة الافتراضي يجب أن يكون رقم";
$lang["config_default_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب";
$lang["config_dinner_table"] = "";
$lang["config_dinner_table_duplicate"] = "";
$lang["config_dinner_table_enable"] = "";
$lang["config_dinner_table_invalid_chars"] = "";
$lang["config_dinner_table_required"] = "";
$lang["config_default_tax_rate_number"] = "معدل الضريبة الافتراضي يجب أن يكون رقم.";
$lang["config_default_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب.";
$lang["config_derive_sale_quantity"] = "السماح بأسعار البيع المشتقة";
$lang["config_derive_sale_quantity_tooltip"] = "إذا تم تحديدها، فسيتم توفير نوع جديد من الاصناف للاصناف المطلوبة حسب المبلغ الموسع";
$lang["config_dinner_table"] = "طاولة";
$lang["config_dinner_table_duplicate"] = "الطاولة يجب ان تكون فريدة.";
$lang["config_dinner_table_enable"] = "تمكين جداول الطاولات";
$lang["config_dinner_table_invalid_chars"] = "لا يمكن أن يحتوي اسم الطاولة على '_'.";
$lang["config_dinner_table_required"] = "الطاولة هو حقل مطلوب.";
$lang["config_dot"] = "نقطة";
$lang["config_email"] = "البريد الإلكتروني";
$lang["config_email_configuration"] = "إعدادات البريد الإلكتروني";
$lang["config_email_mailpath"] = "مسار ارسال البريد";
$lang["config_email_protocol"] = "بروتوكول";
$lang["config_email_receipt_check_behaviour"] = "ارسال رسائل الكترونية";
$lang["config_email_receipt_check_behaviour_always"] = "مختار دائما";
$lang["config_email_receipt_check_behaviour_last"] = "تذكر آخر إختيار";
$lang["config_email_receipt_check_behaviour_never"] = "دائما غير مختار";
$lang["config_email_smtp_crypto"] = "تشفير SMTP";
$lang["config_email_smtp_host"] = "خادم SMTP";
$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_enforce_privacy"] = "فرض نظام الخصوصية";
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
$lang["config_fax"] = "الفاكس";
$lang["config_financial_year"] = "";
$lang["config_financial_year_apr"] = "";
$lang["config_financial_year_aug"] = "";
$lang["config_financial_year_dec"] = "";
$lang["config_financial_year_feb"] = "";
$lang["config_financial_year_jan"] = "";
$lang["config_financial_year_jul"] = "";
$lang["config_financial_year_jun"] = "";
$lang["config_financial_year_mar"] = "";
$lang["config_financial_year_may"] = "";
$lang["config_financial_year_nov"] = "";
$lang["config_financial_year_oct"] = "";
$lang["config_financial_year_sep"] = "";
$lang["config_gcaptcha_enable"] = "";
$lang["config_gcaptcha_secret_key"] = "";
$lang["config_gcaptcha_secret_key_required"] = "";
$lang["config_gcaptcha_site_key"] = "";
$lang["config_gcaptcha_site_key_required"] = "";
$lang["config_gcaptcha_tooltip"] = "";
$lang["config_financial_year"] = "بداية السنة المالية";
$lang["config_financial_year_apr"] = "1 أبريل";
$lang["config_financial_year_aug"] = "1 أغسطس";
$lang["config_financial_year_dec"] = "1 ديسمبر";
$lang["config_financial_year_feb"] = "1 فبراير";
$lang["config_financial_year_jan"] = "1 يناير";
$lang["config_financial_year_jul"] = "1 يوليو";
$lang["config_financial_year_jun"] = "1 يونيو";
$lang["config_financial_year_mar"] = "1 مارس";
$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_gcaptcha_enable"] = "صفحة تسجيل الدخول ريكابتشا";
$lang["config_gcaptcha_secret_key"] = "مفتاح السرية ريكابتشا";
$lang["config_gcaptcha_secret_key_required"] = "مفتاح السرية ريكابتشا هو حقل مطلوب";
$lang["config_gcaptcha_site_key"] = "ريكابتشا مفتاح الموقع";
$lang["config_gcaptcha_site_key_required"] = "ريكابتشا مفتاح الموقع هو حقل مطلوب";
$lang["config_gcaptcha_tooltip"] = "احرص على حماية صفحة تسجيل الدخول باستخدام ريكابتشا من غوغل.";
$lang["config_general"] = "عام";
$lang["config_general_configuration"] = "إعدادات عامة";
$lang["config_giftcard_number"] = "";
$lang["config_giftcard_random"] = "";
$lang["config_giftcard_series"] = "";
$lang["config_giftcard_number"] = "رقم كارت الهدية";
$lang["config_giftcard_random"] = "توليد عشوائي";
$lang["config_giftcard_series"] = "توليد في السلسلة";
$lang["config_info"] = "معلومات";
$lang["config_info_configuration"] = "معلومات الشركة";
$lang["config_invoice"] = "الفاتورة";
@@ -142,31 +148,32 @@ $lang["config_jsprintsetup_required"] = "تحذير! هذه الخاصية غي
$lang["config_language"] = "اللغة";
$lang["config_last_used_invoice_number"] = "اخر رقم مستخدم للفاتورة";
$lang["config_last_used_quote_number"] = "اخر رقم مستخدم لعرض الاسعار";
$lang["config_last_used_work_order_number"] = "آخر رقم مستخدم في طلبات العمل";
$lang["config_left"] = "يسار";
$lang["config_license"] = "الرخصة";
$lang["config_license_configuration"] = "نص الرخصة";
$lang["config_line_sequence"] = "تسلسل خطي";
$lang["config_lines_per_page"] = "عدد السطور فى الصفحة";
$lang["config_lines_per_page_number"] = "عدد السطور فى الصفحة يجب أن يكون رقم";
$lang["config_lines_per_page_required"] = "عدد السطور فى الصفحة مطلوب";
$lang["config_lines_per_page_number"] = "عدد السطور فى الصفحة يجب أن يكون رقم.";
$lang["config_lines_per_page_required"] = "عدد السطور فى الصفحة مطلوب.";
$lang["config_locale"] = "إقليمية";
$lang["config_locale_configuration"] = "الإعدادات الإقليمية";
$lang["config_locale_info"] = "معلومات التهيئة الإقليمية";
$lang["config_location"] = "المخزون";
$lang["config_location_configuration"] = "أماكن المخزون";
$lang["config_location_info"] = "معلومات تهيئة الأماكن";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج";
$lang["config_logout"] = "هل تريد عمل نسخة إحتياطية قبل الخروج؟ اضغط [نعم] لعمل النسخة أو [الغاء] للخروج.";
$lang["config_mailchimp"] = "mailchimp ميل تشامب";
$lang["config_mailchimp_api_key"] = "mailchimp مفتاح";
$lang["config_mailchimp_configuration"] = "إعدادات mailchimp";
$lang["config_mailchimp_key_successfully"] = "نجاح";
$lang["config_mailchimp_key_unsuccessfully"] = "فشل";
$lang["config_mailchimp_key_successfully"] = "نجاح.";
$lang["config_mailchimp_key_unsuccessfully"] = "فشل.";
$lang["config_mailchimp_lists"] = "mailchimp قوائم";
$lang["config_mailchimp_tooltip"] = "";
$lang["config_mailchimp_tooltip"] = "انقر على رمز مفتاح API.";
$lang["config_message"] = "الرسائل";
$lang["config_message_configuration"] = "إعدادات الرسائل";
$lang["config_msg_msg"] = "الرسائل النصية المحفوظة";
$lang["config_msg_msg_placeholder"] = "إذا أردت إستخدام قالب للرسائل القصيرة احفظه هنا. عدا ذلك أترك هذا الحقل فارغ";
$lang["config_msg_msg_placeholder"] = "إذا أردت إستخدام قالب للرسائل القصيرة احفظه هنا. عدا ذلك أترك هذا الحقل فارغ.";
$lang["config_msg_pwd"] = "SMS-API كلمة السر لـ";
$lang["config_msg_pwd_required"] = "مطلوب SMS-API كلمة السر لـ";
$lang["config_msg_src"] = "SMS-API كود المرسل لـ";
@@ -177,34 +184,42 @@ $lang["config_none"] = "لايوجد";
$lang["config_notify_alignment"] = "مكان عرض رسائل المعلومات";
$lang["config_number_format"] = "شكل الرقم";
$lang["config_number_locale"] = "التهيئة الاقليمية";
$lang["config_number_locale_invalid"] = "التهيئة الإقليمية المختارة غير صحية، راجع الرابط الموجود فى الملاحظة لاختيار تهيئة مناسبة";
$lang["config_number_locale_required"] = "رقم التهيئة الإقليمية مطلوب";
$lang["config_number_locale_tooltip"] = "إيجاد تهيئة إقليمية مناسبة عبر الرابط";
$lang["config_number_locale_invalid"] = "التهيئة الإقليمية المختارة غير صحية، راجع الرابط الموجود فى الملاحظة لاختيار تهيئة مناسبة.";
$lang["config_number_locale_required"] = "رقم التهيئة الإقليمية مطلوب.";
$lang["config_number_locale_tooltip"] = "إيجاد تهيئة إقليمية مناسبة عبر الرابط.";
$lang["config_payment_options_order"] = "ترتيب خيارات الدفع";
$lang["config_phone"] = "هاتف الشركة";
$lang["config_phone_required"] = "هاتف الشركة مطلوب";
$lang["config_phone_required"] = "هاتف الشركة مطلوب.";
$lang["config_print_bottom_margin"] = "الهامش السفلي";
$lang["config_print_bottom_margin_number"] = "الهامش السفلي يجب أن يكون رقم";
$lang["config_print_bottom_margin_required"] = "الهامش السفلي مطلوب";
$lang["config_print_bottom_margin_number"] = "الهامش السفلي يجب أن يكون رقم.";
$lang["config_print_bottom_margin_required"] = "الهامش السفلي مطلوب.";
$lang["config_print_delay_autoreturn"] = "العودة الى عمليات البيع تلقائيا ( عدد الثواني )";
$lang["config_print_delay_autoreturn_number"] = "الزمن المحدد للعودة الى عمليات البيع هو خانة اجبارية.";
$lang["config_print_delay_autoreturn_required"] = "الزمن المحدد للعودة الى عمليات البيع يجب ان يكون رقم.";
$lang["config_print_footer"] = "طباعة تذييل المتصفح";
$lang["config_print_header"] = "طباعة ترويسة المتصفح";
$lang["config_print_left_margin"] = "الهامش الأيسر";
$lang["config_print_left_margin_number"] = "الهامش الأيسر يجب ان يكون رقم";
$lang["config_print_left_margin_required"] = "الهامش الأيسر مطلوب";
$lang["config_print_left_margin_number"] = "الهامش الأيسر يجب ان يكون رقم.";
$lang["config_print_left_margin_required"] = "الهامش الأيسر مطلوب.";
$lang["config_print_receipt_check_behaviour"] = "خانة طباعة الفواتير";
$lang["config_print_receipt_check_behaviour_always"] = "دائما مختار";
$lang["config_print_receipt_check_behaviour_last"] = "تذكر آخر اختيار";
$lang["config_print_receipt_check_behaviour_never"] = "دائما ليس مختار";
$lang["config_print_right_margin"] = "الهامش الأيمن";
$lang["config_print_right_margin_number"] = "الهامش الأيمن يجب أن يكون رقم";
$lang["config_print_right_margin_required"] = "الهامش الأيمن مطلوب";
$lang["config_print_right_margin_number"] = "الهامش الأيمن يجب أن يكون رقم.";
$lang["config_print_right_margin_required"] = "الهامش الأيمن مطلوب.";
$lang["config_print_silently"] = "عرض صندوق حوار طباعة";
$lang["config_print_top_margin"] = "الهامش العلوى";
$lang["config_print_top_margin_number"] = "الهامش العلوى يجب أن يكون رقم";
$lang["config_print_top_margin_required"] = "الهامش العلوى مطلوب";
$lang["config_print_top_margin_number"] = "الهامش العلوى يجب أن يكون رقم.";
$lang["config_print_top_margin_required"] = "الهامش العلوى مطلوب.";
$lang["config_quantity_decimals"] = "العلامة العشرية للكمية";
$lang["config_quote_default_comments"] = "ملاحظات طلبات العمل الثابتة";
$lang["config_receipt"] = "الإيصال";
$lang["config_receipt_configuration"] = "إعدادات طباعة الايصالات";
$lang["config_receipt_default"] = "افتراضى";
$lang["config_receipt_font_size"] = "";
$lang["config_receipt_font_size_number"] = "";
$lang["config_receipt_font_size_required"] = "";
$lang["config_receipt_font_size"] = "الخط";
$lang["config_receipt_font_size_number"] = "رقم الخط يجب ان يكون رقم.";
$lang["config_receipt_font_size_required"] = "رقم الخط مطلوب.";
$lang["config_receipt_info"] = "معلومات تهيئة الإيصالات";
$lang["config_receipt_printer"] = "طابعة تذاكر";
$lang["config_receipt_short"] = "مختصر";
@@ -217,26 +232,34 @@ $lang["config_receipt_template"] = "قالب الايصال";
$lang["config_receiving_calculate_average_price"] = "حساب متوسط سعر الأصناف المستلمة";
$lang["config_recv_invoice_format"] = "شكل فاتورة الإستلام";
$lang["config_register_mode_default"] = "نمط التسجيل الافتراضي";
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب";
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب.";
$lang["config_reward"] = "المكافاة";
$lang["config_reward_configuration"] = "اعدادات المكافاة";
$lang["config_right"] = "يمين";
$lang["config_sales_invoice_format"] = "شكل فاتورة البيع";
$lang["config_sales_quote_format"] = "شكل فاتورة عرض الاسعار";
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح";
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح";
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
$lang["config_show_office_group"] = "اظهار ايكونة المكتب";
$lang["config_statistics"] = "إرسال اﻹحصائيات";
$lang["config_statistics_tooltip"] = "إرسال اﻹحصائيات ﻷغراض التطوير و التحسين";
$lang["config_statistics_tooltip"] = "إرسال اﻹحصائيات ﻷغراض التطوير و التحسين.";
$lang["config_stock_location"] = "مكان المخزون";
$lang["config_stock_location_duplicate"] = "من فضلك إستخدم اسم مكان غير مكرر";
$lang["config_stock_location_invalid_chars"] = "مكان المخزون لايمكن أن يحتوى على '_'";
$lang["config_stock_location_required"] = "مكان المخزون مطلوب";
$lang["config_stock_location_duplicate"] = "من فضلك إستخدم اسم مكان غير مكرر.";
$lang["config_stock_location_invalid_chars"] = "مكان المخزون لايمكن أن يحتوى على '_'.";
$lang["config_stock_location_required"] = "مكان المخزون مطلوب.";
$lang["config_suggestions_first_column"] = "العامود 1";
$lang["config_suggestions_layout"] = "تخطيط اقتراحات البحث";
$lang["config_suggestions_second_column"] = "العامود 2";
$lang["config_suggestions_third_column"] = "العامود 3";
$lang["config_table"] = "جدول";
$lang["config_table_configuration"] = "اعدادات الجدول";
$lang["config_takings_printer"] = "طابعة الإيراد";
$lang["config_tax"] = "الضريبة";
$lang["config_tax_category"] = "تصنيف الضريبة";
$lang["config_tax_category_used"] = "";
$lang["config_tax_category_duplicate"] = "الفئة الضريبية اللتي تم ادخالها موجودة.";
$lang["config_tax_category_invalid_chars"] = "الفئة الضريبية اللتي تم ادخالها غير صحيحة.";
$lang["config_tax_category_required"] = "الفئة الضريبية مطلوبة.";
$lang["config_tax_category_used"] = "الفئة الضريبية اللتي تم تحديدها لا يمكن حذفها لانها قيد الاستعمال.";
$lang["config_tax_configuration"] = "إعدادات الضريبة";
$lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
$lang["config_tax_included"] = "شامل الضريبة";
@@ -245,3 +268,5 @@ $lang["config_thousands_separator"] = "فاصل الاف";
$lang["config_timezone"] = "المنطقة الزمنية";
$lang["config_top"] = "علوى";
$lang["config_website"] = "موقع الشركة";
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
$lang["config_work_order_format"] = "شكل طلبات العمل";

View File

@@ -1,45 +1,49 @@
<?php
<?php
$lang["customers_account_number"] = "رقم الحساب";
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل";
$lang["customers_available_points"] = "";
$lang["customers_average"] = "";
$lang["customers_avg_discount"] = "";
$lang["customers_basic_information"] = "";
$lang["customers_cannot_be_deleted"] = "لايمكن حذف هؤلاء العملاء، أحدهم/كلهم مرتبط/مرتبطين بمبيعات";
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل.";
$lang["customers_available_points"] = "النقاط المتاحة";
$lang["customers_average"] = "معدل الصرف";
$lang["customers_avg_discount"] = "معدل الخصم";
$lang["customers_basic_information"] = "معلومات الزبون";
$lang["customers_cannot_be_deleted"] = "لايمكن حذف هؤلاء العملاء، أحدهم/كلهم مرتبط/مرتبطين بمبيعات.";
$lang["customers_company_name"] = "اسم الشركة";
$lang["customers_confirm_delete"] = "هل تريد حذف هؤلاء العملاء حقاً؟";
$lang["customers_confirm_restore"] = "هل انت متأكد من إستعادة قاعدة بيانات الزبائن ؟";
$lang["customers_consent"] = "موافقة التسجيل";
$lang["customers_consent_required"] = "موافقة التسجيل هي خانة اجبارية.";
$lang["customers_customer"] = "العميل";
$lang["customers_date"] = "التاريخ";
$lang["customers_discount"] = "نسبة الخصم";
$lang["customers_email_duplicate"] = "";
$lang["customers_error_adding_updating"] = "خطاء فى إضافة أو تحديث العميل";
$lang["customers_email_duplicate"] = "البريد الالكتروني مكرر.";
$lang["customers_employee"] = "الموظف";
$lang["customers_error_adding_updating"] = "خطاء فى إضافة أو تحديث العميل.";
$lang["customers_excel_import_failed"] = "فشل الإستيراد من اكسل";
$lang["customers_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية";
$lang["customers_excel_import_partially_failed"] = "تم استيراد معظم العملاء. البعض لم يتم استيرادهم ، وهذه هى القائمة";
$lang["customers_excel_import_success"] = "تم استيراد العملاء بنجاح";
$lang["customers_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
$lang["customers_excel_import_partially_failed"] = "تم استيراد معظم العملاء. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
$lang["customers_excel_import_success"] = "تم استيراد العملاء بنجاح.";
$lang["customers_import_items_excel"] = "استيراد العملا ء من ورقة عمل اكسل";
$lang["customers_mailchimp_activity_click"] = "";
$lang["customers_mailchimp_activity_lastopen"] = "";
$lang["customers_mailchimp_activity_open"] = "";
$lang["customers_mailchimp_activity_total"] = "";
$lang["customers_mailchimp_activity_unopen"] = "";
$lang["customers_mailchimp_email_client"] = "";
$lang["customers_mailchimp_info"] = "";
$lang["customers_mailchimp_member_rating"] = "";
$lang["customers_mailchimp_status"] = "";
$lang["customers_mailchimp_vip"] = "";
$lang["customers_max"] = "";
$lang["customers_min"] = "";
$lang["customers_mailchimp_activity_click"] = "النقر على البريد الإلكتروني";
$lang["customers_mailchimp_activity_lastopen"] = "آخر رسالة إلكترونية مفتوحة";
$lang["customers_mailchimp_activity_open"] = "رسالة إلكترونية مفتوحة";
$lang["customers_mailchimp_activity_total"] = "تم ارسال الرسالة الإلكترونية بنجاح";
$lang["customers_mailchimp_activity_unopen"] = "رسالة إلكترونية غير مفتوحة";
$lang["customers_mailchimp_email_client"] = "بريد الكتروني";
$lang["customers_mailchimp_info"] = "ميل تشيمب";
$lang["customers_mailchimp_member_rating"] = "التقييم";
$lang["customers_mailchimp_status"] = "الحالة";
$lang["customers_mailchimp_vip"] = "مهم";
$lang["customers_max"] = "الحد الأقصى";
$lang["customers_min"] = "الحد الأدنى";
$lang["customers_new"] = "عميل جديد";
$lang["customers_none_selected"] = "لم تختار عملاء للحذف";
$lang["customers_none_selected"] = "لم تختار عملاء للحذف.";
$lang["customers_one_or_multiple"] = "عميل/عملاء";
$lang["customers_quantity"] = "";
$lang["customers_stats_info"] = "";
$lang["customers_quantity"] = "العدد";
$lang["customers_stats_info"] = "الحالة";
$lang["customers_successful_adding"] = "لقد أضفت عميل بنجاح";
$lang["customers_successful_deleted"] = "لقد قمت بالحذف بنجاح";
$lang["customers_successful_updating"] = "لقد قمت بتحديث بيانات العميل بنجاح";
$lang["customers_tax_code"] = "";
$lang["customers_tax_code"] = "كود الضريبة";
$lang["customers_taxable"] = "خاضع للضريبة";
$lang["customers_total"] = "المجموع";
$lang["customers_update"] = "تحديث بيانات عميل";
$lang["rewards_package"] = "";
$lang["rewards_package"] = "فئة المكافئة";

View File

@@ -1,34 +1,37 @@
<?php
$lang["employees_basic_information"] = "المعلومات الأساسية للموظف";
$lang["employees_cannot_be_deleted"] = "لايمكن حذف الموظفين ، واحد أو أكثر من المظفين قام بإجراء مبيعات :)";
$lang["employees_change_password"] = "";
$lang["employees_cannot_be_deleted"] = "لايمكن حذف الموظفين ، واحد أو أكثر من المظفين قام بإجراء مبيعات :).";
$lang["employees_change_password"] = "تغيير كلمة المرور";
$lang["employees_confirm_delete"] = "هل أنت متأكد أنك تريد حذف الموظفين المختارين؟";
$lang["employees_current_password"] = "";
$lang["employees_current_password_invalid"] = "";
$lang["employees_confirm_restore"] = "هل انت متاكد من استعادة الموظفين المحددين؟";
$lang["employees_current_password"] = "كلمة المرور الحالية";
$lang["employees_current_password_invalid"] = "كلمة المرور الحالية غير صحيحة.";
$lang["employees_employee"] = "موظف";
$lang["employees_error_adding_updating"] = "خطاء فى إضافة/تعديل موظف";
$lang["employees_error_deleting_demo_admin"] = "لايمكن حذف المستخدم admin الخاص بنسخة العرض";
$lang["employees_error_updating_demo_admin"] = "لايمكن تغيير بيانات المستخدم admin الخاص بنسخة العرض";
$lang["employees_error_adding_updating"] = "خطاء فى إضافة/تعديل موظف.";
$lang["employees_error_deleting_demo_admin"] = "لايمكن حذف المستخدم admin الخاص بنسخة العرض.";
$lang["employees_error_updating_demo_admin"] = "لايمكن تغيير بيانات المستخدم admin الخاص بنسخة العرض.";
$lang["employees_language"] = "اللغة";
$lang["employees_login_info"] = "معلومات دخول الموظف";
$lang["employees_new"] = "موظف جديد";
$lang["employees_none_selected"] = "لم تختار أى من الموظفين للحذف";
$lang["employees_none_selected"] = "لم تختار أى من الموظفين للحذف.";
$lang["employees_one_or_multiple"] = "موظف/موظفين";
$lang["employees_password"] = "كلمة السر";
$lang["employees_password_minlength"] = "كلمة السر يجب أن تكون 8 حروف على الأقل";
$lang["employees_password_must_match"] = "كلمتى السر لا تتطابقان";
$lang["employees_password_not_must_match"] = "";
$lang["employees_password_required"] = "كلمة السر مطلوبة";
$lang["employees_permission_desc"] = "قم بإضافة الصلاحيات بلإختيار من الأسفل";
$lang["employees_password_minlength"] = "كلمة السر يجب أن تكون 8 حروف على الأقل.";
$lang["employees_password_must_match"] = "كلمتى السر لا تتطابقان.";
$lang["employees_password_not_must_match"] = "كلمة المرور الحالية والجديدة يجب ان يكونو فريدين.";
$lang["employees_password_required"] = "كلمة السر مطلوبة.";
$lang["employees_permission_desc"] = "قم بإضافة الصلاحيات بلإختيار من الأسفل.";
$lang["employees_permission_info"] = "اذونات المستخدمين";
$lang["employees_repeat_password"] = "كلمة السر مرة اخرى";
$lang["employees_subpermission_required"] = "يجب إختيار صلاحية واحدة على الأقل لكل قسم";
$lang["employees_successful_adding"] = "لقد تم إضافة الموظف بنجاح";
$lang["employees_successful_change_password"] = "";
$lang["employees_subpermission_required"] = "يجب إختيار صلاحية واحدة على الأقل لكل قسم.";
$lang["employees_successful_adding"] = "لقد تم إضافة الموظف بنجاح.";
$lang["employees_successful_change_password"] = "تم تغيير كلمة المرور بنجاح.";
$lang["employees_successful_deleted"] = "لقد تم حذف الموظف بنجاح";
$lang["employees_successful_updating"] = "لقد تم تحديث بيانات الموظف بنجاح";
$lang["employees_unsuccessful_change_password"] = "";
$lang["employees_system_language"] = "لغة النظام";
$lang["employees_unsuccessful_change_password"] = "فشل في تغيير كلمة المرور.";
$lang["employees_update"] = "تحديث بيانات موظف";
$lang["employees_username"] = "اسم المستخدم";
$lang["employees_username_minlength"] = "اسم المستخدم يجب أن يكون 5 حروف على الأقل";
$lang["employees_username_required"] = "اسم المستخدم مطلوب";
$lang["employees_username_minlength"] = "اسم المستخدم يجب أن يكون 5 حروف على الأقل.";
$lang["employees_username_required"] = "اسم المستخدم مطلوب.";

View File

@@ -1,9 +1,9 @@
<?php
$lang["enum_half_down"] = "";
$lang["enum_half_even"] = "";
$lang["enum_half_five"] = "";
$lang["enum_half_odd"] = "";
$lang["enum_half_up"] = "";
$lang["enum_round_down"] = "";
$lang["enum_round_up"] = "";
$lang["enum_half_down"] = "تقريب نصفي";
$lang["enum_half_even"] = "نصف مزدوج";
$lang["enum_half_five"] = "نصف الخمس";
$lang["enum_half_odd"] = "نصف فردي";
$lang["enum_half_up"] = "تقريب نصفي";
$lang["enum_round_down"] = "التقريب";
$lang["enum_round_up"] = "التقريب";

View File

@@ -0,0 +1,20 @@
<?php
$lang["category_name_required"] = "اسم نوع المصاريف مطلوب";
$lang["expenses_categories_add_item"] = "إضافة نوع";
$lang["expenses_categories_cannot_be_deleted"] = "فشلت عملية مسح نوع المصاريف";
$lang["expenses_categories_category_id"] = "الكود";
$lang["expenses_categories_confirm_delete"] = "هل أنت متأكد من مسح نوع المصاريف الذي أخترته؟";
$lang["expenses_categories_description"] = "وصف النوع";
$lang["expenses_categories_error_adding_updating"] = "مشكلة أثناء أضافة أو تعديل نوع المصاريف";
$lang["expenses_categories_info"] = "معلومات عن نوع المصاريف";
$lang["expenses_categories_name"] = "أسم النوع";
$lang["expenses_categories_new"] = "نوع جديد";
$lang["expenses_categories_no_expenses_categories_to_display"] = "لا يجد أنواع للعرض";
$lang["expenses_categories_none_selected"] = "لم تختار أي نوع مصاريف";
$lang["expenses_categories_one_or_multiple"] = "نوع المصاريف";
$lang["expenses_categories_quantity"] = "الكمية";
$lang["expenses_categories_successful_adding"] = "تم أضافة نوع المصاريف بنجاح";
$lang["expenses_categories_successful_deleted"] = "تم مسح نوع المصاريف بنجاح";
$lang["expenses_categories_successful_updating"] = "تم تعديل نوع المصاريف بنجاح";
$lang["expenses_categories_update"] = "تعديل النوع";

View File

@@ -0,0 +1,45 @@
<?php
$lang["expenses_add_item"] = "إضافة مصاريف جديدة";
$lang["expenses_amount"] = "قيمة المصاريف";
$lang["expenses_amount_number"] = "القيمة يجب ان تكون رقم";
$lang["expenses_amount_required"] = "القيمة المطلوبة";
$lang["expenses_by_category"] = "حسب الفئات";
$lang["expenses_cannot_be_deleted"] = "لا يمكن المسح";
$lang["expenses_cash"] = "نقدا";
$lang["expenses_cash_filter"] = "نقدا";
$lang["expenses_categories_name"] = "اسماء الفئات";
$lang["expenses_category_required"] = "خانة مطلوبة: الفئات";
$lang["expenses_check"] = "شيك";
$lang["expenses_check_filter"] = "تصفية";
$lang["expenses_confirm_delete"] = "تأكيد المسح؟";
$lang["expenses_confirm_restore"] = "هل تريد بالتأكيد استعادة النفقات المحددة؟";
$lang["expenses_credit"] = "بطاقة ائتمان";
$lang["expenses_credit_filter"] = "بطاقة ائتمان";
$lang["expenses_date"] = "تاريخ المصاريف";
$lang["expenses_date_number"] = "التاريخ يجب ان يتكون من ارقام";
$lang["expenses_date_required"] = "خانة مطلوبة: التاريخ";
$lang["expenses_debit"] = "بطاقة مدين";
$lang["expenses_debit_filter"] = "بطاقة مدين";
$lang["expenses_description"] = "الوصف";
$lang["expenses_due"] = "الدين";
$lang["expenses_due_filter"] = "تصفية الدين";
$lang["expenses_employee"] = "صنع من قبل";
$lang["expenses_error_adding_updating"] = "خطأ في الإضافة";
$lang["expenses_expense_id"] = "كود المصاريف";
$lang["expenses_expenses_employee"] = "موظف";
$lang["expenses_info"] = "معلومات عن المصاريف";
$lang["expenses_is_deleted"] = "ممسوحة";
$lang["expenses_name_required"] = "خانة مطلوبة: اسم المصاريف";
$lang["expenses_new"] = "مصاريف جديدة";
$lang["expenses_no_expenses_to_display"] = "لا يوجد مصاريف في التاريخ المحدد";
$lang["expenses_none_selected"] = "لم يتم تحديد اي خيار";
$lang["expenses_one_or_multiple"] = "واحد او أكثر";
$lang["expenses_payment"] = "الدفع";
$lang["expenses_successful_adding"] = "تم إضافة المصاريف بنجاح";
$lang["expenses_successful_deleted"] = "تم مسح المصاريف بنجاح";
$lang["expenses_successful_updating"] = "تم تعديل المصاريف بنجاح";
$lang["expenses_supplier_name"] = "اسم المورد";
$lang["expenses_supplier_tax_code"] = "كود ضريبة المورد";
$lang["expenses_tax_amount"] = "قيمة الضريبة";
$lang["expenses_update"] = "تعديل";

View File

@@ -1,18 +0,0 @@
<?php
$lang["alpha_dash"] = "";
$lang["alpha_numeric"] = "";
$lang["exact_length"] = "";
$lang["greater_than"] = "";
$lang["is_natural"] = "";
$lang["is_natural_no_zero"] = "";
$lang["is_numeric"] = "";
$lang["is_unique"] = "";
$lang["less_than"] = "";
$lang["max_length"] = "";
$lang["min_length"] = "";
$lang["regex_match"] = "";
$lang["valid_email"] = "";
$lang["valid_emails"] = "";
$lang["valid_ip"] = "";
$lang["valid_url"] = "";

View File

@@ -1,31 +1,31 @@
<?php
$lang["giftcards_add_minus"] = "المخزن المضاف أو المطروح منه";
$lang["giftcards_add_minus"] = "المخزن المضاف أو المطروح منه.";
$lang["giftcards_allow_alt_description"] = "السماح بوصف بديل";
$lang["giftcards_amazon"] = "Amazon";
$lang["giftcards_bulk_edit"] = "تحرير جماعى";
$lang["giftcards_cannot_be_deleted"] = "لايمكن حذف بطاقات الهدية المختارة، واحد أو أكثر منها لديه مبيعات";
$lang["giftcards_cannot_find_giftcard"] = "لايمكن إيجاد معلومات حول كارت الهدية";
$lang["giftcards_cannot_use"] = "Giftcard %1 cannot be used for this sale. Invalid Customer!";
$lang["giftcards_cannot_be_deleted"] = "لايمكن حذف بطاقات الهدية المختارة، واحد أو أكثر منها لديه مبيعات.";
$lang["giftcards_cannot_find_giftcard"] = "لايمكن إيجاد معلومات حول كارت الهدية.";
$lang["giftcards_cannot_use"] = "كارت الهدية %1 لا يمكن استعمالة في هذه العملية: اسم الزبون غير صحيح.";
$lang["giftcards_card_value"] = "القيمة";
$lang["giftcards_category"] = "الفئة";
$lang["giftcards_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للكل";
$lang["giftcards_change_all_to_not_allow_allow_desc"] = "غير مسموح بوصف بديل للكل";
$lang["giftcards_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للكل.";
$lang["giftcards_change_all_to_not_allow_allow_desc"] = "غير مسموح بوصف بديل للكل.";
$lang["giftcards_change_all_to_serialized"] = "تغيير الجميع لأرقام مسلسلة";
$lang["giftcards_change_all_to_unserialized"] = "تغير الجميع لأرقام غير مسلسلة";
$lang["giftcards_confirm_bulk_edit"] = "هل أنت متأكد انك تريد تحرير كل بطاقات الهدايا المختارة؟";
$lang["giftcards_confirm_delete"] = "هل أنت متأكد انك تريد حذف كل بطاقات الهدايا المختارة؟";
$lang["giftcards_confirm_restore"] = "هل تريد بالتأكيد استعادة بطاقة (بطاقات) الهدايا المحددة؟";
$lang["giftcards_cost_price"] = "سعر التكلفة";
$lang["giftcards_count"] = "تحديث المخزون";
$lang["giftcards_current_quantity"] = "الكميات الحالية";
$lang["giftcards_description"] = "الوصف";
$lang["giftcards_details_count"] = "حركة الكارت";
$lang["giftcards_do_nothing"] = "لا تفعل شىء";
$lang["giftcards_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل بطاقات الهدايا المختارة";
$lang["giftcards_edit_multiple_giftcards"] = "تحرير مجموعة من بطاقات الهدايا";
$lang["giftcards_error_adding_updating"] = "خطاء فى إضافة/تحديث بطاقة هدية";
$lang["giftcards_error_updating_multiple"] = "خطاء فى تحديث بيانات بطاقات الهدايا";
$lang["giftcards_excel_import_failed"] = "فشل الإستيراد من اكسل";
$lang["giftcards_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل بطاقات الهدايا المختارة.";
$lang["giftcards_edit_multiple_giftcards"] = "تحرير مجموعة من بطاقات الهدايا.";
$lang["giftcards_error_adding_updating"] = "خطاء فى إضافة/تحديث بطاقة هدية.";
$lang["giftcards_error_updating_multiple"] = "خطاء فى تحديث بيانات بطاقات الهدايا.";
$lang["giftcards_excel_import_failed"] = "فشل الإستيراد من اكسل.";
$lang["giftcards_generate_barcodes"] = "توليد أكواد الباركود";
$lang["giftcards_giftcard"] = "بطاقة هدية";
$lang["giftcards_giftcard_number"] = "رقم بطاقة الهدية";
@@ -34,19 +34,19 @@ $lang["giftcards_inventory_comments"] = "تعليقات";
$lang["giftcards_is_serialized"] = "بطاقة الهدية لها رقم مسلسل";
$lang["giftcards_low_inventory_giftcards"] = "مخزون قليل من بطاقات الهدايا";
$lang["giftcards_manually_editing_of_quantity"] = "تحرير الكميات يدويا";
$lang["giftcards_must_select_giftcard_for_barcode"] = "يجب إختيار بطاقة هدية واحدة على الأقل لتوليد أكواد الباركود";
$lang["giftcards_must_select_giftcard_for_barcode"] = "يجب إختيار بطاقة هدية واحدة على الأقل لتوليد أكواد الباركود.";
$lang["giftcards_new"] = "بطاقة هدية جديدة";
$lang["giftcards_no_description_giftcards"] = "لايوجد وصف لبطاقات الهدايا";
$lang["giftcards_no_giftcards_to_display"] = "لايوجد بطاقات هدايا لعرضها";
$lang["giftcards_no_giftcards_to_display"] = "لايوجد بطاقات هدايا لعرضها.";
$lang["giftcards_none"] = "لايوجد";
$lang["giftcards_none_selected"] = "لم تقم بإختيار أى بطاقة هدية";
$lang["giftcards_number"] = "رقم بطاقة الهدية يجب أن يكون رقم";
$lang["giftcards_none_selected"] = "لم تقم بإختيار أى بطاقة هدية.";
$lang["giftcards_number"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
$lang["giftcards_number_information"] = "رقم بطاقة الهدية";
$lang["giftcards_number_required"] = "رقم بطاقة الهدية مطلوب";
$lang["giftcards_number_required"] = "رقم بطاقة الهدية مطلوب.";
$lang["giftcards_one_or_multiple"] = "بطاقة/بطاقات الهدية";
$lang["giftcards_person_id"] = "العميل";
$lang["giftcards_quantity"] = "الكمية";
$lang["giftcards_quantity_required"] = "الكمية مطلوبة";
$lang["giftcards_quantity_required"] = "الكمية مطلوبة.";
$lang["giftcards_remaining_balance"] = "كارت الهدية %1 القيمة المتبقية منه %2!";
$lang["giftcards_reorder_level"] = "نقطة إعادة الطلب";
$lang["giftcards_retrive_giftcard_info"] = "إسترجاع بيانات بطاقة هدية";
@@ -66,5 +66,5 @@ $lang["giftcards_unit_price"] = "سعر الوحدة";
$lang["giftcards_upc_database"] = "UPC قاعدة بيانات";
$lang["giftcards_update"] = "تحديث بطاقة هدية";
$lang["giftcards_use_inventory_menu"] = "استخدام تحديث المخزن";
$lang["giftcards_value"] = "قيمة بطاقة الهدية يجب ان تكون رقم";
$lang["giftcards_value_required"] = "قيمة بطاقة الهدية مطلوبة";
$lang["giftcards_value"] = "قيمة بطاقة الهدية يجب ان تكون رقم.";
$lang["giftcards_value_required"] = "قيمة بطاقة الهدية مطلوبة.";

View File

@@ -1,30 +1,31 @@
<?php
$lang["item_kits_add_item"] = "إضافة مجموعة";
$lang["item_kits_all"] = "";
$lang["item_kits_cannot_be_deleted"] = "لايمكن حذف مجموعة/مجموعات";
$lang["item_kits_all"] = "الكل";
$lang["item_kits_cannot_be_deleted"] = "لايمكن حذف مجموعة/مجموعات.";
$lang["item_kits_confirm_delete"] = "هل أنت متأكد أنك تريد حذف المجموعة؟";
$lang["item_kits_confirm_restore"] = "هل أنت متأكد أنك تريد استعادة المجموعة المحددة؟";
$lang["item_kits_description"] = "وصف المجموعة";
$lang["item_kits_discount_percent"] = "";
$lang["item_kits_error_adding_updating"] = "خطاء فى إضافة/تحديث المجموعة";
$lang["item_kits_find_kit_item"] = "";
$lang["item_kits_discount_percent"] = "نسبة الخصم";
$lang["item_kits_error_adding_updating"] = "خطاء فى إضافة/تحديث المجموعة.";
$lang["item_kits_find_kit_item"] = "صنف لمجموعة";
$lang["item_kits_info"] = "معلومات المجموعة";
$lang["item_kits_item"] = "صنف";
$lang["item_kits_items"] = "أصناف";
$lang["item_kits_kit"] = "كود المجموعة";
$lang["item_kits_kit_and_components"] = "";
$lang["item_kits_kit_and_stock"] = "";
$lang["item_kits_kit_only"] = "";
$lang["item_kits_kit_and_components"] = "المجموعة ومحتوياتها";
$lang["item_kits_kit_and_stock"] = "المجموعه والصنف";
$lang["item_kits_kit_only"] = "المجموعه فقط";
$lang["item_kits_name"] = "اسم المجموعة";
$lang["item_kits_new"] = "مجموعة جديده";
$lang["item_kits_no_item_kits_to_display"] = "لاتوجد مجموعات لعرضها";
$lang["item_kits_none_selected"] = "لم تقم بإختيار مجموعات";
$lang["item_kits_no_item_kits_to_display"] = "لاتوجد مجموعات لعرضها.";
$lang["item_kits_none_selected"] = "لم تقم بإختيار مجموعات.";
$lang["item_kits_one_or_multiple"] = "مجموعة/مجموعات";
$lang["item_kits_price_option"] = "";
$lang["item_kits_priced_only"] = "";
$lang["item_kits_print_option"] = "";
$lang["item_kits_price_option"] = "خيارات التسعير";
$lang["item_kits_priced_only"] = "المسعرين فقط";
$lang["item_kits_print_option"] = "خيارات الطباعة";
$lang["item_kits_quantity"] = "الكمية";
$lang["item_kits_sequence"] = "";
$lang["item_kits_sequence"] = "التسلسل";
$lang["item_kits_successful_adding"] = "لقد تم إضافة المجموعة بنجاح";
$lang["item_kits_successful_deleted"] = "لقد تم حذف المجموعة بنجاح";
$lang["item_kits_successful_updating"] = "لقد تم تحديث بيانات المجموعة بنجاح";

View File

@@ -1,90 +1,90 @@
<?php
$lang["items_add_minus"] = "الكمية المطلوب خصمها أو اضافتها";
<?php
$lang["items_add_minus"] = "الكمية المطلوب خصمها أو اضافتها.";
$lang["items_allow_alt_desciption"] = "وصف بديل";
$lang["items_allow_alt_description"] = "السماح بوصف بديل";
$lang["items_amazon"] = "Amazon";
$lang["items_amount_entry"] = "إدخال القيمة";
$lang["items_bulk_edit"] = "تحرير جماعى";
$lang["items_buy_price_required"] = "سعر الشراء مطلوب";
$lang["items_cannot_be_deleted"] = "لايمكن حذف الأصناف المختارة، واحد أو أكثر منها لديه مبيعات";
$lang["items_cannot_find_item"] = "لايمكن ايجاد معلومات حول الصنف";
$lang["items_buy_price_required"] = "سعر الشراء مطلوب.";
$lang["items_cannot_be_deleted"] = "لايمكن حذف الأصناف المختارة، واحد أو أكثر منها لديه مبيعات.";
$lang["items_cannot_find_item"] = "لايمكن ايجاد معلومات حول الصنف.";
$lang["items_category"] = "التصنيف";
$lang["items_category_required"] = "التصنيف مطلوب";
$lang["items_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للجميع";
$lang["items_change_all_to_not_allow_allow_desc"] = "عدم السماح بوصف بديل للجميع";
$lang["items_category_required"] = "التصنيف مطلوب.";
$lang["items_change_all_to_allow_alt_desc"] = "السماح بوصف بديل للجميع.";
$lang["items_change_all_to_not_allow_allow_desc"] = "عدم السماح بوصف بديل للجميع.";
$lang["items_change_all_to_serialized"] = "تغير الجميع لمتسلسل";
$lang["items_change_all_to_unserialized"] = "تغيير الجميع لغير متسلسل";
$lang["items_change_image"] = "تغيير الصورة";
$lang["items_confirm_bulk_edit"] = "هل أنت متأكد انك تريد تحرير كل الأصناف المختارة؟";
$lang["items_confirm_bulk_edit_wipe_taxes"] = "سوف يتم مسح معلومات الضرائب لجميع الأصناف";
$lang["items_confirm_bulk_edit_wipe_taxes"] = "سوف يتم مسح معلومات الضرائب لجميع الأصناف.";
$lang["items_confirm_delete"] = "هل أنت متأكد انك تريد حذف كل الأصناف المختارة؟";
$lang["items_confirm_restore"] = "هل انت متاكد من إستعادة الاصناف المخطارة؟";
$lang["items_cost_price"] = "سعر التكلفة";
$lang["items_cost_price_number"] = "سعر التكلفة يجب أن يكون رقم";
$lang["items_cost_price_required"] = "سعر التكلفة مطلوب";
$lang["items_cost_price_number"] = "سعر التكلفة يجب أن يكون رقم.";
$lang["items_cost_price_required"] = "سعر التكلفة مطلوب.";
$lang["items_count"] = "تحديث المخزون";
$lang["items_current_quantity"] = "الكمية الحالية";
$lang["items_description"] = "الوصف";
$lang["items_details_count"] = "حركة الصنف";
$lang["items_do_nothing"] = "لاتفعل شئ";
$lang["items_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل الأصناف المختارة";
$lang["items_edit_fields_you_want_to_update"] = "قم بتحديث الحقول المراد تحديثها لكل الأصناف المختارة.";
$lang["items_edit_multiple_items"] = "تحريد مجموعة اصناف";
$lang["items_empty_upc_items"] = "تفريغ اصناف UPC";
$lang["items_error_adding_updating"] = "خطاء فى إضافة/تحديث صنف";
$lang["items_error_updating_multiple"] = "خطاء فى تحديث بيانات أصناف";
$lang["items_excel_import_failed"] = "فشل الإستيراد من اكسل";
$lang["items_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية";
$lang["items_excel_import_partially_failed"] = "تم استيراد معظم الأصناف. البعض لم يتم استيرادهم ، وهذه هى القائمة";
$lang["items_excel_import_success"] = "تم استيراد الأصناف بنجاح";
$lang["items_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
$lang["items_excel_import_partially_failed"] = "تم استيراد معظم الأصناف. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
$lang["items_excel_import_success"] = "تم استيراد الأصناف بنجاح.";
$lang["items_generate_barcodes"] = "توليد أكواد الباركود";
$lang["items_image"] = "صورة";
$lang["items_import_items_excel"] = "استيراد من اكسل";
$lang["items_info_provided_by"] = "المعلومات مقدمة بواسطة";
$lang["items_inventory"] = "المخزن";
$lang["items_inventory_comments"] = "تعليقات";
$lang["items_inventory_data_tracking"] = "";
$lang["items_inventory_date"] = "";
$lang["items_inventory_employee"] = "";
$lang["items_inventory_in_out_quantity"] = "";
$lang["items_inventory_remarks"] = "";
$lang["items_inventory_data_tracking"] = "تتبع بيانات المخزون";
$lang["items_inventory_date"] = "التاريخ";
$lang["items_inventory_employee"] = "الموظف";
$lang["items_inventory_in_out_quantity"] = "+\- كمية";
$lang["items_inventory_remarks"] = "ملاحظات";
$lang["items_is_deleted"] = "حذفت";
$lang["items_is_serialized"] = "الصنف له رقم مسلسل";
$lang["items_item"] = "صنف";
$lang["items_item_number"] = "الباركود UPC/EAN/ISBN";
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل";
$lang["items_kit"] = "";
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل.";
$lang["items_kit"] = "مجموعة اصناف";
$lang["items_location"] = "مكان";
$lang["items_low_inventory_items"] = "الأصناف التى لا يوجد لها مخزون";
$lang["items_manually_editing_of_quantity"] = "تحرير الكمية يدوياً";
$lang["items_name"] = "اسم الصنف";
$lang["items_name_required"] = "اسم الصنف مطلوب";
$lang["items_name_required"] = "اسم الصنف مطلوب.";
$lang["items_new"] = "صنف جديد";
$lang["items_no_description_items"] = "الأصناف التى بلا وصف";
$lang["items_no_items_to_display"] = "لايوجد أصناف لعرضها";
$lang["items_no_items_to_display"] = "لايوجد أصناف لعرضها.";
$lang["items_none"] = "لاشىء";
$lang["items_none_selected"] = "لم تختار أى أصناف لتحريرها";
$lang["items_nonstock"] = "";
$lang["items_nonstock"] = "غير مخزنة";
$lang["items_number_information"] = "رقم الصنف";
$lang["items_number_required"] = "مطلوب UPC/EAN/ISBN رقم الباركود ";
$lang["items_number_required"] = "مطلوب UPC/EAN/ISBN رقم الباركود.";
$lang["items_one_or_multiple"] = "صنف/أصناف";
$lang["items_quantity"] = "الكمية";
$lang["items_quantity_number"] = "الكمية يجب أن تكون رقم";
$lang["items_quantity_required"] = "الكمية مطلوبة";
$lang["items_quantity_number"] = "الكمية يجب أن تكون رقم.";
$lang["items_quantity_required"] = "الكمية مطلوبة.";
$lang["items_receiving_quantity"] = "الكمية المستلمة";
$lang["items_remove_image"] = "ازالة الصورة";
$lang["items_reorder_level"] = "نقطة إعادة الطلب";
$lang["items_reorder_level_number"] = "نقطة إعادة الطلب يجب أن تكون رقم";
$lang["items_reorder_level_required"] = "نقطة إعادة الطلب مطلوبة";
$lang["items_reorder_level_number"] = "نقطة إعادة الطلب يجب أن تكون رقم.";
$lang["items_reorder_level_required"] = "نقطة إعادة الطلب مطلوبة.";
$lang["items_retrive_item_info"] = "استرجاع بيانات الصنف";
$lang["items_sales_tax_1"] = "ضريبة المبيعات";
$lang["items_sales_tax_2"] = "ضريبة المبيعات 2";
$lang["items_search_attributes"] = "بحث الحقول المخصصة";
$lang["items_search_custom_items"] = "";
$lang["items_search_custom_items"] = "بحث الاصناف المخصصة";
$lang["items_select_image"] = "اختار صورة";
$lang["items_serialized_items"] = "أصناف مسلسلة";
$lang["items_standard"] = "";
$lang["items_stock"] = "";
$lang["items_standard"] = "اساسي";
$lang["items_stock"] = "مخزن";
$lang["items_stock_location"] = "مكان المخزون";
$lang["items_stock_type"] = "";
$lang["items_stock_type"] = "نوع المخزن";
$lang["items_successful_adding"] = "لقد تم إضافة صنف بنجاح";
$lang["items_successful_bulk_edit"] = "لقد تم تحديث بيانات صنف/أصناف بنجاح";
$lang["items_successful_deleted"] = "لقد تم الحذف بنجاح";
@@ -93,12 +93,13 @@ $lang["items_supplier"] = "المورد";
$lang["items_tax_1"] = "الضريبة 1";
$lang["items_tax_2"] = "الضريبة 2";
$lang["items_tax_percent"] = "نسبة الضريبة";
$lang["items_tax_percent_required"] = "نسبة الضريبة مطلوبة";
$lang["items_tax_percent_number"] = "نسبة الضريبة يجب ان تكون رقم";
$lang["items_tax_percent_required"] = "نسبة الضريبة مطلوبة.";
$lang["items_tax_percents"] = "نسبة/نسب الضريبة";
$lang["items_type"] = "";
$lang["items_type"] = "نوع الصنف";
$lang["items_unit_price"] = "السعر";
$lang["items_unit_price_number"] = "السعر يجب أن يكون رقم";
$lang["items_unit_price_required"] = "السعر مطلوب";
$lang["items_unit_price_number"] = "السعر يجب أن يكون رقم.";
$lang["items_unit_price_required"] = "السعر مطلوب.";
$lang["items_upc_database"] = "UPC قاعدة بيانات";
$lang["items_update"] = "تحديث بيانات صنف";
$lang["items_use_inventory_menu"] = "استخدام تحديث المخزن";

View File

@@ -1,7 +0,0 @@
<?php
$lang["migrate_backup"] = "";
$lang["migrate_failed"] = "";
$lang["migrate_info"] = "";
$lang["migrate_start"] = "";
$lang["migrate_success"] = "";

View File

@@ -1,29 +1,37 @@
<?php
$lang["module_both"] = "الاثنين";
$lang["module_config"] = "إعدادات الشركة";
$lang["module_config_desc"] = "تغيير إعدادات الشركة";
$lang["module_config_desc"] = "تغيير إعدادات الشركة.";
$lang["module_customers"] = "العملاء";
$lang["module_customers_desc"] = "إضافة، تحديث ، بحث و حذف العملاء";
$lang["module_customers_desc"] = "إضافة، تحديث ، بحث و حذف العملاء.";
$lang["module_employees"] = "الموظفين";
$lang["module_employees_desc"] = "إضافة، تحديث ، بحث و حذف الموظفين";
$lang["module_employees_desc"] = "إضافة، تحديث ، بحث و حذف الموظفين.";
$lang["module_expenses"] = "المصاريف";
$lang["module_expenses_categories"] = "فئات المصاريف";
$lang["module_expenses_categories_desc"] = "إضافة، تحديث ، بحث و حذف فئات المصاريف.";
$lang["module_expenses_desc"] = "إضافة، تحديث ، بحث و حذف مصاريف.";
$lang["module_giftcards"] = "بطاقات الهدايا";
$lang["module_giftcards_desc"] = "إضافة، تحديث ، بحث و حذف بطاقات الهدايا";
$lang["module_giftcards_desc"] = "إضافة، تحديث ، بحث و حذف بطاقات الهدايا.";
$lang["module_home"] = "الرئيسية";
$lang["module_home_desc"] = "اظهار الائحة الرئيسية.";
$lang["module_item_kits"] = "مجموعات الأصناف";
$lang["module_item_kits_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الأصناف";
$lang["module_item_kits_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الأصناف.";
$lang["module_items"] = "الأصناف";
$lang["module_items_desc"] = "إضافة، تحديث ، بحث و حذف الأصناف";
$lang["module_items_desc"] = "إضافة، تحديث ، بحث و حذف الأصناف.";
$lang["module_messages"] = "الرسائل";
$lang["module_messages_desc"] = "إرسال رسائل للعملاء ، الموردين او الموظفين";
$lang["module_migrate"] = "";
$lang["module_migrate_desc"] = "";
$lang["module_messages_desc"] = "إرسال رسائل للعملاء ، الموردين او الموظفين.";
$lang["module_migrate"] = "النقل";
$lang["module_migrate_desc"] = "تحديث قاعدة البيانات.";
$lang["module_office"] = "المكتب";
$lang["module_office_desc"] = "اظهار الائحة المكتبية.";
$lang["module_receivings"] = "استلام الأصناف";
$lang["module_receivings_desc"] = "معالجة أوامر الشراء و استلام الأصناف";
$lang["module_receivings_desc"] = "معالجة أوامر الشراء و استلام الأصناف.";
$lang["module_reports"] = "التقارير";
$lang["module_reports_desc"] = "عرض وتوليد التقارير";
$lang["module_reports_desc"] = "عرض وتوليد التقارير.";
$lang["module_sales"] = "المبيعات";
$lang["module_sales_desc"] = "معالجة المبيعات و المرتجعات";
$lang["module_sales_desc"] = "معالجة المبيعات و المرتجعات.";
$lang["module_suppliers"] = "الموردين";
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين";
$lang["module_taxes"] = "";
$lang["module_taxes_desc"] = "";
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين.";
$lang["module_taxes"] = "الضرائب";
$lang["module_taxes_desc"] = "اعدادات ضريبة المبيعات.";

View File

@@ -1,23 +1,23 @@
<?php
$lang["receivings_cancel_receiving"] = "إلغاء";
$lang["receivings_cannot_be_deleted"] = "لايمكن حذف الإستلام/الإستلامات";
$lang["receivings_cannot_be_deleted"] = "لايمكن حذف الإستلام/الإستلامات.";
$lang["receivings_comments"] = "تعليقات";
$lang["receivings_complete_receiving"] = "إنهاء";
$lang["receivings_confirm_cancel_receiving"] = "هل أنت متاكد أنك تريد إلغاء هذا الإستلام؟ سيتم حذف كل الأصناف.";
$lang["receivings_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف";
$lang["receivings_confirm_finish_receiving"] = "هل أنت متاكد أنك تريد تنفيذ هذا الإستلام؟ لايمكن التراجع بعد الإرسال";
$lang["receivings_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف.";
$lang["receivings_confirm_finish_receiving"] = "هل أنت متاكد أنك تريد تنفيذ هذا الإستلام؟ لايمكن التراجع بعد الإرسال.";
$lang["receivings_cost"] = "التكلفة";
$lang["receivings_date"] = "تاريخ الإستلام";
$lang["receivings_date_required"] = "يجب إدخال تاريخ صحيح";
$lang["receivings_date_type"] = "التاريخ مطلوب";
$lang["receivings_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["receivings_date_type"] = "التاريخ مطلوب.";
$lang["receivings_delete_entire_sale"] = "حذف عملية البيع بالكامل";
$lang["receivings_discount"] = "نسبة الخصم";
$lang["receivings_edit"] = "تحرير";
$lang["receivings_edit_sale"] = "تحرير إستلام";
$lang["receivings_employee"] = "الموظف";
$lang["receivings_error_editing_item"] = "خطاء فى تحرير الصنف";
$lang["receivings_error_requisition"] = "غير قادر على تحريك الصنف من و إلى نفس المكان";
$lang["receivings_error_editing_item"] = "خطاء فى تحرير الصنف.";
$lang["receivings_error_requisition"] = "غير قادر على تحريك الصنف من و إلى نفس المكان.";
$lang["receivings_find_or_scan_item"] = "بحث/مسح باركود صنف";
$lang["receivings_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو إيصال";
$lang["receivings_id"] = "كود الإستلام";
@@ -26,7 +26,7 @@ $lang["receivings_mode"] = "وضع الإستلام";
$lang["receivings_new_supplier"] = "مورد جديد";
$lang["receivings_one_or_multiple"] = "إستلام/إستلامات";
$lang["receivings_print_after_sale"] = "طباعة بعد الإستلام";
$lang["receivings_quantity"] = "الكمية";
$lang["receivings_quantity"] = "الكمية.";
$lang["receivings_receipt"] = "إيصال إستلام";
$lang["receivings_receipt_number"] = "كود الإستلام";
$lang["receivings_receiving"] = "إستلام";
@@ -36,6 +36,7 @@ $lang["receivings_requisition"] = "طلب شراء";
$lang["receivings_return"] = "إرتجاع لمورد";
$lang["receivings_select_supplier"] = "اختار المورد (اختيارى)";
$lang["receivings_start_typing_supplier_name"] = "ابداء بكتابة اسم المورد....";
$lang["receivings_stock"] = "المخزون";
$lang["receivings_stock_destination"] = "المخزون المحول له";
$lang["receivings_stock_locaiton"] = "مكان المخزون";
$lang["receivings_stock_source"] = "مصدر المخزون";
@@ -46,7 +47,7 @@ $lang["receivings_supplier_address"] = "العنوان";
$lang["receivings_supplier_email"] = "البريد الإلكتروني";
$lang["receivings_supplier_location"] = "المكان";
$lang["receivings_total"] = "الإجمالى";
$lang["receivings_transaction_failed"] = "حركات الإستلام فشلت";
$lang["receivings_unable_to_add_item"] = "غير قادر على إضافة صنف للإستلام";
$lang["receivings_unsuccessfully_updated"] = "لم يتم تحديث الإستلام بنجاح";
$lang["receivings_transaction_failed"] = "حركات الإستلام فشلت.";
$lang["receivings_unable_to_add_item"] = "غير قادر على إضافة صنف للإستلام.";
$lang["receivings_unsuccessfully_updated"] = "لم يتم تحديث الإستلام بنجاح.";
$lang["receivings_update"] = "تحديث";

View File

@@ -1,10 +1,21 @@
<?php
<?php
$lang["reports_all"] = "الكل";
$lang["reports_canceled"] = "ملغى";
$lang["reports_categories"] = "التصنيفات";
$lang["reports_categories_summary_report"] = "تقرير ملخص التصنيفات";
$lang["reports_category"] = "تصنيف";
$lang["reports_code_canceled"] = "كود العمليات الملغية";
$lang["reports_code_invoice"] = "كود الفواتير الرسمية";
$lang["reports_code_pos"] = "نقطة بيع";
$lang["reports_code_quote"] = "كود عروض الاسعار";
$lang["reports_code_return"] = "كود عمليات المرتجع";
$lang["reports_code_type"] = "النوع";
$lang["reports_code_work_order"] = "طلب عمل";
$lang["reports_comments"] = "التعليقات";
$lang["reports_complete"] = "عمليات البيع والمرتجع المكتملة";
$lang["reports_completed_sales"] = "المبيعات المكتملة";
$lang["reports_confirm_delete"] = "هل انت متاكد من مسح البيانات المحددة؟";
$lang["reports_confirm_restore"] = "هل انت متاكد من استعادة البيانات المحددة؟";
$lang["reports_cost"] = "التكلفة";
$lang["reports_cost_price"] = "سعر التكلفة";
$lang["reports_count"] = "عدد";
@@ -22,10 +33,18 @@ $lang["reports_discount"] = "الخصم";
$lang["reports_discount_percent"] = "نسبة الخصم";
$lang["reports_discounts"] = "الخصومات";
$lang["reports_discounts_summary_report"] = "تقرير ملخص الخصومات";
$lang["reports_earned"] = "";
$lang["reports_earned"] = "النقاط المحصلة";
$lang["reports_employee"] = "موظف";
$lang["reports_employees"] = "الموظفين";
$lang["reports_employees_summary_report"] = "تقرير ملخص الموظفين";
$lang["reports_expenses"] = "المصاريف";
$lang["reports_expenses_amount"] = "القيمة";
$lang["reports_expenses_categories"] = "فئات المصاريف";
$lang["reports_expenses_categories_summary_report"] = "تقرير المصاريف حسب الفئات";
$lang["reports_expenses_category"] = "الفئة";
$lang["reports_expenses_tax_amount"] = "الضريبة";
$lang["reports_expenses_total_amount"] = "المبلغ الإجمالي";
$lang["reports_expenses_total_tax_amount"] = "الضريبة الإجمالية";
$lang["reports_graphical_reports"] = "تقارير رسومية";
$lang["reports_inventory"] = "المخزن";
$lang["reports_inventory_low"] = "نواقص المخزون";
@@ -36,7 +55,7 @@ $lang["reports_inventory_summary_report"] = "تقرير ملخص المخزن";
$lang["reports_item"] = "صنف";
$lang["reports_item_count"] = "تصفية عداد الصنف";
$lang["reports_item_name"] = "اسم الصنف";
$lang["reports_item_number"] = "رقم الصنف";
$lang["reports_item_number"] = "باركود";
$lang["reports_items"] = "الأصناف";
$lang["reports_items_purchased"] = "الأصناف مشتراه";
$lang["reports_items_received"] = "الأصناف مستلمة";
@@ -45,14 +64,14 @@ $lang["reports_low_inventory"] = "النواقص";
$lang["reports_low_inventory_report"] = "تقرير نواقص المخزون";
$lang["reports_more_than_zero"] = "أكثر من صفر";
$lang["reports_name"] = "الاسم";
$lang["reports_no_reports_to_display"] = "لايوجد أصناف لعرضها";
$lang["reports_no_reports_to_display"] = "لايوجد أصناف لعرضها.";
$lang["reports_payment_type"] = "طريقة الدفع";
$lang["reports_payments"] = "المدفوعات";
$lang["reports_payments_summary_report"] = "ملخص المدفوعات";
$lang["reports_profit"] = "الربح";
$lang["reports_quantity"] = "الكمية المشتراه";
$lang["reports_quantity_purchased"] = "المستلم";
$lang["reports_quotes"] = "";
$lang["reports_quotes"] = "عروض اسعار";
$lang["reports_received_by"] = "مستلمة بواسطة";
$lang["reports_receiving_id"] = "كود الاستلام";
$lang["reports_receiving_type"] = "نوع الاستلام";
@@ -94,7 +113,10 @@ $lang["reports_taxes"] = "الضرائب";
$lang["reports_taxes_summary_report"] = "تقرير ملخص الضرائب";
$lang["reports_total"] = "الإجمالى";
$lang["reports_total_inventory_value"] = "إجمالى قيمة المخزن";
$lang["reports_total_quantity"] = "الكمية/العدد";
$lang["reports_total_retail"] = "قيمة المبيع";
$lang["reports_type"] = "النوع";
$lang["reports_unit_price"] = "السعر";
$lang["reports_used"] = "";
$lang["reports_used"] = "النقاط المستخدمة";
$lang["reports_work_orders"] = "طلبات عمل";
$lang["reports_zero_and_less"] = "صفر و أقل";

View File

@@ -1,143 +1,164 @@
<?php
$lang["customers_available_points"] = "";
$lang["rewards_package"] = "";
$lang["rewards_remaining_balance"] = "";
<?php
$lang["customers_available_points"] = "النقاط المتاحة";
$lang["rewards_package"] = "مكافآت";
$lang["rewards_remaining_balance"] = "رصيد النقاط المتبقي هو ";
$lang["sales_add_payment"] = "إضافة دفع";
$lang["sales_amount_due"] = "المبلغ المطلوب";
$lang["sales_amount_tendered"] = "المبلغ المدفوع";
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
$lang["sales_cash"] = "نقدى";
$lang["sales_cash_deposit"] = "ايداع نقدي";
$lang["sales_cash_filter"] = "نقدى";
$lang["sales_change_due"] = "الباقى";
$lang["sales_check"] = "شيك";
$lang["sales_check_balance"] = "تذكير بموعد الشيك";
$lang["sales_check_filter"] = "";
$lang["sales_check_filter"] = "شيك";
$lang["sales_comment"] = "تعليق";
$lang["sales_comments"] = "تعليقات";
$lang["sales_complete_sale"] = "إتمام البيع";
$lang["sales_confirm_cancel_sale"] = "هل أنت متأكد من الغاء عملية البيع ؟ سيتم إزالة كل الأصناف";
$lang["sales_confirm_cancel_sale"] = "هل أنت متأكد من الغاء عملية البيع ؟ سيتم إزالة كل الأصناف.";
$lang["sales_confirm_delete"] = "هل تريد حذف عمليات البيع المختارة؟";
$lang["sales_confirm_restore"] = "هل انت متاكد من استعادة عملية البيع؟";
$lang["sales_credit"] = "بطاقة إئتمانية";
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
$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_date"] = "تاريخ البيع";
$lang["sales_date_range"] = "الفترة الزمنية";
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح";
$lang["sales_date_type"] = "التاريخ مطلوب";
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح.";
$lang["sales_date_type"] = "التاريخ مطلوب.";
$lang["sales_debit"] = "بطاقة خصم";
$lang["sales_delete_confirmation"] = "هل أنت متأكد أنك تريد حذف عملية البيع هذه؟ لايمكن التراجع بعد الحذف";
$lang["sales_delete"] = "اسمح بالمسح";
$lang["sales_delete_confirmation"] = "هل أنت متأكد أنك تريد حذف عملية البيع هذه؟ لايمكن التراجع بعد الحذف.";
$lang["sales_delete_entire_sale"] = "حذف عملية البيع بالكامل";
$lang["sales_delete_successful"] = "لقد تم حذف عملية البيع بنجاح";
$lang["sales_delete_unsuccessful"] = "لقد فشل حذف عملية البيع";
$lang["sales_description_abbrv"] = "الوصف";
$lang["sales_delete_successful"] = "لقد تم حذف عملية البيع بنجاح.";
$lang["sales_delete_unsuccessful"] = "لقد فشل حذف عملية البيع.";
$lang["sales_description_abbrv"] = "الوصف.";
$lang["sales_discard"] = "الغاء";
$lang["sales_discard_quote"] = "";
$lang["sales_discount"] = "خصم %";
$lang["sales_discount_included"] = "% خصم";
$lang["sales_discount_short"] = "%";
$lang["sales_due"] = "";
$lang["sales_due_filter"] = "";
$lang["sales_due"] = "مستحق";
$lang["sales_due_filter"] = "مستحق";
$lang["sales_edit"] = "تحرير";
$lang["sales_edit_item"] = "تحرير صنف";
$lang["sales_edit_sale"] = "تحرير عملية بيع";
$lang["sales_email_receipt"] = "إرسال الايصال بالبريد الالكترونى";
$lang["sales_employee"] = "الموظف";
$lang["sales_entry"] = "";
$lang["sales_entry"] = "ادخال";
$lang["sales_error_editing_item"] = "خطاء فى تحرير الصنف";
$lang["sales_find_or_scan_item"] = "بحث/مسح باركود صنف";
$lang["sales_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو ايصال";
$lang["sales_giftcard"] = "بطاقة هدية";
$lang["sales_giftcard_balance"] = "رصيد بطاقة الهدية";
$lang["sales_giftcard_number"] = "رقم بطاقة الهدية";
$lang["sales_group_by_category"] = "";
$lang["sales_group_by_type"] = "";
$lang["sales_group_by_category"] = "تصفية حسب الفئة";
$lang["sales_group_by_type"] = "تجميع حسب النوع";
$lang["sales_id"] = "كود عملية البيع";
$lang["sales_include_prices"] = "يشمل الاسعار؟";
$lang["sales_invoice"] = "فاتورة";
$lang["sales_invoice_confirm"] = "هذه الفاتورة سوف ترسل إلى";
$lang["sales_invoice_enable"] = "إنشاء فاتورة";
$lang["sales_invoice_filter"] = "الفواتير";
$lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد الكترونى صالح";
$lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد الكترونى صالح.";
$lang["sales_invoice_number"] = "فاتورة رقم #";
$lang["sales_invoice_number_duplicate"] = "من فضلك أدخل رقم فاتورة غير مكرر";
$lang["sales_invoice_number_duplicate"] = "من فضلك أدخل رقم فاتورة غير مكرر.";
$lang["sales_invoice_sent"] = "تم إرسال الفاتورة إلى";
$lang["sales_invoice_unsent"] = "فشل إرسال الفاتورة إلى";
$lang["sales_invoice_update"] = "إعادة العد";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف";
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف.";
$lang["sales_item_name"] = "اسم الصنف";
$lang["sales_item_number"] = "صنف #";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف";
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف.";
$lang["sales_mode"] = "وضع التسجيل";
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع";
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم";
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع.";
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
$lang["sales_new_customer"] = "عميل جديد";
$lang["sales_new_item"] = "صنف جديد";
$lang["sales_no_description"] = "لايوجد";
$lang["sales_no_filter"] = "الكل";
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة";
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها";
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها";
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة.";
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها.";
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها.";
$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_not_cover_total"] = "المبلغ المدفوع لايغطى المبلغ الإجمالى.";
$lang["sales_payment_type"] = "طريقة";
$lang["sales_payments_total"] = "إجمالى المدفوعات";
$lang["sales_price"] = "السعر";
$lang["sales_print_after_sale"] = "اطبع بعد عملية البيع";
$lang["sales_quantity"] = "الكمية";
$lang["sales_quantity_less_than_reorder_level"] = "إيصال البيع";
$lang["sales_quantity_less_than_reorder_level"] = "تحذير: الكمية/العدد المطلوب غير متوفر لهذا الصنف.";
$lang["sales_quantity_less_than_zero"] = "تحذير! الكمية المطلوبة غير كافية، بإمكانك إتمام عملية البيع ، لكن تحقق من مخزنك.";
$lang["sales_quote"] = "";
$lang["sales_quote_number"] = "";
$lang["sales_quote_sent"] = "";
$lang["sales_quote_unsent"] = "";
$lang["sales_quantity_of_items"] = "عدد ال 1% من الاصناف";
$lang["sales_quote"] = "عرض اسعار";
$lang["sales_quote_number"] = "رقم عرض الاسعار";
$lang["sales_quote_number_duplicate"] = "رقم عرض الاسعار يجب ان يكون فريد.";
$lang["sales_quote_sent"] = "عرض الاسعار ارسل الى";
$lang["sales_quote_unsent"] = "لم يتم ارسال عرض الاسعار الى";
$lang["sales_receipt"] = "عملية بيع #";
$lang["sales_receipt_no_email"] = "هذا العميل ليس له اي بريد الكتروني صحيح.";
$lang["sales_receipt_number"] = "إيصال بيع";
$lang["sales_receipt_sent"] = "تم إرسال الإيصال إلى";
$lang["sales_receipt_unsent"] = "فشل إرسال الإيصال إلى";
$lang["sales_register"] = "مسجل المبيعات";
$lang["sales_remove_customer"] = "حذف عميل";
$lang["sales_return"] = "إرتجاع";
$lang["sales_rewards"] = "";
$lang["sales_rewards_balance"] = "";
$lang["sales_rewards"] = "نقاط المكافئة";
$lang["sales_rewards_balance"] = "رصيد نقاط المكافئة";
$lang["sales_sale"] = "بيع";
$lang["sales_sale_by_invoice"] = "";
$lang["sales_sale_for_customer"] = "العميل: ";
$lang["sales_sale_by_invoice"] = "البيع بفاتورة رسمية";
$lang["sales_sale_for_customer"] = "العميل:";
$lang["sales_sale_time"] = "الوقت";
$lang["sales_sales_tax"] = "";
$lang["sales_select_customer"] = "اختيار عميل (اختيارى)";
$lang["sales_sales_tax"] = "ضريبة البيع";
$lang["sales_select_customer"] = "اختيار عميل (اختياري)";
$lang["sales_send_invoice"] = "إرسال الفاتورة";
$lang["sales_send_quote"] = "";
$lang["sales_send_quote"] = "ارسال عرض الاسعار";
$lang["sales_send_receipt"] = "إرسال إيصال";
$lang["sales_send_work_order"] = "ارسال طلب عمل";
$lang["sales_serial"] = "مسلسل";
$lang["sales_show_invoice"] = "عرض الفاتورة";
$lang["sales_show_receipt"] = "عرض الإيصال";
$lang["sales_start_typing_customer_name"] = "ابداء بكتابة اسم العميل...";
$lang["sales_start_typing_item_name"] = "ابداء بكتابة اسم أو مسح باركود الصنف";
$lang["sales_start_typing_item_name"] = "ابداء بكتابة اسم أو مسح باركود الصنف...";
$lang["sales_stock"] = "المخزن";
$lang["sales_stock_location"] = "مكان المخزون";
$lang["sales_sub_total"] = "المجموع الفرعى";
$lang["sales_sub_total"] = "المجموع الفرعي";
$lang["sales_successfully_deleted"] = "لقد تم الحذف بنجاح";
$lang["sales_successfully_suspended_sale"] = "لقد تم تعليق عملية البيع بنجاح";
$lang["sales_successfully_updated"] = "لقد تم تحديث بيانات عملية البيع بنجاح";
$lang["sales_successfully_restored"] = "لقد تمت عملية الاستعادة بنجاح";
$lang["sales_successfully_suspended_sale"] = "لقد تم تعليق عملية البيع بنجاح.";
$lang["sales_successfully_updated"] = "لقد تم تحديث بيانات عملية البيع بنجاح.";
$lang["sales_suspend_sale"] = "تعليق عملية البيع";
$lang["sales_suspended_doc_id"] = "ملف";
$lang["sales_suspended_sale_id"] = "كود عملية البيع";
$lang["sales_suspended_sales"] = "المبيعات المعلقة";
$lang["sales_table"] = "";
$lang["sales_takings"] = "الإيراد";
$lang["sales_table"] = "طاولة";
$lang["sales_takings"] = "المبيع اليومي";
$lang["sales_tax"] = "ضريبة";
$lang["sales_tax_percent"] = "ضريبة %";
$lang["sales_total"] = "المجموع";
$lang["sales_total_tax_exclusive"] = "الإجمالى بدون الضرائب";
$lang["sales_transaction_failed"] = "فشل حركة البيع";
$lang["sales_transaction_failed"] = "فشل حركة البيع.";
$lang["sales_unable_to_add_item"] = "غير قادر على إضافة صنف لعملية البيع";
$lang["sales_unsuccessfully_deleted"] = "لايمكن حذف عملية/عمليات البيع";
$lang["sales_unsuccessfully_suspended_sale"] = "فشل تعليق عملية البيع";
$lang["sales_unsuccessfully_updated"] = "فشل عملية تحديث عملية البيع";
$lang["sales_unsuccessfully_deleted"] = "لايمكن حذف عملية/عمليات البيع.";
$lang["sales_unsuccessfully_restored"] = "فشل في استعادة عملية البيع.";
$lang["sales_unsuccessfully_suspended_sale"] = "فشل تعليق عملية البيع.";
$lang["sales_unsuccessfully_updated"] = "فشل تحديث عملية البيع.";
$lang["sales_unsuspend"] = "إلغاء تعليق";
$lang["sales_unsuspend_and_delete"] = "إلغاء تعليق وحذف";
$lang["sales_update"] = "تحديث";
$lang["sales_work_order"] = "طلب عمل";
$lang["sales_work_order_number"] = "رقم طلب العمل";
$lang["sales_work_order_number_duplicate"] = "رقم طلب العمل يجب ان يكون فريد.";
$lang["sales_work_order_sent"] = "تم ارسال طلب العمل الى";
$lang["sales_work_order_unsent"] = "فشل في ارسال طلب العمل الى";

View File

@@ -1,14 +1,15 @@
<?php
$lang["suppliers_account_number"] = "حساب رقم#";
$lang["suppliers_account_number"] = "رقم الحساب";
$lang["suppliers_agency_name"] = "اسم الوكالة";
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم";
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم.";
$lang["suppliers_company_name"] = "اسم الشركة";
$lang["suppliers_company_name_required"] = "اسم الشركة مطلوب";
$lang["suppliers_company_name_required"] = "اسم الشركة مطلوب.";
$lang["suppliers_confirm_delete"] = "هل تريد حقا حذف هؤلاء الموردين؟";
$lang["suppliers_error_adding_updating"] = "خطاء فى إضافة/تحديث المورد";
$lang["suppliers_confirm_restore"] = "هل تريد بالتأكيد استعادة المورد (الموردين) المحددين؟";
$lang["suppliers_error_adding_updating"] = "خطاء فى إضافة/تحديث المورد.";
$lang["suppliers_new"] = "مورد جديد";
$lang["suppliers_none_selected"] = "لم تختار موردين لحذفهم";
$lang["suppliers_none_selected"] = "لم تختار موردين لحذفهم.";
$lang["suppliers_one_or_multiple"] = "مورد/موردين";
$lang["suppliers_successful_adding"] = "لقد تم إضافة المورد بنجاح";
$lang["suppliers_successful_deleted"] = "لقد تم حذف المورد بنجاح";

View File

@@ -1,31 +1,32 @@
<?php
$lang["taxes_add_exception"] = "";
$lang["taxes_confirm_delete"] = "";
$lang["taxes_default_tax_category"] = "";
$lang["taxes_error_adding_updating"] = "";
$lang["taxes_new"] = "";
$lang["taxes_no_taxes_to_display"] = "";
$lang["taxes_round_half_down"] = "";
$lang["taxes_round_half_even"] = "";
$lang["taxes_round_half_odd"] = "";
$lang["taxes_round_half_up"] = "";
$lang["taxes_rounding_code"] = "";
$lang["taxes_sales_tax"] = "";
$lang["taxes_sales_tax_by_invoice"] = "";
$lang["taxes_successful_deleted"] = "";
$lang["taxes_tax_category"] = "";
$lang["taxes_tax_code"] = "";
$lang["taxes_tax_code_cannot_be_deleted"] = "";
$lang["taxes_tax_code_name"] = "";
$lang["taxes_tax_code_required"] = "";
$lang["taxes_tax_code_successful_deleted"] = "";
$lang["taxes_tax_code_successful_updated"] = "";
$lang["taxes_tax_code_successful_updating"] = "";
$lang["taxes_tax_code_successfully_added"] = "";
$lang["taxes_tax_code_type"] = "";
$lang["taxes_tax_rate"] = "";
$lang["taxes_tax_rate_numeric"] = "";
$lang["taxes_tax_rate_required"] = "";
$lang["taxes_update"] = "";
$lang["taxes_vat_tax"] = "";
$lang["taxes_add_exception"] = "أضافة أستثناء";
$lang["taxes_confirm_delete"] = "هل أنت متأكد من تغيير الكود الضريبي؟ هذا الأجراء غير قابل للرجوع.";
$lang["taxes_confirm_restore"] = "هل أنت متأكد من أستعادة الأكواد الضريبية؟";
$lang["taxes_default_tax_category"] = "التصنيف الضريبي الأفتراضي";
$lang["taxes_error_adding_updating"] = "فشل إضافة أو تغيير الكود الضريبي.";
$lang["taxes_new"] = "كود ضريبي جديد";
$lang["taxes_no_taxes_to_display"] = "لا يوجد أكواد ضريبية للعرض.";
$lang["taxes_round_half_down"] = "تقريب Half Down";
$lang["taxes_round_half_even"] = "تقريب Half Even";
$lang["taxes_round_half_odd"] = "تقريب Half Odd";
$lang["taxes_round_half_up"] = "تقريب Half Up";
$lang["taxes_rounding_code"] = "كود التقريب";
$lang["taxes_sales_tax"] = "ضريبة المبيعات";
$lang["taxes_sales_tax_by_invoice"] = "ضريبة المبيعات بالفاتورة";
$lang["taxes_successful_deleted"] = "تم المسح بنجاح";
$lang["taxes_tax_category"] = "نوع الضريبة";
$lang["taxes_tax_code"] = "كود الضريبة";
$lang["taxes_tax_code_cannot_be_deleted"] = "فشل مسح الكود الضريبي.";
$lang["taxes_tax_code_name"] = "اسم الكود الضريبي";
$lang["taxes_tax_code_required"] = "حقل الكود الضريبي مطلوب.";
$lang["taxes_tax_code_successful_deleted"] = "تم مسح الكود الضريبي";
$lang["taxes_tax_code_successful_updated"] = "تم التعديل بنجاح";
$lang["taxes_tax_code_successful_updating"] = "تم تعديل الكود الضريبي بنجاح";
$lang["taxes_tax_code_successfully_added"] = "لقد تم إضافة المورد بنجاح";
$lang["taxes_tax_code_type"] = "نوع كود الضريبة";
$lang["taxes_tax_rate"] = "معدل الضريبة الافتراضي %";
$lang["taxes_tax_rate_numeric"] = "معدل الضريبة الافتراضي يجب أن يكون رقم.";
$lang["taxes_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب.";
$lang["taxes_update"] = "تعديل نوع ضريبة المبيعات";
$lang["taxes_vat_tax"] = "ضريبة القيمة المضافة";

View File

@@ -1,10 +1,10 @@
<?php
$lang["tables_all"] = "All";
$lang["tables_columns"] = "Columns";
$lang["tables_hide_show_pagination"] = "Hide/Show pagination";
$lang["tables_loading"] = "Loading, please wait...";
$lang["tables_page_from_to"] = "Showing {0} to {1} of {2} rows";
$lang["tables_refresh"] = "Refresh";
$lang["tables_rows_per_page"] = "{0} rows per page";
$lang["tables_toggle"] = "Toggle";
$lang["tables_all"] = "";
$lang["tables_columns"] = "";
$lang["tables_hide_show_pagination"] = "";
$lang["tables_loading"] = "";
$lang["tables_page_from_to"] = "";
$lang["tables_refresh"] = "";
$lang["tables_rows_per_page"] = "";
$lang["tables_toggle"] = "";

View File

@@ -1,67 +1,68 @@
<?php
$lang["common_address_1"] = "Address 1";
$lang["common_address_2"] = "Address 2";
$lang["common_city"] = "City";
$lang["common_close"] = "Close";
$lang["common_comments"] = "Comments";
$lang["common_common"] = "common";
$lang["common_confirm_search"] = "You have selected one or more rows, these will no longer be selected after your search. Are you sure you want to submit this search?";
$lang["common_country"] = "Country";
$lang["common_date"] = "Date";
$lang["common_delete"] = "Delete";
$lang["common_det"] = "details";
$lang["common_download_import_template"] = "Download Import Excel Template (CSV)";
$lang["common_edit"] = "edit";
$lang["common_email"] = "Email";
$lang["common_email_invalid_format"] = "The email address is not in the proper format";
$lang["common_address_1"] = "Ünvan 1 ";
$lang["common_address_2"] = "Ünvan 2";
$lang["common_city"] = "Şəhər";
$lang["common_close"] = "Bağlı";
$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_country"] = "Ölkə";
$lang["common_date"] = "Təqvim";
$lang["common_delete"] = "Sil";
$lang["common_det"] = "detallar";
$lang["common_download_import_template"] = "İdxal Excel Şablonunu Yüklə";
$lang["common_edit"] = "Redaktə Et";
$lang["common_email"] = "elektron adres";
$lang["common_email_invalid_format"] = "E-poçt ünvanı düzgün formatda deyil.";
$lang["common_export_excel"] = "Excel Export";
$lang["common_export_excel_no"] = "No";
$lang["common_export_excel_yes"] = "Yes";
$lang["common_fields_required_message"] = "Fields in red are required";
$lang["common_first_name"] = "First Name";
$lang["common_first_name_required"] = "The first name is a required field.";
$lang["common_first_page"] = "First";
$lang["common_gender"] = "Gender";
$lang["common_export_excel_no"] = "Xeyir";
$lang["common_export_excel_yes"] = "Bəli";
$lang["common_fields_required_message"] = "Qırmızı sahələr tələb olunur";
$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"] = "F";
$lang["common_gender_male"] = "M";
$lang["common_id"] = "Id";
$lang["common_import"] = "Import";
$lang["common_import_change_file"] = "Change";
$lang["common_id"] = "Kimlik";
$lang["common_import"] = "İmport etmək";
$lang["common_import_change_file"] = "Dəyiş";
$lang["common_import_excel"] = "Excel Import";
$lang["common_import_full_path"] = "Full path to excel file required";
$lang["common_import_remove_file"] = "Remove";
$lang["common_import_select_file"] = "Select file";
$lang["common_inv"] = "inv";
$lang["common_last_name"] = "Last Name";
$lang["common_last_name_required"] = "The last name is a required field";
$lang["common_last_page"] = "Last";
$lang["common_learn_about_project"] = "to learn the latest information about the project";
$lang["common_list_of"] = "List of";
$lang["common_logout"] = "Logout";
$lang["common_new"] = "New";
$lang["common_no_persons_to_display"] = "There are no people to display";
$lang["common_none_selected_text"] = "Nothing selected";
$lang["common_or"] = "OR";
$lang["common_phone_number"] = "Phone Number";
$lang["common_phone_number_required"] = "";
$lang["common_please_visit_my"] = "Please visit my";
$lang["common_powered_by"] = "Powered by";
$lang["common_price"] = "Price";
$lang["common_print"] = "Print";
$lang["common_remove"] = "Remove";
$lang["common_required"] = "Required";
$lang["common_return_policy"] = "Return Policy";
$lang["common_search"] = "Search";
$lang["common_search_options"] = "Search options";
$lang["common_searched_for"] = "Searched for";
$lang["common_state"] = "State";
$lang["common_submit"] = "Submit";
$lang["common_total_spent"] = "Total Spent";
$lang["common_unknown"] = "Unknown";
$lang["common_view_recent_sales"] = "View Recent Sales";
$lang["common_website"] = "website";
$lang["common_welcome"] = "Welcome";
$lang["common_welcome_message"] = "Welcome to OSPOS, click a module below to get started!";
$lang["common_you_are_using_ospos"] = "You are using Open Source Point Of Sale Version";
$lang["common_zip"] = "Zip";
$lang["common_import_full_path"] = "Excel faylına tam yol tələb olunur";
$lang["common_import_remove_file"] = "Sil";
$lang["common_import_select_file"] = "Fayl Seç";
$lang["common_inv"] = "familiya və mütləq məsafə ";
$lang["common_last_name"] = "Soyad";
$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_logout"] = "Çıxış";
$lang["common_new"] = "Təzə";
$lang["common_no_persons_to_display"] = "Göstəriləcək insanlar yoxdur";
$lang["common_none_selected_text"] = "Heçnə seçilməyib";
$lang["common_or"] = "Və Ya";
$lang["common_phone_number"] = "Telefon Nömrəsi";
$lang["common_phone_number_required"] = "çıxarış ";
$lang["common_please_visit_my"] = "Xahiş edirik ziyarət edin";
$lang["common_powered_by"] = "Tərəfindən Dəstəklənir";
$lang["common_price"] = "Qiymət";
$lang["common_print"] = "Çap";
$lang["common_remove"] = "Silmək";
$lang["common_required"] = "Tələb olunan";
$lang["common_restore"] = "Bərpa Etmək";
$lang["common_return_policy"] = "Geri qaytarmaq haqqında nizamnamə";
$lang["common_search"] = "Axtarış";
$lang["common_search_options"] = "Axtarış variantları";
$lang["common_searched_for"] = "Axtarıldı";
$lang["common_state"] = "Ştat";
$lang["common_submit"] = "Təqdim";
$lang["common_total_spent"] = "Cəmi Xərclənmiş";
$lang["common_unknown"] = "Naməlum";
$lang["common_view_recent_sales"] = "Son Satışları Göstər";
$lang["common_website"] = "Web-adres";
$lang["common_welcome"] = "Xoş Gəlmisiniz";
$lang["common_welcome_message"] = "OSPOS-a Xoş gəlmisiniz, başlamaq üçün bir modula basın.";
$lang["common_you_are_using_ospos"] = "Open Source Point Of Sale versiyasını istifadə edirsiniz";
$lang["common_zip"] = "Poçt Kodu";

View File

@@ -1,247 +1,273 @@
<?php
$lang["config_address"] = "Company Address";
$lang["config_address_required"] = "Company address is a required field";
$lang["config_apostrophe"] = "apostrophe";
$lang["config_backup_button"] = "Backup";
$lang["config_backup_database"] = "Backup Database";
$lang["config_barcode"] = "Barcode";
$lang["config_barcode_company"] = "Company Name";
$lang["config_barcode_configuration"] = "Barcode Configuration";
$lang["config_barcode_content"] = "Barcode Content";
$lang["config_barcode_first_row"] = "Row 1";
$lang["config_barcode_font"] = "Font";
$lang["config_barcode_formats"] = "Input Formats";
$lang["config_barcode_generate_if_empty"] = "Generate if empty";
$lang["config_barcode_height"] = "Height (px)";
$lang["config_barcode_id"] = "Item Id/Name";
$lang["config_barcode_info"] = "Barcode Configuration Information";
$lang["config_barcode_layout"] = "Barcode Layout";
$lang["config_barcode_name"] = "Name";
$lang["config_barcode_number"] = "Barcode";
$lang["config_barcode_number_in_row"] = "Number in row";
$lang["config_barcode_page_cellspacing"] = "Display page cellspacing";
$lang["config_barcode_page_width"] = "Display page width";
$lang["config_barcode_price"] = "Price";
$lang["config_barcode_quality"] = "Quality (1-100)";
$lang["config_barcode_second_row"] = "Row 2";
$lang["config_barcode_third_row"] = "Row 3";
$lang["config_barcode_type"] = "Barcode Type";
$lang["config_barcode_width"] = "Width (px)";
$lang["config_bottom"] = "Bottom";
$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_center"] = "Center";
$lang["config_comma"] = "comma";
$lang["config_company"] = "Company Name";
$lang["config_company_change_image"] = "Change Image";
$lang["config_company_logo"] = "Company Logo";
$lang["config_company_remove_image"] = "Remove Image";
$lang["config_company_required"] = "Company name is a required field";
$lang["config_company_select_image"] = "Select Image";
$lang["config_company_website_url"] = "Company website is not a valid URL (http://...)";
$lang["config_country_codes"] = "Country Codes";
$lang["config_country_codes_tooltip"] = "Comma separated list of country codes for nominatim address lookup.";
$lang["config_currency_decimals"] = "Currency Decimals";
$lang["config_currency_symbol"] = "Currency Symbol";
$lang["config_custom1"] = "Custom Field 1";
$lang["config_custom10"] = "Custom Field 10";
$lang["config_custom2"] = "Custom Field 2";
$lang["config_custom3"] = "Custom Field 3";
$lang["config_custom4"] = "Custom Field 4";
$lang["config_custom5"] = "Custom Field 5";
$lang["config_custom6"] = "Custom Field 6";
$lang["config_custom7"] = "Custom Field 7";
$lang["config_custom8"] = "Custom Field 8";
$lang["config_custom9"] = "Custom Field 9";
$lang["config_customer_reward"] = "Reward";
$lang["config_customer_reward_duplicate"] = "Please use an unique reward name";
$lang["config_customer_reward_enable"] = "Enable Customer Rewards";
$lang["config_customer_reward_invalid_chars"] = "The reward name can not contain '_'";
$lang["config_customer_reward_required"] = "Reward is a required field";
$lang["config_customer_sales_tax_support"] = "Customer Sales Tax Support";
$lang["config_date_or_time_format"] = "Date and Time Filter";
$lang["config_datetimeformat"] = "Date and Time Format";
$lang["config_decimal_point"] = "Decimal Point";
$lang["config_default_barcode_font_size_number"] = "The default barcode font size must be a number";
$lang["config_default_barcode_font_size_required"] = "The default barcode font size is a required field";
$lang["config_default_barcode_height_number"] = "The default barcode height must be a number";
$lang["config_default_barcode_height_required"] = "The default barcode height is a required field";
$lang["config_default_barcode_num_in_row_number"] = "The default barcode number in row must be a number";
$lang["config_default_barcode_num_in_row_required"] = "The default barcode num in row is a required field";
$lang["config_default_barcode_page_cellspacing_number"] = "The default barcode page cellspacing must be a number";
$lang["config_default_barcode_page_cellspacing_required"] = "The default barcode page cellspacing is a required field";
$lang["config_default_barcode_page_width_number"] = "The default barcode page width must be a number";
$lang["config_default_barcode_page_width_required"] = "The default barcode page width is a required field";
$lang["config_default_barcode_quality_number"] = "The default barcode quality must be a number";
$lang["config_default_barcode_quality_required"] = "The default barcode quality is a required field";
$lang["config_default_barcode_width_number"] = "The default barcode width must be a number";
$lang["config_default_barcode_width_required"] = "The default barcode width is a required field";
$lang["config_default_origin_tax_code"] = "Default Origin Tax Code";
$lang["config_default_sales_discount"] = "Default Sales Discount %";
$lang["config_default_sales_discount_number"] = "The default sales discount must be a number";
$lang["config_default_sales_discount_required"] = "The default sales discount is a required field";
$lang["config_default_tax_name_number"] = "The default tax name must be a string";
$lang["config_default_tax_name_required"] = "The default tax name is a required field";
$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_number"] = "The default tax rate must be a number";
$lang["config_default_tax_rate_required"] = "The default tax rate is a required field";
$lang["config_dinner_table"] = "Table";
$lang["config_dinner_table_duplicate"] = "Please use an unique table name";
$lang["config_dinner_table_enable"] = "Enable Dinner Tables";
$lang["config_dinner_table_invalid_chars"] = "The table name can not contain '_'";
$lang["config_dinner_table_required"] = "Table is a required field";
$lang["config_dot"] = "dot";
$lang["config_email"] = "Email";
$lang["config_email_configuration"] = "Email Configuration";
$lang["config_email_mailpath"] = "Path to Sendmail";
$lang["config_email_protocol"] = "Protocol";
$lang["config_email_smtp_crypto"] = "SMTP Encryption";
$lang["config_email_smtp_host"] = "SMTP Server";
$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_fax"] = "Fax";
$lang["config_financial_year"] = "Financial Year Start";
$lang["config_financial_year_apr"] = "1st of April";
$lang["config_financial_year_aug"] = "1st of August";
$lang["config_financial_year_dec"] = "1st of December";
$lang["config_financial_year_feb"] = "1st of February";
$lang["config_financial_year_jan"] = "1st of January";
$lang["config_financial_year_jul"] = "1st of July";
$lang["config_financial_year_jun"] = "1st of June";
$lang["config_financial_year_mar"] = "1st of March";
$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_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";
$lang["config_gcaptcha_site_key"] = "reCAPTCHA Site Key";
$lang["config_gcaptcha_site_key_required"] = "reCAPTCHA Site Key is a required field";
$lang["config_gcaptcha_tooltip"] = "Protect the Login page with Google reCAPTCHA, click the icon for an API key pair";
$lang["config_general"] = "General";
$lang["config_general_configuration"] = "General Configuration";
$lang["config_giftcard_number"] = "Gift Card Number";
$lang["config_giftcard_random"] = "Generate Random";
$lang["config_giftcard_series"] = "Generate in Series";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_invoice"] = "Invoice";
$lang["config_invoice_configuration"] = "Invoice Print Settings";
$lang["config_invoice_default_comments"] = "Default Invoice Comments";
$lang["config_invoice_email_message"] = "Invoice Email Template";
$lang["config_invoice_enable"] = "Enable Invoicing";
$lang["config_invoice_printer"] = "Invoice Printer";
$lang["config_jsprintsetup_required"] = "Warning! This disabled 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";
$lang["config_last_used_quote_number"] = "Last Used Quote Number";
$lang["config_left"] = "Left";
$lang["config_license"] = "License";
$lang["config_license_configuration"] = "License Statement";
$lang["config_line_sequence"] = "Line Sequence";
$lang["config_lines_per_page"] = "Lines Per Page";
$lang["config_lines_per_page_number"] = "";
$lang["config_lines_per_page_required"] = "The lines per page is a required field";
$lang["config_locale"] = "Localisation";
$lang["config_locale_configuration"] = "Localisation Configuration";
$lang["config_locale_info"] = "Localisation Configuration Information";
$lang["config_location"] = "Stock";
$lang["config_location_configuration"] = "Stock Locations";
$lang["config_location_info"] = "Location Configuration Information";
$lang["config_logout"] = "Don't you want to make a backup before logging out? Click [OK] to backup, [Cancel] to logout";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
$lang["config_mailchimp_configuration"] = "Mailchimp Configuration";
$lang["config_mailchimp_key_successfully"] = "Valid API Key";
$lang["config_mailchimp_key_unsuccessfully"] = "Invalid API Key";
$lang["config_mailchimp_lists"] = "Mailchimp List(s)";
$lang["config_mailchimp_tooltip"] = "Click the icon for an API key";
$lang["config_message"] = "Message";
$lang["config_message_configuration"] = "Message Configuration";
$lang["config_msg_msg"] = "Saved Text Message";
$lang["config_msg_msg_placeholder"] = "If you wish to use a SMS template save your message here. Otherwise leave the box blank.";
$lang["config_msg_pwd"] = "SMS-API Password";
$lang["config_msg_pwd_required"] = "SMS-API Password is a required field";
$lang["config_msg_src"] = "SMS-API Sender ID";
$lang["config_msg_src_required"] = "SMS-API Sender ID is a required field";
$lang["config_msg_uid"] = "SMS-API Username";
$lang["config_msg_uid_required"] = "SMS-API Username is a required field";
$lang["config_none"] = "none";
$lang["config_notify_alignment"] = "Notification Popup Position";
$lang["config_number_format"] = "Number Format";
$lang["config_number_locale"] = "Localisation";
$lang["config_number_locale_invalid"] = "The entered locale is invalid. Check the link in the tooltip to find a sensible value";
$lang["config_number_locale_required"] = "Number Locale is a required field";
$lang["config_number_locale_tooltip"] = "Find a suitable locale through this link";
$lang["config_payment_options_order"] = "Payment Options Order";
$lang["config_phone"] = "Company Phone";
$lang["config_phone_required"] = "Company phone is a required field";
$lang["config_print_bottom_margin"] = "Margin Bottom";
$lang["config_print_bottom_margin_number"] = "The default bottom margin must be a number";
$lang["config_print_bottom_margin_required"] = "The default bottom margin is a required field";
$lang["config_print_footer"] = "Print Browser Footer";
$lang["config_print_header"] = "Print Browser Header";
$lang["config_print_left_margin"] = "Margin Left";
$lang["config_print_left_margin_number"] = "The default left margin must be a number";
$lang["config_print_left_margin_required"] = "The default left margin is a required field";
$lang["config_print_right_margin"] = "Margin Right";
$lang["config_print_right_margin_number"] = "The default right margin must be a number";
$lang["config_print_right_margin_required"] = "The default right margin is a required field";
$lang["config_print_silently"] = "Show Print Dialog";
$lang["config_print_top_margin"] = "Margin Top";
$lang["config_print_top_margin_number"] = "The default top margin must be a number";
$lang["config_print_top_margin_required"] = "The default top margin is a required field";
$lang["config_quantity_decimals"] = "Quantity Decimals";
$lang["config_receipt"] = "Receipt";
$lang["config_receipt_configuration"] = "Receipt Print Settings";
$lang["config_receipt_default"] = "Default";
$lang["config_receipt_font_size"] = "Font Size";
$lang["config_receipt_font_size_number"] = "The font size must be a number";
$lang["config_receipt_font_size_required"] = "The font size is a required field";
$lang["config_receipt_info"] = "Receipt Configuration Information";
$lang["config_receipt_printer"] = "Ticket Printer";
$lang["config_receipt_short"] = "Short";
$lang["config_receipt_show_company_name"] = "Show Company Name";
$lang["config_receipt_show_description"] = "Show Description";
$lang["config_receipt_show_serialnumber"] = "Show Serial Number";
$lang["config_receipt_show_taxes"] = "Show Taxes";
$lang["config_receipt_show_total_discount"] = "Show Total Discount";
$lang["config_receipt_template"] = "Receipt Template";
$lang["config_receiving_calculate_average_price"] = "Calc avg. Price (Receiving)";
$lang["config_recv_invoice_format"] = "Receivings Invoice Format";
$lang["config_register_mode_default"] = "Default Register Mode";
$lang["config_return_policy_required"] = "Return policy is a required field";
$lang["config_reward"] = "Reward";
$lang["config_reward_configuration"] = "Reward Configuration";
$lang["config_right"] = "Right";
$lang["config_sales_invoice_format"] = "Sales Invoice Format";
$lang["config_sales_quote_format"] = "Sales Quote Format";
$lang["config_saved_successfully"] = "Configuration saved successfully";
$lang["config_saved_unsuccessfully"] = "Configuration saved unsuccessfully";
$lang["config_statistics"] = "Send Statistics";
$lang["config_statistics_tooltip"] = "Send statistics for development and feature improvement purposes";
$lang["config_stock_location"] = "Stock location";
$lang["config_stock_location_duplicate"] = "Please use an unique location name";
$lang["config_stock_location_invalid_chars"] = "The stock location name can not contain '_'";
$lang["config_stock_location_required"] = "Stock location is a required field";
$lang["config_table"] = "Table";
$lang["config_table_configuration"] = "Table Configuration";
$lang["config_takings_printer"] = "Takings Printer";
$lang["config_tax"] = "Tax";
$lang["config_tax_category"] = "Tax Category";
$lang["config_tax_category_used"] = "Tax category cannot be deleted because it is being used.";
$lang["config_tax_configuration"] = "Tax Configuration";
$lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_top"] = "Top";
$lang["config_website"] = "Website";
$lang["config_address"] = "Şirkət Adresi";
$lang["config_address_required"] = "Şirkətin adı olan boşluq sahəsi doldurulmalıdı.";
$lang["config_allow_duplicate_barcodes"] = "Dublikat Barkodlarına icazə verin";
$lang["config_apostrophe"] = "Apastrof";
$lang["config_backup_button"] = "Ehtiyyat Köçürmə";
$lang["config_backup_database"] = "Məlumat Bazasını Ehtiyyat Yaddaşına Göndər";
$lang["config_barcode"] = "Barkod";
$lang["config_barcode_company"] = "Şirkətin Adı";
$lang["config_barcode_configuration"] = "Barkod Konfiqurasiyası";
$lang["config_barcode_content"] = "Barkod Məzmunu";
$lang["config_barcode_first_row"] = "Sıra 1";
$lang["config_barcode_font"] = "Yazı Tipi";
$lang["config_barcode_formats"] = "Giriş Formatları";
$lang["config_barcode_generate_if_empty"] = "Boşdursa Yarat.";
$lang["config_barcode_height"] = "Hündürlük";
$lang["config_barcode_id"] = "Malın İd/Adı";
$lang["config_barcode_info"] = "Barkod Konfiqurasiya Məlumatı";
$lang["config_barcode_layout"] = "Barkod Çərçivəsi";
$lang["config_barcode_name"] = "Ad";
$lang["config_barcode_number"] = "Barkod";
$lang["config_barcode_number_in_row"] = "Sıradakı Nömrə";
$lang["config_barcode_page_cellspacing"] = "Səhifədə hüceyrə sahəsini göstərin.";
$lang["config_barcode_page_width"] = "Səyfənin genişliyini göstər";
$lang["config_barcode_price"] = "Qiymət";
$lang["config_barcode_second_row"] = "Sıra 2";
$lang["config_barcode_third_row"] = "Sira 3";
$lang["config_barcode_tooltip"] = "Diqqət: Bu xüsusiyyət malların dublikat olmaslna, idxal edilməsinə və ya yaradılmasına səbəb ola bilər. Çoğaltıcı barkod istəmirsinizsə istifadə etməyin.";
$lang["config_barcode_type"] = "Barkod Növü";
$lang["config_barcode_width"] = "Genişlik";
$lang["config_bottom"] = "Aşağı";
$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_center"] = "Mərkəz";
$lang["config_comma"] = "vergül";
$lang["config_company"] = "Şirkətin Adı";
$lang["config_company_change_image"] = "Şəkili Dəyiş";
$lang["config_company_logo"] = "Şirkətin Logosu";
$lang["config_company_remove_image"] = "Şəkili Sil";
$lang["config_company_required"] = "Şirkətin adı qeyd olunmalıdır";
$lang["config_company_select_image"] = "Şəkil Seç";
$lang["config_company_website_url"] = "Şirkətin web saytı düzgün URL deyil.";
$lang["config_country_codes"] = "Ölkə Kodları";
$lang["config_country_codes_tooltip"] = "Vergüllə ayrılmış ölkə kodları üçün nominantim adres axtarışı.";
$lang["config_currency_decimals"] = "Məzənnə Rəqəmləri";
$lang["config_currency_symbol"] = "Valyuta Simvolu";
$lang["config_custom1"] = "Xüsusi Sahə 1";
$lang["config_custom10"] = "Xüsusi Sahə 10";
$lang["config_custom2"] = "Xüsusi Sahə 2";
$lang["config_custom3"] = "Xüsusi Sahə 3";
$lang["config_custom4"] = "Xususi Sahə 4";
$lang["config_custom5"] = "Hazir. məsafə 5";
$lang["config_custom6"] = "Özəl Sahə 6";
$lang["config_custom7"] = "Xüsusi Sahə 7";
$lang["config_custom8"] = "Xüsusi Sahə 8";
$lang["config_custom9"] = "Xususi Sahə 9";
$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";
$lang["config_customer_reward_invalid_chars"] = "Mukafat '_ ' təşkil edə bilməz";
$lang["config_customer_reward_required"] = "Mükafat olan sahə boş qala bilməz";
$lang["config_customer_sales_tax_support"] = "Müştəri Satış Vergi Dəstəyi";
$lang["config_date_or_time_format"] = "Tarix və Vaxt Filteri";
$lang["config_datetimeformat"] = "Tarix və Vaxt formatı";
$lang["config_decimal_point"] = "Ondaliq Nöqtə";
$lang["config_default_barcode_font_size_number"] = "Standart Barkod Yazı Növü Ölçüsü rəqəm ilə olmalıdır.";
$lang["config_default_barcode_font_size_required"] = "Standart Barkod Yazı Növü Ölçüsü olan sahə boş qala bilməz.";
$lang["config_default_barcode_height_number"] = "Standart Barkod hündürlüyü rəqəm ilə olmalıdır.";
$lang["config_default_barcode_height_required"] = "Standart Barkod olan sahə boş qala bilməz.";
$lang["config_default_barcode_num_in_row_number"] = "Sıradakı Barkod Nömrəsi rəqəm ilə olmalıdır.";
$lang["config_default_barcode_num_in_row_required"] = "Standart Barkod Nömrəsi olan sahə boş qala bilməz.";
$lang["config_default_barcode_page_cellspacing_number"] = "Standart Barkod Səhifədki hücrə boşluğu rəqəm ilə olmalıdır.";
$lang["config_default_barcode_page_cellspacing_required"] = "Standart Barkod Səhifədəki hücrə boşluğu olan sahə boş qala bilməz.";
$lang["config_default_barcode_page_width_number"] = "Standart Barkod Sahifə genişliyi rəqəm ilə olmalıdır.";
$lang["config_default_barcode_page_width_required"] = "Standart Barkod Səhifə Genişliyi olan sahə boş qala bilməz.";
$lang["config_default_barcode_width_number"] = "Standart Barkod Genişliyi rəqəm ilə olmalıdır.";
$lang["config_default_barcode_width_required"] = "Standart Barkod Genişliyi olan sahə boş qala bilməz.";
$lang["config_default_origin_tax_code"] = "Vergi Kodunun Standart Mənbəyi";
$lang["config_default_sales_discount"] = "Standart Satış Endirimi %";
$lang["config_default_sales_discount_number"] = "Standart Satış Endirimi rəqəm ilə olmalıdır.";
$lang["config_default_sales_discount_required"] = "Standart Satış Endirimi tələb olunan sahədi.";
$lang["config_default_tax_name_number"] = "Standart Vergi Adı uzun adlı olmalıdır .";
$lang["config_default_tax_name_required"] = "Adi vergi mütləq rəqəmlə olmalıdır.";
$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_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";
$lang["config_derive_sale_quantity_tooltip"] = "Əgər yoxlanılırsa, uzunmüddətli məbləğdə sifariş edilən əşyalar üçün yeni bir mal növü veriləcəkdir";
$lang["config_dinner_table"] = "Cədvəl";
$lang["config_dinner_table_duplicate"] = "Cədvəl unikal olmalıdır.";
$lang["config_dinner_table_enable"] = "Axşam yeməyi masalarını aktiv edin";
$lang["config_dinner_table_invalid_chars"] = "Masanın adı '_' təşkil etməməlidir.";
$lang["config_dinner_table_required"] = "Masa olan sahə boş qala bilməz.";
$lang["config_dot"] = "nöqtə";
$lang["config_email"] = "Elektron Adres";
$lang["config_email_configuration"] = "Elektron Adres Konfiqurasiyası";
$lang["config_email_mailpath"] = "Email Göndətməyə qısa yol";
$lang["config_email_protocol"] = "Protokol";
$lang["config_email_receipt_check_behaviour"] = "";
$lang["config_email_receipt_check_behaviour_always"] = "";
$lang["config_email_receipt_check_behaviour_last"] = "";
$lang["config_email_receipt_check_behaviour_never"] = "";
$lang["config_email_smtp_crypto"] = "SMTP Şifrələmə";
$lang["config_email_smtp_host"] = "SMTP Serveri";
$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_enforce_privacy"] = "";
$lang["config_enforce_privacy_tooltip"] = "";
$lang["config_fax"] = "Faks";
$lang["config_financial_year"] = "Maliyyə İli Başlancığı";
$lang["config_financial_year_apr"] = "1 Aprel";
$lang["config_financial_year_aug"] = "1 Avgust";
$lang["config_financial_year_dec"] = "1 Dekabr";
$lang["config_financial_year_feb"] = "1 Fevral";
$lang["config_financial_year_jan"] = "1 Yanvar";
$lang["config_financial_year_jul"] = "1 İyul";
$lang["config_financial_year_jun"] = "1 İyun";
$lang["config_financial_year_mar"] = "1 Mart";
$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_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";
$lang["config_gcaptcha_site_key"] = "reCAPTCHA Sayt Açarı";
$lang["config_gcaptcha_site_key_required"] = "reCAPTCHA Sayt Açarı olan sahə boş qala bilməz";
$lang["config_gcaptcha_tooltip"] = "Giriş səhifəsini Google reCAPTCHA ilə qoruyun, APİ açarını uyğunlaşdırmaq üçün işarə ilə göstərilən düyməyə basın.";
$lang["config_general"] = "Ümumi";
$lang["config_general_configuration"] = "Ümumi Konfiqurasiya";
$lang["config_giftcard_number"] = "Hədiyyə Kartı Nömrəsi";
$lang["config_giftcard_random"] = "Təsadüfən Yarat";
$lang["config_giftcard_series"] = "Bölümlərə görə Yarat";
$lang["config_info"] = "Məlumat";
$lang["config_info_configuration"] = "Dükan İnformasiyası";
$lang["config_invoice"] = "Faktura";
$lang["config_invoice_configuration"] = "Faktura Çap Parametrləri";
$lang["config_invoice_default_comments"] = "Standart Faktura Şərhləri";
$lang["config_invoice_email_message"] = "Dil";
$lang["config_invoice_enable"] = "Fakturanı Aktivləşdir";
$lang["config_invoice_printer"] = "Faktura Printeri";
$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";
$lang["config_last_used_quote_number"] = "Son istifadə edilmiş Kvota sayı";
$lang["config_last_used_work_order_number"] = "Son istifadə edilən W / O sayı";
$lang["config_left"] = "Sol";
$lang["config_license"] = "Lisenziya";
$lang["config_license_configuration"] = "Lisenziya bəyanatı";
$lang["config_line_sequence"] = "Sıra Ardıcıllığı";
$lang["config_lines_per_page"] = "Səhifə başına xəttlər";
$lang["config_lines_per_page_number"] = "Səhifə başına sətirlər bir rəqəm ilə olmalıdır.";
$lang["config_lines_per_page_required"] = "Səyfə Başına olan xəttər sahəsi boş qala bilməz.";
$lang["config_locale"] = "Yerləşdirmə";
$lang["config_locale_configuration"] = "Lokallaşdırma Konfiqurasiyası";
$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_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ı";
$lang["config_mailchimp_configuration"] = "Mailchimp Konfiqurasiyası";
$lang["config_mailchimp_key_successfully"] = "API Açarı etibarlıdır.";
$lang["config_mailchimp_key_unsuccessfully"] = "API Açarı etibarsızdır.";
$lang["config_mailchimp_lists"] = "Mailchimp siyahısı (lar)";
$lang["config_mailchimp_tooltip"] = "API Açarının İşarəsinə basın.";
$lang["config_message"] = "Mesaj";
$lang["config_message_configuration"] = "Mesaj Konfiqurasiyası";
$lang["config_msg_msg"] = "Saxlanılan Mətn Mesajı";
$lang["config_msg_msg_placeholder"] = "SMS şablonunu istifadə etmək istəyirsinizsə, mesajınızı buraya qeyd edin, əks halda qutunu boş buraxın.";
$lang["config_msg_pwd"] = "SMS-API Şifrəsi";
$lang["config_msg_pwd_required"] = "SMS-API şifrəsi tələb olunan bir sahədir";
$lang["config_msg_src"] = "SMS-API Göndərici ID";
$lang["config_msg_src_required"] = "SMS-API Göndərici ID tələb olunan sahədir";
$lang["config_msg_uid"] = "SMS-API İstifadəçi adı";
$lang["config_msg_uid_required"] = "SMS-API İstifadəçi adı tələb olunan sahədir";
$lang["config_none"] = "Heç biri";
$lang["config_notify_alignment"] = "Bildiriş Pəncərə Mövqeyi";
$lang["config_number_format"] = "Nömrə Formatı";
$lang["config_number_locale"] = "Yerləşdirmə";
$lang["config_number_locale_invalid"] = "Kompaniyanın tel.";
$lang["config_number_locale_required"] = "Şirkət telefonu olan sahə boş qalma bilməz.";
$lang["config_number_locale_tooltip"] = "Bu link vasitəsilə uyğun bir yer tapın.";
$lang["config_payment_options_order"] = "Sifariş üçün Ödəmə Şərtləri";
$lang["config_phone"] = "Şirkətin Telefon Nömrəsi";
$lang["config_phone_required"] = "Şirkət Telefonu tələb olunan bir sahədir.";
$lang["config_print_bottom_margin"] = "Çərçivədki aşağı Sərhəd";
$lang["config_print_bottom_margin_number"] = "Aşağıdaki Sərhəd rəqəm ilə olmalıdır.";
$lang["config_print_bottom_margin_required"] = "Aşağıdakı Sərhəd boş qala bilməz.";
$lang["config_print_delay_autoreturn"] = "";
$lang["config_print_delay_autoreturn_number"] = "";
$lang["config_print_delay_autoreturn_required"] = "";
$lang["config_print_footer"] = "Brauzer Altlığını Çap Et";
$lang["config_print_header"] = "Brauzer Başlığını çap et";
$lang["config_print_left_margin"] = "Soldaki Künc";
$lang["config_print_left_margin_number"] = "Soldaki Künc rəqəm ilə olmalıdır.";
$lang["config_print_left_margin_required"] = "Soldaki Künc olan sahə boş qala bilməz.";
$lang["config_print_receipt_check_behaviour"] = "";
$lang["config_print_receipt_check_behaviour_always"] = "";
$lang["config_print_receipt_check_behaviour_last"] = "";
$lang["config_print_receipt_check_behaviour_never"] = "";
$lang["config_print_right_margin"] = "Sağdaki Künc";
$lang["config_print_right_margin_number"] = "Sağdakı Künc rəqəm ilə olmalıdır.";
$lang["config_print_right_margin_required"] = "Sağdakı Künc olan sahə boş qala bilməz.";
$lang["config_print_silently"] = "Çap Edilmiş Yazışmanı Gostər";
$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_quote_default_comments"] = "";
$lang["config_receipt"] = "Çek";
$lang["config_receipt_configuration"] = "Çek Cap Parametirləri";
$lang["config_receipt_default"] = "Adi";
$lang["config_receipt_font_size"] = "Yazı Tipi";
$lang["config_receipt_font_size_number"] = "Yazı ölçüsü bir sıra olmalıdır.";
$lang["config_receipt_font_size_required"] = "Yazı tipi ölçüsü zəruri bir sahədir.";
$lang["config_receipt_info"] = "Alınan Konfiqurasiya Məlumatı";
$lang["config_receipt_printer"] = "Bilet Çap edən";
$lang["config_receipt_short"] = "Qısa";
$lang["config_receipt_show_company_name"] = "Şirkətin Adını Göstər";
$lang["config_receipt_show_description"] = "Təsviri Göstər";
$lang["config_receipt_show_serialnumber"] = "Serial nömrəsi göstər";
$lang["config_receipt_show_taxes"] = "Vergini Göstər";
$lang["config_receipt_show_total_discount"] = "Ümumi Endirim göstər";
$lang["config_receipt_template"] = "Geri qaytarmaq mütləq məsafə lazımdır";
$lang["config_receiving_calculate_average_price"] = "Otalama Qiyməti Hesabla (Alınan)";
$lang["config_recv_invoice_format"] = "Alınan Fatura Formatı";
$lang["config_register_mode_default"] = "Standart Qeydiyyat Rejimi";
$lang["config_return_policy_required"] = "Geri Qaytarma Qanunu olan sahə zəruri sahədir.";
$lang["config_reward"] = "Mükafat";
$lang["config_reward_configuration"] = "Konfiqurasiya ugurla saxlanıldı";
$lang["config_right"] = "Konfiqurasiya ugursuz oldu saxlanilmadi";
$lang["config_sales_invoice_format"] = "Satış Fatura Formatı";
$lang["config_sales_quote_format"] = "Satış Sitat Formati";
$lang["config_saved_successfully"] = "Konfiqurasiya uğurla saxlanıldı.";
$lang["config_saved_unsuccessfully"] = "Konfiqurasiyanı saxlamq mümkün olmadı.";
$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.";
$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_first_column"] = "Sütun 1";
$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";
$lang["config_table"] = "Masa";
$lang["config_table_configuration"] = "Cədvəl Konfiqurasiyası";
$lang["config_takings_printer"] = "Printer Çeki";
$lang["config_tax"] = "Vergi";
$lang["config_tax_category"] = "Vergi Kategoriyasi";
$lang["config_tax_category_duplicate"] = "Daxil edilən vergi kategoriyası artıq mövcuddur.";
$lang["config_tax_category_invalid_chars"] = "Daxil edilən vergi kategoriyası səhvdir.";
$lang["config_tax_category_required"] = "Vergi Kategoriyası tələb olunur.";
$lang["config_tax_category_used"] = "Vergi kateqoriyası istifadə olunduğu üçün silinə bilməz.";
$lang["config_tax_configuration"] = "Vergi Konfiqurasiyası";
$lang["config_tax_decimals"] = "Vaxt";
$lang["config_tax_included"] = "Vergi Daxildir";
$lang["config_theme"] = "Vebsayt";
$lang["config_thousands_separator"] = "Minliklər Ayıran";
$lang["config_timezone"] = "Vaxt Zonası";
$lang["config_top"] = "Yuxarı";
$lang["config_website"] = "Vebsayt";
$lang["config_work_order_enable"] = "İş Sifariş Dəstəyi";
$lang["config_work_order_format"] = "İş Sifarş Farmatı";

View File

@@ -1,45 +1,50 @@
<?php
$lang["customers_account_number"] = "Account #";
$lang["customers_account_number_duplicate"] = "This account number is already present in the database";
$lang["customers_available_points"] = "Available Points";
$lang["customers_average"] = "Average spent";
$lang["customers_avg_discount"] = "Average discount";
$lang["customers_basic_information"] = "Information";
$lang["customers_cannot_be_deleted"] = "Could not deleted selected customers, one or more of the selected customers has sales.";
$lang["customers_company_name"] = "Company";
$lang["customers_confirm_delete"] = "Are you sure you want to delete the selected customers?";
$lang["customers_customer"] = "Customer";
$lang["customers_discount"] = "Discount";
$lang["customers_email_duplicate"] = "The email address is already present in the database";
$lang["customers_error_adding_updating"] = "Error adding/updating customer";
$lang["customers_excel_import_failed"] = "Excel import failed";
$lang["customers_excel_import_nodata_wrongformat"] = "Your uploaded file has no data or wrong format";
$lang["customers_excel_import_partially_failed"] = "Most Customers imported. But some were not, here is the list";
$lang["customers_excel_import_success"] = "Import of Customers successful";
$lang["customers_import_items_excel"] = "Import customers from Excel sheet";
$lang["customers_mailchimp_activity_click"] = "Email click";
$lang["customers_mailchimp_activity_lastopen"] = "Last open email";
$lang["customers_mailchimp_activity_open"] = "Email open";
$lang["customers_mailchimp_activity_total"] = "Email sent";
$lang["customers_mailchimp_activity_unopen"] = "Email unopen";
$lang["customers_mailchimp_email_client"] = "Email client";
$lang["customers_account_number"] = "hesab nömrəsi";
$lang["customers_account_number_duplicate"] = "";
$lang["customers_available_points"] = "";
$lang["customers_average"] = "";
$lang["customers_avg_discount"] = "Orta endirim";
$lang["customers_basic_information"] = "Məlumat";
$lang["customers_cannot_be_deleted"] = "Seçilmiş müştərilər silinə bilməz, bir və ya birdən çox müştərilərin satışları var";
$lang["customers_company_name"] = "Şirkət";
$lang["customers_confirm_delete"] = "Siz seçilmiş müştərini (lər) silməyə əminsinizmi?";
$lang["customers_confirm_restore"] = "";
$lang["customers_consent"] = "";
$lang["customers_consent_required"] = "";
$lang["customers_customer"] = "Müştəri";
$lang["customers_date"] = "";
$lang["customers_discount"] = "Endirim";
$lang["customers_email_duplicate"] = "Məlumat bazasında artıq elektron poçt adresi var";
$lang["customers_employee"] = "";
$lang["customers_error_adding_updating"] = "Müştəri əlavəsində ya da yenilənməsində səhv";
$lang["customers_excel_import_failed"] = "Excel idxalı alınmadı";
$lang["customers_excel_import_nodata_wrongformat"] = "Yüklənmiş faylda heç bir məlumat yoxdur ya da səhv farmat edilib";
$lang["customers_excel_import_partially_failed"] = "Müştəri əlavəsi bəzi səhvlər olmaqla uğurla alındı";
$lang["customers_excel_import_success"] = "Müştəri Əlavəsi uğurla alındı";
$lang["customers_import_items_excel"] = "Exceldən müştəri əlavə et";
$lang["customers_mailchimp_activity_click"] = "Elektron poçt düyməsi";
$lang["customers_mailchimp_activity_lastopen"] = "Son açılan məktub";
$lang["customers_mailchimp_activity_open"] = "ıq məktub";
$lang["customers_mailchimp_activity_total"] = "Məktub göndərildi";
$lang["customers_mailchimp_activity_unopen"] = "ılmamış məktub";
$lang["customers_mailchimp_email_client"] = "Müştəriyə Məktub Göndər";
$lang["customers_mailchimp_info"] = "Mailchimp";
$lang["customers_mailchimp_member_rating"] = "Rating";
$lang["customers_mailchimp_member_rating"] = "Reytinq";
$lang["customers_mailchimp_status"] = "Status";
$lang["customers_mailchimp_vip"] = "VIP";
$lang["customers_max"] = "Max spent";
$lang["customers_min"] = "Min spent";
$lang["customers_new"] = "New Customer";
$lang["customers_none_selected"] = "You have not selected any customers to delete";
$lang["customers_one_or_multiple"] = "customer(s)";
$lang["customers_quantity"] = "Quantity";
$lang["customers_stats_info"] = "Stats";
$lang["customers_successful_adding"] = "You have successfully added customer";
$lang["customers_successful_deleted"] = "You have successfully deleted";
$lang["customers_successful_updating"] = "You have successfully updated customer";
$lang["customers_tax_code"] = "Tax Code";
$lang["customers_taxable"] = "Taxable";
$lang["customers_total"] = "Total spent";
$lang["customers_update"] = "Update Customer";
$lang["rewards_package"] = "Rewards Package";
$lang["customers_mailchimp_vip"] = "siz silmək üçün heç bir müştəri seçməmisiniz";
$lang["customers_max"] = "Ən çox xərclənən";
$lang["customers_min"] = "Ən az xərclənən";
$lang["customers_new"] = "Yeni Müştəri";
$lang["customers_none_selected"] = "Siz silmək üçün müştəri seçməmisiniz";
$lang["customers_one_or_multiple"] = "müştəri (lər)";
$lang["customers_quantity"] = "Miqdarı";
$lang["customers_stats_info"] = "Statistikalar";
$lang["customers_successful_adding"] = "Siz uğurla müştəri əlavə etdiniz";
$lang["customers_successful_deleted"] = "Siz uğurla sildiniz";
$lang["customers_successful_updating"] = "Siz uğurla müştərini sildiniz";
$lang["customers_tax_code"] = "Vergi Kodu";
$lang["customers_taxable"] = "";
$lang["customers_total"] = "";
$lang["customers_update"] = "";
$lang["rewards_package"] = "";

View File

@@ -1,22 +1,22 @@
<?php
$lang["datepicker_all_time"] = "All Time";
$lang["datepicker_apply"] = "Apply";
$lang["datepicker_cancel"] = "Cancel";
$lang["datepicker_custom"] = "Custom";
$lang["datepicker_from"] = "From";
$lang["datepicker_last_30"] = "Last 30 Days";
$lang["datepicker_last_7"] = "Last 7 Days";
$lang["datepicker_all_time"] = "";
$lang["datepicker_apply"] = "";
$lang["datepicker_cancel"] = "";
$lang["datepicker_custom"] = "";
$lang["datepicker_from"] = "";
$lang["datepicker_last_30"] = "";
$lang["datepicker_last_7"] = "";
$lang["datepicker_last_financial_year"] = "Last Financial Year";
$lang["datepicker_last_month"] = "Last Month";
$lang["datepicker_last_year"] = "Last Year";
$lang["datepicker_same_month_last_year"] = "Same Month Last Year";
$lang["datepicker_same_month_to_same_day_last_year"] = "Same Month To Same Day Last Year";
$lang["datepicker_last_month"] = "ast Month";
$lang["datepicker_last_year"] = "";
$lang["datepicker_same_month_last_year"] = "";
$lang["datepicker_same_month_to_same_day_last_year"] = "";
$lang["datepicker_this_financial_year"] = "This Financial Year";
$lang["datepicker_this_month"] = "This Month";
$lang["datepicker_this_year"] = "This Year";
$lang["datepicker_to"] = "To";
$lang["datepicker_today"] = "Today";
$lang["datepicker_today_last_year"] = "Today Last Year";
$lang["datepicker_weekstart"] = "0";
$lang["datepicker_yesterday"] = "Yesterday";
$lang["datepicker_to"] = "";
$lang["datepicker_today"] = "";
$lang["datepicker_today_last_year"] = "";
$lang["datepicker_weekstart"] = "";
$lang["datepicker_yesterday"] = "";

View File

@@ -1,34 +1,37 @@
<?php
$lang["employees_basic_information"] = "Information";
$lang["employees_cannot_be_deleted"] = "Could not deleted selected employees, one or more of the employees has processed sales or you are trying to delete yourself :)";
$lang["employees_change_password"] = "Change Password";
$lang["employees_confirm_delete"] = "Are you sure you want to delete the selected employees?";
$lang["employees_current_password"] = "Current Password";
$lang["employees_current_password_invalid"] = "Invalid Current Password";
$lang["employees_employee"] = "Employee";
$lang["employees_error_adding_updating"] = "Error adding/updating employee";
$lang["employees_error_deleting_demo_admin"] = "You can not delete the demo admin user";
$lang["employees_error_updating_demo_admin"] = "You can not change the demo admin user";
$lang["employees_login_info"] = "Login";
$lang["employees_new"] = "New Employee";
$lang["employees_none_selected"] = "You have not selected any employees to delete";
$lang["employees_one_or_multiple"] = "employee(s)";
$lang["employees_password"] = "Password";
$lang["employees_password_minlength"] = "Passwords must be at least 8 characters";
$lang["employees_password_must_match"] = "Passwords do not match";
$lang["employees_password_not_must_match"] = "Current password and new password should not be the same";
$lang["employees_password_required"] = "Password is required";
$lang["employees_permission_desc"] = "Check the boxes below to grant access to modules";
$lang["employees_permission_info"] = "Permissions";
$lang["employees_repeat_password"] = "Password Again";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
$lang["employees_successful_adding"] = "You have successfully added employee";
$lang["employees_successful_change_password"] = "Password successfully changed";
$lang["employees_successful_deleted"] = "You have successfully deleted";
$lang["employees_successful_updating"] = "You have successfully updated employee";
$lang["employees_unsuccessful_change_password"] = "Password unsuccessfully changed";
$lang["employees_update"] = "Update Employee";
$lang["employees_username"] = "Username";
$lang["employees_username_minlength"] = "The username must be at least 5 characters";
$lang["employees_username_required"] = "Username is a required field";
$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ışırsiz";
$lang["employees_change_password"] = "Şifrəni Dəyiş";
$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ə";
$lang["employees_current_password_invalid"] = "Hazirki Şifrə düzgün deyil";
$lang["employees_employee"] = "Əməkdaş";
$lang["employees_error_adding_updating"] = "Əməkdaş əlavə etməsk və ya yeniləməsi baş vermədi.";
$lang["employees_error_deleting_demo_admin"] = "Demo administrator istifadəçisini silə bilməzsiniz.";
$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_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)";
$lang["employees_password"] = "Şifrə";
$lang["employees_password_minlength"] = "Şifrə ən azı 8 simvol olmalıdır.";
$lang["employees_password_must_match"] = "Şifrələr uyğun gəlmir.";
$lang["employees_password_not_must_match"] = "Hazırki şifrə və yeni şifrə unikal olmalıdır.";
$lang["employees_password_required"] = "Şifrə tələb olunur";
$lang["employees_permission_desc"] = "Modullara giriş imkanı vermək üçün aşağıdakı qutuları yoxlayın.";
$lang["employees_permission_info"] = "İcazələr";
$lang["employees_repeat_password"] = "Şifrəni yenidən təkrar edin";
$lang["employees_subpermission_required"] = "Hər bir modul üçün ən azı bir qrant əlavə edin.";
$lang["employees_successful_adding"] = "Əməkdaş müvəffəqiyyətə əlavə olundu";
$lang["employees_successful_change_password"] = "Şifrə müvəffəqiyyətlə dəyişildi";
$lang["employees_successful_deleted"] = "Siz uğurla sildiniz";
$lang["employees_successful_updating"] = "Siz uğurla əməkdaşı yenilədiniz";
$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_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

@@ -1,4 +1,4 @@
<?php
$lang["error_no_permission_module"] = "You do not have permission to access the module named";
$lang["error_unknown"] = "unknown";
$lang["error_no_permission_module"] = "sizin icazəniz yoxdur";
$lang["error_unknown"] = "naməlum";

View File

@@ -0,0 +1,20 @@
<?php
$lang["category_name_required"] = "Xərc Kategoriyası adı tələb olunur";
$lang["expenses_categories_add_item"] = "Kategoriya əlavə et";
$lang["expenses_categories_cannot_be_deleted"] = "Kategoriya Xərcləri silinmədi";
$lang["expenses_categories_category_id"] = "Kimlik";
$lang["expenses_categories_confirm_delete"] = "Seçilmiş xərc kateqoriyasını silmək istədiyinizə əminsinizmi?";
$lang["expenses_categories_description"] = "Kateqoriya təsviri";
$lang["expenses_categories_error_adding_updating"] = "Əlavədə Səhv/Xərcl Kategotiyasi yenilənir";
$lang["expenses_categories_info"] = "Xərc Kategoriyası Məlumatı";
$lang["expenses_categories_name"] = "Kategoriya adı";
$lang["expenses_categories_new"] = "Yeni Kategoriya";
$lang["expenses_categories_no_expenses_categories_to_display"] = "Heç bir kategoriya göstərilmir";
$lang["expenses_categories_none_selected"] = "Siz heç bir Xərc Kategoriyasi Seçməmisiniz";
$lang["expenses_categories_one_or_multiple"] = "Xərc Kategoriyası";
$lang["expenses_categories_quantity"] = "Miqdarı";
$lang["expenses_categories_successful_adding"] = "Xərc Kategoriyası uğurla əlavə edildi";
$lang["expenses_categories_successful_deleted"] = "Xərc Kategoriyası uğurla silindi";
$lang["expenses_categories_successful_updating"] = "Xərcləri Kateqoriya yeniləmə müvəffəqiyyətli";
$lang["expenses_categories_update"] = "Kateqoriya yeniləmə";

View File

@@ -0,0 +1,45 @@
<?php
$lang["expenses_add_item"] = "Xərc Əlavə Et";
$lang["expenses_amount"] = "Məbləğ";
$lang["expenses_amount_number"] = "Məbləğ rəqəm ilə olmalıdır";
$lang["expenses_amount_required"] = "Xərc Məbləği tələb olunur";
$lang["expenses_by_category"] = "Kategoriya";
$lang["expenses_cannot_be_deleted"] = "Xərc Kategoriya (lar) silinnə bilməz";
$lang["expenses_cash"] = "Nəğd Pul";
$lang["expenses_cash_filter"] = "Nəğd";
$lang["expenses_categories_name"] = "Kategoriya";
$lang["expenses_category_required"] = "Kategoriya bölməsi boş qala bilməz";
$lang["expenses_check"] = "Çek";
$lang["expenses_check_filter"] = "Çek";
$lang["expenses_confirm_delete"] = "Seçilmiş xərci silmək istədiyinizə əminsinizmi?";
$lang["expenses_confirm_restore"] = "Seçilmiş xərci (lər) bərpa etmək istədiyinizə əminsinizmi?";
$lang["expenses_credit"] = "Kredit Kartı";
$lang["expenses_credit_filter"] = "Kredit Kartı";
$lang["expenses_date"] = "Tarix";
$lang["expenses_date_number"] = "Tarix rəqəm ilə olmalıdır.";
$lang["expenses_date_required"] = "Tarix qeyd edilməlidir";
$lang["expenses_debit"] = "Debit Kartı";
$lang["expenses_debit_filter"] = "Debit Kard";
$lang["expenses_description"] = "Təsvir";
$lang["expenses_due"] = "görə";
$lang["expenses_due_filter"] = "Görə";
$lang["expenses_employee"] = "Tərəfindən Yaradıldı";
$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_is_deleted"] = "Silinib";
$lang["expenses_name_required"] = "Xərcin məlumatı qeyd edilməlidir";
$lang["expenses_new"] = "Yeni Xərc";
$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)";
$lang["expenses_payment"] = "Ödəmə Növü";
$lang["expenses_successful_adding"] = "Xərc uğurla əlavə edildi";
$lang["expenses_successful_deleted"] = "Xərc uğurla silindi";
$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_update"] = "Xərci Yenilə";

View File

@@ -1,18 +0,0 @@
<?php
$lang["alpha_dash"] = "";
$lang["alpha_numeric"] = "";
$lang["exact_length"] = "";
$lang["greater_than"] = "";
$lang["is_natural"] = "";
$lang["is_natural_no_zero"] = "";
$lang["is_numeric"] = "";
$lang["is_unique"] = "";
$lang["less_than"] = "";
$lang["max_length"] = "";
$lang["min_length"] = "";
$lang["regex_match"] = "";
$lang["valid_email"] = "";
$lang["valid_emails"] = "";
$lang["valid_ip"] = "";
$lang["valid_url"] = "";

View File

@@ -1,70 +1,70 @@
<?php
$lang["giftcards_add_minus"] = "Inventory to add/subtract";
$lang["giftcards_allow_alt_description"] = "Allow Alt Description";
$lang["giftcards_amazon"] = "Amazon";
$lang["giftcards_bulk_edit"] = "Bulk Edit";
$lang["giftcards_cannot_be_deleted"] = "Could not deleted selected giftcards, one or more of the selected giftcards has sales.";
$lang["giftcards_cannot_find_giftcard"] = "Cannot find any information about giftcard";
$lang["giftcards_cannot_use"] = "Giftcard %1 cannot be used for this sale. Invalid Customer!";
$lang["giftcards_card_value"] = "Value";
$lang["giftcards_category"] = "Category";
$lang["giftcards_change_all_to_allow_alt_desc"] = "Allow Alt Desc For All";
$lang["giftcards_change_all_to_not_allow_allow_desc"] = "Not Allow Alt Desc For All";
$lang["giftcards_change_all_to_serialized"] = "Change All To Serialized";
$lang["giftcards_change_all_to_unserialized"] = "Change All To Unserialized";
$lang["giftcards_confirm_bulk_edit"] = "Are you sure you want to edit all the giftcards selected?";
$lang["giftcards_confirm_delete"] = "Are you sure you want to delete the selected giftcards?";
$lang["giftcards_cost_price"] = "Cost Price";
$lang["giftcards_count"] = "Update Inventory";
$lang["giftcards_current_quantity"] = "Current Quantity";
$lang["giftcards_description"] = "Description";
$lang["giftcards_details_count"] = "Inventory Count Details";
$lang["giftcards_do_nothing"] = "Do Nothing";
$lang["giftcards_edit_fields_you_want_to_update"] = "Edit the fields you want to edit for ALL selected giftcards";
$lang["giftcards_edit_multiple_giftcards"] = "Editing Multiple Giftcards";
$lang["giftcards_error_adding_updating"] = "Error adding/updating giftcard";
$lang["giftcards_error_updating_multiple"] = "Error updating giftcards";
$lang["giftcards_excel_import_failed"] = "Excel import failed";
$lang["giftcards_generate_barcodes"] = "Generate Barcodes";
$lang["giftcards_giftcard"] = "Giftcard";
$lang["giftcards_giftcard_number"] = "Giftcard Number";
$lang["giftcards_info_provided_by"] = "Info provided by";
$lang["giftcards_inventory_comments"] = "Comments";
$lang["giftcards_is_serialized"] = "Giftcard has Serial Number";
$lang["giftcards_low_inventory_giftcards"] = "Low Inventory Giftcards";
$lang["giftcards_manually_editing_of_quantity"] = "Manual Edit of Quantity";
$lang["giftcards_must_select_giftcard_for_barcode"] = "You must select at least 1 giftcard to generate barcodes";
$lang["giftcards_new"] = "New Giftcard";
$lang["giftcards_no_description_giftcards"] = "No Description Giftcards";
$lang["giftcards_no_giftcards_to_display"] = "No Giftcards to display";
$lang["giftcards_none"] = "None";
$lang["giftcards_none_selected"] = "You have not selected any giftcards to edit";
$lang["giftcards_number"] = "Giftcard Number must be a number";
$lang["giftcards_number_information"] = "Giftcard Number";
$lang["giftcards_number_required"] = "Giftcard Number is a required field";
$lang["giftcards_one_or_multiple"] = "giftcard(s)";
$lang["giftcards_person_id"] = "Customer";
$lang["giftcards_quantity"] = "Quantity";
$lang["giftcards_quantity_required"] = "Quantity is a required field. Please Close ( X ) to cancel";
$lang["giftcards_remaining_balance"] = "Giftcard %1 remaining value is %2!";
$lang["giftcards_reorder_level"] = "Reorder Level";
$lang["giftcards_retrive_giftcard_info"] = "Retrieve Giftcard Info";
$lang["giftcards_sales_tax_1"] = "Sales Tax";
$lang["giftcards_sales_tax_2"] = "Sales Tax 2";
$lang["giftcards_serialized_giftcards"] = "Serialized Giftcards";
$lang["giftcards_successful_adding"] = "You have successfully added giftcard";
$lang["giftcards_successful_bulk_edit"] = "You have successfully updated the selected giftcards";
$lang["giftcards_successful_deleted"] = "You have successfully deleted";
$lang["giftcards_successful_updating"] = "You have successfully updated giftcard";
$lang["giftcards_supplier"] = "Supplier";
$lang["giftcards_tax_1"] = "Tax 1";
$lang["giftcards_tax_2"] = "Tax 2";
$lang["giftcards_tax_percent"] = "Tax Percent";
$lang["giftcards_tax_percents"] = "Tax Percent(s)";
$lang["giftcards_unit_price"] = "Unit Price";
$lang["giftcards_upc_database"] = "Barcode Database";
$lang["giftcards_update"] = "Update Giftcard";
$lang["giftcards_use_inventory_menu"] = "Use Inv. Menu";
$lang["giftcards_value"] = "Giftcard Value must be a number";
$lang["giftcards_value_required"] = "Giftcard Value is a required field";
$lang["giftcards_add_minus"] = "Əlavə etmək və ya çıxarmaq üçün inventar.";
$lang["giftcards_allow_alt_description"] = "Alternativ Təsvirə Icazə Verin";
$lang["giftcards_bulk_edit"] = "Kütləvi Redaktə";
$lang["giftcards_cannot_be_deleted"] = "Seçilmiş Hədiyyə Kartlarını silmək mümkün deyil, seçilmiş Hədiyyə Kartlarının bir və ya bir neçəsi satışa sahibdir.";
$lang["giftcards_cannot_find_giftcard"] = "Hədiyyə kartı tapılmadı.";
$lang["giftcards_cannot_use"] = "Bu satış üçün 1% Hədiyyə kartı istifadə edilə bilməz: Müştəri Etibarsızdır";
$lang["giftcards_card_value"] = "Dəyəri";
$lang["giftcards_category"] = "Kategoriya";
$lang["giftcards_change_all_to_allow_alt_desc"] = "Hamısı üçün Alternativ təsvirə icazə ver";
$lang["giftcards_change_all_to_not_allow_allow_desc"] = "Hamısı üçün alternativ təsvirə icazə vermə";
$lang["giftcards_change_all_to_serialized"] = "Tamamını Serialara Görə Dəyiş";
$lang["giftcards_change_all_to_unserialized"] = "Hamısını qeyri seriyalara görə dəyiş";
$lang["giftcards_confirm_bulk_edit"] = "Seçilmiş Hədiyyə Kartlarını redaktə etmək istədiyinizə əminsinizmi?";
$lang["giftcards_confirm_delete"] = "Seçilmiş Hədiyyə Kartlarını ləğv etmək istədiyinizə əminsinizmi?";
$lang["giftcards_confirm_restore"] = "Seçilmiş Hədiyyə Kartlarını (lər) bərpa etmək istədiyinizə əminsinizmi?";
$lang["giftcards_cost_price"] = "Topdan Satış Qiyməti";
$lang["giftcards_count"] = "İnventarlaşdırmanı Yenilə";
$lang["giftcards_current_quantity"] = "Hazırkı Sayı";
$lang["giftcards_description"] = "Təsvir";
$lang["giftcards_details_count"] = "İnventarlaşdırma Sayının Detalları";
$lang["giftcards_do_nothing"] = "Heç nə etmə";
$lang["giftcards_edit_fields_you_want_to_update"] = "Seçilmiş Hədiyyə Kartları üçün istədiyiniz sahələri redaktə edin.";
$lang["giftcards_edit_multiple_giftcards"] = "Birdən çox Hədiyyə Kartını redaktə et";
$lang["giftcards_error_adding_updating"] = "Hədiyyə Kartı əlavəsində və yenilənməsində səhv var";
$lang["giftcards_error_updating_multiple"] = "Hədiyyə kartlarının yeniləməsi uğursuz oldu.";
$lang["giftcards_excel_import_failed"] = "Excel idxalı uğursuz oldu";
$lang["giftcards_generate_barcodes"] = "Barkodlar Yarat";
$lang["giftcards_giftcard"] = "Hədiyyə Kartı";
$lang["giftcards_giftcard_number"] = "Hədiyyə Kartı Nömrəsi";
$lang["giftcards_info_provided_by"] = "Məlumat tərəfindən verildi";
$lang["giftcards_inventory_comments"] = "Rəylər";
$lang["giftcards_is_serialized"] = "Hədiyyə kartının Serial Nömrəsi var";
$lang["giftcards_low_inventory_giftcards"] = "Aşağı İnvertizasiyalı Hədiyyə Karti";
$lang["giftcards_manually_editing_of_quantity"] = "Sayı əl ilə redaktə edilməsi";
$lang["giftcards_must_select_giftcard_for_barcode"] = "Barkod yaratmaq üçün ən az bir 1 Hədiyyə Kartı seçməlisiniz.";
$lang["giftcards_new"] = "Yeni Hədiyyə Kartı";
$lang["giftcards_no_description_giftcards"] = "Hədiyyə Kartının heç bir təsviri yoxdur.";
$lang["giftcards_no_giftcards_to_display"] = "Heç bir Hədiyyə Kartı göstərilmir";
$lang["giftcards_none"] = "Heç Biri";
$lang["giftcards_none_selected"] = "Redaktə etmək üçün Hədiyyə Kartları yoxdu.";
$lang["giftcards_number"] = "Hədiyyə Kartı Nömrəsi rəqəm ilə olmalıdır";
$lang["giftcards_number_information"] = "Hədiyyə Karti Nömrəsi";
$lang["giftcards_number_required"] = "Hədiyyə kartı nömrəsi tələb olunan sahədir.";
$lang["giftcards_one_or_multiple"] = "Hədiyyə Kartı (lar)";
$lang["giftcards_person_id"] = "Müştəri";
$lang["giftcards_quantity"] = "Sayı";
$lang["giftcards_quantity_required"] = "Miqyas tələb olunan sahədir. Ləğv etmək üçün xahiş olunur (X).";
$lang["giftcards_remaining_balance"] = "Hədiyyə kartının % 1 qalan dəyəri -% 2!";
$lang["giftcards_reorder_level"] = "Yenidən Sifariş Səviyyəsi";
$lang["giftcards_retrive_giftcard_info"] = "siz uğurla hədiyyə kartı əlavə etdiz";
$lang["giftcards_sales_tax_1"] = "Satış Vergisi";
$lang["giftcards_sales_tax_2"] = "Satış Vergisi 2";
$lang["giftcards_serialized_giftcards"] = "Serialara görə Hədiyyə Kartları";
$lang["giftcards_successful_adding"] = "Siz uğurla Hədiyyə Kartını əlavə etdiniz.";
$lang["giftcards_successful_bulk_edit"] = "Seçdiyiniz Gift Card (lar) ı uğurla yenilədiniz";
$lang["giftcards_successful_deleted"] = "Siz Uğurla Sildiniz";
$lang["giftcards_successful_updating"] = "Hədiyyə Kartını müvəffəqiyyətlə yenilədiniz";
$lang["giftcards_supplier"] = "Təchizatçı";
$lang["giftcards_tax_1"] = "Vergi 1";
$lang["giftcards_tax_2"] = "Vergi 2";
$lang["giftcards_tax_percent"] = "Vergi Faizi";
$lang["giftcards_tax_percents"] = "Vergi Faiz (lər) i";
$lang["giftcards_unit_price"] = "Pərakəndə Dəyəri";
$lang["giftcards_upc_database"] = "Barkod Məlumat Bazası";
$lang["giftcards_update"] = "Hədiyyə kartını Yeniləyin";
$lang["giftcards_use_inventory_menu"] = "İnventarlaşdırma menyusundan istifadə edin";
$lang["giftcards_value"] = "Hədiyyə Kartı Dəyəri rəqəm ilə olmalıdır";
$lang["giftcards_value_required"] = "Hədiyyə kartı dəyəri zəruri bir sahədir.";

View File

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

View File

@@ -1,31 +1,32 @@
<?php
$lang["item_kits_add_item"] = "Add Item";
$lang["item_kits_all"] = "All";
$lang["item_kits_cannot_be_deleted"] = "Could not delete item kit(s)";
$lang["item_kits_confirm_delete"] = "Are you sure you want to delete the selected item kits?";
$lang["item_kits_description"] = "Item Kit Description";
$lang["item_kits_discount_percent"] = "Discount Percent";
$lang["item_kits_error_adding_updating"] = "Error adding/updating Item Kit";
$lang["item_kits_find_kit_item"] = "Kit Item";
$lang["item_kits_info"] = "Item Kit Info";
$lang["item_kits_item"] = "Item";
$lang["item_kits_items"] = "Items";
$lang["item_kits_kit"] = "Kit Id";
$lang["item_kits_kit_and_components"] = "Kit and Components";
$lang["item_kits_kit_and_stock"] = "Kit and Stock";
$lang["item_kits_kit_only"] = "Kit Only";
$lang["item_kits_name"] = "Item Kit Name";
$lang["item_kits_new"] = "New Item Kit";
$lang["item_kits_no_item_kits_to_display"] = "No item kits to display";
$lang["item_kits_none_selected"] = "You have not selected any item kits";
$lang["item_kits_one_or_multiple"] = "Item Kit(s)";
$lang["item_kits_price_option"] = "Price Option";
$lang["item_kits_priced_only"] = "Priced Only";
$lang["item_kits_print_option"] = "Print Option";
$lang["item_kits_quantity"] = "Quantity";
$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_update"] = "Update Item Kit";
$lang["item_kits_add_item"] = "Mal Əlavə Etmək";
$lang["item_kits_all"] = "Hamısı";
$lang["item_kits_cannot_be_deleted"] = "Dəst Mal (lar) silinə bilməz.";
$lang["item_kits_confirm_delete"] = "Siz əminsiniz ki seçilmiş mallar dəstlərini silmək istəyirsiniz?";
$lang["item_kits_confirm_restore"] = "Seçilən Mal dəstini (lər) bərpa etmək istədiyinizə əminsiniz?";
$lang["item_kits_description"] = "Mal Dəstinin Təsviri";
$lang["item_kits_discount_percent"] = "Endirim Faizi";
$lang["item_kits_error_adding_updating"] = "Malı yeniləməkdə və ya əlavə etməkdə səhv var.";
$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_items"] = "Mallar";
$lang["item_kits_kit"] = "Dəstin İd";
$lang["item_kits_kit_and_components"] = "Dəst və Komponentlər";
$lang["item_kits_kit_and_stock"] = "Dəst və Anbar";
$lang["item_kits_kit_only"] = "Yalnız Dəst";
$lang["item_kits_name"] = "Malın Adlandırılması";
$lang["item_kits_new"] = "Yeni Mal Dəsti";
$lang["item_kits_no_item_kits_to_display"] = "Göstərmək üçün mal yoxdur.";
$lang["item_kits_none_selected"] = "Hər hansı bir mal dəstini seçmədiniz.";
$lang["item_kits_one_or_multiple"] = "Mal (lar)";
$lang["item_kits_price_option"] = "Qiymət Seçimi";
$lang["item_kits_priced_only"] = "Ancaq Qiyməti Olanlar";
$lang["item_kits_print_option"] = "Çap Seçimi";
$lang["item_kits_quantity"] = "Sayı";
$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_update"] = "Mal Dəstini Yenilənməsi";

View File

@@ -1,104 +1,106 @@
<?php
$lang["items_add_minus"] = "Inventory to add/subtract";
$lang["items_add_minus"] = "inventor toplama və çixma üçün";
$lang["items_allow_alt_desciption"] = "";
$lang["items_allow_alt_description"] = "Allow Alt Description";
$lang["items_amazon"] = "Amazon";
$lang["items_bulk_edit"] = "Bulk Edit";
$lang["items_buy_price_required"] = "Purchase price is a required field";
$lang["items_cannot_be_deleted"] = "Could not deleted selected items, one or more of the selected items has sales.";
$lang["items_cannot_find_item"] = "Cannot find any information about item";
$lang["items_category"] = "Category";
$lang["items_category_required"] = "Category is a required field";
$lang["items_change_all_to_allow_alt_desc"] = "Allow Alt Desc For All";
$lang["items_change_all_to_not_allow_allow_desc"] = "Not Allow Alt Desc For All";
$lang["items_change_all_to_serialized"] = "Change All To Serialized";
$lang["items_change_all_to_unserialized"] = "Change All To Unserialized";
$lang["items_change_image"] = "Change Image";
$lang["items_confirm_bulk_edit"] = "Are you sure you want to edit all the items selected?";
$lang["items_confirm_bulk_edit_wipe_taxes"] = "All item tax information will be replaced!";
$lang["items_confirm_delete"] = "Are you sure you want to delete the selected items?";
$lang["items_cost_price"] = "Cost Price";
$lang["items_cost_price_number"] = "Cost price must be a number";
$lang["items_cost_price_required"] = "Cost Price is a required field";
$lang["items_count"] = "Update Inventory";
$lang["items_current_quantity"] = "Current Quantity";
$lang["items_description"] = "Description";
$lang["items_details_count"] = "Inventory Count Details";
$lang["items_do_nothing"] = "Do Nothing";
$lang["items_edit_fields_you_want_to_update"] = "Edit the fields you want to edit for ALL selected items";
$lang["items_edit_multiple_items"] = "Editing Multiple Items";
$lang["items_empty_upc_items"] = "Empty Barcode Items";
$lang["items_error_adding_updating"] = "Error adding/updating item";
$lang["items_error_updating_multiple"] = "Error updating items";
$lang["items_excel_import_failed"] = "Excel import failed";
$lang["items_excel_import_nodata_wrongformat"] = "Your uploaded file has no data or wrong format";
$lang["items_excel_import_partially_failed"] = "Most Items imported. But some were not, here is the list";
$lang["items_excel_import_success"] = "Import of Items successful";
$lang["items_generate_barcodes"] = "Generate Barcodes";
$lang["items_allow_alt_description"] = "Alternativ təsvirə icazə verin";
$lang["items_amount_entry"] = "Məbləğ Əlavəsi";
$lang["items_bulk_edit"] = "Kütləvi Redaktə";
$lang["items_buy_price_required"] = "Satınalma qiyməti olan sahə boş qala bilməz";
$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_category"] = "kateqoriya";
$lang["items_category_required"] = "Kategoriya olan sahə 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";
$lang["items_change_all_to_serialized"] = "Hamısını Seriyalaşdırılmışa görə dəyişin";
$lang["items_change_all_to_unserialized"] = "Qeyri Seriyalara görə dəyiş";
$lang["items_change_image"] = "Şəkili Dəyiş";
$lang["items_confirm_bulk_edit"] = "Siz əminsinizmi ki işarələnmiş butun malları redaktə etmək istəyirsiniz?";
$lang["items_confirm_bulk_edit_wipe_taxes"] = "Bütün Vergi haqqında olan Məlumatların yerləri dəyişəcək";
$lang["items_confirm_delete"] = "siz əminsiniz ki seçilmiş malları silmək istəyirsiniz?";
$lang["items_confirm_restore"] = "Seçilmiş element (lər) bərpa etmək istədiyinizə əminsinizmi?";
$lang["items_cost_price"] = "topdan satış qiyməti";
$lang["items_cost_price_number"] = "topdan satış rəqəmlə olmalıdır";
$lang["items_cost_price_required"] = "topdan satiış və mütləq məsafə";
$lang["items_count"] = "inventorun yenilənməsi";
$lang["items_current_quantity"] = "indiki say";
$lang["items_description"] = "təsvir";
$lang["items_details_count"] = "detallı inventor sayı";
$lang["items_do_nothing"] = "heç nə etməmək";
$lang["items_edit_fields_you_want_to_update"] = "siz butun seçillən malları dəyişmək istəyirsiniz";
$lang["items_edit_multiple_items"] = "bir neçə malın redaktəsi";
$lang["items_empty_upc_items"] = "Boş Barkod Malları";
$lang["items_error_adding_updating"] = "mal əlavə etməkdə və ya yeniləməkdə səhv var";
$lang["items_error_updating_multiple"] = "malların yenilənməsində səhv var";
$lang["items_excel_import_failed"] = "səhv excel import";
$lang["items_excel_import_nodata_wrongformat"] = "Yüklənmiş faylda məlumat yoxdur və ya düzgün formatlanmır.";
$lang["items_excel_import_partially_failed"] = "Çox sayda Mallar Uğurla İdxal Edildi, Bəziləri edilə bilmədi";
$lang["items_excel_import_success"] = "Malların İdxalı Uğurla Həyata Keçdi";
$lang["items_generate_barcodes"] = "şifrə yarat";
$lang["items_image"] = "Avatar";
$lang["items_import_items_excel"] = "Import items from Excel sheet";
$lang["items_info_provided_by"] = "Info provided by";
$lang["items_inventory"] = "Inventory";
$lang["items_inventory_comments"] = "Comments";
$lang["items_inventory_data_tracking"] = "Inventory Data Tracking";
$lang["items_inventory_date"] = "Date";
$lang["items_inventory_employee"] = "Employee";
$lang["items_inventory_in_out_quantity"] = "In/Out Qty";
$lang["items_inventory_remarks"] = "Remarks";
$lang["items_is_deleted"] = "Deleted";
$lang["items_is_serialized"] = "Item has Serial Number";
$lang["items_item"] = "Item";
$lang["items_item_number"] = "Barcode";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";
$lang["items_kit"] = "Kit";
$lang["items_location"] = "Location";
$lang["items_low_inventory_items"] = "Out Of Stock Items";
$lang["items_manually_editing_of_quantity"] = "Manual Edit of Quantity";
$lang["items_name"] = "Item Name";
$lang["items_name_required"] = "Item Name is a required field";
$lang["items_new"] = "New Item";
$lang["items_no_description_items"] = "No Description Items";
$lang["items_no_items_to_display"] = "No Items to display";
$lang["items_none"] = "None";
$lang["items_none_selected"] = "You have not selected any items to edit";
$lang["items_nonstock"] = "Non stocked";
$lang["items_number_information"] = "Item Number";
$lang["items_number_required"] = "Barcode is a required field";
$lang["items_one_or_multiple"] = "item(s)";
$lang["items_quantity"] = "Quantity";
$lang["items_quantity_number"] = "Quantity must be a number";
$lang["items_quantity_required"] = "Quantity is a required field";
$lang["items_receiving_quantity"] = "Receiving quantity";
$lang["items_remove_image"] = "Remove Image";
$lang["items_reorder_level"] = "Reorder Level";
$lang["items_reorder_level_number"] = "Reorder level must be a number";
$lang["items_reorder_level_required"] = "Reorder level is a required field";
$lang["items_retrive_item_info"] = "Retrive Item Info";
$lang["items_sales_tax_1"] = "Sales Tax";
$lang["items_sales_tax_2"] = "Sales Tax 2";
$lang["items_search_attributes"] = "Search Attributes";
$lang["items_search_custom_items"] = "Search Custom Items";
$lang["items_select_image"] = "Select Image";
$lang["items_serialized_items"] = "Serialized Items";
$lang["items_standard"] = "Standard";
$lang["items_stock"] = "Stock";
$lang["items_stock_location"] = "Stock location";
$lang["items_stock_type"] = "Stock Type";
$lang["items_successful_adding"] = "You have successfully added item";
$lang["items_successful_bulk_edit"] = "You have successfully updated the selected items";
$lang["items_successful_deleted"] = "You have successfully deleted";
$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_percent"] = "Tax Percent";
$lang["items_tax_percent_required"] = "Tax Percent is a required field";
$lang["items_tax_percents"] = "Tax Percent(s)";
$lang["items_type"] = "Item Type";
$lang["items_unit_price"] = "Retail Price";
$lang["items_unit_price_number"] = "Unit price must be a number";
$lang["items_unit_price_required"] = "Retail Price is a required field";
$lang["items_upc_database"] = "Barcode Database";
$lang["items_update"] = "Update Item";
$lang["items_use_inventory_menu"] = "Use Inv. Menu";
$lang["items_import_items_excel"] = "Exceldən Malları İdxal Et";
$lang["items_info_provided_by"] = "məlumat təqdim olundu ";
$lang["items_inventory"] = "inventor";
$lang["items_inventory_comments"] = "komentariyalar";
$lang["items_inventory_data_tracking"] = "İnventarlaşdırma Üçün Məlumat İzləmə";
$lang["items_inventory_date"] = "Tarix";
$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_serialized"] = "Malın Seriya Nömrəsi var";
$lang["items_item"] = "Mal";
$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";
$lang["items_location"] = "Yer";
$lang["items_low_inventory_items"] = "Bitmış Mallar";
$lang["items_manually_editing_of_quantity"] = "Sayı Əl ilə Redeaktə Etmək";
$lang["items_name"] = "Malın Adı";
$lang["items_name_required"] = "Malın adı olan sahə boş qala bilməz";
$lang["items_new"] = "Yeni Mal";
$lang["items_no_description_items"] = "Mallar haqqında Təsvir Yoxdur";
$lang["items_no_items_to_display"] = "Mallar Göstərilmir";
$lang["items_none"] = "Heçnə";
$lang["items_none_selected"] = "Siz redaktə etmək üçün hər hansı bir mal seçməmisiniz";
$lang["items_nonstock"] = "Əldə Olmayan";
$lang["items_number_information"] = "Malın Nömrəsi";
$lang["items_number_required"] = "Barkod olan sahə boş qala bilməz";
$lang["items_one_or_multiple"] = "Mal (lar)";
$lang["items_quantity"] = "Sayı";
$lang["items_quantity_number"] = "Miqdarı mütləq rəqəmlə olmalıdır";
$lang["items_quantity_required"] = "Miqdar olan sahə boş qala bilməz";
$lang["items_receiving_quantity"] = "Qəbul Olunan Miqdar";
$lang["items_remove_image"] = "Şəkili Sil";
$lang["items_reorder_level"] = "Səviyyani yenidən düzəlt";
$lang["items_reorder_level_number"] = "Səviyyəni Düzəltmək rəqəm ilə olmalıdır";
$lang["items_reorder_level_required"] = "Səviyyəni düzəlt sahəsi boş qalmamalıdır";
$lang["items_retrive_item_info"] = "Mal Haqqında Məlumat";
$lang["items_sales_tax_1"] = "Satış Vergisi";
$lang["items_sales_tax_2"] = "Satış Vergisi 2";
$lang["items_search_attributes"] = "Atributları Axtar";
$lang["items_search_custom_items"] = "Xüsusi Mallar Axtar";
$lang["items_select_image"] = "Şəkil Seç";
$lang["items_serialized_items"] = "Seriyalı Mallar";
$lang["items_standard"] = "Standart";
$lang["items_stock"] = "Ehtiyyat";
$lang["items_stock_location"] = "Ehtiyyatın Yerləşdiyi Yer";
$lang["items_stock_type"] = "Ehtiyyatda olanın Növü";
$lang["items_successful_adding"] = "Siz uğurla malı əlavə etdiniz";
$lang["items_successful_bulk_edit"] = "Siz uğurla bütun mallari yenilədiniz";
$lang["items_successful_deleted"] = "Siz uğurla sildiniz";
$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_percent"] = "Vergi Faizi";
$lang["items_tax_percent_number"] = "Vergi Faizi rəqəmli dəyər vahidi olmalıdir";
$lang["items_tax_percent_required"] = "Vergi Faizi olan sahə boş qala bilməz";
$lang["items_tax_percents"] = "Vergi Faiz(lər) i";
$lang["items_type"] = "Malın Növü";
$lang["items_unit_price"] = "Pərakəndə Satış";
$lang["items_unit_price_number"] = "Ədədin qiyməti rəqəm ilə olmalıdır";
$lang["items_unit_price_required"] = "Pərakəndə mal olan yer boş qala bilməz";
$lang["items_upc_database"] = "Barkod Məlumat Bazası";
$lang["items_update"] = "Malı Yenilə";
$lang["items_use_inventory_menu"] = "İnvertizasiya Menyusundan İstifadə Et";

View File

@@ -1,10 +1,10 @@
<?php
$lang["login_gcaptcha"] = "I'm not a robot";
$lang["login_go"] = "Go";
$lang["login_invalid_gcaptcha"] = "Invalid I'm not a robot";
$lang["login_invalid_installation"] = "The installation is not correct, check your php.ini";
$lang["login_invalid_username_and_password"] = "Invalid username or password";
$lang["login_login"] = "Login";
$lang["login_password"] = "Password";
$lang["login_username"] = "Username";
$lang["login_gcaptcha"] = "";
$lang["login_go"] = "daxil ol";
$lang["login_invalid_gcaptcha"] = "";
$lang["login_invalid_installation"] = "";
$lang["login_invalid_username_and_password"] = "ad və ya şifrə səhvdir";
$lang["login_login"] = "Giriş";
$lang["login_password"] = "Şifrə";
$lang["login_username"] = "İstifadəçi";

View File

@@ -1,14 +1,14 @@
<?php
$lang["messages_first_name"] = "First name";
$lang["messages_last_name"] = "Last name";
$lang["messages_message"] = "Message";
$lang["messages_message_placeholder"] = "Your Message here...";
$lang["messages_message_required"] = "Message required";
$lang["messages_multiple_phones"] = "(In case of multiple recipients, enter mobile numbers separated by commas)";
$lang["messages_phone"] = "Phone number";
$lang["messages_phone_number_required"] = "Phone number required";
$lang["messages_phone_placeholder"] = "Mobile Number(s) here...";
$lang["messages_sms_send"] = "Send SMS";
$lang["messages_successfully_sent"] = "Message successfully sent to: ";
$lang["messages_unsuccessfully_sent"] = "Message unsuccessfully sent to: ";
$lang["messages_first_name"] = "";
$lang["messages_last_name"] = "";
$lang["messages_message"] = "";
$lang["messages_message_placeholder"] = "";
$lang["messages_message_required"] = "";
$lang["messages_multiple_phones"] = "";
$lang["messages_phone"] = "";
$lang["messages_phone_number_required"] = "";
$lang["messages_phone_placeholder"] = "";
$lang["messages_sms_send"] = "";
$lang["messages_successfully_sent"] = "";
$lang["messages_unsuccessfully_sent"] = "";

View File

@@ -1,7 +0,0 @@
<?php
$lang["migrate_backup"] = "Be sure to back up your database before applying any database upgrades.";
$lang["migrate_failed"] = "The migration did not complete.";
$lang["migrate_info"] = "Click on Start Migration only if you are ready to apply all database changes and data upgrades to your database";
$lang["migrate_start"] = "Start Migration ";
$lang["migrate_success"] = "Migration completed successfully";

View File

@@ -1,29 +1,37 @@
<?php
$lang["module_config"] = "Store Config";
$lang["module_config_desc"] = "Change the store's configuration";
$lang["module_customers"] = "Customers";
$lang["module_customers_desc"] = "Add, Update, Delete, and Search customers";
$lang["module_employees"] = "Employees";
$lang["module_employees_desc"] = "Add, Update, Delete, and Search employees";
$lang["module_giftcards"] = "Gift Cards";
$lang["module_giftcards_desc"] = "Add, Update, Delete and Search gift cards";
$lang["module_home"] = "Home";
$lang["module_item_kits"] = "Item Kits";
$lang["module_item_kits_desc"] = "Add, Update, Delete and Search Item Kits";
$lang["module_items"] = "Items";
$lang["module_items_desc"] = "Add, Update, Delete, and Search items";
$lang["module_messages"] = "Messages";
$lang["module_messages_desc"] = "Send Messages to Customers, Suppliers, Employees et al.";
$lang["module_migrate"] = "Migrate";
$lang["module_migrate_desc"] = "Update the OSPOS Database";
$lang["module_receivings"] = "Receivings";
$lang["module_receivings_desc"] = "Process Purchase orders";
$lang["module_reports"] = "Reports";
$lang["module_reports_desc"] = "View and generate reports";
$lang["module_sales"] = "Sales";
$lang["module_sales_desc"] = "Process sales and returns";
$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_both"] = "";
$lang["module_config"] = "Konfiqursiya";
$lang["module_config_desc"] = "OSPOS's Konfiqurasiyasını dəyiş";
$lang["module_customers"] = "Müştərilər";
$lang["module_customers_desc"] = "Əlavə et,Yenilə,Sil və Müştəriləri axtar";
$lang["module_employees"] = "Əməkdaşlar";
$lang["module_employees_desc"] = "Əlavə et,Yenilə,Sil və Əməkdaşları axtar";
$lang["module_expenses"] = "";
$lang["module_expenses_categories"] = "";
$lang["module_expenses_categories_desc"] = "";
$lang["module_expenses_desc"] = "";
$lang["module_giftcards"] = "Hədiyyə kartı";
$lang["module_giftcards_desc"] = "Əlavə et,Yenilə,Sil və Hədiyyə kartlarını axtar";
$lang["module_home"] = "Ev";
$lang["module_home_desc"] = "";
$lang["module_item_kits"] = "Mal Dəstləri";
$lang["module_item_kits_desc"] = "Əlavə et,Yenilə,Sil və Dəst Malları Axtar";
$lang["module_items"] = "Mallar";
$lang["module_items_desc"] = "Əlavə et,Yenilə,Sil və Malları Axtar";
$lang["module_messages"] = "Mesajlar";
$lang["module_messages_desc"] = "Müştərilərə, Təchizatçılara və İşçilərə Mesaj göndərin.";
$lang["module_migrate"] = "Köçür";
$lang["module_migrate_desc"] = "OSPOS in Məlumat Bazasıni Yenilə";
$lang["module_office"] = "";
$lang["module_office_desc"] = "";
$lang["module_receivings"] = "Qəbul Edilənlər.";
$lang["module_receivings_desc"] = "Edilmiş Sifarişləri Başla";
$lang["module_reports"] = "Hesabatlar";
$lang["module_reports_desc"] = "Hesabatları Yarat və Göstər";
$lang["module_sales"] = "Satışlar";
$lang["module_sales_desc"] = "Satış prosesləri və Qaytarılanlar";
$lang["module_suppliers"] = "Təchizatcı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";

View File

@@ -1,52 +1,53 @@
<?php
$lang["receivings_cancel_receiving"] = "Cancel";
$lang["receivings_cannot_be_deleted"] = "Receiving(s) could not be deleted";
$lang["receivings_comments"] = "Comments";
$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_cost"] = "Cost";
$lang["receivings_date"] = "Receiving Date";
$lang["receivings_date_required"] = "A correct date needs to be filled in";
$lang["receivings_date_type"] = "Date field is required";
$lang["receivings_delete_entire_sale"] = "Delete entire sale";
$lang["receivings_discount"] = "Disc %";
$lang["receivings_edit"] = "Edit";
$lang["receivings_edit_sale"] = "Edit Receiving";
$lang["receivings_employee"] = "Employee";
$lang["receivings_error_editing_item"] = "Error editing item";
$lang["receivings_error_requisition"] = "Unable to move inventory from and to the same stock location";
$lang["receivings_find_or_scan_item"] = "Find/Scan Item";
$lang["receivings_find_or_scan_item_or_receipt"] = "Find/Scan Item OR Receipt";
$lang["receivings_id"] = "Receiving ID";
$lang["receivings_item_name"] = "Item Name";
$lang["receivings_mode"] = "Receiving Mode";
$lang["receivings_new_supplier"] = "New Supplier";
$lang["receivings_one_or_multiple"] = "receiving(s)";
$lang["receivings_print_after_sale"] = "Print after sale";
$lang["receivings_quantity"] = "Qty.";
$lang["receivings_receipt"] = "Receivings Receipt";
$lang["receivings_receipt_number"] = "Receiving #";
$lang["receivings_receiving"] = "Receive";
$lang["receivings_reference"] = "Reference";
$lang["receivings_register"] = "Items Receiving";
$lang["receivings_requisition"] = "Requisition";
$lang["receivings_return"] = "Return";
$lang["receivings_select_supplier"] = "Select Supplier (Optional)";
$lang["receivings_start_typing_supplier_name"] = "Start Typing supplier's name...";
$lang["receivings_stock_destination"] = "Stock destination";
$lang["receivings_stock_locaiton"] = "Stock location";
$lang["receivings_stock_source"] = "Stock source";
$lang["receivings_successfully_deleted"] = "You have successfully deleted";
$lang["receivings_successfully_updated"] = "Receiving successfully updated";
$lang["receivings_supplier"] = "Supplier";
$lang["receivings_supplier_address"] = "Address";
$lang["receivings_supplier_email"] = "Email";
$lang["receivings_supplier_location"] = "Location";
$lang["receivings_total"] = "Total";
$lang["receivings_transaction_failed"] = "Receivings Transactions Failed";
$lang["receivings_unable_to_add_item"] = "Unable to add item to receiving";
$lang["receivings_unsuccessfully_updated"] = "Receiving unsuccessfully updated";
$lang["receivings_update"] = "Update";
$lang["receivings_cancel_receiving"] = "Ləğv";
$lang["receivings_cannot_be_deleted"] = "Qəbul olunanlar silinmədi";
$lang["receivings_comments"] = "Rəylər";
$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"] = "dəyəri";
$lang["receivings_confirm_finish_receiving"] = "Bu qəbulu təqdim etmək istədiyinizə əminsiniz? Bunu geri qaytarmaq mümkün deyil.";
$lang["receivings_cost"] = "Xərc";
$lang["receivings_date"] = "Qəbul olunma tarixi";
$lang["receivings_date_required"] = "Düzgün Tarix daxil edilməlidir";
$lang["receivings_date_type"] = "endirim %";
$lang["receivings_delete_entire_sale"] = "red. etmək";
$lang["receivings_discount"] = "Endirim %";
$lang["receivings_edit"] = "Redaktə Et";
$lang["receivings_edit_sale"] = "malın redaktəsi səhvdir";
$lang["receivings_employee"] = "Əməkdaş";
$lang["receivings_error_editing_item"] = "tapmaq və skan etmək malı";
$lang["receivings_error_requisition"] = "malı və ya kvitansiyanı tapmaq skan etmək";
$lang["receivings_find_or_scan_item"] = "alış id";
$lang["receivings_find_or_scan_item_or_receipt"] = "malın adı";
$lang["receivings_id"] = "alınma rejimi";
$lang["receivings_item_name"] = "yeni tədarükçü";
$lang["receivings_mode"] = "Qəbul Rejimi";
$lang["receivings_new_supplier"] = "Yeni Təchizatçı";
$lang["receivings_one_or_multiple"] = "sayı.";
$lang["receivings_print_after_sale"] = "alış haqqında kvitansiya";
$lang["receivings_quantity"] = "Sayı";
$lang["receivings_receipt"] = "alış";
$lang["receivings_receipt_number"] = "Qəbul №";
$lang["receivings_receiving"] = "tədarükçünün adını yazmağa başlayın";
$lang["receivings_reference"] = "Arayış";
$lang["receivings_register"] = "Qəbul Olunan Mallar";
$lang["receivings_requisition"] = "Rəsmi Tələb";
$lang["receivings_return"] = "Qaytar";
$lang["receivings_select_supplier"] = "Təchizatçını Seç";
$lang["receivings_start_typing_supplier_name"] = "tədarükçü";
$lang["receivings_stock"] = "Ehtiyyat";
$lang["receivings_stock_destination"] = "Ehtiyyatın Hədəfi";
$lang["receivings_stock_locaiton"] = "Ehtiyyatın Yeri";
$lang["receivings_stock_source"] = "Ehtiyyatın Mənbəyi";
$lang["receivings_successfully_deleted"] = "cəmi";
$lang["receivings_successfully_updated"] = "alışda sehv var";
$lang["receivings_supplier"] = "mal əlavə etmək mümkün deyil";
$lang["receivings_supplier_address"] = "Ünvan";
$lang["receivings_supplier_email"] = "Elektron Ünvanı";
$lang["receivings_supplier_location"] = "Yer";
$lang["receivings_total"] = "Cəm";
$lang["receivings_transaction_failed"] = "Alınan əməliyyatlar uğursuz oldu.";
$lang["receivings_unable_to_add_item"] = "Malı Qəbula olunana daxil etmək mümkün olmadı";
$lang["receivings_unsuccessfully_updated"] = "Qəbul olunanları yeniləmək uğursuz alındı";
$lang["receivings_update"] = "Yenilə";

View File

@@ -1,100 +1,123 @@
<?php
$lang["reports_all"] = "All";
$lang["reports_categories"] = "Categories";
$lang["reports_categories_summary_report"] = "Categories Summary Report";
$lang["reports_category"] = "Category";
$lang["reports_comments"] = "Comments";
$lang["reports_cost"] = "Cost";
$lang["reports_cost_price"] = "Cost Price";
$lang["reports_count"] = "Count";
$lang["reports_customer"] = "Customer";
$lang["reports_customers"] = "Customers";
$lang["reports_customers_summary_report"] = "Customers Summary Report";
$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_reports"] = "Detailed Reports";
$lang["reports_detailed_requisition_report"] = "";
$lang["reports_detailed_sales_report"] = "Detailed Sales Report";
$lang["reports_discount"] = "Discount";
$lang["reports_discount_percent"] = "Discount Percent";
$lang["reports_discounts"] = "Discounts";
$lang["reports_discounts_summary_report"] = "Discounts Summary Report";
$lang["reports_earned"] = "Points Earned";
$lang["reports_employee"] = "Employee";
$lang["reports_employees"] = "Employees";
$lang["reports_employees_summary_report"] = "Employees Summary Report";
$lang["reports_graphical_reports"] = "Graphical Reports";
$lang["reports_inventory"] = "Inventory";
$lang["reports_inventory_low"] = "Low Inventory";
$lang["reports_inventory_low_report"] = "Low Inventory Report";
$lang["reports_inventory_reports"] = "Inventory Reports";
$lang["reports_inventory_summary"] = "Inventory Summary";
$lang["reports_inventory_summary_report"] = "Inventory Summary Report";
$lang["reports_item"] = "Item";
$lang["reports_item_count"] = "Filter Item Count";
$lang["reports_item_name"] = "Item Name";
$lang["reports_item_number"] = "Item Number";
$lang["reports_items"] = "Items";
$lang["reports_items_purchased"] = "Items Purchased";
$lang["reports_items_received"] = "Items Received";
$lang["reports_items_summary_report"] = "Items Summary Report";
$lang["reports_low_inventory"] = "";
$lang["reports_low_inventory_report"] = "";
$lang["reports_more_than_zero"] = "More than zero";
$lang["reports_name"] = "Name";
$lang["reports_no_reports_to_display"] = "No Items to display";
$lang["reports_payment_type"] = "Payment Type";
$lang["reports_payments"] = "Payments";
$lang["reports_payments_summary_report"] = "Payments Summary Report";
$lang["reports_profit"] = "Profit";
$lang["reports_quantity"] = "Quantity";
$lang["reports_quantity_purchased"] = "Quantity Purchased";
$lang["reports_quotes"] = "Quotes";
$lang["reports_received_by"] = "Received By";
$lang["reports_receiving_id"] = "Receiving ID";
$lang["reports_receiving_type"] = "Receiving Type";
$lang["reports_receivings"] = "Receivings";
$lang["reports_reorder_level"] = "Reorder Level";
$lang["reports_report"] = "Report";
$lang["reports_report_input"] = "Report Input";
$lang["reports_reports"] = "Reports";
$lang["reports_all"] = "hamısı";
$lang["reports_canceled"] = "Ləğv Edilmiş";
$lang["reports_categories"] = "kateqoriyalar";
$lang["reports_categories_summary_report"] = "komentariyalar";
$lang["reports_category"] = "Kategoriya";
$lang["reports_code_canceled"] = "CNL";
$lang["reports_code_invoice"] = "INV";
$lang["reports_code_pos"] = "";
$lang["reports_code_quote"] = "Q";
$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_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?";
$lang["reports_confirm_restore"] = "Seçilmiş giriş (lər) bərpa etmək istədiyinizə əminsinizmi?";
$lang["reports_cost"] = "hesab";
$lang["reports_cost_price"] = "müştəri";
$lang["reports_count"] = "müştərilər";
$lang["reports_customer"] = "müştərilərin hesabatı";
$lang["reports_customers"] = "gun";
$lang["reports_customers_summary_report"] = "gün";
$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_reports"] = "etraflı məlumat";
$lang["reports_detailed_requisition_report"] = "endirimler";
$lang["reports_detailed_sales_report"] = " endirim faizi";
$lang["reports_discount"] = "endirimlər";
$lang["reports_discount_percent"] = "endirim hesabları";
$lang["reports_discounts"] = "Endirimlər";
$lang["reports_discounts_summary_report"] = "əməkdaş";
$lang["reports_earned"] = "əməkdaş";
$lang["reports_employee"] = "əməkdaşın hesabatı";
$lang["reports_employees"] = "qrafik hesabatlar";
$lang["reports_employees_summary_report"] = "İşçilərin Xülasəsi Hesabatı";
$lang["reports_expenses"] = "Xərclər";
$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_tax_amount"] = "Vergi";
$lang["reports_expenses_total_amount"] = "Ümumi Məbləğ";
$lang["reports_expenses_total_tax_amount"] = "Ümumi Vergi";
$lang["reports_graphical_reports"] = "Qrafik Hesabatlar";
$lang["reports_inventory"] = "İnvertizasiya";
$lang["reports_inventory_low"] = "inventor hesabatları";
$lang["reports_inventory_low_report"] = "mal adı";
$lang["reports_inventory_reports"] = "malın nomrəsi";
$lang["reports_inventory_summary"] = "mallar";
$lang["reports_inventory_summary_report"] = "alınan mallar";
$lang["reports_item"] = "gondərilən mallar";
$lang["reports_item_count"] = "mal hesabatı";
$lang["reports_item_name"] = "aşağı hesabatlar";
$lang["reports_item_number"] = "aşağı inventor hesabat";
$lang["reports_items"] = "Mallar";
$lang["reports_items_purchased"] = "ad";
$lang["reports_items_received"] = "Qəbul Olunan Mallar";
$lang["reports_items_summary_report"] = "ödəniş tipi";
$lang["reports_low_inventory"] = "ödənişlər";
$lang["reports_low_inventory_report"] = "inventor hesabatı";
$lang["reports_more_than_zero"] = "gəlir";
$lang["reports_name"] = "Qty On Hand";
$lang["reports_no_reports_to_display"] = "alınanların sayı";
$lang["reports_payment_type"] = "Ödəmə Növü";
$lang["reports_payments"] = "kim tərəfindən";
$lang["reports_payments_summary_report"] = "Ödəmələr Yekun Hesabatı";
$lang["reports_profit"] = "Qazanc";
$lang["reports_quantity"] = "qəbul olunanlar";
$lang["reports_quantity_purchased"] = "aşağı səviyyə";
$lang["reports_quotes"] = "hesabat";
$lang["reports_received_by"] = "çıxış hesabatı";
$lang["reports_receiving_id"] = "Hesabatlar";
$lang["reports_receiving_type"] = "Qəbul Növü";
$lang["reports_receivings"] = "Qəbul olunanlar";
$lang["reports_reorder_level"] = "Səviyyəni Yenidən Düzəlt";
$lang["reports_report"] = "Hesabat";
$lang["reports_report_input"] = "Hesabatı daxil edin";
$lang["reports_reports"] = "Hesabatlar";
$lang["reports_requisition"] = "";
$lang["reports_requisition_by"] = "";
$lang["reports_requisition_id"] = "";
$lang["reports_requisition_item"] = "";
$lang["reports_requisition_item_quantity"] = "";
$lang["reports_requisition_related_item"] = "";
$lang["reports_requisition_related_item_total_quantity"] = "";
$lang["reports_requisition_related_item_unit_quantity"] = "";
$lang["reports_requisitions"] = "Requisitions";
$lang["reports_returns"] = "Returns";
$lang["reports_revenue"] = "Revenue";
$lang["reports_sale_id"] = "Sale ID";
$lang["reports_sale_type"] = "Sale Type";
$lang["reports_sales"] = "Sale";
$lang["reports_sales_amount"] = "Sales amount";
$lang["reports_sales_summary_report"] = "Sales Summary Report";
$lang["reports_serial_number"] = "Serial #";
$lang["reports_sold_by"] = "Sold By";
$lang["reports_sold_to"] = "Sold To";
$lang["reports_stock_location"] = "Stock Location";
$lang["reports_sub_total_value"] = "Sub Total";
$lang["reports_subtotal"] = "Subtotal";
$lang["reports_summary_reports"] = "Summary Reports";
$lang["reports_supplied_by"] = "Supplied by";
$lang["reports_supplier"] = "Supplier";
$lang["reports_suppliers"] = "Suppliers";
$lang["reports_suppliers_summary_report"] = "Suppliers Summary Report";
$lang["reports_tax"] = "Tax";
$lang["reports_tax_percent"] = "Tax Percent";
$lang["reports_taxes"] = "Taxes";
$lang["reports_taxes_summary_report"] = "Taxes Summary Report";
$lang["reports_total"] = "Total";
$lang["reports_total_inventory_value"] = "Total Inventory Value";
$lang["reports_type"] = "Type";
$lang["reports_unit_price"] = "Retail Price";
$lang["reports_used"] = "Points Used";
$lang["reports_zero_and_less"] = "Zero and less";
$lang["reports_requisition_item"] = "geri qaytarılanlar";
$lang["reports_requisition_item_quantity"] = "gəlir";
$lang["reports_requisition_related_item"] = "ID satışı";
$lang["reports_requisition_related_item_total_quantity"] = "endirim tipi";
$lang["reports_requisition_related_item_unit_quantity"] = "satışlar";
$lang["reports_requisitions"] = "Satış qiyməti";
$lang["reports_returns"] = "endirim hesabatları";
$lang["reports_revenue"] = "seriya ";
$lang["reports_sale_id"] = "satılıb kim tərəfindən";
$lang["reports_sale_type"] = "satılıb kimə";
$lang["reports_sales"] = "Əməliyyatlar";
$lang["reports_sales_amount"] = "Əməliyyatların Məbləği";
$lang["reports_sales_summary_report"] = "toplam";
$lang["reports_serial_number"] = "hesabatlar";
$lang["reports_sold_by"] = "kim tərəfindən qoyulub";
$lang["reports_sold_to"] = "təchizatçı";
$lang["reports_stock_location"] = "təchizatçılar";
$lang["reports_sub_total_value"] = "təchizatci hesabatı";
$lang["reports_subtotal"] = "vergi";
$lang["reports_summary_reports"] = "vergi faizi";
$lang["reports_supplied_by"] = "vergilər";
$lang["reports_supplier"] = "vergi hesabatı";
$lang["reports_suppliers"] = "toplam";
$lang["reports_suppliers_summary_report"] = "Təchizatçıların Yekun Hesabatı";
$lang["reports_tax"] = "tip";
$lang["reports_tax_percent"] = "Retail Price";
$lang["reports_taxes"] = "Vergilər";
$lang["reports_taxes_summary_report"] = "Vergi Yekun Hesabatı";
$lang["reports_total"] = "Cəm";
$lang["reports_total_inventory_value"] = "Ümumi İnvanter Qiyməti";
$lang["reports_total_quantity"] = "Total Quantity";
$lang["reports_total_retail"] = "Total Inv. Retail Value";
$lang["reports_type"] = "Növ";
$lang["reports_unit_price"] = "Pərakəndə Qiyməti";
$lang["reports_used"] = "";
$lang["reports_work_orders"] = "İstifadə Olunan Ballar";
$lang["reports_zero_and_less"] = "Sıfır və Aşağı";

View File

@@ -1,143 +1,165 @@
<?php
$lang["customers_available_points"] = "Available Points";
$lang["rewards_package"] = "Rewards";
$lang["rewards_remaining_balance"] = "Reward Points remaining value is ";
$lang["sales_add_payment"] = "Add Payment";
$lang["sales_amount_due"] = "Amount Due";
$lang["sales_amount_tendered"] = "Amount Tendered";
$lang["sales_cancel_sale"] = "Cancel";
$lang["sales_cash"] = "Cash";
$lang["sales_cash_filter"] = "Cash";
$lang["sales_change_due"] = "Change Due";
$lang["sales_check"] = "Check";
$lang["sales_check_balance"] = "Check remainder";
$lang["sales_check_filter"] = "Check";
$lang["sales_comment"] = "Comment";
$lang["sales_comments"] = "Comments";
$lang["sales_complete_sale"] = "Complete";
$lang["sales_confirm_cancel_sale"] = "Are you sure you want to clear this sale? All items will cleared.";
$lang["sales_confirm_delete"] = "Are you sure you want to delete the selected sales?";
$lang["sales_credit"] = "Credit Card";
$lang["sales_customer"] = "Name";
$lang["sales_customer_address"] = "Address";
$lang["sales_customer_discount"] = "Discount";
$lang["sales_customer_email"] = "Email";
$lang["sales_customer_location"] = "Location";
$lang["sales_customer_mailchimp_status"] = "Mailchimp status";
$lang["sales_customer_total"] = "Total";
$lang["sales_date"] = "Sale Date";
$lang["sales_date_range"] = "Date Range";
$lang["sales_date_required"] = "A correct date needs to be filled in";
$lang["sales_date_type"] = "Date field is required";
$lang["sales_debit"] = "Debit Card";
$lang["sales_delete_confirmation"] = "Are you sure you want to delete this sale, this action cannot be undone";
$lang["sales_delete_entire_sale"] = "Delete entire sale";
$lang["sales_delete_successful"] = "You have successfully deleted a sale";
$lang["sales_delete_unsuccessful"] = "You have unsuccessfully deleted a sale";
$lang["sales_description_abbrv"] = "Desc";
$lang["sales_discard_quote"] = "Discard";
$lang["sales_discount"] = "Disc %";
$lang["sales_discount_included"] = "% Discount";
$lang["customers_available_points"] = "Münasib Ballar";
$lang["rewards_package"] = "Mükafatlar";
$lang["rewards_remaining_balance"] = "Mükafatın yerdə qalan bal dəyəri ";
$lang["sales_add_payment"] = "Ödəniş Əlavə Etmək";
$lang["sales_amount_due"] = "Məbləğə Görə";
$lang["sales_amount_tendered"] = "Təklif olunan Məbləğ";
$lang["sales_cancel_sale"] = "Ləğv";
$lang["sales_cash"] = "Nəğd pullar";
$lang["sales_cash_deposit"] = "";
$lang["sales_cash_filter"] = "Nəğd Pul";
$lang["sales_change_due"] = "Dəyişikliyə görə";
$lang["sales_check"] = "Çek";
$lang["sales_check_balance"] = "Çek Xatırladan";
$lang["sales_check_filter"] = "Çek";
$lang["sales_comment"] = "Komentariya";
$lang["sales_comments"] = "Komentariyalar";
$lang["sales_complete_sale"] = "Yekunlaşdır";
$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?";
$lang["sales_confirm_restore"] = "";
$lang["sales_credit"] = "Kredit kartı";
$lang["sales_credit_deposit"] = "";
$lang["sales_customer"] = "Ad";
$lang["sales_customer_address"] = "Ünvan";
$lang["sales_customer_discount"] = "Endirim";
$lang["sales_customer_email"] = "Elektron Ünvan";
$lang["sales_customer_location"] = "Yer";
$lang["sales_customer_mailchimp_status"] = "Mailchimp Statusu";
$lang["sales_customer_optional"] = "";
$lang["sales_customer_required"] = "";
$lang["sales_customer_total"] = "Cəm";
$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_delete"] = "";
$lang["sales_delete_confirmation"] = "Siz əminsiniz ki bu satışı silmək istəyirsiniz? Bu əməlliyat yenidən bərpa edilə bilməz";
$lang["sales_delete_entire_sale"] = "Bütün satışı silmək";
$lang["sales_delete_successful"] = "siz uğurla satışı sildiniz";
$lang["sales_delete_unsuccessful"] = "Satışın silinməsi uğursuz oldu";
$lang["sales_description_abbrv"] = "Təsvir";
$lang["sales_discard"] = "";
$lang["sales_discard_quote"] = "";
$lang["sales_discount"] = "Endirim %";
$lang["sales_discount_included"] = "% Endirim";
$lang["sales_discount_short"] = "%";
$lang["sales_due"] = "Due";
$lang["sales_due_filter"] = "Due";
$lang["sales_edit"] = "Edit";
$lang["sales_edit_item"] = "Edit Item";
$lang["sales_edit_sale"] = "Edit Sale";
$lang["sales_email_receipt"] = "Email Receipt";
$lang["sales_employee"] = "Employee";
$lang["sales_entry"] = "Entry";
$lang["sales_error_editing_item"] = "Error editing item";
$lang["sales_find_or_scan_item"] = "Find/Scan Item";
$lang["sales_find_or_scan_item_or_receipt"] = "Find/Scan Item OR Receipt";
$lang["sales_giftcard"] = "Gift Card";
$lang["sales_giftcard_balance"] = "Giftcard Balance";
$lang["sales_giftcard_number"] = "Gift Card Number";
$lang["sales_group_by_category"] = "Group by Category";
$lang["sales_group_by_type"] = "Group by Type";
$lang["sales_id"] = "Sale ID";
$lang["sales_invoice"] = "Invoice";
$lang["sales_invoice_confirm"] = "This invoice will be sent to";
$lang["sales_invoice_enable"] = "Create Invoice";
$lang["sales_invoice_filter"] = "Invoices";
$lang["sales_invoice_no_email"] = "This customer does not have a valid email address";
$lang["sales_invoice_number"] = "Invoice #";
$lang["sales_invoice_number_duplicate"] = "Please enter an unique invoice number";
$lang["sales_invoice_sent"] = "Invoice sent to";
$lang["sales_invoice_unsent"] = "Invoice failed to be sent to";
$lang["sales_invoice_update"] = "Recount";
$lang["sales_item_insufficient_of_stock"] = "Item is Insufficient of Stock";
$lang["sales_item_name"] = "Item Name";
$lang["sales_item_number"] = "Item #";
$lang["sales_item_out_of_stock"] = "Item is Out of Stock";
$lang["sales_mode"] = "Register Mode";
$lang["sales_must_enter_numeric"] = "Must enter numeric value for amount tendered";
$lang["sales_must_enter_numeric_giftcard"] = "Must enter numeric value for giftcard number";
$lang["sales_new_customer"] = "New Customer";
$lang["sales_new_item"] = "New Item";
$lang["sales_no_description"] = "None";
$lang["sales_no_filter"] = "All";
$lang["sales_no_items_in_cart"] = "There are no items in the cart";
$lang["sales_no_sales_to_display"] = "No sales to display";
$lang["sales_none_selected"] = "You have not selected any sales to delete";
$lang["sales_one_or_multiple"] = "sale(s)";
$lang["sales_payment"] = "Payment Type";
$lang["sales_payment_amount"] = "Amount";
$lang["sales_payment_not_cover_total"] = "Payment Amount does not cover Total";
$lang["sales_payment_type"] = "Type";
$lang["sales_payments_total"] = "Payments Total";
$lang["sales_price"] = "Price";
$lang["sales_print_after_sale"] = "Print after sale";
$lang["sales_quantity"] = "Qty.";
$lang["sales_quantity_less_than_reorder_level"] = "Warning, Desired Quantity is below reorder level";
$lang["sales_quantity_less_than_zero"] = "Warning, Desired Quantity is Insufficient. You can still process the sale, but check your inventory";
$lang["sales_quote"] = "Quote";
$lang["sales_quote_number"] = "Quote Number";
$lang["sales_quote_sent"] = "Quote sent to";
$lang["sales_quote_unsent"] = "Quote failed to be sent to";
$lang["sales_receipt"] = "Sales Receipt";
$lang["sales_receipt_number"] = "Sale #";
$lang["sales_receipt_sent"] = "Receipt sent to";
$lang["sales_receipt_unsent"] = "Receipt failed to be sent to";
$lang["sales_register"] = "Sales Register";
$lang["sales_remove_customer"] = "Remove Customer";
$lang["sales_return"] = "Return";
$lang["sales_rewards"] = "Reward Points";
$lang["sales_rewards_balance"] = "Reward Points Balance";
$lang["sales_sale"] = "Sale";
$lang["sales_sale_by_invoice"] = "Sale by Invoice";
$lang["sales_sale_for_customer"] = "Customer:";
$lang["sales_sale_time"] = "Time";
$lang["sales_sales_tax"] = "Sales Tax";
$lang["sales_select_customer"] = "Select Customer (Optional)";
$lang["sales_send_invoice"] = "Send Invoice";
$lang["sales_send_quote"] = "Send Quote";
$lang["sales_send_receipt"] = "Send Receipt";
$lang["sales_serial"] = "Serial";
$lang["sales_show_invoice"] = "Show Invoice";
$lang["sales_show_receipt"] = "Show Receipt";
$lang["sales_start_typing_customer_name"] = "Start typing customer's details...";
$lang["sales_start_typing_item_name"] = "Start typing item's name or scan barcode...";
$lang["sales_stock_location"] = "Stock location";
$lang["sales_sub_total"] = "Sub Total";
$lang["sales_successfully_deleted"] = "You have successfully deleted";
$lang["sales_successfully_suspended_sale"] = "Your sale has been successfully suspended";
$lang["sales_successfully_updated"] = "Sale successfully updated";
$lang["sales_suspend_sale"] = "Suspend";
$lang["sales_suspended_sale_id"] = "ID";
$lang["sales_suspended_sales"] = "Suspended";
$lang["sales_table"] = "Table";
$lang["sales_takings"] = "Takings";
$lang["sales_tax"] = "Tax";
$lang["sales_tax_percent"] = "Tax %";
$lang["sales_total"] = "Total";
$lang["sales_total_tax_exclusive"] = "Tax excluded";
$lang["sales_transaction_failed"] = "Sales Transaction Failed";
$lang["sales_unable_to_add_item"] = "Unable to add item to sale";
$lang["sales_unsuccessfully_deleted"] = "Sale(s) could not be deleted";
$lang["sales_unsuccessfully_suspended_sale"] = "Your sale has been unsuccessfully suspended";
$lang["sales_unsuccessfully_updated"] = "Sale unsuccessfully updated";
$lang["sales_unsuspend"] = "Unsuspend";
$lang["sales_unsuspend_and_delete"] = "Action";
$lang["sales_update"] = "Update";
$lang["sales_due"] = "Görə";
$lang["sales_due_filter"] = "Görə";
$lang["sales_edit"] = "Redaktə";
$lang["sales_edit_item"] = "Malın Redaktəsi";
$lang["sales_edit_sale"] = "Satışın Redaktəsi";
$lang["sales_email_receipt"] = "E-Ünvan daxilolmalar";
$lang["sales_employee"] = "Əməkdaş";
$lang["sales_entry"] = "Daxil";
$lang["sales_error_editing_item"] = "Malın redaktəsində səhv var";
$lang["sales_find_or_scan_item"] = "Tapmaq və Skan etmək Malı";
$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_number"] = "Hədiyyə kartının nömrəsi";
$lang["sales_group_by_category"] = "Kategoriyaya görə grup";
$lang["sales_group_by_type"] = "Növə görə qrup";
$lang["sales_id"] = "Satış Nömrə";
$lang["sales_include_prices"] = "";
$lang["sales_invoice"] = "Qəbz";
$lang["sales_invoice_confirm"] = "Bu qəbz göndəriləcək";
$lang["sales_invoice_enable"] = "Faktura Yarat";
$lang["sales_invoice_filter"] = "Fakturalar";
$lang["sales_invoice_no_email"] = "Bu müştərinin elektron ünvanı düzgün deyil";
$lang["sales_invoice_number"] = "Faktura №";
$lang["sales_invoice_number_duplicate"] = "Faktura nömrəsi unikal olmalıdır.";
$lang["sales_invoice_sent"] = "Faktura göndərildi";
$lang["sales_invoice_unsent"] = "Faktura göndərilə bilmədi";
$lang["sales_invoice_update"] = "Yeniden say";
$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_mode"] = "Qeydiyyat Rejimi";
$lang["sales_must_enter_numeric"] = "Təklif olunan məbləğ 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";
$lang["sales_new_customer"] = "Yeni Müştəri";
$lang["sales_new_item"] = "Yeni Mal";
$lang["sales_no_description"] = "Heç Biri";
$lang["sales_no_filter"] = "Hamısı";
$lang["sales_no_items_in_cart"] = "Səbətdə heç bir mal yoxdur";
$lang["sales_no_sales_to_display"] = "Satış yoxdur";
$lang["sales_none_selected"] = "Silmək üçün hər hansı bir Satış (lar) seçmədiniz.";
$lang["sales_not_authorized"] = "";
$lang["sales_one_or_multiple"] = "Satış (lar)";
$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_total"] = "Cəmi Ödənilənlər";
$lang["sales_price"] = "Qiymət";
$lang["sales_print_after_sale"] = "Satışdan sonra Çap edin";
$lang["sales_quantity"] = "Miqdarı";
$lang["sales_quantity_less_than_reorder_level"] = "Diqqət: İstədiyinizin Miqdarı bu Öhdəlik üçün Yenidən Səviyyə səviyyəsindən aşağıdadır.";
$lang["sales_quantity_less_than_zero"] = "Xəbərdarlıq: İstədiyiniz miqdar kifayət qədər deyil. Siz Hələ satışı emal edə bilərsiniz, ancaq inventarınızı yoxlayın.";
$lang["sales_quantity_of_items"] = "";
$lang["sales_quote"] = "Qiymət ver";
$lang["sales_quote_number"] = "Sitat Nömrəsi";
$lang["sales_quote_number_duplicate"] = "";
$lang["sales_quote_sent"] = "Sitat göndərildi";
$lang["sales_quote_unsent"] = "Sitat göndırilə bilmədi";
$lang["sales_receipt"] = "malın çeki";
$lang["sales_receipt_no_email"] = "";
$lang["sales_receipt_number"] = "Satış №";
$lang["sales_receipt_sent"] = "Çek Göndərildi";
$lang["sales_receipt_unsent"] = "Çek göndərilə Bilmədi";
$lang["sales_register"] = "jurnal satışı";
$lang["sales_remove_customer"] = "müştəriləri silmək";
$lang["sales_return"] = "qaytarmaq";
$lang["sales_rewards"] = "Mükafat Balları";
$lang["sales_rewards_balance"] = "Mükafat Balları Balansı";
$lang["sales_sale"] = "satış";
$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_select_customer"] = "müştəri secmə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"] = "";
$lang["sales_serial"] = "seriya nömrəsi";
$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...";
$lang["sales_start_typing_item_name"] = " malın adın başlayın çap etməyə yada skan edin şifrəni...";
$lang["sales_stock"] = "";
$lang["sales_stock_location"] = "Ehtiyyatın Yeri";
$lang["sales_sub_total"] = "yekun";
$lang["sales_successfully_deleted"] = "satış";
$lang["sales_successfully_restored"] = "";
$lang["sales_successfully_suspended_sale"] = "sizin satışınız uğurla dayandırıldı";
$lang["sales_successfully_updated"] = "satış uğurla yeniləndi";
$lang["sales_suspend_sale"] = "satışı dayan.";
$lang["sales_suspended_doc_id"] = "";
$lang["sales_suspended_sale_id"] = "Satış dayandırıldı İD";
$lang["sales_suspended_sales"] = "satış dayandırıldı";
$lang["sales_table"] = "Masa";
$lang["sales_takings"] = "Gündəlik Satışlar";
$lang["sales_tax"] = "vergi";
$lang["sales_tax_percent"] = "vergi %";
$lang["sales_total"] = "cəm";
$lang["sales_total_tax_exclusive"] = "Vergi Xaric";
$lang["sales_transaction_failed"] = "transaksiya alınmadı";
$lang["sales_unable_to_add_item"] = "malın əlavə edilməsində səhv var ";
$lang["sales_unsuccessfully_deleted"] = "satış uğursuz oldu silinmədi";
$lang["sales_unsuccessfully_restored"] = "";
$lang["sales_unsuccessfully_suspended_sale"] = "Satış dayandırıla bilmədi.";
$lang["sales_unsuccessfully_updated"] = "satış uğursuz oldu";
$lang["sales_unsuspend"] = "blok etmək";
$lang["sales_unsuspend_and_delete"] = "blok etmək və silmək";
$lang["sales_update"] = "Yenilə";
$lang["sales_work_order"] = "";
$lang["sales_work_order_number"] = "";
$lang["sales_work_order_number_duplicate"] = "";
$lang["sales_work_order_sent"] = "";
$lang["sales_work_order_unsent"] = "";

View File

@@ -1,18 +1,19 @@
<?php
$lang["suppliers_account_number"] = "Account #";
$lang["suppliers_agency_name"] = "Agency Name";
$lang["suppliers_cannot_be_deleted"] = "Could not deleted selected suppliers, one or more of the selected suppliers has sales.";
$lang["suppliers_company_name"] = "Company Name";
$lang["suppliers_company_name_required"] = "Company Name is a required field";
$lang["suppliers_confirm_delete"] = "Are you sure you want to delete the selected suppliers?";
$lang["suppliers_error_adding_updating"] = "Error adding/updating supplier";
$lang["suppliers_new"] = "New Supplier";
$lang["suppliers_none_selected"] = "You have not selected any suppliers to delete";
$lang["suppliers_one_or_multiple"] = "supplier(s)";
$lang["suppliers_successful_adding"] = "You have successfully added supplier";
$lang["suppliers_successful_deleted"] = "You have successfully deleted";
$lang["suppliers_successful_updating"] = "You have successfully updated supplier";
$lang["suppliers_supplier"] = "Supplier";
$lang["suppliers_supplier_id"] = "Id";
$lang["suppliers_update"] = "Update Supplier";
$lang["suppliers_account_number"] = "Hesab №";
$lang["suppliers_agency_name"] = "Agentliyin Adı";
$lang["suppliers_cannot_be_deleted"] = "Seçilmiş Təchizatçı (lar) silinə bilmədi. Bir və ya birdən çox satışlar var.";
$lang["suppliers_company_name"] = "Kompaniyanın Adı";
$lang["suppliers_company_name_required"] = "Şirkətin Adı qeyd edilən sahə boş qala bilməz";
$lang["suppliers_confirm_delete"] = "Siz əminsiniz ki seçilmiş təchizatçı (lar) ı silmək istəyirsiniz?";
$lang["suppliers_confirm_restore"] = "Seçilmiş təchizatçı (lar) bərpa etmək istədiyinizə əminsinizmi?";
$lang["suppliers_error_adding_updating"] = "Təchizatçı əlavə etməkdə və ya yenilənməsində səhv var";
$lang["suppliers_new"] = "Yeni Təchizatçı";
$lang["suppliers_none_selected"] = "Siz silmək üçün heç bir təchizatçı (lar) seçmədiniz.";
$lang["suppliers_one_or_multiple"] = "Təchizatçı (lar)";
$lang["suppliers_successful_adding"] = "Siz Təchizatçını uğurla əlavə etdiniz";
$lang["suppliers_successful_deleted"] = "Siz uğurla sildiniz";
$lang["suppliers_successful_updating"] = "Siz uğurla Təchizatçını yenilədiniz";
$lang["suppliers_supplier"] = "Təchizatçı";
$lang["suppliers_supplier_id"] = "Kimlik";
$lang["suppliers_update"] = "Təchizatçı Yenilənməsi";

View File

@@ -1,31 +1,32 @@
<?php
$lang["taxes_add_exception"] = "Add Exception";
$lang["taxes_confirm_delete"] = "Confirm deletion of tax code";
$lang["taxes_default_tax_category"] = "Default Tax Category";
$lang["taxes_error_adding_updating"] = "Error adding/updating tax code";
$lang["taxes_new"] = "New Tax Code";
$lang["taxes_no_taxes_to_display"] = "No taxes code available to display";
$lang["taxes_round_half_down"] = "Half Down";
$lang["taxes_round_half_even"] = "Half Even";
$lang["taxes_round_half_odd"] = "Half Odd";
$lang["taxes_round_half_up"] = "Half Up";
$lang["taxes_rounding_code"] = "Rounding Code";
$lang["taxes_sales_tax"] = "Sales Tax";
$lang["taxes_sales_tax_by_invoice"] = "Sales Tax by Invoice";
$lang["taxes_successful_deleted"] = "You have successfully deleted";
$lang["taxes_tax_category"] = "Tax Category";
$lang["taxes_tax_code"] = "Tax Code";
$lang["taxes_tax_code_cannot_be_deleted"] = "Could not delete selected tax code";
$lang["taxes_tax_code_name"] = "Tax Code Name";
$lang["taxes_tax_code_required"] = "Tax code is a required field";
$lang["taxes_tax_code_successful_deleted"] = "You have successfully deleted tax code";
$lang["taxes_tax_code_successful_updated"] = "You have successfully updated";
$lang["taxes_tax_code_successful_updating"] = "You have successfully updated tax code";
$lang["taxes_tax_code_successfully_added"] = "You have successfully added";
$lang["taxes_tax_code_type"] = "Tax Code Type";
$lang["taxes_tax_rate"] = "Tax Rate";
$lang["taxes_tax_rate_numeric"] = "Tax rate must be a number";
$lang["taxes_tax_rate_required"] = "Tax rate is a required field";
$lang["taxes_update"] = "Update Sales Category Tax";
$lang["taxes_vat_tax"] = "VAT Tax";
$lang["taxes_add_exception"] = "İstisna Əlavə Et";
$lang["taxes_confirm_delete"] = "Siz Vergi Məcəlləsini silməyə əminsinizmi? Bu əməliyyat yenidən bərpa edilə bilməz";
$lang["taxes_confirm_restore"] = "Seçilmiş Vergi Məcəlləsini (lər) bərpa etmək istədiyinizə əminsinizmi?";
$lang["taxes_default_tax_category"] = "Cari Vergi Kategoriyası";
$lang["taxes_error_adding_updating"] = "Vergi Məcəlləsi Əlavəsi ya da uğursuz yeniləmə";
$lang["taxes_new"] = "Yeni Vergi Məcəlləsi";
$lang["taxes_no_taxes_to_display"] = "Göstərmək Üçün uyğun Vergi Kodu yoxdur.";
$lang["taxes_round_half_down"] = "Yarı Aşağı";
$lang["taxes_round_half_even"] = "Cüt Rəqəm";
$lang["taxes_round_half_odd"] = "Tək Rəqəm";
$lang["taxes_round_half_up"] = "Yarı Rəqəmdən Yuxarı";
$lang["taxes_rounding_code"] = "Yuvarlama Kodu";
$lang["taxes_sales_tax"] = "Satış Vergisi";
$lang["taxes_sales_tax_by_invoice"] = "Satış Vergisi Faktura ilə";
$lang["taxes_successful_deleted"] = "Siz uğurla sildiniz";
$lang["taxes_tax_category"] = "Vergi Kategoriyası";
$lang["taxes_tax_code"] = "Vergi Məcəlləsi";
$lang["taxes_tax_code_cannot_be_deleted"] = "Seçilmiş vergi kodu silinə bilmədi";
$lang["taxes_tax_code_name"] = "Vergi Məcəlləsi adı";
$lang["taxes_tax_code_required"] = "Vergi kodu tələb olunan bir sahədir";
$lang["taxes_tax_code_successful_deleted"] = "Vergi kodu müvəffəqiyyətlə silindi";
$lang["taxes_tax_code_successful_updated"] = "Müvəffəqiyyətlə yenilədiniz";
$lang["taxes_tax_code_successful_updating"] = "Vergi kodunuzu uğurla yenilədiniz";
$lang["taxes_tax_code_successfully_added"] = "Siz uğurla əlavə etdiniz";
$lang["taxes_tax_code_type"] = "Vergi Məcəlləsi növü";
$lang["taxes_tax_rate"] = "Vergi Dərəcəsi";
$lang["taxes_tax_rate_numeric"] = "Vergi dərəcəsi rəqəm ilə olmalıdır";
$lang["taxes_tax_rate_required"] = "Vergi Dərəcəsi olan sahə boş qala bilməz";
$lang["taxes_update"] = "Satış Vergi Kategoriyasıni Yeniləyin";
$lang["taxes_vat_tax"] = "ƏDV Vergisi";

View File

@@ -0,0 +1,10 @@
<?php
$lang["tables_all"] = "Всичко";
$lang["tables_columns"] = "Колони";
$lang["tables_hide_show_pagination"] = "Скриване / Показване на страници";
$lang["tables_loading"] = "Зареждане, моля изчакайте...";
$lang["tables_page_from_to"] = "Показани са {0} до {1} от {2} реда";
$lang["tables_refresh"] = "Опресняване";
$lang["tables_rows_per_page"] = "{0} редове на страница";
$lang["tables_toggle"] = "Щифт";

View File

@@ -0,0 +1,68 @@
<?php
$lang["common_address_1"] = "Адрес 1";
$lang["common_address_2"] = "Адрес 2";
$lang["common_city"] = "Град";
$lang["common_close"] = "Затвори";
$lang["common_comments"] = "Коментари";
$lang["common_common"] = "Често срещани";
$lang["common_confirm_search"] = "Избрали сте един или повече редове, след търсене няма да бъдат избрани. Наистина ли искате да подадете това търсене?";
$lang["common_country"] = "Държава";
$lang["common_date"] = "Дата";
$lang["common_delete"] = "Изтриване";
$lang["common_det"] = "Детайли";
$lang["common_download_import_template"] = "Изтегляне на шаблон за импортиране на Excel (CSV)";
$lang["common_edit"] = "Редактиране";
$lang["common_email"] = "Електронна поща";
$lang["common_email_invalid_format"] = "Имейл адресът не е в правилния формат.";
$lang["common_export_excel"] = "Експорт на Excel";
$lang["common_export_excel_no"] = "Не";
$lang["common_export_excel_yes"] = "Да";
$lang["common_fields_required_message"] = "Полетата в червено са задължителни";
$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_id"] = "Номер";
$lang["common_import"] = "Внос";
$lang["common_import_change_file"] = "Промяна";
$lang["common_import_excel"] = "Внос на Excel";
$lang["common_import_full_path"] = "Необходим е пълен пътека към файл с Excel";
$lang["common_import_remove_file"] = "Премахване";
$lang["common_import_select_file"] = "Изберете файл";
$lang["common_inv"] = "Покана";
$lang["common_last_name"] = "Фамилия";
$lang["common_last_name_required"] = "Фамилия е задължително поле.";
$lang["common_last_page"] = "Последна";
$lang["common_learn_about_project"] = "за да научите най-новата информация за проекта.";
$lang["common_list_of"] = "Списък с";
$lang["common_logout"] = "Излизане от профила";
$lang["common_new"] = "Нов";
$lang["common_no_persons_to_display"] = "Няма хора за показване.";
$lang["common_none_selected_text"] = "Нищо не е избрано.";
$lang["common_or"] = "Или";
$lang["common_phone_number"] = "Телефонен номер";
$lang["common_phone_number_required"] = "";
$lang["common_please_visit_my"] = "Моля, посетете";
$lang["common_powered_by"] = "С подкрепата на";
$lang["common_price"] = "Цена";
$lang["common_print"] = "Принтиране";
$lang["common_remove"] = "Премахване";
$lang["common_required"] = "Необходим";
$lang["common_restore"] = "Въстановяване";
$lang["common_return_policy"] = "Условия за връщане";
$lang["common_search"] = "Търсене";
$lang["common_search_options"] = "Опции за търсене";
$lang["common_searched_for"] = "Търсене за";
$lang["common_state"] = "Щат";
$lang["common_submit"] = "Изпращане";
$lang["common_total_spent"] = "Общо изразходвани";
$lang["common_unknown"] = "Неизвестен";
$lang["common_view_recent_sales"] = "Преглед на последните продажби";
$lang["common_website"] = "Уебсайт";
$lang["common_welcome"] = "Добре дошли";
$lang["common_welcome_message"] = "Добре дошли в OSPOS, кликнете върху модул по-долу, за да започнете.";
$lang["common_you_are_using_ospos"] = "Вие използвате Open Source Point Оf Sale версия";
$lang["common_zip"] = "Пощенски код";

View File

@@ -0,0 +1,273 @@
<?php
$lang["config_address"] = "Адрес на компанията";
$lang["config_address_required"] = "Адресът на компанията е задължително поле.";
$lang["config_allow_duplicate_barcodes"] = "Разрешаване на дублирани баркодове";
$lang["config_apostrophe"] = "апостроф";
$lang["config_backup_button"] = "резервно копие";
$lang["config_backup_database"] = "Резервно копие база данни";
$lang["config_barcode"] = "Баркод";
$lang["config_barcode_company"] = "Име на компанията";
$lang["config_barcode_configuration"] = "Конфигуриране на баркод";
$lang["config_barcode_content"] = "Съдържание на баркод";
$lang["config_barcode_first_row"] = "Ред 1";
$lang["config_barcode_font"] = "Font";
$lang["config_barcode_formats"] = "Input Formats";
$lang["config_barcode_generate_if_empty"] = "Generate if empty.";
$lang["config_barcode_height"] = "Height (px)";
$lang["config_barcode_id"] = "Item Id/Name";
$lang["config_barcode_info"] = "Barcode Configuration Information";
$lang["config_barcode_layout"] = "Barcode Layout";
$lang["config_barcode_name"] = "Name";
$lang["config_barcode_number"] = "Barcode";
$lang["config_barcode_number_in_row"] = "Number in row";
$lang["config_barcode_page_cellspacing"] = "Display page cellspacing.";
$lang["config_barcode_page_width"] = "Display page width";
$lang["config_barcode_price"] = "Price";
$lang["config_barcode_second_row"] = "Row 2";
$lang["config_barcode_third_row"] = "Row 3";
$lang["config_barcode_tooltip"] = "Warning: This feature can cause duplicate items to be imported or created. Do not use if you do not want duplicate barcodes.";
$lang["config_barcode_type"] = "Barcode Type";
$lang["config_barcode_width"] = "Width (px)";
$lang["config_bottom"] = "Bottom";
$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_center"] = "Center";
$lang["config_comma"] = "comma";
$lang["config_company"] = "Company Name";
$lang["config_company_change_image"] = "Change Image";
$lang["config_company_logo"] = "Company Logo";
$lang["config_company_remove_image"] = "Remove Image";
$lang["config_company_required"] = "Company name is a required field";
$lang["config_company_select_image"] = "Select Image";
$lang["config_company_website_url"] = "Company website is not a valid URL (http://...).";
$lang["config_country_codes"] = "Country Codes";
$lang["config_country_codes_tooltip"] = "Comma separated list of country codes for nominatim address lookup.";
$lang["config_currency_decimals"] = "Currency Decimals";
$lang["config_currency_symbol"] = "Currency Symbol";
$lang["config_custom1"] = "Custom Field 1";
$lang["config_custom10"] = "Custom Field 10";
$lang["config_custom2"] = "Custom Field 2";
$lang["config_custom3"] = "Custom Field 3";
$lang["config_custom4"] = "Custom Field 4";
$lang["config_custom5"] = "Custom Field 5";
$lang["config_custom6"] = "Custom Field 6";
$lang["config_custom7"] = "Custom Field 7";
$lang["config_custom8"] = "Custom Field 8";
$lang["config_custom9"] = "Custom Field 9";
$lang["config_customer_reward"] = "Reward";
$lang["config_customer_reward_duplicate"] = "Reward must be unique.";
$lang["config_customer_reward_enable"] = "Enable Customer Rewards";
$lang["config_customer_reward_invalid_chars"] = "Reward can not contain '_'";
$lang["config_customer_reward_required"] = "Reward is a required field";
$lang["config_customer_sales_tax_support"] = "Customer Sales Tax Support";
$lang["config_date_or_time_format"] = "Date and Time Filter";
$lang["config_datetimeformat"] = "Date and Time Format";
$lang["config_decimal_point"] = "Decimal Point";
$lang["config_default_barcode_font_size_number"] = "Default Barcode Font Size must be a number.";
$lang["config_default_barcode_font_size_required"] = "Default Barcode Font Size is a required field.";
$lang["config_default_barcode_height_number"] = "Default Barcode Height must be a number.";
$lang["config_default_barcode_height_required"] = "Default Barcode Height is a required field.";
$lang["config_default_barcode_num_in_row_number"] = "Default Barcode Number in Row must be a number.";
$lang["config_default_barcode_num_in_row_required"] = "Default Barcode Number in Row is a required field.";
$lang["config_default_barcode_page_cellspacing_number"] = "Default Barcode Page Cellspacing must be a number.";
$lang["config_default_barcode_page_cellspacing_required"] = "Default Barcode Page Cellspacing is a required field.";
$lang["config_default_barcode_page_width_number"] = "Default Barcode Page Width must be a number.";
$lang["config_default_barcode_page_width_required"] = "Default Barcode Page Width is a required field.";
$lang["config_default_barcode_width_number"] = "Default Barcode Width must be a number.";
$lang["config_default_barcode_width_required"] = "Default Barcode Width is a required field.";
$lang["config_default_origin_tax_code"] = "Default Origin Tax Code";
$lang["config_default_sales_discount"] = "Default Sales Discount %";
$lang["config_default_sales_discount_number"] = "Default Sales Discount must be a number.";
$lang["config_default_sales_discount_required"] = "Default Sales Discount is a required field.";
$lang["config_default_tax_name_number"] = "Default Tax Name must be a string.";
$lang["config_default_tax_name_required"] = "Default Tax Name is a required field.";
$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_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"] = "";
$lang["config_derive_sale_quantity_tooltip"] = "";
$lang["config_dinner_table"] = "Table";
$lang["config_dinner_table_duplicate"] = "Table must be unique.";
$lang["config_dinner_table_enable"] = "Enable Dinner Tables";
$lang["config_dinner_table_invalid_chars"] = "Table Name can not contain '_'.";
$lang["config_dinner_table_required"] = "Table is a required field.";
$lang["config_dot"] = "dot";
$lang["config_email"] = "Email";
$lang["config_email_configuration"] = "Email Configuration";
$lang["config_email_mailpath"] = "Path to Sendmail";
$lang["config_email_protocol"] = "Protocol";
$lang["config_email_receipt_check_behaviour"] = "";
$lang["config_email_receipt_check_behaviour_always"] = "";
$lang["config_email_receipt_check_behaviour_last"] = "";
$lang["config_email_receipt_check_behaviour_never"] = "";
$lang["config_email_smtp_crypto"] = "SMTP Encryption";
$lang["config_email_smtp_host"] = "SMTP Server";
$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_enforce_privacy"] = "";
$lang["config_enforce_privacy_tooltip"] = "";
$lang["config_fax"] = "Fax";
$lang["config_financial_year"] = "Fiscal Year Start";
$lang["config_financial_year_apr"] = "1st of April";
$lang["config_financial_year_aug"] = "1st of August";
$lang["config_financial_year_dec"] = "1st of December";
$lang["config_financial_year_feb"] = "1st of February";
$lang["config_financial_year_jan"] = "1st of January";
$lang["config_financial_year_jul"] = "1st of July";
$lang["config_financial_year_jun"] = "1st of June";
$lang["config_financial_year_mar"] = "1st of March";
$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_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";
$lang["config_gcaptcha_site_key"] = "reCAPTCHA Site Key";
$lang["config_gcaptcha_site_key_required"] = "reCAPTCHA Site Key is a required field";
$lang["config_gcaptcha_tooltip"] = "Protect the Login page with Google reCAPTCHA, click the icon for an API key pair.";
$lang["config_general"] = "General";
$lang["config_general_configuration"] = "General Configuration";
$lang["config_giftcard_number"] = "Gift Card Number";
$lang["config_giftcard_random"] = "Generate Random";
$lang["config_giftcard_series"] = "Generate in Series";
$lang["config_info"] = "Information";
$lang["config_info_configuration"] = "Store Information";
$lang["config_invoice"] = "Invoice";
$lang["config_invoice_configuration"] = "Invoice Print Settings";
$lang["config_invoice_default_comments"] = "Default Invoice Comments";
$lang["config_invoice_email_message"] = "Invoice Email Template";
$lang["config_invoice_enable"] = "Enable Invoicing";
$lang["config_invoice_printer"] = "Invoice Printer";
$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";
$lang["config_last_used_quote_number"] = "Last used Quote Number";
$lang["config_last_used_work_order_number"] = "Last used W/O Number";
$lang["config_left"] = "Left";
$lang["config_license"] = "License";
$lang["config_license_configuration"] = "License Statement";
$lang["config_line_sequence"] = "Line Sequence";
$lang["config_lines_per_page"] = "Lines per Page";
$lang["config_lines_per_page_number"] = "Линиите на страница трябва да са число.";
$lang["config_lines_per_page_required"] = "Lines per Page is a required field.";
$lang["config_locale"] = "Localization";
$lang["config_locale_configuration"] = "Localization Configuration";
$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_logout"] = "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.";
$lang["config_mailchimp"] = "Mailchimp";
$lang["config_mailchimp_api_key"] = "Mailchimp API Key";
$lang["config_mailchimp_configuration"] = "Mailchimp Configuration";
$lang["config_mailchimp_key_successfully"] = "API Key is valid.";
$lang["config_mailchimp_key_unsuccessfully"] = "API Key is invalid.";
$lang["config_mailchimp_lists"] = "Mailchimp List(s)";
$lang["config_mailchimp_tooltip"] = "Click the icon for an API Key.";
$lang["config_message"] = "Message";
$lang["config_message_configuration"] = "Message Configuration";
$lang["config_msg_msg"] = "Saved Text Message";
$lang["config_msg_msg_placeholder"] = "If you wish to use a SMS template save your message here, otherwise leave the box blank.";
$lang["config_msg_pwd"] = "SMS-API Password";
$lang["config_msg_pwd_required"] = "SMS-API Password is a required field";
$lang["config_msg_src"] = "SMS-API Sender ID";
$lang["config_msg_src_required"] = "SMS-API Sender ID is a required field";
$lang["config_msg_uid"] = "SMS-API Username";
$lang["config_msg_uid_required"] = "SMS-API Username is a required field";
$lang["config_none"] = "none";
$lang["config_notify_alignment"] = "Notification Popup Position";
$lang["config_number_format"] = "Number Format";
$lang["config_number_locale"] = "Localization";
$lang["config_number_locale_invalid"] = "The entered locale is invalid. Check the link in the tooltip to find a valid locale.";
$lang["config_number_locale_required"] = "Number Locale is a required field.";
$lang["config_number_locale_tooltip"] = "Find a suitable locale through this link.";
$lang["config_payment_options_order"] = "Payment Options Order";
$lang["config_phone"] = "Company Phone";
$lang["config_phone_required"] = "Company Phone is a required field.";
$lang["config_print_bottom_margin"] = "Margin Bottom";
$lang["config_print_bottom_margin_number"] = "Margin Bottom must be a number.";
$lang["config_print_bottom_margin_required"] = "Margin Bottom is a required field.";
$lang["config_print_delay_autoreturn"] = "";
$lang["config_print_delay_autoreturn_number"] = "";
$lang["config_print_delay_autoreturn_required"] = "";
$lang["config_print_footer"] = "Print Browser Footer";
$lang["config_print_header"] = "Print Browser Header";
$lang["config_print_left_margin"] = "Margin Left";
$lang["config_print_left_margin_number"] = "Margin Left must be a number.";
$lang["config_print_left_margin_required"] = "Margin Left is a required field.";
$lang["config_print_receipt_check_behaviour"] = "";
$lang["config_print_receipt_check_behaviour_always"] = "";
$lang["config_print_receipt_check_behaviour_last"] = "";
$lang["config_print_receipt_check_behaviour_never"] = "";
$lang["config_print_right_margin"] = "Margin Right";
$lang["config_print_right_margin_number"] = "Margin Right must be a number.";
$lang["config_print_right_margin_required"] = "Margin Right is a required field.";
$lang["config_print_silently"] = "Show Print Dialog";
$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_quote_default_comments"] = "";
$lang["config_receipt"] = "Receipt";
$lang["config_receipt_configuration"] = "Receipt Print Settings";
$lang["config_receipt_default"] = "Default";
$lang["config_receipt_font_size"] = "Font Size";
$lang["config_receipt_font_size_number"] = "Font Size must be a number.";
$lang["config_receipt_font_size_required"] = "Font Size is a required field.";
$lang["config_receipt_info"] = "Receipt Configuration Information";
$lang["config_receipt_printer"] = "Ticket Printer";
$lang["config_receipt_short"] = "Short";
$lang["config_receipt_show_company_name"] = "Show Company Name";
$lang["config_receipt_show_description"] = "Show Description";
$lang["config_receipt_show_serialnumber"] = "Show Serial Number";
$lang["config_receipt_show_taxes"] = "Show Taxes";
$lang["config_receipt_show_total_discount"] = "Show Total Discount";
$lang["config_receipt_template"] = "Receipt Template";
$lang["config_receiving_calculate_average_price"] = "Calc avg. Price (Receiving)";
$lang["config_recv_invoice_format"] = "Receivings Invoice Format";
$lang["config_register_mode_default"] = "Default Register Mode";
$lang["config_return_policy_required"] = "Return policy is a required field.";
$lang["config_reward"] = "Reward";
$lang["config_reward_configuration"] = "Reward Configuration";
$lang["config_right"] = "Right";
$lang["config_sales_invoice_format"] = "Sales Invoice Format";
$lang["config_sales_quote_format"] = "Sales Quote Format";
$lang["config_saved_successfully"] = "Configuration save successful.";
$lang["config_saved_unsuccessfully"] = "Configuration save failed.";
$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.";
$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_first_column"] = "Column 1";
$lang["config_suggestions_layout"] = "Search Suggestions Layout";
$lang["config_suggestions_second_column"] = "Column 2";
$lang["config_suggestions_third_column"] = "Column 3";
$lang["config_table"] = "Table";
$lang["config_table_configuration"] = "Table Configuration";
$lang["config_takings_printer"] = "Receipt Printer";
$lang["config_tax"] = "Tax";
$lang["config_tax_category"] = "Tax Category";
$lang["config_tax_category_duplicate"] = "";
$lang["config_tax_category_invalid_chars"] = "";
$lang["config_tax_category_required"] = "";
$lang["config_tax_category_used"] = "Tax category cannot be deleted because it is being used.";
$lang["config_tax_configuration"] = "Tax Configuration";
$lang["config_tax_decimals"] = "Tax Decimals";
$lang["config_tax_included"] = "Tax Included";
$lang["config_theme"] = "Theme";
$lang["config_thousands_separator"] = "Thousands Separator";
$lang["config_timezone"] = "Timezone";
$lang["config_top"] = "Top";
$lang["config_website"] = "Website";
$lang["config_work_order_enable"] = "Work Order Support";
$lang["config_work_order_format"] = "Work Order Format";

View File

@@ -0,0 +1,50 @@
<?php
$lang["customers_account_number"] = "Сметка #";
$lang["customers_account_number_duplicate"] = "Номерът на сметката вече е в базата данни.";
$lang["customers_available_points"] = "Налични точки";
$lang["customers_average"] = "Средно изразходвани";
$lang["customers_avg_discount"] = "Средна отстъпка";
$lang["customers_basic_information"] = "Информация";
$lang["customers_cannot_be_deleted"] = "Избраните клиенти не могат да бъдат изтрити, един или повече от избраните клиенти имат продажби.";
$lang["customers_company_name"] = "Компания";
$lang["customers_confirm_delete"] = "Наистина ли искате да изтриете избраните клиенти?";
$lang["customers_confirm_restore"] = "";
$lang["customers_consent"] = "";
$lang["customers_consent_required"] = "";
$lang["customers_customer"] = "Клиент";
$lang["customers_date"] = "";
$lang["customers_discount"] = "Отстъпка";
$lang["customers_email_duplicate"] = "Имейл адресът вече е в базата данни.";
$lang["customers_employee"] = "";
$lang["customers_error_adding_updating"] = "Добавянето или актуализирането на клиента е неуспешно.";
$lang["customers_excel_import_failed"] = "Вносът от Excel не бе успешен";
$lang["customers_excel_import_nodata_wrongformat"] = "Каченият файл няма данни или е неправилно форматиран.";
$lang["customers_excel_import_partially_failed"] = "Вносът на клиента е успешен с няколко грешки:";
$lang["customers_excel_import_success"] = "Вносът на клиенти е успешен.";
$lang["customers_import_items_excel"] = "Импортиране на клиент от Excel";
$lang["customers_mailchimp_activity_click"] = "Email click";
$lang["customers_mailchimp_activity_lastopen"] = "Последно отворен Имейл";
$lang["customers_mailchimp_activity_open"] = "Имейлът е отворен";
$lang["customers_mailchimp_activity_total"] = "Имейлът е изпратен";
$lang["customers_mailchimp_activity_unopen"] = "Имейлът е неотворен";
$lang["customers_mailchimp_email_client"] = "Имейл клиент";
$lang["customers_mailchimp_info"] = "Mailchimp";
$lang["customers_mailchimp_member_rating"] = "Оценка";
$lang["customers_mailchimp_status"] = "Статус";
$lang["customers_mailchimp_vip"] = "VIP";
$lang["customers_max"] = "Максимално похарчени";
$lang["customers_min"] = "Минимално похарчено";
$lang["customers_new"] = "Нов клиент";
$lang["customers_none_selected"] = "Не сте избрали клиент (и), който да изтриете.";
$lang["customers_one_or_multiple"] = "Клиент(ти)";
$lang["customers_quantity"] = "Количество";
$lang["customers_stats_info"] = "Статус";
$lang["customers_successful_adding"] = "Успешно добавихте клиент";
$lang["customers_successful_deleted"] = "Вие успешно сте изтрили";
$lang["customers_successful_updating"] = "Актуализирахте успешно клиента си";
$lang["customers_tax_code"] = "Данъчен код";
$lang["customers_taxable"] = "Облагаем";
$lang["customers_total"] = "Общо изразходвани средства";
$lang["customers_update"] = "Актуализиране на клиента";
$lang["rewards_package"] = "Пакетни награди";

View File

@@ -0,0 +1,22 @@
<?php
$lang["datepicker_all_time"] = "All Time";
$lang["datepicker_apply"] = "Apply";
$lang["datepicker_cancel"] = "Cancel";
$lang["datepicker_custom"] = "Custom";
$lang["datepicker_from"] = "From";
$lang["datepicker_last_30"] = "Last 30 Days";
$lang["datepicker_last_7"] = "Last 7 Days";
$lang["datepicker_last_financial_year"] = "Last Fiscal Year";
$lang["datepicker_last_month"] = "Last Month";
$lang["datepicker_last_year"] = "Last Year";
$lang["datepicker_same_month_last_year"] = "Same Month Last Year";
$lang["datepicker_same_month_to_same_day_last_year"] = "Same Month To Same Day Last Year";
$lang["datepicker_this_financial_year"] = "Current Fiscal Year";
$lang["datepicker_this_month"] = "Current Month";
$lang["datepicker_this_year"] = "Current Year";
$lang["datepicker_to"] = "To";
$lang["datepicker_today"] = "Today";
$lang["datepicker_today_last_year"] = "Today Last Year";
$lang["datepicker_weekstart"] = "0";
$lang["datepicker_yesterday"] = "Yesterday";

View File

@@ -0,0 +1,37 @@
<?php
$lang["employees_basic_information"] = "Информация";
$lang["employees_cannot_be_deleted"] = "Невъзможно е да изтриете избрани служители, един или повече от тях са обработили продажби или се опитвате да изтриете профила си.";
$lang["employees_change_password"] = "Промяна на паролата";
$lang["employees_confirm_delete"] = "Наистина ли искате да изтриете избрания служител (и)?";
$lang["employees_confirm_restore"] = "Наистина ли искате да възстановите избраните служители?";
$lang["employees_current_password"] = "Настояща парола";
$lang["employees_current_password_invalid"] = "Текущата парола е невалидна.";
$lang["employees_employee"] = "Служител";
$lang["employees_error_adding_updating"] = "Добавянето или актуализирането на служителите е неуспешно.";
$lang["employees_error_deleting_demo_admin"] = "Не може да изтриете Пробният Администратор.";
$lang["employees_error_updating_demo_admin"] = "Не може да промените Пробният Администратор.";
$lang["employees_language"] = "Език";
$lang["employees_login_info"] = "Login";
$lang["employees_new"] = "Нов служител";
$lang["employees_none_selected"] = "Не сте избрали служител (и), който да изтриете.";
$lang["employees_one_or_multiple"] = "служител (и)";
$lang["employees_password"] = "Password";
$lang["employees_password_minlength"] = "Паролата трябва да е с дължина най-малко 8 знака.";
$lang["employees_password_must_match"] = "Паролите не съвпадат.";
$lang["employees_password_not_must_match"] = "Текущата парола и новата парола трябва да са уникални.";
$lang["employees_password_required"] = "Изисква се парола.";
$lang["employees_permission_desc"] = "Поставете отметка в квадратчетата по-долу, за да получите достъп до модулите.";
$lang["employees_permission_info"] = "Разрешения";
$lang["employees_repeat_password"] = "Паролата отново";
$lang["employees_subpermission_required"] = "Add at least one grant for each module.";
$lang["employees_successful_adding"] = "Служителя е добавен успешно.";
$lang["employees_successful_change_password"] = "Промяна на паролата е успешна.";
$lang["employees_successful_deleted"] = "Вие успешно сте изтрили";
$lang["employees_successful_updating"] = "Успешно сте актуализирали служител";
$lang["employees_system_language"] = "Системен език";
$lang["employees_unsuccessful_change_password"] = "Промяната на паролата се провали.";
$lang["employees_update"] = "Актуализиране на служителя";
$lang["employees_username"] = "Потребител";
$lang["employees_username_minlength"] = "Потребителското име трябва да е с дължина най-малко 5 знака.";
$lang["employees_username_required"] = "Потребителското име е задължително поле.";

View File

@@ -0,0 +1,9 @@
<?php
$lang["enum_half_down"] = "Half Down";
$lang["enum_half_even"] = "Half Even";
$lang["enum_half_five"] = "Half Five";
$lang["enum_half_odd"] = "Half Odd";
$lang["enum_half_up"] = "Half Up";
$lang["enum_round_down"] = "Round Down";
$lang["enum_round_up"] = "Round Up";

View File

@@ -0,0 +1,4 @@
<?php
$lang["error_no_permission_module"] = "Нямате разрешение за достъп до модула с име";
$lang["error_unknown"] = "неизвестен";

View File

@@ -0,0 +1,20 @@
<?php
$lang["category_name_required"] = "Expense Category name required";
$lang["expenses_categories_add_item"] = "Add Category";
$lang["expenses_categories_cannot_be_deleted"] = "Could not delete Category Expense(s)";
$lang["expenses_categories_category_id"] = "Id";
$lang["expenses_categories_confirm_delete"] = "Are you sure you want to delete the selected Expense Category?";
$lang["expenses_categories_description"] = "Category Description";
$lang["expenses_categories_error_adding_updating"] = "Error adding/updating Expense Category";
$lang["expenses_categories_info"] = "Category Expense Info";
$lang["expenses_categories_name"] = "Category Name";
$lang["expenses_categories_new"] = "New Category";
$lang["expenses_categories_no_expenses_categories_to_display"] = "No Category to display";
$lang["expenses_categories_none_selected"] = "You have not selected any Category Expense";
$lang["expenses_categories_one_or_multiple"] = "Category Expense";
$lang["expenses_categories_quantity"] = "Quantity";
$lang["expenses_categories_successful_adding"] = "Expense Category add successful";
$lang["expenses_categories_successful_deleted"] = "Expense Category delete successful";
$lang["expenses_categories_successful_updating"] = "Expense Category update successful";
$lang["expenses_categories_update"] = "Update Category";

View File

@@ -0,0 +1,45 @@
<?php
$lang["expenses_add_item"] = "Add Expense";
$lang["expenses_amount"] = "Amount";
$lang["expenses_amount_number"] = "Amount must be a number";
$lang["expenses_amount_required"] = "Expense Amount required";
$lang["expenses_by_category"] = "Category";
$lang["expenses_cannot_be_deleted"] = "Could not delete Category Expense(s)";
$lang["expenses_cash"] = "Cash";
$lang["expenses_cash_filter"] = "Cash";
$lang["expenses_categories_name"] = "Category";
$lang["expenses_category_required"] = "category is a required field";
$lang["expenses_check"] = "Check";
$lang["expenses_check_filter"] = "Check";
$lang["expenses_confirm_delete"] = "Are you sure you want to delete the selected Expense?";
$lang["expenses_confirm_restore"] = "";
$lang["expenses_credit"] = "Credit Card";
$lang["expenses_credit_filter"] = "Credit Card";
$lang["expenses_date"] = "Date";
$lang["expenses_date_number"] = "date must be a number";
$lang["expenses_date_required"] = "date is a required field";
$lang["expenses_debit"] = "Debit Card";
$lang["expenses_debit_filter"] = "Debit Card";
$lang["expenses_description"] = "Description";
$lang["expenses_due"] = "Due";
$lang["expenses_due_filter"] = "Due";
$lang["expenses_employee"] = "Created By";
$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_is_deleted"] = "Deleted";
$lang["expenses_name_required"] = "Expense Name required";
$lang["expenses_new"] = "New Expense";
$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)";
$lang["expenses_payment"] = "Payment Type";
$lang["expenses_successful_adding"] = "Expense add successful";
$lang["expenses_successful_deleted"] = "Expense delete successful";
$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_update"] = "Update Expense";

View File

@@ -0,0 +1,70 @@
<?php
$lang["giftcards_add_minus"] = "Inventory to add or subtract.";
$lang["giftcards_allow_alt_description"] = "Allow Alternate Description";
$lang["giftcards_bulk_edit"] = "Bulk Edit";
$lang["giftcards_cannot_be_deleted"] = "Could not delete selected Gift Card(s), one or more of the selected Gift Cards has sales.";
$lang["giftcards_cannot_find_giftcard"] = "Gift Card not found.";
$lang["giftcards_cannot_use"] = "Gift Card %1 cannot be used for this sale: invalid Customer.";
$lang["giftcards_card_value"] = "Value";
$lang["giftcards_category"] = "Category";
$lang["giftcards_change_all_to_allow_alt_desc"] = "Allow alternate description for all.";
$lang["giftcards_change_all_to_not_allow_allow_desc"] = "Do not allow alternate description for all.";
$lang["giftcards_change_all_to_serialized"] = "Change All To Serialized";
$lang["giftcards_change_all_to_unserialized"] = "Change All To Unserialized";
$lang["giftcards_confirm_bulk_edit"] = "Are you sure you want to edit the selected Gift Card(s)?";
$lang["giftcards_confirm_delete"] = "Are you sure you want to delete the selected Gift Card(s)?";
$lang["giftcards_confirm_restore"] = "";
$lang["giftcards_cost_price"] = "Wholesale Price";
$lang["giftcards_count"] = "Update Inventory";
$lang["giftcards_current_quantity"] = "Current Quantity";
$lang["giftcards_description"] = "Description";
$lang["giftcards_details_count"] = "Inventory Count Details";
$lang["giftcards_do_nothing"] = "Do Nothing";
$lang["giftcards_edit_fields_you_want_to_update"] = "Edit desired fields for selected Gift Card(s).";
$lang["giftcards_edit_multiple_giftcards"] = "Edit Multiple Gift Cards.";
$lang["giftcards_error_adding_updating"] = "Gift Card add or update failed.";
$lang["giftcards_error_updating_multiple"] = "Gift Card(s) update failed.";
$lang["giftcards_excel_import_failed"] = "Excel import failed.";
$lang["giftcards_generate_barcodes"] = "Generate Barcodes";
$lang["giftcards_giftcard"] = "Gift Card";
$lang["giftcards_giftcard_number"] = "Gift Card Number";
$lang["giftcards_info_provided_by"] = "Info provided by";
$lang["giftcards_inventory_comments"] = "Comments";
$lang["giftcards_is_serialized"] = "Gift Card has Serial Number";
$lang["giftcards_low_inventory_giftcards"] = "Low Inventory Gift Cards";
$lang["giftcards_manually_editing_of_quantity"] = "Manual Edit of Quantity";
$lang["giftcards_must_select_giftcard_for_barcode"] = "You must select at least one (1) Gift Card to generate barcodes.";
$lang["giftcards_new"] = "New Gift Card";
$lang["giftcards_no_description_giftcards"] = "No Description Gift Cards";
$lang["giftcards_no_giftcards_to_display"] = "No Gift Cards to display.";
$lang["giftcards_none"] = "None";
$lang["giftcards_none_selected"] = "No Gift Card(s) selected to edit.";
$lang["giftcards_number"] = "Gift Card Number must be a number.";
$lang["giftcards_number_information"] = "Gift Card Number";
$lang["giftcards_number_required"] = "Gift Card Number is a required field.";
$lang["giftcards_one_or_multiple"] = "Gift Card(s)";
$lang["giftcards_person_id"] = "Customer";
$lang["giftcards_quantity"] = "Quantity";
$lang["giftcards_quantity_required"] = "Quantity is a required field. Please close (X) to cancel.";
$lang["giftcards_remaining_balance"] = "Gift Card %1 remaining value is %2!";
$lang["giftcards_reorder_level"] = "Reorder Level";
$lang["giftcards_retrive_giftcard_info"] = "Retrieve Gift Card Info";
$lang["giftcards_sales_tax_1"] = "Sales Tax";
$lang["giftcards_sales_tax_2"] = "Sales Tax 2";
$lang["giftcards_serialized_giftcards"] = "Serialized Gift Cards";
$lang["giftcards_successful_adding"] = "You have successfully added Gift Card";
$lang["giftcards_successful_bulk_edit"] = "You have successfully updated the selected Gift Card(s)";
$lang["giftcards_successful_deleted"] = "You have successfully deleted";
$lang["giftcards_successful_updating"] = "You have successfully updated Gift Card";
$lang["giftcards_supplier"] = "Supplier";
$lang["giftcards_tax_1"] = "Tax 1";
$lang["giftcards_tax_2"] = "Tax 2";
$lang["giftcards_tax_percent"] = "Tax Percent";
$lang["giftcards_tax_percents"] = "Tax Percent(s)";
$lang["giftcards_unit_price"] = "Retail Value";
$lang["giftcards_upc_database"] = "Barcode Database";
$lang["giftcards_update"] = "Update Gift Card";
$lang["giftcards_use_inventory_menu"] = "Use Inventory Menu";
$lang["giftcards_value"] = "Gift Card Value must be a number.";
$lang["giftcards_value_required"] = "Gift Card Value is a required field.";

View File

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

View File

@@ -0,0 +1,32 @@
<?php
$lang["item_kits_add_item"] = "Add Item";
$lang["item_kits_all"] = "All";
$lang["item_kits_cannot_be_deleted"] = "Item Kit(s) delete failed.";
$lang["item_kits_confirm_delete"] = "Are you sure you want to delete the selected Item Kit(s)?";
$lang["item_kits_confirm_restore"] = "";
$lang["item_kits_description"] = "Item Kit Description";
$lang["item_kits_discount_percent"] = "Discount Percent";
$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_items"] = "Items";
$lang["item_kits_kit"] = "Kit ID";
$lang["item_kits_kit_and_components"] = "Kit and Components";
$lang["item_kits_kit_and_stock"] = "Kit and Stock";
$lang["item_kits_kit_only"] = "Kit Only";
$lang["item_kits_name"] = "Item Kit Name";
$lang["item_kits_new"] = "New Item Kit";
$lang["item_kits_no_item_kits_to_display"] = "No Item Kits to display.";
$lang["item_kits_none_selected"] = "You have not selected any Item Kits.";
$lang["item_kits_one_or_multiple"] = "Item Kit(s)";
$lang["item_kits_price_option"] = "Price Option";
$lang["item_kits_priced_only"] = "Priced Only";
$lang["item_kits_print_option"] = "Print Option";
$lang["item_kits_quantity"] = "Quantity";
$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_update"] = "Update Item Kit";

View File

@@ -0,0 +1,106 @@
<?php
$lang["items_add_minus"] = "Inventory to add or subtract.";
$lang["items_allow_alt_desciption"] = "";
$lang["items_allow_alt_description"] = "Allow Alternate Description";
$lang["items_amount_entry"] = "";
$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_category"] = "Category";
$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.";
$lang["items_change_all_to_serialized"] = "Change all to Serialized";
$lang["items_change_all_to_unserialized"] = "Change all to Unserialized";
$lang["items_change_image"] = "Change Image";
$lang["items_confirm_bulk_edit"] = "Are you sure you want to edit selected Item(s)?";
$lang["items_confirm_bulk_edit_wipe_taxes"] = "All Item Tax information will be replaced.";
$lang["items_confirm_delete"] = "Are you sure you want to delete selected item(s)?";
$lang["items_confirm_restore"] = "";
$lang["items_cost_price"] = "Wholesale Price";
$lang["items_cost_price_number"] = "Wholesale Price must be a number.";
$lang["items_cost_price_required"] = "Wholesale Price is a required field.";
$lang["items_count"] = "Update Inventory";
$lang["items_current_quantity"] = "Current Quantity";
$lang["items_description"] = "Description";
$lang["items_details_count"] = "Inventory Count Details";
$lang["items_do_nothing"] = "Do Nothing";
$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";
$lang["items_error_adding_updating"] = "Error adding/updating item";
$lang["items_error_updating_multiple"] = "Error updating items";
$lang["items_excel_import_failed"] = "Excel import failed";
$lang["items_excel_import_nodata_wrongformat"] = "The uploaded file has no data or is formatted incorrectly.";
$lang["items_excel_import_partially_failed"] = "Item import successful with some failures:";
$lang["items_excel_import_success"] = "Item import successful.";
$lang["items_generate_barcodes"] = "Generate Barcodes";
$lang["items_image"] = "Avatar";
$lang["items_import_items_excel"] = "Item Import from Excel";
$lang["items_info_provided_by"] = "Information provided by";
$lang["items_inventory"] = "Inventory";
$lang["items_inventory_comments"] = "Comments";
$lang["items_inventory_data_tracking"] = "Inventory Data Tracking";
$lang["items_inventory_date"] = "Date";
$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_serialized"] = "Item has Serial Number";
$lang["items_item"] = "Item";
$lang["items_item_number"] = "Barcode";
$lang["items_item_number_duplicate"] = "Item Number is already present in the database.";
$lang["items_kit"] = "Kit";
$lang["items_location"] = "Location";
$lang["items_low_inventory_items"] = "Out Of Stock Items";
$lang["items_manually_editing_of_quantity"] = "Manual Edit of Quantity";
$lang["items_name"] = "Item Name";
$lang["items_name_required"] = "Item Name is a required field.";
$lang["items_new"] = "New Item";
$lang["items_no_description_items"] = "No Description Items";
$lang["items_no_items_to_display"] = "No Items to display.";
$lang["items_none"] = "None";
$lang["items_none_selected"] = "You have not selected any Item(s) to edit";
$lang["items_nonstock"] = "Non-stocked";
$lang["items_number_information"] = "Item Number";
$lang["items_number_required"] = "Barcode is a required field.";
$lang["items_one_or_multiple"] = "item(s)";
$lang["items_quantity"] = "Quantity";
$lang["items_quantity_number"] = "Quantity must be a number.";
$lang["items_quantity_required"] = "Quantity is a required field.";
$lang["items_receiving_quantity"] = "Receiving Quantity";
$lang["items_remove_image"] = "Remove Image";
$lang["items_reorder_level"] = "Reorder Level";
$lang["items_reorder_level_number"] = "Reorder Level must be a number.";
$lang["items_reorder_level_required"] = "Reorder Level is a required field.";
$lang["items_retrive_item_info"] = "Retrive Item Info";
$lang["items_sales_tax_1"] = "Sales Tax";
$lang["items_sales_tax_2"] = "Sales Tax 2";
$lang["items_search_attributes"] = "Search Attributes";
$lang["items_search_custom_items"] = "Search Custom Items";
$lang["items_select_image"] = "Select Image";
$lang["items_serialized_items"] = "Serialized Items";
$lang["items_standard"] = "Standard";
$lang["items_stock"] = "Stock";
$lang["items_stock_location"] = "Stock location";
$lang["items_stock_type"] = "Stock Type";
$lang["items_successful_adding"] = "You have successfully added item";
$lang["items_successful_bulk_edit"] = "You have successfully updated the selected item(s)";
$lang["items_successful_deleted"] = "You have successfully deleted";
$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_percent"] = "Tax Percent";
$lang["items_tax_percent_number"] = "";
$lang["items_tax_percent_required"] = "Tax Percent is a required field.";
$lang["items_tax_percents"] = "Tax Percent(s)";
$lang["items_type"] = "Item Type";
$lang["items_unit_price"] = "Retail Price";
$lang["items_unit_price_number"] = "Unit price must be a number.";
$lang["items_unit_price_required"] = "Retail Price is a required field.";
$lang["items_upc_database"] = "Barcode Database";
$lang["items_update"] = "Update Item";
$lang["items_use_inventory_menu"] = "Use Inventory Menu";

View File

@@ -0,0 +1,10 @@
<?php
$lang["login_gcaptcha"] = "I'm not a robot.";
$lang["login_go"] = "Go";
$lang["login_invalid_gcaptcha"] = "Invalid I'm not a robot.";
$lang["login_invalid_installation"] = "The installation is not correct, check your php.ini file.";
$lang["login_invalid_username_and_password"] = "Invalid Username or Password.";
$lang["login_login"] = "Login";
$lang["login_password"] = "Password";
$lang["login_username"] = "Username";

View File

@@ -0,0 +1,14 @@
<?php
$lang["messages_first_name"] = "First name";
$lang["messages_last_name"] = "Last name";
$lang["messages_message"] = "Message";
$lang["messages_message_placeholder"] = "Your Message here...";
$lang["messages_message_required"] = "Message required";
$lang["messages_multiple_phones"] = "(In case of multiple recipients, enter mobile numbers separated by commas)";
$lang["messages_phone"] = "Phone number";
$lang["messages_phone_number_required"] = "Phone number required";
$lang["messages_phone_placeholder"] = "Mobile Number(s) here...";
$lang["messages_sms_send"] = "Send SMS";
$lang["messages_successfully_sent"] = "Message successfully sent to: ";
$lang["messages_unsuccessfully_sent"] = "Message unsuccessfully sent to: ";

View File

@@ -0,0 +1,37 @@
<?php
$lang["module_both"] = "Both";
$lang["module_config"] = "Configuration";
$lang["module_config_desc"] = "Change OSPOS's Configuration.";
$lang["module_customers"] = "Customers";
$lang["module_customers_desc"] = "Add, Update, Delete, and Search Customers.";
$lang["module_employees"] = "Employees";
$lang["module_employees_desc"] = "Add, Update, Delete, and Search Employees.";
$lang["module_expenses"] = "Expenses";
$lang["module_expenses_categories"] = "Expenses Categories";
$lang["module_expenses_categories_desc"] = "Add, Update, and Delete Expenses Categories.";
$lang["module_expenses_desc"] = "Add, Update, Delete, and Search Expenses.";
$lang["module_giftcards"] = "Gift Cards";
$lang["module_giftcards_desc"] = "Add, Update, Delete and Search Gift Cards.";
$lang["module_home"] = "Home";
$lang["module_home_desc"] = "List home menu modules.";
$lang["module_item_kits"] = "Item Kits";
$lang["module_item_kits_desc"] = "Add, Update, Delete and Search Item Kits.";
$lang["module_items"] = "Items";
$lang["module_items_desc"] = "Add, Update, Delete, and Search Items.";
$lang["module_messages"] = "Messages";
$lang["module_messages_desc"] = "Send Messages to Customers, Suppliers and Employees.";
$lang["module_migrate"] = "Migrate";
$lang["module_migrate_desc"] = "Update the OSPOS Database.";
$lang["module_office"] = "Office";
$lang["module_office_desc"] = "List office menu modules.";
$lang["module_receivings"] = "Receivings";
$lang["module_receivings_desc"] = "Process Purchase Orders.";
$lang["module_reports"] = "Reports";
$lang["module_reports_desc"] = "View and generate Reports.";
$lang["module_sales"] = "Sales";
$lang["module_sales_desc"] = "Process Sales and Returns.";
$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.";

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