mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-25 08:44:42 -04:00
Compare commits
1494 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3c215f744 | ||
|
|
73e2d01c91 | ||
|
|
0a299d8858 | ||
|
|
5adc3b18c2 | ||
|
|
0c2c999746 | ||
|
|
9d072da872 | ||
|
|
a610346576 | ||
|
|
e3e4c8b3a4 | ||
|
|
af8cb4243b | ||
|
|
3c87bdec57 | ||
|
|
4062b9890b | ||
|
|
0ccfe72a26 | ||
|
|
79ca657a6e | ||
|
|
36bf371f38 | ||
|
|
efc689530e | ||
|
|
6bc5842402 | ||
|
|
d4761ad095 | ||
|
|
cdf0c819ac | ||
|
|
fe2ae55e94 | ||
|
|
fea0462407 | ||
|
|
c9a50cdeaf | ||
|
|
04cbd95c13 | ||
|
|
07d4b852e0 | ||
|
|
5d00a4354c | ||
|
|
6e33838fb7 | ||
|
|
e96b54509a | ||
|
|
530c75df4d | ||
|
|
a8bb790ebe | ||
|
|
f82701adae | ||
|
|
36ea11f96f | ||
|
|
4fe4c8eb57 | ||
|
|
4d41ad5735 | ||
|
|
fae7702719 | ||
|
|
ed888be463 | ||
|
|
c423bc4222 | ||
|
|
aa624f3680 | ||
|
|
121cc000b3 | ||
|
|
458118469a | ||
|
|
07d1a5fb9b | ||
|
|
78436ee39d | ||
|
|
3f1f4c8e05 | ||
|
|
2704bd7e83 | ||
|
|
5d3643a8d0 | ||
|
|
454155f8de | ||
|
|
e03f7a7af6 | ||
|
|
7cce40af25 | ||
|
|
8d7fb2cd25 | ||
|
|
dcd78d8266 | ||
|
|
3dc950d930 | ||
|
|
7ba8ddb0c0 | ||
|
|
c3d232016e | ||
|
|
9b6bfd6e2c | ||
|
|
0e2dc1d6da | ||
|
|
5f072aecfa | ||
|
|
c803f01774 | ||
|
|
8b006f5386 | ||
|
|
f05136f203 | ||
|
|
ced7a7c641 | ||
|
|
6ab0e52a7c | ||
|
|
b65ad2ae74 | ||
|
|
fe20fb24ca | ||
|
|
d1f74b60c7 | ||
|
|
69c222f686 | ||
|
|
d861b12abe | ||
|
|
bf8d4d5f2b | ||
|
|
7b30bd6048 | ||
|
|
ac92e7cf7f | ||
|
|
15c161b6d1 | ||
|
|
7c3a6344b7 | ||
|
|
c0115d51df | ||
|
|
2cfcd4d8a7 | ||
|
|
08c48bc9a7 | ||
|
|
1d8a79b2a9 | ||
|
|
4bb3e2774b | ||
|
|
fe7ba26ab8 | ||
|
|
ea1a51c9f8 | ||
|
|
b13ac8d4f0 | ||
|
|
37390ae9dd | ||
|
|
5f0d8b2312 | ||
|
|
b35ea35654 | ||
|
|
6071f9ab97 | ||
|
|
4558cf0e50 | ||
|
|
507294a4a6 | ||
|
|
f8f4644987 | ||
|
|
510fe8b14e | ||
|
|
a3408c31ce | ||
|
|
1acac824a1 | ||
|
|
fa4e7cefac | ||
|
|
a77a2be2ce | ||
|
|
b93c3b2177 | ||
|
|
ec673dc596 | ||
|
|
dff043534d | ||
|
|
7a3ac75e53 | ||
|
|
7234f2af53 | ||
|
|
7ee6221952 | ||
|
|
0ba225cafd | ||
|
|
e4690eb670 | ||
|
|
be6e3480c2 | ||
|
|
18f65dbb89 | ||
|
|
2b7688d962 | ||
|
|
c7cebfa3a3 | ||
|
|
be3b50e36d | ||
|
|
ee82f3e804 | ||
|
|
180d40f00d | ||
|
|
f43df16d10 | ||
|
|
c54b8dccd3 | ||
|
|
d65ee713ca | ||
|
|
59a4f55cb5 | ||
|
|
34da40ce0b | ||
|
|
9d149ad4f3 | ||
|
|
455e39260d | ||
|
|
0015bdffcf | ||
|
|
bcd1b05961 | ||
|
|
c62dc5fe2a | ||
|
|
2426fad52e | ||
|
|
fdbdf55e71 | ||
|
|
3e9e144075 | ||
|
|
1fe94c3626 | ||
|
|
b4f8667047 | ||
|
|
fe2c639f8a | ||
|
|
c8d1bfee35 | ||
|
|
72825acfaf | ||
|
|
0e14d5390f | ||
|
|
cdd966878d | ||
|
|
9384b53a22 | ||
|
|
4bab3fc4e3 | ||
|
|
5c1baf20b0 | ||
|
|
075d4e1aeb | ||
|
|
8dc7855e56 | ||
|
|
d992c434d8 | ||
|
|
1c07ba1945 | ||
|
|
6357491874 | ||
|
|
8880061e0e | ||
|
|
c397a81b48 | ||
|
|
76e1516147 | ||
|
|
c495cf29a0 | ||
|
|
c64ac468a3 | ||
|
|
0892944aaa | ||
|
|
abafd59683 | ||
|
|
dab4a8f90d | ||
|
|
ca7c3e9d76 | ||
|
|
61eeed0b75 | ||
|
|
3852bd5c3e | ||
|
|
cf8890efdc | ||
|
|
e4fe32b85c | ||
|
|
6bed03a2e7 | ||
|
|
390fefa803 | ||
|
|
3c069ad226 | ||
|
|
2e07818a2c | ||
|
|
5ce8c9694d | ||
|
|
0415cb53e9 | ||
|
|
a254f78750 | ||
|
|
adde140660 | ||
|
|
0a3414f4f3 | ||
|
|
4c3ab04e3d | ||
|
|
9e442e6c61 | ||
|
|
64dd3afa54 | ||
|
|
bd17e73b36 | ||
|
|
3e7faf1ea1 | ||
|
|
34048c2ba5 | ||
|
|
3848b72bbe | ||
|
|
154db58f34 | ||
|
|
2e5cfbc1e7 | ||
|
|
174338f9bf | ||
|
|
4d9840f9ad | ||
|
|
821aaa4e63 | ||
|
|
425f0fd21b | ||
|
|
41117b7007 | ||
|
|
6cc4196af8 | ||
|
|
4329f519f8 | ||
|
|
c29937ac68 | ||
|
|
9d7c07c1dd | ||
|
|
f24f62c0c6 | ||
|
|
9370d3434a | ||
|
|
a60a58337e | ||
|
|
6e8d9bb85c | ||
|
|
7642e45850 | ||
|
|
4d37b29304 | ||
|
|
ac5dbe0b0f | ||
|
|
cd19babd6e | ||
|
|
bbb77a00ad | ||
|
|
c48563b703 | ||
|
|
740d12e137 | ||
|
|
e4369db19c | ||
|
|
d5086ba42f | ||
|
|
1c95ed432f | ||
|
|
9f50a6ab92 | ||
|
|
ee319189ed | ||
|
|
0053398037 | ||
|
|
f106097e2d | ||
|
|
cc1497baad | ||
|
|
87317b00bd | ||
|
|
e949f776ac | ||
|
|
27ca6cf6f8 | ||
|
|
6d35fae28e | ||
|
|
27c8f2614d | ||
|
|
fbce16acd1 | ||
|
|
a700d4ffff | ||
|
|
738e1de6b4 | ||
|
|
5da3dc3928 | ||
|
|
129eb78552 | ||
|
|
97ab38436f | ||
|
|
0820a0d7ff | ||
|
|
a597fa86eb | ||
|
|
c05b814009 | ||
|
|
82c6954d1c | ||
|
|
b43ec350ae | ||
|
|
c6bc1680fa | ||
|
|
7d64b483ca | ||
|
|
cfa7891b06 | ||
|
|
3663c7e344 | ||
|
|
3ca871aea9 | ||
|
|
6b935ca169 | ||
|
|
41a9b03761 | ||
|
|
6a3da0f5dc | ||
|
|
a00c38bee8 | ||
|
|
593b5cebaa | ||
|
|
4b57b6144b | ||
|
|
d2fbceeb22 | ||
|
|
3113945f0f | ||
|
|
8a9e0f352a | ||
|
|
c844f2c1e7 | ||
|
|
9b0dc5a9c3 | ||
|
|
11ba752010 | ||
|
|
b26dbc7022 | ||
|
|
22f1ed10be | ||
|
|
0a289f9ed4 | ||
|
|
1b0eb0d936 | ||
|
|
d146a05991 | ||
|
|
8c43345a20 | ||
|
|
50c4b30df2 | ||
|
|
9f2e39711f | ||
|
|
43b4cee636 | ||
|
|
ba8c0b7b15 | ||
|
|
86622615fd | ||
|
|
3dfa877365 | ||
|
|
b22252be4e | ||
|
|
83697eaf8b | ||
|
|
fe627eb943 | ||
|
|
4dea268e51 | ||
|
|
2f7d738a20 | ||
|
|
b99ec9117b | ||
|
|
3c56ae6cb6 | ||
|
|
b1fdd45372 | ||
|
|
4d46da7974 | ||
|
|
84a5f654b1 | ||
|
|
01afdc5979 | ||
|
|
3c379a6458 | ||
|
|
bb203efe21 | ||
|
|
9e2a757b16 | ||
|
|
4079e44572 | ||
|
|
4595ab5c35 | ||
|
|
35150f14ed | ||
|
|
a7ecec4bd3 | ||
|
|
ae472d0176 | ||
|
|
b18ae57cf6 | ||
|
|
2f064d9a94 | ||
|
|
4f2b6badd9 | ||
|
|
bf76450ca5 | ||
|
|
7c88bdb21f | ||
|
|
544d8a496e | ||
|
|
88625ad83c | ||
|
|
e89f698dff | ||
|
|
a1e0e7946c | ||
|
|
68ce90ad8e | ||
|
|
06e36ac4f4 | ||
|
|
ccd52e1ded | ||
|
|
ed0fd469e6 | ||
|
|
7884bab2ed | ||
|
|
213bba8312 | ||
|
|
17982988f7 | ||
|
|
a7d4e4c163 | ||
|
|
2411fe1e3f | ||
|
|
b2a2ee9613 | ||
|
|
dc78162486 | ||
|
|
ffbb96fdee | ||
|
|
fd1cad99ed | ||
|
|
e7808b35cd | ||
|
|
16b9bd1305 | ||
|
|
3a3ddb99d2 | ||
|
|
49c6ec282f | ||
|
|
2557945713 | ||
|
|
3368c62690 | ||
|
|
3b411bbefc | ||
|
|
4d8006da2e | ||
|
|
a5c797b617 | ||
|
|
b9bc7583b2 | ||
|
|
b84d9d894f | ||
|
|
63d9fd219c | ||
|
|
ddb0e7560c | ||
|
|
a24a55f812 | ||
|
|
a353068ca5 | ||
|
|
442b64d1d1 | ||
|
|
8547c3b071 | ||
|
|
bf30652a3d | ||
|
|
7525c650ab | ||
|
|
f2ccebc84d | ||
|
|
5edfed5bfc | ||
|
|
8c60d6cdc6 | ||
|
|
33cc7e3f9c | ||
|
|
395ac217b8 | ||
|
|
1189c3dadf | ||
|
|
4c92e26e37 | ||
|
|
ee1f23289a | ||
|
|
84f6adb532 | ||
|
|
da5b6e2592 | ||
|
|
38b26a3e68 | ||
|
|
9d70b23b31 | ||
|
|
2466469a9c | ||
|
|
ad47e64dfd | ||
|
|
520ae0d2a9 | ||
|
|
8fccee51a7 | ||
|
|
32074771ac | ||
|
|
44a1c89292 | ||
|
|
55d4c004eb | ||
|
|
1fbc42c079 | ||
|
|
2b7a25d8a3 | ||
|
|
1f3074232c | ||
|
|
d3a77118ba | ||
|
|
83732383a7 | ||
|
|
b495a97483 | ||
|
|
a0672d04ce | ||
|
|
e9ac0adb81 | ||
|
|
6febdc4e9d | ||
|
|
8ca18edfbd | ||
|
|
6f4cd9d5eb | ||
|
|
63866bf0d3 | ||
|
|
4e8b63c002 | ||
|
|
1500aa8b51 | ||
|
|
9af064f003 | ||
|
|
0e4f894b2a | ||
|
|
91a677f018 | ||
|
|
556ab3c229 | ||
|
|
d7da611a76 | ||
|
|
fa8f42629b | ||
|
|
f8e1d57f71 | ||
|
|
380953d8b7 | ||
|
|
aea080052a | ||
|
|
3568debbe6 | ||
|
|
d2e8a156ab | ||
|
|
d6f6e2f234 | ||
|
|
22c6d5401c | ||
|
|
e44733599e | ||
|
|
acb12dd517 | ||
|
|
3dbc124f62 | ||
|
|
563fcf2385 | ||
|
|
accd11b74f | ||
|
|
c7b21362cb | ||
|
|
78b9daac39 | ||
|
|
00f90857a0 | ||
|
|
3bb8d7ad32 | ||
|
|
83ed48c7db | ||
|
|
7e0f099479 | ||
|
|
96af1b64ff | ||
|
|
a005ed6862 | ||
|
|
cf6df1e99c | ||
|
|
c1509a9dd1 | ||
|
|
d78b547b98 | ||
|
|
17136a011a | ||
|
|
171870f512 | ||
|
|
04a3a0631f | ||
|
|
2dd81f4e77 | ||
|
|
39a7665930 | ||
|
|
1223dccd8c | ||
|
|
d078523528 | ||
|
|
574bcbac09 | ||
|
|
8dad6d5249 | ||
|
|
75b9fdb698 | ||
|
|
6131e3db34 | ||
|
|
30f6e315e3 | ||
|
|
01dfed1793 | ||
|
|
f82990a304 | ||
|
|
6131c5eb53 | ||
|
|
a1b25d193c | ||
|
|
67eab51e4f | ||
|
|
97591e77fc | ||
|
|
146d0ce6c8 | ||
|
|
9733ca9171 | ||
|
|
b2fcd59841 | ||
|
|
f769561a3c | ||
|
|
2a617f7c5c | ||
|
|
544c142ef0 | ||
|
|
8991407b16 | ||
|
|
caedd4cfc0 | ||
|
|
9323f3803b | ||
|
|
a031fd924b | ||
|
|
afadb1e171 | ||
|
|
8f7f22726a | ||
|
|
5cbebec92f | ||
|
|
2b8e8bb13e | ||
|
|
cae200e06a | ||
|
|
49cbdb53ee | ||
|
|
e96e00d902 | ||
|
|
6ae6fa7c32 | ||
|
|
4653cde725 | ||
|
|
97f2ee521f | ||
|
|
ee55be347d | ||
|
|
cee7956788 | ||
|
|
ffa77cfb71 | ||
|
|
a956a009f9 | ||
|
|
9f7ca1a747 | ||
|
|
66d319f082 | ||
|
|
010a3c7126 | ||
|
|
c1b3382795 | ||
|
|
2a8078aac9 | ||
|
|
409f0f0084 | ||
|
|
df2a76b4cf | ||
|
|
ec97cd5cdf | ||
|
|
46da8bab1d | ||
|
|
ae6e082983 | ||
|
|
028f38784e | ||
|
|
136093b8ab | ||
|
|
17f3635574 | ||
|
|
c33a3b3720 | ||
|
|
63b728b118 | ||
|
|
1cfdee4114 | ||
|
|
98ccea3419 | ||
|
|
5306b6d26f | ||
|
|
63bc9d70a7 | ||
|
|
2590feee6c | ||
|
|
1dd375311c | ||
|
|
f121a31bb9 | ||
|
|
75d54f4f62 | ||
|
|
8d16b28160 | ||
|
|
97d07d96c8 | ||
|
|
78f9560e6d | ||
|
|
fd625afeb6 | ||
|
|
91374a54b4 | ||
|
|
9c4591ea31 | ||
|
|
5ade46bc35 | ||
|
|
b1bee3196a | ||
|
|
16dd8fb0a1 | ||
|
|
b69d57a4b9 | ||
|
|
1ba0f3c839 | ||
|
|
a258a27d9b | ||
|
|
082bfeca88 | ||
|
|
32075b96dd | ||
|
|
3844d6b5f5 | ||
|
|
aa6eed2947 | ||
|
|
4a74c645ad | ||
|
|
dc2c77752b | ||
|
|
85fdc661d1 | ||
|
|
64163e8e6e | ||
|
|
810ba78776 | ||
|
|
82a17eb6ce | ||
|
|
b726596ec1 | ||
|
|
5aac69ad6d | ||
|
|
c24c7ed721 | ||
|
|
f4519251af | ||
|
|
ba6e38f755 | ||
|
|
f838dae4b5 | ||
|
|
380d3a1355 | ||
|
|
ceb5b85640 | ||
|
|
fc6f8e4d92 | ||
|
|
37dcba63bb | ||
|
|
edf5c1ec90 | ||
|
|
426bdfbadd | ||
|
|
40114601df | ||
|
|
e2d9b2e141 | ||
|
|
427a2c3777 | ||
|
|
98864c0446 | ||
|
|
0995c71630 | ||
|
|
407e8723d8 | ||
|
|
022435d0db | ||
|
|
7f7943d538 | ||
|
|
780a4c37a7 | ||
|
|
b24879c9ef | ||
|
|
d6000c79f7 | ||
|
|
9ed0984c21 | ||
|
|
21415ccb3c | ||
|
|
cadae3eabc | ||
|
|
54150940ee | ||
|
|
81d76b0c03 | ||
|
|
469d3d500e | ||
|
|
36fe5ded7e | ||
|
|
fec096915a | ||
|
|
abdcd31b9e | ||
|
|
efd58f2281 | ||
|
|
211c18a99e | ||
|
|
166c2558e6 | ||
|
|
54237a1fed | ||
|
|
1d9548870b | ||
|
|
032276de87 | ||
|
|
61e16d2d33 | ||
|
|
463dfcd1a4 | ||
|
|
022dfea51a | ||
|
|
ef23596b6e | ||
|
|
58e8469dde | ||
|
|
60d77e1f61 | ||
|
|
49d60313f6 | ||
|
|
ed54adb70c | ||
|
|
a353e73549 | ||
|
|
e1508e610b | ||
|
|
463cf9266d | ||
|
|
23a6ae791b | ||
|
|
48d58b822a | ||
|
|
08de3e1167 | ||
|
|
20c30a2c15 | ||
|
|
b51ea94eb5 | ||
|
|
2c613bdc86 | ||
|
|
f784aa3956 | ||
|
|
73b97de3e5 | ||
|
|
5cc2898a4b | ||
|
|
820cae2d3d | ||
|
|
3569165097 | ||
|
|
2c1f2823f2 | ||
|
|
ce45769163 | ||
|
|
12b62119bf | ||
|
|
9caf22aea4 | ||
|
|
2258938604 | ||
|
|
3f2a9e8c52 | ||
|
|
385de892fe | ||
|
|
a5787ecb4e | ||
|
|
bfecf15ee2 | ||
|
|
5ffb6b4c18 | ||
|
|
a6d70b6fcd | ||
|
|
bee9c7af5d | ||
|
|
f0bdb84422 | ||
|
|
12e7c5d440 | ||
|
|
623ff4fee9 | ||
|
|
579a85a9fc | ||
|
|
22e3bba649 | ||
|
|
9075bfcf37 | ||
|
|
478b2c0ea5 | ||
|
|
91918fc937 | ||
|
|
017df21f17 | ||
|
|
e7d420f44f | ||
|
|
04f2e916bb | ||
|
|
7770c6817f | ||
|
|
6caf2ea672 | ||
|
|
317d0adb78 | ||
|
|
a7659d7b76 | ||
|
|
4353f5a12b | ||
|
|
160b7ca189 | ||
|
|
c9b15c7eeb | ||
|
|
a1f6dbccc5 | ||
|
|
d399637c18 | ||
|
|
54740f734f | ||
|
|
7e8ac7c100 | ||
|
|
4cff8d7dd2 | ||
|
|
a7ada7e85a | ||
|
|
a3bf1d7eeb | ||
|
|
ecce5d39bb | ||
|
|
9d113c3327 | ||
|
|
1f3b05a37b | ||
|
|
8e60437db0 | ||
|
|
6cb6e2fb24 | ||
|
|
71a95d7b31 | ||
|
|
8be987f564 | ||
|
|
8bf147f025 | ||
|
|
b3c42d4d06 | ||
|
|
043493ba0a | ||
|
|
88d5b3336a | ||
|
|
3a1b16c070 | ||
|
|
44e57c59e4 | ||
|
|
204499e5d0 | ||
|
|
31f736e2e0 | ||
|
|
5a4d7a40ec | ||
|
|
8c5706bc1f | ||
|
|
04af352fad | ||
|
|
677b296721 | ||
|
|
a4c8db7592 | ||
|
|
241f05a000 | ||
|
|
1f5ffb04a1 | ||
|
|
5f12d8ade3 | ||
|
|
da64b67e26 | ||
|
|
beedb7e2f6 | ||
|
|
fa63933f69 | ||
|
|
b32b767260 | ||
|
|
4457cf7055 | ||
|
|
458e9a2db5 | ||
|
|
3245ddb22d | ||
|
|
5c833e48fb | ||
|
|
49c3ad57fc | ||
|
|
67402b6cd5 | ||
|
|
cd2f2c35a4 | ||
|
|
4efbfe2581 | ||
|
|
2fd350d924 | ||
|
|
e1c6a7c98a | ||
|
|
873bbfd2b8 | ||
|
|
523cbd40e3 | ||
|
|
c97393f53b | ||
|
|
d175b97596 | ||
|
|
aff5dd146e | ||
|
|
768f73770f | ||
|
|
b8f4da9314 | ||
|
|
9c29e066ff | ||
|
|
7b0abf5982 | ||
|
|
9fe8cffa16 | ||
|
|
024990dac8 | ||
|
|
d479ed2512 | ||
|
|
f799d4f296 | ||
|
|
c389a2c8a5 | ||
|
|
0c8b4de6ac | ||
|
|
0d5cad8f27 | ||
|
|
abf163c6fa | ||
|
|
e1011b2662 | ||
|
|
cea2a2e051 | ||
|
|
376c8cd3b2 | ||
|
|
bea420032a | ||
|
|
0e8594b92b | ||
|
|
fff072d302 | ||
|
|
803e2391ff | ||
|
|
a6cc775d17 | ||
|
|
c02f93bdf9 | ||
|
|
c3bbf75d0e | ||
|
|
f533e7629b | ||
|
|
54099bf43a | ||
|
|
60ce1970e7 | ||
|
|
9abb83f98b | ||
|
|
7302b0c5d8 | ||
|
|
b7a03e1a85 | ||
|
|
91e08639b0 | ||
|
|
c5874e71bb | ||
|
|
1315c52d41 | ||
|
|
e9c56184e0 | ||
|
|
99fbbb94a8 | ||
|
|
3b3d019a5d | ||
|
|
ee20237021 | ||
|
|
4341501307 | ||
|
|
fc657f1776 | ||
|
|
6f55bb8626 | ||
|
|
62d34178b0 | ||
|
|
9d1152c392 | ||
|
|
84cbef62f8 | ||
|
|
8e2f5b6a5e | ||
|
|
58764ac632 | ||
|
|
49ed5ac10a | ||
|
|
02f873aa64 | ||
|
|
1e431582b5 | ||
|
|
0d49fa72e1 | ||
|
|
364886e395 | ||
|
|
9d3b215fc2 | ||
|
|
4cd0f13485 | ||
|
|
937896d436 | ||
|
|
d5c3d8056a | ||
|
|
69fc834118 | ||
|
|
bac9897bed | ||
|
|
424e4f0f87 | ||
|
|
8e069c4e10 | ||
|
|
3fff00c1f5 | ||
|
|
57a6a8b1a5 | ||
|
|
e0f7e48d5a | ||
|
|
a7733bd244 | ||
|
|
eb39c0ba56 | ||
|
|
69a2f6b7f3 | ||
|
|
e241b1eb89 | ||
|
|
f1edb38be8 | ||
|
|
6d74f80306 | ||
|
|
0456465383 | ||
|
|
f4fedef0fb | ||
|
|
713f6106c1 | ||
|
|
e44683e6b6 | ||
|
|
9d594854b3 | ||
|
|
7a55c2311e | ||
|
|
ba5fa39151 | ||
|
|
75b401b068 | ||
|
|
7029858f58 | ||
|
|
fad12b9de2 | ||
|
|
8b96af3d19 | ||
|
|
447571090f | ||
|
|
a6e08b5d7d | ||
|
|
b3835ec6a3 | ||
|
|
080d3c0e3b | ||
|
|
86019e002d | ||
|
|
e0329472ef | ||
|
|
62f34663ae | ||
|
|
9bf1d66b74 | ||
|
|
74449f6570 | ||
|
|
2a306b888f | ||
|
|
161fa4f5d3 | ||
|
|
20791d7c12 | ||
|
|
1a8a19d568 | ||
|
|
61062e1278 | ||
|
|
1e87fe0a24 | ||
|
|
5f3a42592e | ||
|
|
8e27a88d3a | ||
|
|
b98b842ebe | ||
|
|
8f634d7cff | ||
|
|
7ab2272abc | ||
|
|
c0e63cbdfd | ||
|
|
173574ffaf | ||
|
|
8f0af3b450 | ||
|
|
2d71d3bd02 | ||
|
|
7be5816fa1 | ||
|
|
56864e6919 | ||
|
|
846d99d037 | ||
|
|
6c563a210e | ||
|
|
b49dbd39ed | ||
|
|
25282381f4 | ||
|
|
13b3a3b98f | ||
|
|
455b462d25 | ||
|
|
058cf639db | ||
|
|
2c97c79737 | ||
|
|
11135e9e4f | ||
|
|
ce321877ff | ||
|
|
630017aea1 | ||
|
|
e7c7af36ac | ||
|
|
9632e8b508 | ||
|
|
546167ac01 | ||
|
|
7bcc3d0f56 | ||
|
|
751e70fc15 | ||
|
|
8b1b5fc1d7 | ||
|
|
f49bf8d4d4 | ||
|
|
af4e93f483 | ||
|
|
4e9236b2e3 | ||
|
|
195a24feb0 | ||
|
|
6c5ab60f59 | ||
|
|
0458fcc99c | ||
|
|
a11e1dc585 | ||
|
|
072396f951 | ||
|
|
b3a2ca4db4 | ||
|
|
66278805c6 | ||
|
|
b91d383acf | ||
|
|
a7d7cbe43c | ||
|
|
ab2685ef62 | ||
|
|
c96c2a69a6 | ||
|
|
323738210b | ||
|
|
d61d3b46f3 | ||
|
|
a08826e909 | ||
|
|
ad1e63fa3a | ||
|
|
a25a87ec60 | ||
|
|
8c6ff0ceb1 | ||
|
|
0f352abcaa | ||
|
|
4910441099 | ||
|
|
c248086566 | ||
|
|
c784a537dd | ||
|
|
00958608e0 | ||
|
|
d3cb3b7f87 | ||
|
|
983830ef70 | ||
|
|
35b6609327 | ||
|
|
b058e91a99 | ||
|
|
2cde603949 | ||
|
|
b5b2d4f62f | ||
|
|
473676fb08 | ||
|
|
64c2996c74 | ||
|
|
15ad253c3a | ||
|
|
fcab8e1fc9 | ||
|
|
8b92d19732 | ||
|
|
2f221004fb | ||
|
|
2b2396521c | ||
|
|
f26c703626 | ||
|
|
eef9dc82ca | ||
|
|
5a21ac7c89 | ||
|
|
269bb900b5 | ||
|
|
37ed01ed3e | ||
|
|
fe4961be8e | ||
|
|
058414e78c | ||
|
|
49dba3035c | ||
|
|
e73c33279a | ||
|
|
cc2916b65b | ||
|
|
a64c4db252 | ||
|
|
57172e17fc | ||
|
|
cc61365f4d | ||
|
|
59c27f275c | ||
|
|
95453620b7 | ||
|
|
daa99997d8 | ||
|
|
c3e5291e06 | ||
|
|
e2e84eccaa | ||
|
|
9d67268693 | ||
|
|
f9490ba571 | ||
|
|
767c818e8e | ||
|
|
6c3fcc29f3 | ||
|
|
b2c2749c99 | ||
|
|
c28061f006 | ||
|
|
bfd7e95db4 | ||
|
|
358104d6db | ||
|
|
0f3b0a0095 | ||
|
|
54efec81d3 | ||
|
|
0910e86724 | ||
|
|
504d69f9cc | ||
|
|
b1b6301b93 | ||
|
|
7aca0a57c5 | ||
|
|
9ff7f9f212 | ||
|
|
c5a78613ba | ||
|
|
826837e902 | ||
|
|
1b9fc76757 | ||
|
|
e7ea24bcda | ||
|
|
3d38b2322e | ||
|
|
66b1e538ad | ||
|
|
77714b97c4 | ||
|
|
f5e2f1ac0a | ||
|
|
fe79af8efd | ||
|
|
1802a16c02 | ||
|
|
86470a68f5 | ||
|
|
dd538e07cb | ||
|
|
0f09ae6657 | ||
|
|
b2d21dd8a5 | ||
|
|
89a1224ec3 | ||
|
|
79d5bc9156 | ||
|
|
a98bf2d69c | ||
|
|
852aa48463 | ||
|
|
398edf40a1 | ||
|
|
dc5ebd2e85 | ||
|
|
5c375636a2 | ||
|
|
39dbd9af52 | ||
|
|
5514676dee | ||
|
|
d63446cdb8 | ||
|
|
7789675a55 | ||
|
|
729283af37 | ||
|
|
01f4ea3890 | ||
|
|
92575844e3 | ||
|
|
883d42d529 | ||
|
|
efc9b36fdd | ||
|
|
775721a059 | ||
|
|
15d0e0b1f9 | ||
|
|
8b6e83e05c | ||
|
|
25e5751d8d | ||
|
|
09179be68b | ||
|
|
2a3c4bf655 | ||
|
|
76e37dedfe | ||
|
|
616f65306a | ||
|
|
e8f5102f99 | ||
|
|
1b93713028 | ||
|
|
e772f8d150 | ||
|
|
9020a67338 | ||
|
|
6144902cc1 | ||
|
|
ad913c79fc | ||
|
|
62c5f2ad16 | ||
|
|
ac32a06689 | ||
|
|
be15e98182 | ||
|
|
bd18549613 | ||
|
|
18e6a3f78b | ||
|
|
35b17b120b | ||
|
|
dbaf7e8481 | ||
|
|
372c3ab6bf | ||
|
|
27e9f3ff1a | ||
|
|
783b7f0205 | ||
|
|
02159d5045 | ||
|
|
6b00091332 | ||
|
|
59297f6954 | ||
|
|
8d7e8d6b9b | ||
|
|
c11973f78b | ||
|
|
6f1da83723 | ||
|
|
d1af54ff21 | ||
|
|
2c8fe60035 | ||
|
|
8e6b8f4da0 | ||
|
|
e687e505f8 | ||
|
|
ce6e9d6ba4 | ||
|
|
67cace93c7 | ||
|
|
6e82602a47 | ||
|
|
178ba9f702 | ||
|
|
cac02eaf96 | ||
|
|
aa346cbb3f | ||
|
|
07dd8158e5 | ||
|
|
f01537247b | ||
|
|
8408901e5a | ||
|
|
4c7abd7728 | ||
|
|
1fd6f5fb70 | ||
|
|
3a8b28fcb6 | ||
|
|
3de96b03a0 | ||
|
|
3e91eb33de | ||
|
|
4dc05063b8 | ||
|
|
4f93bc7430 | ||
|
|
8816c37236 | ||
|
|
b93d6a851d | ||
|
|
e85e2e5e55 | ||
|
|
c01663f901 | ||
|
|
700e695b4b | ||
|
|
07541bf933 | ||
|
|
ec76d85350 | ||
|
|
717bda9f31 | ||
|
|
76a0026bdb | ||
|
|
f2c4024734 | ||
|
|
4de3cbeab6 | ||
|
|
da1d435114 | ||
|
|
4036caf829 | ||
|
|
36d549cb9b | ||
|
|
af84a617de | ||
|
|
e42e01a07f | ||
|
|
de91510beb | ||
|
|
7a3aab92b9 | ||
|
|
771c1b9d1e | ||
|
|
5a9aa96b7e | ||
|
|
cfa051cee8 | ||
|
|
981aceda53 | ||
|
|
23b4dacb9a | ||
|
|
d5c390706b | ||
|
|
893aad3502 | ||
|
|
d98e788775 | ||
|
|
8a59470872 | ||
|
|
de38e26856 | ||
|
|
b98d56f126 | ||
|
|
2adbc403ad | ||
|
|
e1ffda5d27 | ||
|
|
5a6e17f9b0 | ||
|
|
18e6b12541 | ||
|
|
2754d8413c | ||
|
|
df442b734c | ||
|
|
283279955f | ||
|
|
2e208a7a2c | ||
|
|
685dde7ceb | ||
|
|
75eec14689 | ||
|
|
941e968fda | ||
|
|
cf24aebebc | ||
|
|
75e0b2898e | ||
|
|
4936f1b302 | ||
|
|
e4215df835 | ||
|
|
c6a519e4ad | ||
|
|
2b7e9cf631 | ||
|
|
a496b971db | ||
|
|
4d7397647f | ||
|
|
0b28e0c668 | ||
|
|
ba2e274cb0 | ||
|
|
9aee57da2f | ||
|
|
2499bc5015 | ||
|
|
6f9a15f464 | ||
|
|
51db8d5b91 | ||
|
|
040f4711d1 | ||
|
|
60fc671a9d | ||
|
|
48aa05f858 | ||
|
|
71de1d1247 | ||
|
|
12fcfcb24a | ||
|
|
a77fd438c5 | ||
|
|
887c8374b6 | ||
|
|
2bc702acc8 | ||
|
|
e1743f4d9f | ||
|
|
ec96bd8c89 | ||
|
|
bd38c1dc67 | ||
|
|
9e7b0db950 | ||
|
|
52ab4ce035 | ||
|
|
8dbd5e55dd | ||
|
|
1eb7ab2406 | ||
|
|
97fbfb32b9 | ||
|
|
c5f73e0f38 | ||
|
|
62030d50d8 | ||
|
|
d20dcce5b4 | ||
|
|
00d15765f3 | ||
|
|
11ff84e71d | ||
|
|
3806b9350b | ||
|
|
7429637dbf | ||
|
|
26fa619127 | ||
|
|
a6a3f83378 | ||
|
|
5ad39fe230 | ||
|
|
91ef1af0c5 | ||
|
|
54f1ca2d1f | ||
|
|
28953a0def | ||
|
|
688ce015fe | ||
|
|
b3189a01bf | ||
|
|
eee3132cce | ||
|
|
3730cb0803 | ||
|
|
a39c15c71d | ||
|
|
fea5b064a9 | ||
|
|
8169a08ff1 | ||
|
|
e26290469f | ||
|
|
5dfed09167 | ||
|
|
a3a48d3ea6 | ||
|
|
07441d2144 | ||
|
|
3612ecf577 | ||
|
|
f9edc63385 | ||
|
|
31367d8943 | ||
|
|
4c763ea9c0 | ||
|
|
7b8a7033a1 | ||
|
|
8478a7797c | ||
|
|
44a571ad4f | ||
|
|
0dcfc650a4 | ||
|
|
e4e106d6bc | ||
|
|
00bc200643 | ||
|
|
a40ccfd232 | ||
|
|
19cc328c65 | ||
|
|
f26963ed3b | ||
|
|
a175879fe2 | ||
|
|
46e515db1e | ||
|
|
3368003a53 | ||
|
|
0112fea0a6 | ||
|
|
2a5e8fe98c | ||
|
|
b07d99ea38 | ||
|
|
ea328d6543 | ||
|
|
b2b0cb34b5 | ||
|
|
a91aa3792b | ||
|
|
de49a50187 | ||
|
|
675404ce89 | ||
|
|
1ea015c734 | ||
|
|
56f4dee411 | ||
|
|
f393cb4c04 | ||
|
|
4a4172bd0f | ||
|
|
0aee736fd1 | ||
|
|
86fc8209a2 | ||
|
|
db49939d6e | ||
|
|
8f2052b43e | ||
|
|
b7aeb7f36d | ||
|
|
2fe9c1f58b | ||
|
|
63f859d392 | ||
|
|
26a5f4688b | ||
|
|
93d00f06b3 | ||
|
|
b5f6cd56d6 | ||
|
|
e451618114 | ||
|
|
8e8713d1b0 | ||
|
|
90523b79e2 | ||
|
|
c715bca5cd | ||
|
|
c88bbe3852 | ||
|
|
1ee11ea61c | ||
|
|
5a19031271 | ||
|
|
8817005401 | ||
|
|
6df1c7818e | ||
|
|
3af4bf0187 | ||
|
|
1d4692a44a | ||
|
|
258debc94a | ||
|
|
34c01ed179 | ||
|
|
477dcb78db | ||
|
|
d4ddb4c8ee | ||
|
|
9864b126a8 | ||
|
|
d29ed9441e | ||
|
|
e940c1e99d | ||
|
|
bdc63c5c02 | ||
|
|
120b932219 | ||
|
|
745b9efed1 | ||
|
|
582311a461 | ||
|
|
69b687989d | ||
|
|
1055ebc5ff | ||
|
|
d49cb4fc0f | ||
|
|
31bcad32a6 | ||
|
|
6956c6362e | ||
|
|
4821a8851e | ||
|
|
8f133b804f | ||
|
|
7894c0c0fc | ||
|
|
2254ce1fbb | ||
|
|
7eb8284f2e | ||
|
|
75f5e0f1fc | ||
|
|
0cf8543991 | ||
|
|
ec11d3f3e4 | ||
|
|
33ff6c9a44 | ||
|
|
5dd7a5fde1 | ||
|
|
6f261132a3 | ||
|
|
665edee213 | ||
|
|
a2af047899 | ||
|
|
bbec55e77b | ||
|
|
896cc96119 | ||
|
|
ec1ff216ad | ||
|
|
c57679cac1 | ||
|
|
ddaa1e88e9 | ||
|
|
6a65618e82 | ||
|
|
833490c9a3 | ||
|
|
92f62621d5 | ||
|
|
97334b2e42 | ||
|
|
767b0d293b | ||
|
|
ffc7b10b3c | ||
|
|
5a41626ffd | ||
|
|
e12de53fd8 | ||
|
|
768bbf8b18 | ||
|
|
0e4fcadd9f | ||
|
|
dd6c8fdd25 | ||
|
|
c579fcf2fa | ||
|
|
1ac7994758 | ||
|
|
c9fd560b00 | ||
|
|
a9afce8e14 | ||
|
|
2177e71f47 | ||
|
|
2a4668a80f | ||
|
|
86d152a668 | ||
|
|
f23f583ced | ||
|
|
712414c56e | ||
|
|
6fefe3e016 | ||
|
|
abd3e8ac34 | ||
|
|
c364d296cd | ||
|
|
8e86fbdc2a | ||
|
|
0f8c7f52cd | ||
|
|
bbe766165a | ||
|
|
48fe421bf0 | ||
|
|
6c714b2dc4 | ||
|
|
9d08e9e5be | ||
|
|
4a05f00307 | ||
|
|
6b0a2576a3 | ||
|
|
86d3c6bf04 | ||
|
|
3ef1abdcc5 | ||
|
|
627bbb9b07 | ||
|
|
283ec86c3f | ||
|
|
b15b302624 | ||
|
|
1f508d0b89 | ||
|
|
e218453ab3 | ||
|
|
0476265e7a | ||
|
|
1589b8ecee | ||
|
|
32e1babefd | ||
|
|
ec2fe4a5de | ||
|
|
91b03ab78b | ||
|
|
1f6e689151 | ||
|
|
560d25a281 | ||
|
|
0ab72d8719 | ||
|
|
991042a0f6 | ||
|
|
6c043e8c5f | ||
|
|
0530abc5f8 | ||
|
|
32004f28d4 | ||
|
|
2a05d91d44 | ||
|
|
a99d3536ce | ||
|
|
c6378ba4d2 | ||
|
|
aa0e250250 | ||
|
|
6dc1f81cbf | ||
|
|
c3d9173442 | ||
|
|
3d238ee78c | ||
|
|
f0fd8a305b | ||
|
|
a6045d9e7b | ||
|
|
02813c8374 | ||
|
|
4835507e1e | ||
|
|
3b0df85f69 | ||
|
|
36177d1431 | ||
|
|
bc04884190 | ||
|
|
8a3ba5692a | ||
|
|
e89bd73bb5 | ||
|
|
f1936dbb4d | ||
|
|
629f180b8d | ||
|
|
6485cf050d | ||
|
|
cd792eb56a | ||
|
|
256c926e3d | ||
|
|
c18c703237 | ||
|
|
6e64f8ef00 | ||
|
|
591d432d4f | ||
|
|
4a61119c3d | ||
|
|
d7237261f7 | ||
|
|
81512aa76e | ||
|
|
0dec6819ad | ||
|
|
afca2882f8 | ||
|
|
eb610fccb5 | ||
|
|
641e2f414c | ||
|
|
5d49728c74 | ||
|
|
858845f4f5 | ||
|
|
eccf08cf8f | ||
|
|
623572b0f5 | ||
|
|
dc0d580d05 | ||
|
|
fe05845bd4 | ||
|
|
1798b4553b | ||
|
|
e59a3372a9 | ||
|
|
8a7b93f1b9 | ||
|
|
61a3fee4a6 | ||
|
|
a92d60d99f | ||
|
|
47486b980f | ||
|
|
dc14cbd7ab | ||
|
|
d7b7f5510c | ||
|
|
323b7900e9 | ||
|
|
eb4d0c8c88 | ||
|
|
b0e3600ea6 | ||
|
|
41ae935223 | ||
|
|
60db2cc4b0 | ||
|
|
b7951ea5b2 | ||
|
|
cb31ebb06e | ||
|
|
3f0a53933c | ||
|
|
f92b06cff2 | ||
|
|
bab4791b5e | ||
|
|
421468f6d8 | ||
|
|
f3a08eab3b | ||
|
|
863988d2ab | ||
|
|
e524593a15 | ||
|
|
181d904360 | ||
|
|
4448348f7c | ||
|
|
bb762efac7 | ||
|
|
c5697edf76 | ||
|
|
3f73e449f0 | ||
|
|
a18745b3af | ||
|
|
0057c77721 | ||
|
|
fd3fecbd76 | ||
|
|
ad690c9ca6 | ||
|
|
ab29527619 | ||
|
|
12b5ed43c6 | ||
|
|
a78f053c80 | ||
|
|
5ea0324bc0 | ||
|
|
005193e3e0 | ||
|
|
95733ea476 | ||
|
|
c8499599ab | ||
|
|
2f44a9d5c2 | ||
|
|
d28e95208b | ||
|
|
c4bda0e1fe | ||
|
|
15e0da4515 | ||
|
|
c71ce1e8ae | ||
|
|
d5e2b6cb0d | ||
|
|
d25b1408c9 | ||
|
|
c3f83202a8 | ||
|
|
643c5d91a6 | ||
|
|
69e56d06ae | ||
|
|
ee2f66aa61 | ||
|
|
16502065fa | ||
|
|
1a7ed8a69b | ||
|
|
d2eaaab92c | ||
|
|
55666caac5 | ||
|
|
841c8166a2 | ||
|
|
4e5ac5c521 | ||
|
|
d59e713f1f | ||
|
|
78877094fb | ||
|
|
e2e0ade259 | ||
|
|
e61e409bfe | ||
|
|
5d22e41fe2 | ||
|
|
0d82db42da | ||
|
|
ff7848dcff | ||
|
|
4866457164 | ||
|
|
acd003a44c | ||
|
|
f407702dbe | ||
|
|
d129610b24 | ||
|
|
55bf5eddda | ||
|
|
94ea15bc18 | ||
|
|
91fd435cca | ||
|
|
8f019b4631 | ||
|
|
51e160982e | ||
|
|
1f2218bbc9 | ||
|
|
77145d29a8 | ||
|
|
3a447561eb | ||
|
|
6ee545d6eb | ||
|
|
afbf714bd2 | ||
|
|
1a2bc1cc42 | ||
|
|
4268a70388 | ||
|
|
189b189e08 | ||
|
|
403c875edf | ||
|
|
4f6cf8b917 | ||
|
|
fd6335081d | ||
|
|
234cedff15 | ||
|
|
8348628dc6 | ||
|
|
ade9a57fe0 | ||
|
|
6559f9c561 | ||
|
|
a7a559fc72 | ||
|
|
e25d1483ae | ||
|
|
41a5218583 | ||
|
|
cc7fcaf264 | ||
|
|
e776f31ec5 | ||
|
|
d60e1283bd | ||
|
|
b2d80acafc | ||
|
|
37097babcf | ||
|
|
15bb3ad6a3 | ||
|
|
5c0c74b037 | ||
|
|
7093874366 | ||
|
|
34ae6486dc | ||
|
|
2d3d385cbc | ||
|
|
c0a9349b60 | ||
|
|
c4a76ad01c | ||
|
|
8d1bc4cf17 | ||
|
|
daa1614615 | ||
|
|
34afb9d496 | ||
|
|
27d5fd882b | ||
|
|
d25c6dc8c1 | ||
|
|
11e1cc51aa | ||
|
|
b32c23ce10 | ||
|
|
00a792213c | ||
|
|
c710ec938f | ||
|
|
d0ada1e42f | ||
|
|
e89fc6afb2 | ||
|
|
f9fb9e44b3 | ||
|
|
4c2d63bbd3 | ||
|
|
ac92c16c0a | ||
|
|
edd1f047bd | ||
|
|
c8ac6a65dc | ||
|
|
6acfc60988 | ||
|
|
6682b77164 | ||
|
|
eb4f3b425b | ||
|
|
93b0844121 | ||
|
|
40d32e1b8a | ||
|
|
af1aee0015 | ||
|
|
1e64b3e610 | ||
|
|
8f728500d4 | ||
|
|
c68fa19584 | ||
|
|
5bdf6d396b | ||
|
|
0114223e99 | ||
|
|
b819442e98 | ||
|
|
15681edf43 | ||
|
|
0cd19ca43f | ||
|
|
621a74653d | ||
|
|
6dc49ca00e | ||
|
|
7a91388d8d | ||
|
|
1680f2b602 | ||
|
|
80c58cf27d | ||
|
|
dd21f205b7 | ||
|
|
8261cc1f72 | ||
|
|
08a7bd9606 | ||
|
|
56ae0f265a | ||
|
|
c95c56ade7 | ||
|
|
b057d1c3c0 | ||
|
|
248cd29e01 | ||
|
|
bacc07ce35 | ||
|
|
aef542d096 | ||
|
|
28141185a4 | ||
|
|
deb235a971 | ||
|
|
878d93aee9 | ||
|
|
9db7eddc68 | ||
|
|
e2232ba9cc | ||
|
|
4db76371fd | ||
|
|
9d01398a4b | ||
|
|
66a4507525 | ||
|
|
938907fe20 | ||
|
|
1738f76402 | ||
|
|
b7251dd693 | ||
|
|
8f7a425333 | ||
|
|
7e7c068c90 | ||
|
|
73ae7b8fd2 | ||
|
|
56b228c698 | ||
|
|
b5a44a8308 | ||
|
|
1788941b5f | ||
|
|
27f093cf73 | ||
|
|
efe9ed22b3 | ||
|
|
e6a51d8c28 | ||
|
|
27f5dd7efc | ||
|
|
07642bd953 | ||
|
|
99afc02c9d | ||
|
|
74972712a6 | ||
|
|
826ffd79c9 | ||
|
|
7f8ac815ef | ||
|
|
04f27c328d | ||
|
|
793dd73248 | ||
|
|
28d89c685b | ||
|
|
d59b79e4b6 | ||
|
|
422ca99ab3 | ||
|
|
0ff095e889 | ||
|
|
e0bc9bb8f7 | ||
|
|
86afbf0d30 | ||
|
|
26d5605de5 | ||
|
|
6c0124cd17 | ||
|
|
effba9d102 | ||
|
|
15b13e1a3d | ||
|
|
1a0a3fbeba | ||
|
|
b7e0c0eba6 | ||
|
|
354076f8c3 | ||
|
|
6e9e7abcff | ||
|
|
cf314f98a6 | ||
|
|
a316e250de | ||
|
|
33b9f97bce | ||
|
|
3677b61dd9 | ||
|
|
e592040962 | ||
|
|
e51c79c423 | ||
|
|
f556361ade | ||
|
|
a317c32d1e | ||
|
|
0e60d5e6e1 | ||
|
|
6fda5d63fe | ||
|
|
7c9a2dee37 | ||
|
|
06f404ddc4 | ||
|
|
562a43a942 | ||
|
|
cbda2dae13 | ||
|
|
1abdd765de | ||
|
|
2f4d0986d9 | ||
|
|
bbac0f16bf | ||
|
|
b986ad437a | ||
|
|
68883230e8 | ||
|
|
5cb8141641 | ||
|
|
e6d6bf0392 | ||
|
|
85d2cf9e68 | ||
|
|
91f33d14b7 | ||
|
|
5e004309f0 | ||
|
|
aa8351c147 | ||
|
|
adacc2ab5f | ||
|
|
8bb4171265 | ||
|
|
87bd59a6bf | ||
|
|
488fc58a03 | ||
|
|
8cd521c6d1 | ||
|
|
faaac45653 | ||
|
|
d8e19ceeca | ||
|
|
00f99c524a | ||
|
|
91d5157765 | ||
|
|
b8414cc969 | ||
|
|
387b0004a8 | ||
|
|
cdc401dd7e | ||
|
|
74681e78e3 | ||
|
|
3f489d6f53 | ||
|
|
55350b8bf8 | ||
|
|
f52b61ae36 | ||
|
|
e131cda843 | ||
|
|
991854f0f2 | ||
|
|
af7d2f27aa | ||
|
|
3650b47d8b | ||
|
|
deea43ce67 | ||
|
|
3d9665c0a9 | ||
|
|
ae90dfa333 | ||
|
|
02dcb4dc90 | ||
|
|
4dc3c49d9d | ||
|
|
a77d63fad8 | ||
|
|
b487573b05 | ||
|
|
4528436fd5 | ||
|
|
5876efbbee | ||
|
|
1e1b0cd06b | ||
|
|
6826115b2d | ||
|
|
032bb34131 | ||
|
|
e9aa0068fe | ||
|
|
e55b5a743a | ||
|
|
e4955027d1 | ||
|
|
9bf8989960 | ||
|
|
53dcdc02cf | ||
|
|
69391eb434 | ||
|
|
aff7e6df3b | ||
|
|
9bf24fee5f | ||
|
|
2c53f0e585 | ||
|
|
5aeb1234a2 | ||
|
|
6e62a3fe15 | ||
|
|
67594190fc | ||
|
|
c6597ba6ce | ||
|
|
2187898b04 | ||
|
|
a6b5220047 | ||
|
|
78cb4822c2 | ||
|
|
ae4ff80974 | ||
|
|
df2d616566 | ||
|
|
353fa8e95c | ||
|
|
699236bca0 | ||
|
|
4ca862ba9f | ||
|
|
7222df3551 | ||
|
|
72e1158847 | ||
|
|
145d97737f | ||
|
|
8140d1aee4 | ||
|
|
5f5394b18f | ||
|
|
ceb9687e5e | ||
|
|
7a4525319a | ||
|
|
a175111b59 | ||
|
|
4cda5343aa | ||
|
|
e7cbacaae6 | ||
|
|
faadbe554a | ||
|
|
999e12279a | ||
|
|
37bb9b50f9 | ||
|
|
5e02f31866 | ||
|
|
bf0d24a96f | ||
|
|
be66258bfc | ||
|
|
87247333cc | ||
|
|
5e75613fec | ||
|
|
5b4d12cac8 | ||
|
|
0e013220ad | ||
|
|
ae92231903 | ||
|
|
9a1cf6752c | ||
|
|
9db439a8fe | ||
|
|
e458b23b7e | ||
|
|
4ca0e74d42 | ||
|
|
47357aaafc | ||
|
|
a99f326bb8 | ||
|
|
cc584ca063 | ||
|
|
d85aeaeaf8 | ||
|
|
cc2fd1876d | ||
|
|
f4a52dab8b | ||
|
|
d75a936472 | ||
|
|
2719c43e3d | ||
|
|
85983cd17a | ||
|
|
df9b776d56 | ||
|
|
b373b1e07e | ||
|
|
68cf3bf68b | ||
|
|
f9c1dde054 | ||
|
|
1393af1676 | ||
|
|
f359c475d3 | ||
|
|
9bc9b5c984 | ||
|
|
4922f5bb66 | ||
|
|
e36b2a1a03 | ||
|
|
bb5d39cd0d | ||
|
|
afe564e152 | ||
|
|
17ff097406 | ||
|
|
3b37f6c61a | ||
|
|
96cefd97b4 | ||
|
|
03af00e26e | ||
|
|
92bd7c2d43 | ||
|
|
4d6cc381ae | ||
|
|
3f36a8b15e | ||
|
|
5a9b6bd98b | ||
|
|
b9e160eaa3 | ||
|
|
ba95853884 | ||
|
|
f157d4d43d | ||
|
|
a2c3130720 | ||
|
|
258622ec87 | ||
|
|
b4023a051c | ||
|
|
1cdbee1a42 | ||
|
|
feff5ff3f3 | ||
|
|
0507db6a6f | ||
|
|
9b473e415d | ||
|
|
47974074ee | ||
|
|
bc56ee54a3 | ||
|
|
046a02d83c | ||
|
|
57e559e67b | ||
|
|
10e3ce9a9f | ||
|
|
953fa534f4 | ||
|
|
c7982b9552 | ||
|
|
6e0011b165 | ||
|
|
a3c172624a | ||
|
|
3a81a712ff | ||
|
|
775f40cb75 | ||
|
|
5814bfc7e8 | ||
|
|
3f309298d8 | ||
|
|
4ef8fc8df3 | ||
|
|
a627276265 | ||
|
|
6e4155ccbb | ||
|
|
84ef147835 | ||
|
|
925bee2b0a | ||
|
|
680f2bb555 | ||
|
|
29920c5456 | ||
|
|
ace3bedbbc | ||
|
|
476db84e86 | ||
|
|
dc638c74b5 | ||
|
|
f04a2db4a5 | ||
|
|
dd6bd1cf11 | ||
|
|
4b1d5456cc | ||
|
|
4b85c14f00 | ||
|
|
9b33f39086 | ||
|
|
bebb9ca34b | ||
|
|
1dba07049c | ||
|
|
6095577f47 | ||
|
|
06db967ee6 | ||
|
|
467ed586b1 | ||
|
|
74660bcaa1 | ||
|
|
d9a4f93cfa | ||
|
|
c6e4584f71 | ||
|
|
31335deeea | ||
|
|
ae26d9a007 | ||
|
|
305d9dd55e | ||
|
|
9a9dc9bf1e | ||
|
|
04246d35ad | ||
|
|
20c0ffb9b0 | ||
|
|
88db2af11b | ||
|
|
00eb59f083 | ||
|
|
eefd9a88bd | ||
|
|
88219b6aa0 | ||
|
|
e326c1dfd4 | ||
|
|
0f95c6c9b5 |
@@ -1,7 +1,6 @@
|
||||
node_modules
|
||||
tmp
|
||||
application/config/email.php
|
||||
application/config/database.php
|
||||
*.patch
|
||||
patches/
|
||||
.idea/
|
||||
|
||||
48
.github/ISSUE_TEMPLATE.md
vendored
48
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,37 +1,29 @@
|
||||
### IMPORTANT IMPORTANT IMPORTANT
|
||||
### Background information
|
||||
|
||||
Chose what you want to report: New Feature or Bug.
|
||||
If you remove the template when submitting a Bug your issue will be closed as we cannot help without basic information.
|
||||
__IMPORTANT: If you choose to ignore this issue report template, your issue will be closed as we cannot help without the requested information.__
|
||||
|
||||
Please make sure you tick (add an x between the square brackets with no spaces) the following check boxes:
|
||||
|
||||
### New Feature / Enhacement
|
||||
|
||||
For New Features or Enhacements please remove all the template text and 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 old versions.
|
||||
|
||||
|
||||
### Issue / Question / Bug
|
||||
|
||||
Before submitting an issue please make sure you remove the first section of the template and you tick (add a x between the square brakets) and agree with all the following check boxes:
|
||||
|
||||
- [] Checked the current issues database and no similar issue was already discussed
|
||||
- [] Read the README, WHATS_NEW and UPGRADE
|
||||
- [] Read the FAQ (https://github.com/jekkos/opensourcepos#faq) for any known install and/or upgrade gotchas (in specific PHP has php5-gd, php-intl and sockets installed)
|
||||
- [] Reporting an issue of an unmodified OSPOS installation
|
||||
- [] PHP version is at least 5.5 and not 7.x
|
||||
- [] MySQL version is 5.5 or 5.6 and not 5.7
|
||||
- [] Ran any database upgrade scripts (e.g. database/2.4_to_3.0.sql)
|
||||
- [] Know the version of OSPOS and git commit hash (check the footer of your OSPOS) and will add to my issue report
|
||||
- [] Know the name and version of OS, Web server and MySQL and will add to my issue report
|
||||
- [] 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 git commit hash is:
|
||||
- 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.
|
||||
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,11 +1,16 @@
|
||||
node_modules
|
||||
tmp
|
||||
database/database.sql
|
||||
database/migrate_phppos_dist.sql
|
||||
application/config/email.php
|
||||
application/config/database.php
|
||||
application/sessions/*
|
||||
application/logs/*
|
||||
application/uploads/*
|
||||
public/license/.licenses
|
||||
public/license/bower.LICENSES
|
||||
public/dist
|
||||
dist/
|
||||
docs/
|
||||
public/bower_components
|
||||
*.patch
|
||||
patches/
|
||||
@@ -16,9 +21,11 @@ git-svn-diff.py
|
||||
.buildpath
|
||||
.project
|
||||
.settings/*
|
||||
vendor/
|
||||
*.swp
|
||||
*.rej
|
||||
*.orig
|
||||
*~
|
||||
*.~
|
||||
*.log
|
||||
.env
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
# redirect to public page
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_URI} !^public$
|
||||
RewriteRule ^(.*)$ %{REQUEST_URI}public/ [R=301,L]
|
||||
</IfModule>
|
||||
|
||||
# disable directory browsing
|
||||
# For security reasons, Option all cannot be overridden.
|
||||
Options +ExecCGI +Includes +IncludesNOEXEC +SymLinksIfOwnerMatch -Indexes
|
||||
|
||||
52
.travis.yml
52
.travis.yml
@@ -1,19 +1,39 @@
|
||||
sudo: true # Required to install packages
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
group: deprecated-2017Q4
|
||||
branches:
|
||||
except:
|
||||
- weblate
|
||||
|
||||
services:
|
||||
- docker
|
||||
except:
|
||||
- weblate
|
||||
services:
|
||||
- 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
|
||||
- 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-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'
|
||||
|
||||
- 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'
|
||||
deploy:
|
||||
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
|
||||
|
||||
16
Dockerfile
16
Dockerfile
@@ -1,24 +1,18 @@
|
||||
FROM php:5-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 mysql 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
|
||||
|
||||
WORKDIR /app
|
||||
COPY . /app
|
||||
RUN ln -s /app/*[^public] /var/www && rm -rf /var/www/html && ln -nsf /app/public /var/www/html
|
||||
RUN chmod 755 /app/public/uploads && chown -R www-data:www-data /app/public/uploads
|
||||
RUN chmod 755 /app/public/uploads && chown -R www-data:www-data /app/public /app/application
|
||||
|
||||
RUN cp application/config/database.php.tmpl application/config/database.php && \
|
||||
sed -i -e "s/\(localhost\)/web/g" test/ospos.js && \
|
||||
sed -i -e "s/\(user.*\?=.\).*\(.\)$/\1getenv('MYSQL_USERNAME')\2/g" application/config/database.php && \
|
||||
sed -i -e "s/\(password.*\?=.\).*\(.\)$/\1getenv('MYSQL_PASSWORD')\2/g" application/config/database.php && \
|
||||
sed -i -e "s/\(database.*\?=.\).*\(.\)$/\1getenv('MYSQL_DB_NAME')\2/g" application/config/database.php && \
|
||||
sed -i -e "s/\(hostname.*\?=.\).*\(.\)$/\1getenv('MYSQL_HOST_NAME')\2/g" application/config/database.php
|
||||
RUN [ ! -f test/ospos.js ] || sed -i -e "s/\(localhost\)/web/g" test/ospos.js
|
||||
|
||||
73
Gruntfile.js
73
Gruntfile.js
@@ -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',
|
||||
@@ -23,27 +23,22 @@ module.exports = function(grunt) {
|
||||
options: {
|
||||
report: false
|
||||
},
|
||||
targetdistjqueryui: {
|
||||
options: {
|
||||
srcPrefix: 'public/bower_components/jquery-ui',
|
||||
destPrefix: 'public/dist'
|
||||
},
|
||||
files: {
|
||||
'jquery-ui': 'themes/base/jquery-ui.min.css'
|
||||
}
|
||||
},
|
||||
targetdistbootswatch: {
|
||||
options: {
|
||||
srcPrefix: 'public/bower_components/bootswatch',
|
||||
destPrefix: 'public/dist/bootswatch'
|
||||
destPrefix: 'public/dist'
|
||||
},
|
||||
files: {
|
||||
'cerulean/bootstrap.min.css': 'cerulean/bootstrap.min.css',
|
||||
'cosmo/bootstrap.min.css': 'cosmo/bootstrap.min.css',
|
||||
'cyborg/bootstrap.min.css': 'cyborg/bootstrap.min.css',
|
||||
'darkly/bootstrap.min.css': 'darkly/bootstrap.min.css',
|
||||
'flatly/bootstrap.min.css': 'flatly/bootstrap.min.css',
|
||||
'journal/bootstrap.min.css': 'journal/bootstrap.min.css',
|
||||
'paper/bootstrap.min.css': 'paper/bootstrap.min.css',
|
||||
'readable/bootstrap.min.css': 'readable/bootstrap.min.css',
|
||||
'sandstone/bootstrap.min.css': 'sandstone/bootstrap.min.css',
|
||||
'slate/bootstrap.min.css': 'slate/bootstrap.min.css',
|
||||
'spacelab/bootstrap.min.css': 'spacelab/bootstrap.min.css',
|
||||
'superhero/bootstrap.min.css': 'superhero/bootstrap.min.css',
|
||||
'united/bootstrap.min.css': 'united/bootstrap.min.css',
|
||||
'yeti/bootstrap.min.css': 'yeti/bootstrap.min.css',
|
||||
'fonts': 'fonts'
|
||||
bootswatch: '*/'
|
||||
}
|
||||
},
|
||||
targetlicense: {
|
||||
@@ -53,12 +48,12 @@ module.exports = function(grunt) {
|
||||
files: {
|
||||
'public/license': 'LICENSE'
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
cssmin: {
|
||||
target: {
|
||||
files: {
|
||||
'public/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/style.css']
|
||||
'public/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css']
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -121,7 +116,8 @@ module.exports = function(grunt) {
|
||||
closeTag: '<!-- end mincss template tags -->',
|
||||
ignorePath: '../../../public/'
|
||||
},
|
||||
src: ['public/dist/*.css', '!public/dist/login.css', '!public/dist/invoice_email.css', '!public/dist/barcode_font.css'],
|
||||
// jquery-ui must be first or at least before opensourcepos.min.css
|
||||
src: ['public/dist/jquery-ui/*.css', 'public/dist/*.css'],
|
||||
dest: 'application/views/partial/header.php',
|
||||
},
|
||||
css_login: {
|
||||
@@ -131,7 +127,7 @@ module.exports = function(grunt) {
|
||||
closeTag: '<!-- end css template tags -->',
|
||||
ignorePath: '../../public/'
|
||||
},
|
||||
src: ['public/dist/login.css'],
|
||||
src: ['public/css/login.css'],
|
||||
dest: 'application/views/login.php'
|
||||
},
|
||||
js: {
|
||||
@@ -195,8 +191,8 @@ module.exports = function(grunt) {
|
||||
// Target-specific options go here.
|
||||
directory: 'public/bower_components',
|
||||
output: 'public/license/bower.LICENSES'
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
'bower-licensechecker': {
|
||||
options: {
|
||||
@@ -217,13 +213,40 @@ module.exports = function(grunt) {
|
||||
noGood: true,
|
||||
}
|
||||
}
|
||||
},
|
||||
apigen: {
|
||||
generate:{
|
||||
options: {
|
||||
apigenPath: 'vendor/bin/',
|
||||
source: 'application',
|
||||
destination: 'docs'
|
||||
}
|
||||
}
|
||||
},
|
||||
compress: {
|
||||
main: {
|
||||
options: {
|
||||
mode: 'zip',
|
||||
archive: 'dist/opensourcepos.zip'
|
||||
},
|
||||
files: [
|
||||
{src: ['public/**', 'vendor/**', 'application/**', '!/public/images/menubar/png/', '!/public/dist/bootswatch/', '/public/dist/bootswatch/*/*.css', 'database/**', '*.txt', '*.md', 'LICENSE', 'docker*', 'Dockerfile', '**/.htaccess', '*.csv']}
|
||||
]
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
require('load-grunt-tasks')(grunt);
|
||||
grunt.loadNpmTasks('grunt-mocha-webdriver');
|
||||
|
||||
grunt.loadNpmTasks('grunt-composer');
|
||||
grunt.loadNpmTasks('grunt-apigen');
|
||||
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||
|
||||
grunt.registerTask('default', ['wiredep', 'bower_concat', 'bowercopy', 'concat', 'uglify', 'cssmin', 'tags', 'cachebreaker']);
|
||||
grunt.registerTask('update', ['composer:update', 'bower:update']);
|
||||
grunt.registerTask('genlicense', ['clean:license', 'license', 'bower-licensechecker']);
|
||||
grunt.registerTask('package', ['default', 'compress']);
|
||||
grunt.registerTask('packages', ['composer:update']);
|
||||
grunt.registerTask('gendocs', ['apigen:generate']);
|
||||
|
||||
};
|
||||
|
||||
87
INSTALL.md
Normal file
87
INSTALL.md
Normal 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 [](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
|
||||
15
LICENSE
15
LICENSE
@@ -5,12 +5,19 @@ Copyright (c) 2012 Alain
|
||||
Copyright (c) 2013 Rob Garrison
|
||||
Copyright (c) 2013 Parq
|
||||
Copyright (c) 2013 Ramel
|
||||
Copyright (c) 2014-2016 jekkos
|
||||
Copyright (c) 2015-2016 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 Ramkrishna Mondal (aka RamkrishnaMondal)
|
||||
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-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
|
||||
@@ -33,4 +40,4 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
151
README.md
151
README.md
@@ -1,35 +1,63 @@
|
||||
[](https://travis-ci.org/jekkos/opensourcepos)
|
||||
[](https://travis-ci.org/opensourcepos/opensourcepos)
|
||||
[](https://gitter.im/jekkos/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://david-dm.org/jekkos/opensourcepos#info=devDependencie)
|
||||
[](https://david-dm.org/jekkos/opensourcepos#info=dev)
|
||||
[](https://gemnasium.com/github.com/jekkos/opensourcepos)
|
||||
[](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
|
||||
[](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Open Source Point of Sale is a web based point of sale system.
|
||||
The main features are:
|
||||
* Stock management
|
||||
* Stock management (Items and Kits)
|
||||
* VAT, customer and multi tiers taxation
|
||||
* Sale register with transactions logging
|
||||
* Receipt and invoice printing and emailing
|
||||
* 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
|
||||
* Gift card
|
||||
* Reporting on sales, orders, expenses, inventory status
|
||||
* Receivings
|
||||
* Barcode generation and printing
|
||||
* Messaging
|
||||
* Giftcard
|
||||
* Rewards
|
||||
* Restaurant tables
|
||||
* Messaging (SMS)
|
||||
* Multilanguage
|
||||
* Different UI themes
|
||||
* Selectable Boostrap (Bootswatch) based UI theme
|
||||
* Mailchimp integration
|
||||
* reCAPTCHA to protect login page from brute force attacks
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
The latest version 3.0.2 is a complete overhaul of the original software.
|
||||
It is now based on Bootstrap 3.x using Bootswatch themes, and still uses CodeIgniter 3.x as framework.
|
||||
The latest 3.x version is a complete overhaul of the original software.
|
||||
It is now based on Bootstrap 3 using Bootswatch themes, and still uses CodeIgniter 3 as framework.
|
||||
It also has improved functionality and security.
|
||||
|
||||
Deployed to a Cloud it can be defined as a SaaS (Software as as Service) type of solution.
|
||||
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
|
||||
-------
|
||||
@@ -45,7 +73,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:
|
||||
@@ -56,89 +84,40 @@ 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.
|
||||
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)
|
||||
|
||||
Server Requirements
|
||||
-------------------
|
||||
PHP version 5.5 or newer is recommended but PHP 7.x is not fully supported yet.
|
||||
|
||||
PHP needs to have `php-gd`, `php-bcmath`, `php-intl`, `php-sockets` and `php-mcrypt` installed and enabled.
|
||||
Language Translations
|
||||
---------------------
|
||||
|
||||
MySQL 5.5 or 5.6 are fine but MySQL 5.7 is not supported yet.
|
||||
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.
|
||||
|
||||
Apache 2.2 and 2.4 are working both fine.
|
||||
Please also read the [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Adding-translations) to find our Translations Guideline.
|
||||
|
||||
Local install
|
||||
-------------
|
||||
1. Create/locate a new mysql database to install open source point of sale into
|
||||
2. Execute the file database/database.sql to create the tables needed
|
||||
3. unzip and upload Open Source Point of Sale files to web server
|
||||
4. Copy application/config/database.php.tmpl to application/config/database.php
|
||||
5. Modify application/config/database.php 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 read the FAQ first thing :-)
|
||||
Only with the help of the community we can keep language translations up to date.
|
||||
|
||||
P.S.: For more info about a local install based on Raspberry PI please read our wiki
|
||||
|
||||
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 [](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
|
||||
|
||||
Reporting Bugs
|
||||
--------------
|
||||
|
||||
If you are taking a release candidate code please make sure you always run the latest database upgrade script and you took the latest code from master.
|
||||
Please DO NOT post issues if you have not 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 15.0)
|
||||
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.5)
|
||||
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)
|
||||
@@ -147,22 +126,20 @@ Bug reports must follow this schema:
|
||||
If above information is not provided in full, your issue will be tagged as pending.
|
||||
If missing information is not provided within a week we will close your issue.
|
||||
|
||||
|
||||
FAQ
|
||||
---
|
||||
* If 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 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 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 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 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 you are getting the error `Message: Can't use method return value in write context` that means that you are probably using PHP7 which is not completely supported yet. Check your hosting configuration to verify whether you have a supported PHP version installed
|
||||
* 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 get various errors at item creation, opening views or reports, or having issues at login please make sure you are not using MySQL 5.7 as it's not supported yet
|
||||
* 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 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 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 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 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/opensourcepos/opensourcepos/issues/1492).
|
||||
|
||||
13
UPGRADE.txt
13
UPGRADE.txt
@@ -4,12 +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. Copy application/config/database.php.tmpl to application/config/database.php
|
||||
8. Take the saved old database.php and change the new database.php to contain all the configuration you had in the old setup.
|
||||
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
|
||||
9. Restore the content of the old uploads/ folder into public/uploads/ one
|
||||
10. Once new code is in place, database is updated and config files are sorted you are good to start the new OSPOS
|
||||
11. If any issue please check FAQ and/or GitHub issues as somebody else might have had your problem already or post a question
|
||||
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. The first login will take longer because OSPOS post 3.0.0 will upgrade automatically to the latest version
|
||||
11. Now you can use OSPOS
|
||||
12. If any issue please check README, FAQ and GitHub issues as somebody else might have had your problem already before creating a new issue
|
||||
|
||||
@@ -1,5 +1,76 @@
|
||||
Version 3.2.1
|
||||
-------------
|
||||
+ Support for GDPR
|
||||
+ CSRF simplifications
|
||||
+ Translation upgrades
|
||||
+ Various bug fixes
|
||||
|
||||
Version 3.2.0
|
||||
-------------
|
||||
+ Code Igniter 3.1.8 upgrade
|
||||
+ PHP 7.2 support (use OpenSSL and not MCrypt)
|
||||
+ Automatic database upgrades from vs 3.0.0 at first login (no more sql scripts)
|
||||
+ Home and (back) Office menu switch (top menu can be organised in two views)
|
||||
+ Expenses feature
|
||||
+ Quote, Work Order features
|
||||
+ Improved Invoice support
|
||||
+ Sale suspend, soft delete, complete as state not as different tables or hard delete
|
||||
+ Restore deleted Sales
|
||||
+ Improved Items Kits
|
||||
+ Export tables all records and export to pdf
|
||||
+ Table sticky header (headers visible during scrolling)
|
||||
+ Allow duplicate barcodes (Config option)
|
||||
+ Search suggestion formatting (Config option)
|
||||
+ Define print and email checkboxes behaviour (Config option)
|
||||
+ Edit customer from sale register
|
||||
+ Added and Updated translations
|
||||
+ Various Jquery plugins upgrade
|
||||
+ Fixed permission issues (e.g. password change)
|
||||
+ Fixed various reports issues and renamed Sales to Transactions
|
||||
+ Various bug fixes (e.g. Tax, Rounding, Library circular dependency)
|
||||
|
||||
Version 3.1.1
|
||||
-------------
|
||||
+ Updated en-US and en-GB translations, better grammar and consistency
|
||||
+ Fixed database migration issue with VAT tax included
|
||||
+ Fixed database backup bug
|
||||
+ Fixed Gift card error
|
||||
+ Fixed database upgrade to 3.1.x script (now it's to 3.1.1 and there is no 3.1.0 anymore)
|
||||
+ Fixed old database upgrade scripts for people upgrading from 2.x versions
|
||||
+ Fixed .htaccess file in opensourcepos root dir (it was not forwarding to public subdir)
|
||||
+ Fixed few jQuery 2.0 upgrade issues
|
||||
|
||||
Version 3.1.0
|
||||
-------------
|
||||
+ MySQL 5.7 and PHP 7.x support
|
||||
+ Advanced Tax support with customer tax categories and etc,
|
||||
+ Better HORECA use case support with Dinner Table sale tagging
|
||||
+ Customer Rewards support
|
||||
+ Added quote support and better invoice support
|
||||
+ Added integration with Mailchimp to connect Customer list with Mailchimp list
|
||||
+ Prevent inserting two customers with same email address
|
||||
+ Customer total spending and stats
|
||||
+ Added reCAPTCHA to Login page to increase protection from Brute Force attacks
|
||||
+ Added due payment for credit sale support
|
||||
+ Gifcard numbering with two options: Series and Random
|
||||
+ Extended Item Kits functionality
|
||||
+ Employee allowed to change their own password clicking their name on top bar
|
||||
+ Cash rounding support, extended decimals
|
||||
+ Reworked Item Pictures and file name and storing
|
||||
+ Financial year start date and selection from date range pickers
|
||||
+ Date time range filters can be date & time or date only
|
||||
+ Added two new Bootswatch themes
|
||||
+ Receipts font size support
|
||||
+ Fix automatically people's name first capital letter, emails in lower case only
|
||||
+ Fixes to Receiving
|
||||
+ Various amendments to database script updates from older versions
|
||||
+ Added dotenv support
|
||||
+ Updates to language translations (split English to American English and British English)
|
||||
+ Various Dockers support improvements
|
||||
+ Minor bugfixes
|
||||
|
||||
Version 3.0.2
|
||||
-----------
|
||||
-------------
|
||||
+ Fixed error when performing scans multiple times in a row
|
||||
+ Fixed summary reports
|
||||
+ Protect Employee privacy printing just the first letter of the family name
|
||||
@@ -8,7 +79,7 @@ Version 3.0.2
|
||||
+ Minor bugfixes
|
||||
|
||||
Version 3.0.1
|
||||
-----------
|
||||
-------------
|
||||
+ *CodeIgniter 3.1.2 Upgrade*
|
||||
+ *Substantial database performance improvements*
|
||||
+ *Improved security: email and sms passwords encryption, removed phpinfo.php*
|
||||
@@ -23,7 +94,7 @@ Version 3.0.1
|
||||
+ Minor bugfixes and some general code clean up
|
||||
|
||||
Version 3.0.0
|
||||
-----------
|
||||
-------------
|
||||
+ *CodeIgniter 3.1 Upgrade*
|
||||
+ Major UI overhaul based on *Boostrap 3.0 and Bootswatch Themes*
|
||||
+ New tabular views with advanced filtering using *Bootstrap Tables*
|
||||
@@ -41,8 +112,8 @@ Version 3.0.0
|
||||
+ About 280 closed issues under 3.0.0 release label, too many to produce a meaningful list
|
||||
+ Various code cleanup, refactoring, optimisation and etc.
|
||||
|
||||
Version 2.4
|
||||
-----------
|
||||
Version 2.4.0
|
||||
-------------
|
||||
+ *CodeIgniter 3.0.5* Upgrade (please read UPGRADE.txt)
|
||||
+ Fix for spurious logouts
|
||||
+ Apache .htaccess mod_expiry caching and security optimizations
|
||||
@@ -115,7 +186,6 @@ Version 2.3.2
|
||||
|
||||
Version 2.3.1
|
||||
-------------
|
||||
|
||||
+ Extra report permissions (this includes a refactoring of the database model - new grants table)
|
||||
+ Tax inclusive/exclusive pricing
|
||||
+ Receivings amount multiplication (can be configured in items section)
|
||||
@@ -124,8 +194,8 @@ Version 2.3.1
|
||||
+ Fix item import through csv
|
||||
+ Bug fixes for reports
|
||||
|
||||
Version 2.3
|
||||
-----------
|
||||
Version 2.3.0
|
||||
-------------
|
||||
+ Support for multiple stock locations
|
||||
|
||||
Version 2.2.2
|
||||
@@ -137,7 +207,7 @@ Version 2.2.2
|
||||
+ Fix duplicated session cookies in http headers (this broke the application when running on nginx)
|
||||
|
||||
Version 2.1.1
|
||||
-------------
|
||||
---------------
|
||||
+ Barcodes on the order receipt weren't generated correctly
|
||||
+ Sales edit screen for detailed sales reports is now available with thickbox as in the rest of the application
|
||||
+ Indonesian language files updated (Oktafianus)
|
||||
|
||||
7
application/config/.env.example
Normal file
7
application/config/.env.example
Normal file
@@ -0,0 +1,7 @@
|
||||
CI_ENV="development"
|
||||
|
||||
#Database Settings
|
||||
MYSQL_HOST_NAME="localhost"
|
||||
MYSQL_USERNAME=""
|
||||
MYSQL_PASSWORD=""
|
||||
MYSQL_DB_NAME=""
|
||||
@@ -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', 'Sale_suspended', 'Supplier', 'Inventory', 'Receiving', 'Giftcard', 'Item_kit', 'Item_kit_items', 'Stock_location', 'Item_quantity');
|
||||
$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' );
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
|
||||
|
|
||||
*/
|
||||
$config['application_version'] = '3.0.2';
|
||||
$config['application_version'] = '3.2.1';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -19,7 +19,7 @@ $config['application_version'] = '3.0.2';
|
||||
|
|
||||
|
|
||||
*/
|
||||
$config['commit_sha1'] = '$Id$';
|
||||
$config['commit_sha1'] = '$Id $';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -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']);
|
||||
|
||||
@@ -358,7 +358,7 @@ $config['cache_query_string'] = FALSE;
|
||||
| https://codeigniter.com/user_guide/libraries/encryption.html
|
||||
|
|
||||
*/
|
||||
$config['encryption_key'] = '';
|
||||
$config['encryption_key'] = getenv('ENCRYPTION_KEY') ? getenv('ENCRYPTION_KEY') : '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -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');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -511,6 +511,7 @@ $config['csrf_exclude_uris'] = array();
|
||||
*/
|
||||
$config['compress_output'] = FALSE;
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Master Time Reference
|
||||
@@ -554,4 +555,4 @@ $config['rewrite_short_tags'] = FALSE;
|
||||
| Comma-separated: '10.0.1.200,192.168.5.0/24'
|
||||
| Array: array('10.0.1.200', '192.168.5.0/24')
|
||||
*/
|
||||
$config['proxy_ips'] = '';
|
||||
$config['proxy_ips'] = '';
|
||||
|
||||
@@ -75,12 +75,12 @@ $query_builder = TRUE;
|
||||
|
||||
$db['default'] = array(
|
||||
'dsn' => '',
|
||||
'hostname' => 'localhost',
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'database' => '',
|
||||
'hostname' => !empty(getenv('MYSQL_HOST_NAME')) ? getenv('MYSQL_HOST_NAME') : 'localhost',
|
||||
'username' => !empty(getenv('MYSQL_USERNAME')) ? getenv('MYSQL_USERNAME') : 'admin',
|
||||
'password' => !empty(getenv('MYSQL_PASSWORD')) ? getenv('MYSQL_PASSWORD') : 'pointofsale',
|
||||
'database' => !empty(getenv('MYSQL_DB_NAME')) ? getenv('MYSQL_DB_NAME') : 'ospos',
|
||||
'dbdriver' => 'mysqli',
|
||||
'dbprefix' => '',
|
||||
'dbprefix' => 'ospos_',
|
||||
'pconnect' => FALSE,
|
||||
'db_debug' => (ENVIRONMENT !== 'production'),
|
||||
'cache_on' => FALSE,
|
||||
@@ -93,4 +93,4 @@ $db['default'] = array(
|
||||
'stricton' => FALSE,
|
||||
'failover' => array(),
|
||||
'save_queries' => TRUE
|
||||
);
|
||||
);
|
||||
@@ -1,96 +0,0 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| DATABASE CONNECTIVITY SETTINGS
|
||||
| -------------------------------------------------------------------
|
||||
| This file will contain the settings needed to access your database.
|
||||
|
|
||||
| For complete instructions please consult the 'Database Connection'
|
||||
| page of the User Guide.
|
||||
|
|
||||
| -------------------------------------------------------------------
|
||||
| EXPLANATION OF VARIABLES
|
||||
| -------------------------------------------------------------------
|
||||
|
|
||||
| ['dsn'] The full DSN string describe a connection to the database.
|
||||
| ['hostname'] The hostname of your database server.
|
||||
| ['username'] The username used to connect to the database
|
||||
| ['password'] The password used to connect to the database
|
||||
| ['database'] The name of the database you want to connect to
|
||||
| ['dbdriver'] The database driver. e.g.: mysqli.
|
||||
| Currently supported:
|
||||
| cubrid, ibase, mssql, mysql, mysqli, oci8,
|
||||
| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
|
||||
| ['dbprefix'] You can add an optional prefix, which will be added
|
||||
| to the table name when using the Query Builder class
|
||||
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
|
||||
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
|
||||
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
|
||||
| ['cachedir'] The path to the folder where cache files should be stored
|
||||
| ['char_set'] The character set used in communicating with the database
|
||||
| ['dbcollat'] The character collation used in communicating with the database
|
||||
| NOTE: For MySQL and MySQLi databases, this setting is only used
|
||||
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
|
||||
| (and in table creation queries made with DB Forge).
|
||||
| There is an incompatibility in PHP with mysql_real_escape_string() which
|
||||
| can make your site vulnerable to SQL injection if you are using a
|
||||
| multi-byte character set and are running versions lower than these.
|
||||
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
|
||||
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
|
||||
| ['encrypt'] Whether or not to use an encrypted connection.
|
||||
|
|
||||
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
|
||||
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
||||
|
|
||||
| 'ssl_key' - Path to the private key file
|
||||
| 'ssl_cert' - Path to the public key certificate file
|
||||
| 'ssl_ca' - Path to the certificate authority file
|
||||
| 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format
|
||||
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
|
||||
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not ('mysqli' only)
|
||||
|
|
||||
| ['compress'] Whether or not to use client compression (MySQL only)
|
||||
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
|
||||
| - good for ensuring strict SQL while developing
|
||||
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
|
||||
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
|
||||
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
|
||||
| NOTE: Disabling this will also effectively disable both
|
||||
| $this->db->last_query() and profiling of DB queries.
|
||||
| When you run a query, with this setting set to TRUE (default),
|
||||
| CodeIgniter will store the SQL statement for debugging purposes.
|
||||
| However, this may cause high memory usage, especially if you run
|
||||
| a lot of SQL queries ... disable this to avoid that problem.
|
||||
|
|
||||
| The $active_group variable lets you choose which connection group to
|
||||
| make active. By default there is only one group (the 'default' group).
|
||||
|
|
||||
| The $query_builder variables lets you determine whether or not to load
|
||||
| the query builder class.
|
||||
*/
|
||||
$active_group = 'default';
|
||||
$query_builder = TRUE;
|
||||
|
||||
$db['default'] = array(
|
||||
'dsn' => '',
|
||||
'hostname' => 'localhost',
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'database' => '',
|
||||
'dbdriver' => 'mysqli',
|
||||
'dbprefix' => 'ospos_',
|
||||
'pconnect' => FALSE,
|
||||
'db_debug' => (ENVIRONMENT !== 'production'),
|
||||
'cache_on' => FALSE,
|
||||
'cachedir' => '',
|
||||
'char_set' => 'utf8',
|
||||
'dbcollat' => 'utf8_general_ci',
|
||||
'swap_pre' => '',
|
||||
'encrypt' => FALSE,
|
||||
'compress' => FALSE,
|
||||
'stricton' => FALSE,
|
||||
'failover' => array(),
|
||||
'save_queries' => TRUE
|
||||
);
|
||||
@@ -18,17 +18,20 @@ $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' => '',
|
||||
'function' => 'db_log_queries',
|
||||
'filename' => 'db_log.php',
|
||||
'filepath' => 'hooks'
|
||||
);
|
||||
);
|
||||
|
||||
$hook['pre_system'] = function() {
|
||||
$config_path = APPPATH . 'config/';
|
||||
try {
|
||||
$dotenv = new Dotenv\Dotenv($config_path);
|
||||
$dotenv->overload();
|
||||
} catch(Exception $e) {
|
||||
// continue, .env file not present
|
||||
}
|
||||
};
|
||||
|
||||
@@ -11,7 +11,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
| and disable it back when you're done.
|
||||
|
|
||||
*/
|
||||
$config['migration_enabled'] = FALSE;
|
||||
$config['migration_enabled'] = TRUE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -69,7 +69,7 @@ $config['migration_auto_latest'] = FALSE;
|
||||
| be upgraded / downgraded to.
|
||||
|
|
||||
*/
|
||||
$config['migration_version'] = 0;
|
||||
$config['migration_version'] = 20171126100000;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Config extends Secure_Controller
|
||||
class Config extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('config');
|
||||
|
||||
$this->load->library('barcode_lib');
|
||||
$this->load->library('sale_lib');
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -80,22 +81,22 @@ class Config extends Secure_Controller
|
||||
$license[$i]['text'] = '';
|
||||
|
||||
$file = file_get_contents('license/composer.LICENSES');
|
||||
$array = json_decode($file, true);
|
||||
$array = json_decode($file, TRUE);
|
||||
|
||||
foreach($array as $key => $val)
|
||||
{
|
||||
if(is_array($val) && $key == 'dependencies')
|
||||
{
|
||||
{
|
||||
foreach($val as $key1 => $val1)
|
||||
{
|
||||
if(is_array($val1))
|
||||
{
|
||||
{
|
||||
$license[$i]['text'] .= 'component: ' . $key1 . "\n";
|
||||
|
||||
foreach($val1 as $key2 => $val2)
|
||||
{
|
||||
{
|
||||
if(is_array($val2))
|
||||
{
|
||||
{
|
||||
$license[$i]['text'] .= $key2 . ': ';
|
||||
|
||||
foreach($val2 as $key3 => $val3)
|
||||
@@ -120,7 +121,7 @@ class Config extends Secure_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$license[$i]['text'] = $this->xss_clean($license[$i]['text']);
|
||||
}
|
||||
|
||||
@@ -132,14 +133,14 @@ class Config extends Secure_Controller
|
||||
$license[$i]['text'] = '';
|
||||
|
||||
$file = file_get_contents('license/bower.LICENSES');
|
||||
$array = json_decode($file, true);
|
||||
$array = json_decode($file, TRUE);
|
||||
|
||||
foreach($array as $key => $val)
|
||||
{
|
||||
if(is_array($val))
|
||||
{
|
||||
$license[$i]['text'] .= 'component: ' . $key . "\n";
|
||||
|
||||
|
||||
foreach($val as $key1 => $val1)
|
||||
{
|
||||
if(is_array($val1))
|
||||
@@ -162,13 +163,16 @@ class Config extends Secure_Controller
|
||||
$license[$i]['text'] .= "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$license[$i]['text'] = $this->xss_clean($license[$i]['text']);
|
||||
}
|
||||
|
||||
|
||||
return $license;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function loads all the available themes in the dist/bootswatch directory
|
||||
*/
|
||||
private function _themes()
|
||||
{
|
||||
$themes = array();
|
||||
@@ -180,7 +184,8 @@ class Config extends Secure_Controller
|
||||
{
|
||||
if($dirinfo->isDir() && !$dirinfo->isDot() && $dirinfo->getFileName() != 'fonts')
|
||||
{
|
||||
$themes[$dirinfo->getFileName()] = $dirinfo->getFileName();
|
||||
$file = $this->xss_clean($dirinfo->getFileName());
|
||||
$themes[$file] = $file;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,22 +193,59 @@ class Config extends Secure_Controller
|
||||
|
||||
return $themes;
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['stock_locations'] = $this->Stock_location->get_all()->result_array();
|
||||
$data['dinner_tables'] = $this->Dinner_table->get_all()->result_array();
|
||||
$data['tax_categories'] = $this->Tax->get_all_tax_categories()->result_array();
|
||||
$data['customer_rewards'] = $this->Customer_rewards->get_all()->result_array();
|
||||
$data['support_barcode'] = $this->barcode_lib->get_list_barcodes();
|
||||
$data['logo_exists'] = $this->config->item('company_logo') != '';
|
||||
|
||||
$data['line_sequence_options'] = $this->sale_lib->get_line_sequence_options();
|
||||
$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);
|
||||
|
||||
|
||||
// load all the license statements, they are already XSS cleaned in the private function
|
||||
$data['licenses'] = $this->_licenses();
|
||||
// load all the themes, already XSS cleaned in the private function
|
||||
$data['themes'] = $this->_themes();
|
||||
|
||||
$data['mailchimp'] = array();
|
||||
if($this->_check_encryption())
|
||||
{
|
||||
$data['mailchimp']['api_key'] = $this->encryption->decrypt($this->config->item('mailchimp_api_key'));
|
||||
$data['mailchimp']['list_id'] = $this->encryption->decrypt($this->config->item('mailchimp_list_id'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['mailchimp']['api_key'] = '';
|
||||
$data['mailchimp']['list_id'] = '';
|
||||
}
|
||||
|
||||
// load mailchimp lists associated to the given api key, already XSS cleaned in the private function
|
||||
$data['mailchimp']['lists'] = $this->_mailchimp();
|
||||
|
||||
$this->load->view("configs/manage", $data);
|
||||
}
|
||||
|
||||
|
||||
public function get_tax_code_options()
|
||||
{
|
||||
$tax_codes = $this->Tax->get_all_tax_codes()->result_array();
|
||||
$tax_code_options = array();
|
||||
foreach($tax_codes as $tax_code)
|
||||
{
|
||||
$a = $tax_code['tax_code'];
|
||||
$b = $tax_code['tax_code_name'];
|
||||
$tax_code_options[$a] = $b;
|
||||
}
|
||||
return $tax_code_options;
|
||||
}
|
||||
|
||||
public function save_info()
|
||||
{
|
||||
$upload_success = $this->_handle_logo_upload();
|
||||
@@ -215,41 +257,48 @@ class Config extends Secure_Controller
|
||||
'phone' => $this->input->post('phone'),
|
||||
'email' => $this->input->post('email'),
|
||||
'fax' => $this->input->post('fax'),
|
||||
'website' => $this->input->post('website'),
|
||||
'website' => $this->input->post('website'),
|
||||
'return_policy' => $this->input->post('return_policy')
|
||||
);
|
||||
|
||||
if (!empty($upload_data['orig_name']))
|
||||
|
||||
if(!empty($upload_data['orig_name']))
|
||||
{
|
||||
// XSS file image sanity check
|
||||
if ($this->xss_clean($upload_data['raw_name'], TRUE) === TRUE)
|
||||
if($this->xss_clean($upload_data['raw_name'], TRUE) === TRUE)
|
||||
{
|
||||
$batch_save_data['company_logo'] = $upload_data['raw_name'] . $upload_data['file_ext'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $upload_success && $result ? TRUE : FALSE;
|
||||
$message = $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully');
|
||||
$message = $upload_success ? $message : strip_tags($this->upload->display_errors());
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $message));
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $message
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
public function save_general()
|
||||
{
|
||||
$batch_save_data = array(
|
||||
'theme' => $this->input->post('theme'),
|
||||
'default_tax_1_rate' => parse_decimals($this->input->post('default_tax_1_rate')),
|
||||
'default_tax_1_name' => $this->input->post('default_tax_1_name'),
|
||||
'default_tax_2_rate' => parse_decimals($this->input->post('default_tax_2_rate')),
|
||||
'default_tax_2_name' => $this->input->post('default_tax_2_name'),
|
||||
'tax_included' => $this->input->post('tax_included') != NULL,
|
||||
'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'),
|
||||
'default_sales_discount' => $this->input->post('default_sales_discount'),
|
||||
'notify_horizontal_position' => $this->input->post('notify_horizontal_position'),
|
||||
'notify_vertical_position' => $this->input->post('notify_vertical_position'),
|
||||
'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'),
|
||||
'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'),
|
||||
@@ -259,22 +308,26 @@ class Config extends Secure_Controller
|
||||
'custom7_name' => $this->input->post('custom7_name'),
|
||||
'custom8_name' => $this->input->post('custom8_name'),
|
||||
'custom9_name' => $this->input->post('custom9_name'),
|
||||
'custom10_name' => $this->input->post('custom10_name'),
|
||||
'statistics' => $this->input->post('statistics') != NULL,
|
||||
'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;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
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);
|
||||
$currency_symbol = empty($this->input->post('currency_symbol')) ? $fmt->getSymbol(\NumberFormatter::CURRENCY_SYMBOL) : $this->input->post('currency_symbol');
|
||||
if ($this->input->post('thousands_separator') == "false")
|
||||
if($this->input->post('thousands_separator') == 'false')
|
||||
{
|
||||
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
|
||||
}
|
||||
@@ -299,18 +352,25 @@ class Config extends Secure_Controller
|
||||
'dateformat' => $this->input->post('dateformat'),
|
||||
'timeformat' => $this->input->post('timeformat'),
|
||||
'thousands_separator' => $this->input->post('thousands_separator'),
|
||||
'number_locale' => $this->input->post('number_locale'),
|
||||
'number_locale' => $this->input->post('number_locale'),
|
||||
'currency_decimals' => $this->input->post('currency_decimals'),
|
||||
'tax_decimals' => $this->input->post('tax_decimals'),
|
||||
'quantity_decimals' => $this->input->post('quantity_decimals'),
|
||||
'country_codes' => $this->input->post('country_codes'),
|
||||
'payment_options_order' => $this->input->post('payment_options_order')
|
||||
'payment_options_order' => $this->input->post('payment_options_order'),
|
||||
'date_or_time_format' => $this->input->post('date_or_time_format'),
|
||||
'cash_decimals' => $this->input->post('cash_decimals'),
|
||||
'cash_rounding_code' => $this->input->post('cash_rounding_code'),
|
||||
'financial_year' => $this->input->post('financial_year')
|
||||
);
|
||||
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_email()
|
||||
@@ -321,7 +381,7 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$password = $this->encryption->encrypt($this->input->post('smtp_pass'));
|
||||
}
|
||||
|
||||
|
||||
$batch_save_data = array(
|
||||
'protocol' => $this->input->post('protocol'),
|
||||
'mailpath' => $this->input->post('mailpath'),
|
||||
@@ -336,7 +396,10 @@ class Config extends Secure_Controller
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_message()
|
||||
@@ -348,77 +411,378 @@ class Config extends Secure_Controller
|
||||
$password = $this->encryption->encrypt($this->input->post('msg_pwd'));
|
||||
}
|
||||
|
||||
$batch_save_data = array(
|
||||
$batch_save_data = array(
|
||||
'msg_msg' => $this->input->post('msg_msg'),
|
||||
'msg_uid' => $this->input->post('msg_uid'),
|
||||
'msg_pwd' => $password,
|
||||
'msg_src' => $this->input->post('msg_src')
|
||||
);
|
||||
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function stock_locations()
|
||||
|
||||
/*
|
||||
* This function fetches all the available lists from Mailchimp for the given API key
|
||||
*/
|
||||
private function _mailchimp($api_key = '')
|
||||
{
|
||||
$this->load->library('mailchimp_lib', array('api_key' => $api_key));
|
||||
|
||||
$result = array();
|
||||
|
||||
if(($lists = $this->mailchimp_lib->getLists()) !== FALSE)
|
||||
{
|
||||
if(is_array($lists) && !empty($lists['lists']) && is_array($lists['lists']))
|
||||
{
|
||||
foreach($lists['lists'] as $list)
|
||||
{
|
||||
$list = $this->xss_clean($list);
|
||||
$result[$list['id']] = $list['name'] . ' [' . $list['stats']['member_count'] . ']';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/*
|
||||
AJAX call from mailchimp config form to fetch the Mailchimp lists when a valid API key is inserted
|
||||
*/
|
||||
public function ajax_check_mailchimp_api_key()
|
||||
{
|
||||
// load mailchimp lists associated to the given api key, already XSS cleaned in the private function
|
||||
$lists = $this->_mailchimp($this->input->post('mailchimp_api_key'));
|
||||
$success = count($lists) > 0 ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_mailchimp_key_' . ($success ? '' : 'un') . 'successfully'),
|
||||
'mailchimp_lists' => $lists
|
||||
));
|
||||
}
|
||||
|
||||
public function save_mailchimp()
|
||||
{
|
||||
$api_key = '';
|
||||
$list_id = '';
|
||||
|
||||
if($this->_check_encryption())
|
||||
{
|
||||
$api_key = $this->encryption->encrypt($this->input->post('mailchimp_api_key'));
|
||||
$list_id = $this->encryption->encrypt($this->input->post('mailchimp_list_id'));
|
||||
}
|
||||
|
||||
$batch_save_data = array(
|
||||
'mailchimp_api_key' => $api_key,
|
||||
'mailchimp_list_id' => $list_id
|
||||
);
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function ajax_stock_locations()
|
||||
{
|
||||
$stock_locations = $this->Stock_location->get_all()->result_array();
|
||||
|
||||
|
||||
$stock_locations = $this->xss_clean($stock_locations);
|
||||
|
||||
$this->load->view('partial/stock_locations', array('stock_locations' => $stock_locations));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function ajax_dinner_tables()
|
||||
{
|
||||
$dinner_tables = $this->Dinner_table->get_all()->result_array();
|
||||
|
||||
$dinner_tables = $this->xss_clean($dinner_tables);
|
||||
|
||||
$this->load->view('partial/dinner_tables', array('dinner_tables' => $dinner_tables));
|
||||
}
|
||||
|
||||
public function ajax_tax_categories()
|
||||
{
|
||||
$tax_categories = $this->Tax->get_all_tax_categories()->result_array();
|
||||
|
||||
$tax_categories = $this->xss_clean($tax_categories);
|
||||
|
||||
$this->load->view('partial/tax_categories', array('tax_categories' => $tax_categories));
|
||||
}
|
||||
|
||||
public function ajax_customer_rewards()
|
||||
{
|
||||
$customer_rewards = $this->Customer_rewards->get_all()->result_array();
|
||||
|
||||
$customer_rewards = $this->xss_clean($customer_rewards);
|
||||
|
||||
$this->load->view('partial/customer_rewards', array('customer_rewards' => $customer_rewards));
|
||||
}
|
||||
|
||||
private function _clear_session_state()
|
||||
{
|
||||
$this->load->library('sale_lib');
|
||||
$this->sale_lib->clear_sale_location();
|
||||
$this->sale_lib->clear_table();
|
||||
$this->sale_lib->clear_all();
|
||||
$this->load->library('receiving_lib');
|
||||
$this->receiving_lib->clear_stock_source();
|
||||
$this->receiving_lib->clear_stock_destination();
|
||||
$this->receiving_lib->clear_all();
|
||||
}
|
||||
|
||||
public function save_locations()
|
||||
|
||||
public function save_locations()
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$deleted_locations = $this->Stock_location->get_allowed_locations();
|
||||
|
||||
$not_to_delete = array();
|
||||
foreach($this->input->post() as $key => $value)
|
||||
{
|
||||
if (strstr($key, 'stock_location'))
|
||||
if(strstr($key, 'stock_location'))
|
||||
{
|
||||
$location_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
unset($deleted_locations[$location_id]);
|
||||
|
||||
// save or update
|
||||
$location_data = array('location_name' => $value);
|
||||
if ($this->Stock_location->save($location_data, $location_id))
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// all locations not available in post will be deleted now
|
||||
foreach ($deleted_locations as $location_id => $location_name)
|
||||
$deleted_locations = $this->Stock_location->get_all()->result_array();
|
||||
|
||||
foreach($deleted_locations as $location => $location_data)
|
||||
{
|
||||
$this->Stock_location->delete($location_id);
|
||||
if(!in_array($location_data['location_id'], $not_to_delete))
|
||||
{
|
||||
$this->Stock_location->delete($location_data['location_id']);
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
|
||||
$success = $this->db->trans_status();
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_barcode()
|
||||
{
|
||||
$batch_save_data = array(
|
||||
public function save_tables()
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$dinner_table_enable = $this->input->post('dinner_table_enable') != NULL;
|
||||
|
||||
$this->Appconfig->save('dinner_table_enable', $dinner_table_enable);
|
||||
|
||||
if($dinner_table_enable)
|
||||
{
|
||||
$not_to_delete = array();
|
||||
foreach($this->input->post() as $key => $value)
|
||||
{
|
||||
if(strstr($key, 'dinner_table') && $key != 'dinner_table_enable')
|
||||
{
|
||||
$dinner_table_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
$not_to_delete[] = $dinner_table_id;
|
||||
// save or update
|
||||
$table_data = array('name' => $value);
|
||||
if($this->Dinner_table->save($table_data, $dinner_table_id))
|
||||
{
|
||||
$this->_clear_session_state();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// all tables not available in post will be deleted now
|
||||
$deleted_tables = $this->Dinner_table->get_all()->result_array();
|
||||
|
||||
foreach($deleted_tables as $dinner_tables => $table)
|
||||
{
|
||||
if(!in_array($table['dinner_table_id'], $not_to_delete))
|
||||
{
|
||||
$this->Dinner_table->delete($table['dinner_table_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
$success = $this->db->trans_status();
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_tax()
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$customer_sales_tax_support = $this->input->post('customer_sales_tax_support') != NULL;
|
||||
|
||||
$batch_save_data = array(
|
||||
'default_tax_1_rate' => parse_decimals($this->input->post('default_tax_1_rate')),
|
||||
'default_tax_1_name' => $this->input->post('default_tax_1_name'),
|
||||
'default_tax_2_rate' => parse_decimals($this->input->post('default_tax_2_rate')),
|
||||
'default_tax_2_name' => $this->input->post('default_tax_2_name'),
|
||||
'tax_included' => $this->input->post('tax_included') != NULL,
|
||||
'customer_sales_tax_support' => $customer_sales_tax_support,
|
||||
'default_origin_tax_code' => $this->input->post('default_origin_tax_code')
|
||||
);
|
||||
|
||||
$success = $this->Appconfig->batch_save($batch_save_data) ? TRUE : FALSE;
|
||||
$delete_rejected = FALSE;
|
||||
|
||||
if($customer_sales_tax_support)
|
||||
{
|
||||
$array_save = array();
|
||||
foreach($this->input->post() as $key => $value)
|
||||
{
|
||||
if(strstr($key, 'tax_category'))
|
||||
{
|
||||
$tax_category_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
$array_save[$tax_category_id]['tax_category'] = $value;
|
||||
}
|
||||
elseif(strstr($key, 'tax_group_sequence'))
|
||||
{
|
||||
$tax_category_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
$array_save[$tax_category_id]['tax_group_sequence'] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$not_to_delete = array();
|
||||
if(!empty($array_save))
|
||||
{
|
||||
foreach($array_save as $key => $value)
|
||||
{
|
||||
// save or update
|
||||
$category_data = array('tax_category' => $value['tax_category'], 'tax_group_sequence' => $value['tax_group_sequence']);
|
||||
$this->Tax->save_tax_category($category_data, $key);
|
||||
$not_to_delete[] = $key;
|
||||
}
|
||||
}
|
||||
|
||||
// all categories not available in post will be deleted now
|
||||
$deleted_categories = $this->Tax->get_all_tax_categories()->result_array();
|
||||
|
||||
foreach($deleted_categories as $tax_category => $category)
|
||||
{
|
||||
if(!in_array($category['tax_category_id'], $not_to_delete))
|
||||
{
|
||||
$usg1 = $this->Tax->get_tax_category_usage($category['tax_category_id']);
|
||||
$usg2 = $this->Item->get_tax_category_usage($category['tax_category_id']);
|
||||
if(($usg1 + $usg2) == 0)
|
||||
{
|
||||
$this->Tax->delete_tax_category($category['tax_category_id']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$delete_rejected = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
$success &= $this->db->trans_status();
|
||||
|
||||
$message = '';
|
||||
if($success && $delete_rejected)
|
||||
{
|
||||
$message = $this->lang->line('config_tax_category_used');
|
||||
$success = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully');
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $message
|
||||
));
|
||||
}
|
||||
|
||||
public function save_rewards()
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$customer_reward_enable = $this->input->post('customer_reward_enable') != NULL;
|
||||
|
||||
$this->Appconfig->save('customer_reward_enable', $customer_reward_enable);
|
||||
|
||||
if($customer_reward_enable)
|
||||
{
|
||||
$not_to_delete = array();
|
||||
$array_save = array();
|
||||
foreach($this->input->post() as $key => $value)
|
||||
{
|
||||
if(strstr($key, 'customer_reward') && $key != 'customer_reward_enable')
|
||||
{
|
||||
$customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
$not_to_delete[] = $customer_reward_id;
|
||||
$array_save[$customer_reward_id]['package_name'] = $value;
|
||||
}
|
||||
elseif(strstr($key, 'reward_points'))
|
||||
{
|
||||
$customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
$array_save[$customer_reward_id]['points_percent'] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($array_save))
|
||||
{
|
||||
foreach($array_save as $key => $value)
|
||||
{
|
||||
// save or update
|
||||
$package_data = array('package_name' => $value['package_name'], 'points_percent' => $value['points_percent']);
|
||||
$this->Customer_rewards->save($package_data, $key);
|
||||
}
|
||||
}
|
||||
|
||||
// all packages not available in post will be deleted now
|
||||
$deleted_packages = $this->Customer_rewards->get_all()->result_array();
|
||||
|
||||
foreach($deleted_packages as $customer_rewards => $reward_category)
|
||||
{
|
||||
if(!in_array($reward_category['package_id'], $not_to_delete))
|
||||
{
|
||||
$this->Customer_rewards->delete($reward_category['package_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
$success = $this->db->trans_status();
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_barcode()
|
||||
{
|
||||
$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'),
|
||||
@@ -430,19 +794,29 @@ 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,
|
||||
'barcode_content' => $this->input->post('barcode_content')
|
||||
);
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
}
|
||||
|
||||
public function save_receipt()
|
||||
{
|
||||
$batch_save_data = array (
|
||||
'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'))
|
||||
);
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_receipt()
|
||||
{
|
||||
$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,
|
||||
'receipt_show_description' => $this->input->post('receipt_show_description') != NULL,
|
||||
@@ -456,135 +830,156 @@ class Config extends Secure_Controller
|
||||
'print_right_margin' => $this->input->post('print_right_margin')
|
||||
);
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
}
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_invoice()
|
||||
{
|
||||
$batch_save_data = array (
|
||||
public function save_invoice()
|
||||
{
|
||||
$batch_save_data = array (
|
||||
'invoice_enable' => $this->input->post('invoice_enable') != NULL,
|
||||
'default_register_mode' => $this->input->post('default_register_mode'),
|
||||
'sales_invoice_format' => $this->input->post('sales_invoice_format'),
|
||||
'sales_quote_format' => $this->input->post('sales_quote_format'),
|
||||
'recv_invoice_format' => $this->input->post('recv_invoice_format'),
|
||||
'invoice_default_comments' => $this->input->post('invoice_default_comments'),
|
||||
'invoice_email_message' => $this->input->post('invoice_email_message')
|
||||
'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'),
|
||||
'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);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
echo json_encode(array('success' => $success, 'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')));
|
||||
}
|
||||
// Update the register mode with the latest change so that if the user
|
||||
// switches immediately back to the register the mode reflects the change
|
||||
if($success == TRUE)
|
||||
{
|
||||
if($this->config->item('invoice_enable') == '1')
|
||||
{
|
||||
$this->sale_lib->set_mode($batch_save_data['default_register_mode']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->sale_lib->set_mode('sale');
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function remove_logo()
|
||||
{
|
||||
$result = $this->Appconfig->batch_save(array('company_logo' => ''));
|
||||
|
||||
|
||||
echo json_encode(array('success' => $result));
|
||||
}
|
||||
|
||||
private function _handle_logo_upload()
|
||||
{
|
||||
$this->load->helper('directory');
|
||||
|
||||
// load upload library
|
||||
$config = array('upload_path' => './uploads/',
|
||||
'allowed_types' => 'gif|jpg|png',
|
||||
'max_size' => '1024',
|
||||
'max_width' => '800',
|
||||
'max_height' => '680',
|
||||
'file_name' => 'company_logo');
|
||||
$this->load->library('upload', $config);
|
||||
$this->upload->do_upload('company_logo');
|
||||
private function _handle_logo_upload()
|
||||
{
|
||||
$this->load->helper('directory');
|
||||
|
||||
return strlen($this->upload->display_errors()) == 0 || !strcmp($this->upload->display_errors(), '<p>'.$this->lang->line('upload_no_file_selected').'</p>');
|
||||
// load upload library
|
||||
$config = array('upload_path' => './uploads/',
|
||||
'allowed_types' => 'gif|jpg|png',
|
||||
'max_size' => '1024',
|
||||
'max_width' => '800',
|
||||
'max_height' => '680',
|
||||
'file_name' => 'company_logo');
|
||||
$this->load->library('upload', $config);
|
||||
$this->upload->do_upload('company_logo');
|
||||
|
||||
return strlen($this->upload->display_errors()) == 0 || !strcmp($this->upload->display_errors(), '<p>'.$this->lang->line('upload_no_file_selected').'</p>');
|
||||
}
|
||||
|
||||
|
||||
private function _check_encryption()
|
||||
{
|
||||
$encryption_key = $this->config->item('encryption_key');
|
||||
|
||||
|
||||
// check if the encryption_key config item is the default one
|
||||
if($encryption_key == '' || $encryption_key == 'YOUR KEY')
|
||||
{
|
||||
// Config path
|
||||
$config_path = APPPATH . 'config/config.php';
|
||||
|
||||
|
||||
// Open the file
|
||||
$config = file_get_contents($config_path);
|
||||
|
||||
|
||||
// $key will be assigned a 32-byte (256-bit) hex-encoded random key
|
||||
$key = bin2hex($this->encryption->create_key(32));
|
||||
|
||||
// replace the empty placeholder with a real randomly generated encryption key
|
||||
if($encryption_key == '')
|
||||
{
|
||||
$config = str_replace("['encryption_key'] = '';", "['encryption_key'] = '" . $key . "';", $config);
|
||||
}
|
||||
else
|
||||
{
|
||||
$config = str_replace("['encryption_key'] = 'YOUR KEY';", "['encryption_key'] = '" . $key . "';", $config);
|
||||
}
|
||||
|
||||
// set the encryption key in the config item
|
||||
$this->config->set_item('encryption_key', $key);
|
||||
|
||||
// Write the new config.php file
|
||||
$handle = fopen($config_path, 'w+');
|
||||
// replace the empty placeholder with a real randomly generated encryption key
|
||||
$config = preg_replace("/(.*encryption_key.*)('');/", "$1'$key';", $config);
|
||||
|
||||
$result = FALSE;
|
||||
|
||||
// Chmod the file
|
||||
@chmod($config_path, 0777);
|
||||
|
||||
$result = FALSE;
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
||||
// Chmod the file
|
||||
@chmod($config_path, 0444);
|
||||
|
||||
fclose($handle);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function backup_db()
|
||||
{
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
if($this->Employee->has_module_grant('config', $employee_id))
|
||||
{
|
||||
$this->load->dbutil();
|
||||
|
||||
$prefs = array(
|
||||
public function backup_db()
|
||||
{
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
if($this->Employee->has_module_grant('config', $employee_id))
|
||||
{
|
||||
$this->load->dbutil();
|
||||
|
||||
$prefs = array(
|
||||
'format' => 'zip',
|
||||
'filename' => 'ospos.sql'
|
||||
);
|
||||
|
||||
$backup = $this->dbutil->backup($prefs);
|
||||
|
||||
$file_name = 'ospos-' . date("Y-m-d-H-i-s") .'.zip';
|
||||
$save = 'uploads/' . $file_name;
|
||||
$this->load->helper('download');
|
||||
while(ob_get_level())
|
||||
{
|
||||
ob_end_clean();
|
||||
}
|
||||
);
|
||||
|
||||
force_download($file_name, $backup);
|
||||
}
|
||||
else
|
||||
{
|
||||
redirect('no_access/config');
|
||||
}
|
||||
}
|
||||
$backup = $this->dbutil->backup($prefs);
|
||||
|
||||
$file_name = 'ospos-' . date("Y-m-d-H-i-s") .'.zip';
|
||||
$save = 'uploads/' . $file_name;
|
||||
$this->load->helper('download');
|
||||
while(ob_get_level())
|
||||
{
|
||||
ob_end_clean();
|
||||
}
|
||||
|
||||
force_download($file_name, $backup);
|
||||
}
|
||||
else
|
||||
{
|
||||
redirect('no_access/config');
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -4,18 +4,52 @@ require_once("Persons.php");
|
||||
|
||||
class Customers extends Persons
|
||||
{
|
||||
private $_list_id;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('customers');
|
||||
|
||||
$this->load->library('mailchimp_lib');
|
||||
|
||||
$CI =& get_instance();
|
||||
|
||||
$this->_list_id = $CI->encryption->decrypt($CI->Appconfig->get('mailchimp_list_id'));
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_people_manage_table_headers());
|
||||
$data['table_headers'] = $this->xss_clean(get_customer_manage_table_headers());
|
||||
|
||||
$this->load->view('people/manage', $data);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gets one row for a customer manage table. This is called using AJAX to update one row.
|
||||
*/
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$person = $this->Customer->get_info($row_id);
|
||||
|
||||
// retrieve the total amount the customer spent so far together with min, max and average values
|
||||
$stats = $this->Customer->get_stats($person->person_id);
|
||||
if(empty($stats))
|
||||
{
|
||||
//create object with empty properties.
|
||||
$stats = new stdClass;
|
||||
$stats->total = 0;
|
||||
$stats->min = 0;
|
||||
$stats->max = 0;
|
||||
$stats->average = 0;
|
||||
$stats->avg_discount = 0;
|
||||
$stats->quantity = 0;
|
||||
}
|
||||
|
||||
$data_row = $this->xss_clean(get_customer_data_row($person, $stats));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
/*
|
||||
Returns customer table data rows. This will be called with AJAX.
|
||||
*/
|
||||
@@ -33,14 +67,26 @@ class Customers extends Persons
|
||||
$data_rows = array();
|
||||
foreach($customers->result() as $person)
|
||||
{
|
||||
$data_rows[] = get_person_data_row($person, $this);
|
||||
}
|
||||
// retrieve the total amount the customer spent so far together with min, max and average values
|
||||
$stats = $this->Customer->get_stats($person->person_id);
|
||||
if(empty($stats))
|
||||
{
|
||||
//create object with empty properties.
|
||||
$stats = new stdClass;
|
||||
$stats->total = 0;
|
||||
$stats->min = 0;
|
||||
$stats->max = 0;
|
||||
$stats->average = 0;
|
||||
$stats->avg_discount = 0;
|
||||
$stats->quantity = 0;
|
||||
}
|
||||
|
||||
$data_rows = $this->xss_clean($data_rows);
|
||||
$data_rows[] = $this->xss_clean(get_customer_data_row($person, $stats));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
@@ -57,12 +103,14 @@ class Customers extends Persons
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Loads the customer edit form
|
||||
*/
|
||||
public function view($customer_id = -1)
|
||||
{
|
||||
$customer_sales_tax_support = $this->config->item('customer_sales_tax_support');
|
||||
|
||||
$info = $this->Customer->get_info($customer_id);
|
||||
foreach(get_object_vars($info) as $property => $value)
|
||||
{
|
||||
@@ -70,21 +118,120 @@ class Customers extends Persons
|
||||
}
|
||||
$data['person_info'] = $info;
|
||||
|
||||
$data['total'] = $this->xss_clean($this->Customer->get_totals($customer_id)->total);
|
||||
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)
|
||||
{
|
||||
$packages[$this->xss_clean($row['package_id'])] = $this->xss_clean($row['package_name']);
|
||||
}
|
||||
$data['packages'] = $packages;
|
||||
$data['selected_package'] = $info->package_id;
|
||||
|
||||
if($customer_sales_tax_support == '1')
|
||||
{
|
||||
$data['customer_sales_tax_enabled'] = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['customer_sales_tax_enabled'] = FALSE;
|
||||
}
|
||||
|
||||
// retrieve the total amount the customer spent so far together with min, max and average values
|
||||
$stats = $this->Customer->get_stats($customer_id);
|
||||
if(!empty($stats))
|
||||
{
|
||||
foreach(get_object_vars($stats) as $property => $value)
|
||||
{
|
||||
$info->$property = $this->xss_clean($value);
|
||||
}
|
||||
$data['stats'] = $stats;
|
||||
}
|
||||
|
||||
// retrieve the info from Mailchimp only if there is an email address assigned
|
||||
if(!empty($info->email))
|
||||
{
|
||||
// collect mailchimp customer info
|
||||
if(($mailchimp_info = $this->mailchimp_lib->getMemberInfo($this->_list_id, $info->email)) !== FALSE)
|
||||
{
|
||||
$data['mailchimp_info'] = $this->xss_clean($mailchimp_info);
|
||||
|
||||
// collect customer mailchimp emails activities (stats)
|
||||
if(($activities = $this->mailchimp_lib->getMemberActivity($this->_list_id, $info->email)) !== FALSE)
|
||||
{
|
||||
if(array_key_exists('activity', $activities))
|
||||
{
|
||||
$open = 0;
|
||||
$unopen = 0;
|
||||
$click = 0;
|
||||
$total = 0;
|
||||
$lastopen = '';
|
||||
|
||||
foreach($activities['activity'] as $activity)
|
||||
{
|
||||
if($activity['action'] == 'sent')
|
||||
{
|
||||
++$unopen;
|
||||
}
|
||||
elseif($activity['action'] == 'open')
|
||||
{
|
||||
if(empty($lastopen))
|
||||
{
|
||||
$lastopen = substr($activity['timestamp'], 0, 10);
|
||||
}
|
||||
++$open;
|
||||
}
|
||||
elseif($activity['action'] == 'click')
|
||||
{
|
||||
if(empty($lastopen))
|
||||
{
|
||||
$lastopen = substr($activity['timestamp'], 0, 10);
|
||||
}
|
||||
++$click;
|
||||
}
|
||||
|
||||
++$total;
|
||||
}
|
||||
|
||||
$data['mailchimp_activity']['total'] = $total;
|
||||
$data['mailchimp_activity']['open'] = $open;
|
||||
$data['mailchimp_activity']['unopen'] = $unopen;
|
||||
$data['mailchimp_activity']['click'] = $click;
|
||||
$data['mailchimp_activity']['lastopen'] = $lastopen;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->view("customers/form", $data);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Inserts/updates a customer
|
||||
*/
|
||||
public function save($customer_id = -1)
|
||||
{
|
||||
$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' => $this->input->post('first_name'),
|
||||
'last_name' => $this->input->post('last_name'),
|
||||
'first_name' => $first_name,
|
||||
'last_name' => $last_name,
|
||||
'gender' => $this->input->post('gender'),
|
||||
'email' => $this->input->post('email'),
|
||||
'email' => $email,
|
||||
'phone_number' => $this->input->post('phone_number'),
|
||||
'address_1' => $this->input->post('address_1'),
|
||||
'address_2' => $this->input->post('address_2'),
|
||||
@@ -94,57 +241,102 @@ class Customers extends Persons
|
||||
'country' => $this->input->post('country'),
|
||||
'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'),
|
||||
'taxable' => $this->input->post('taxable') != NULL
|
||||
'package_id' => $this->input->post('package_id') == '' ? NULL : $this->input->post('package_id'),
|
||||
'taxable' => $this->input->post('taxable') != NULL,
|
||||
'date' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
'employee_id' => $this->input->post('employee_id')
|
||||
);
|
||||
|
||||
$tax_code = $this->input->post('sales_tax_code');
|
||||
if(!isset($tax_code))
|
||||
{
|
||||
$customer_data['sales_tax_code'] = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$customer_data['sales_tax_code'] = $tax_code;
|
||||
}
|
||||
|
||||
if($this->Customer->save_customer($person_data, $customer_data, $customer_id))
|
||||
{
|
||||
$person_data = $this->xss_clean($person_data);
|
||||
$customer_data = $this->xss_clean($customer_data);
|
||||
|
||||
//New customer
|
||||
// save customer to Mailchimp selected list
|
||||
$this->mailchimp_lib->addOrUpdateMember($this->_list_id, $email, $first_name, $last_name, $this->input->post('mailchimp_status'), array('vip' => $this->input->post('mailchimp_vip') != NULL));
|
||||
|
||||
// New customer
|
||||
if($customer_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_successful_adding').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $customer_data['person_id']));
|
||||
echo json_encode(array('success' => TRUE,
|
||||
'message' => $this->lang->line('customers_successful_adding') . ' ' . $first_name . ' ' . $last_name,
|
||||
'id' => $this->xss_clean($customer_data['person_id'])));
|
||||
}
|
||||
else //Existing customer
|
||||
else // Existing customer
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_successful_updating').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $customer_id));
|
||||
echo json_encode(array('success' => TRUE,
|
||||
'message' => $this->lang->line('customers_successful_updating') . ' ' . $first_name . ' ' . $last_name,
|
||||
'id' => $customer_id));
|
||||
}
|
||||
}
|
||||
else//failure
|
||||
else // Failure
|
||||
{
|
||||
$person_data = $this->xss_clean($person_data);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('customers_error_adding_updating').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => -1));
|
||||
echo json_encode(array('success' => FALSE,
|
||||
'message' => $this->lang->line('customers_error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
|
||||
'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function check_account_number()
|
||||
|
||||
/*
|
||||
AJAX call to verify if an email address already exists
|
||||
*/
|
||||
public function ajax_check_email()
|
||||
{
|
||||
$exists = $this->Customer->account_number_exists($this->input->post('account_number'), $this->input->post('person_id'));
|
||||
$exists = $this->Customer->check_email_exists(strtolower($this->input->post('email')), $this->input->post('person_id'));
|
||||
|
||||
echo !$exists ? 'true' : 'false';
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
AJAX call to verify if an account number already exists
|
||||
*/
|
||||
public function ajax_check_account_number()
|
||||
{
|
||||
$exists = $this->Customer->check_account_number_exists($this->input->post('account_number'), $this->input->post('person_id'));
|
||||
|
||||
echo !$exists ? 'true' : 'false';
|
||||
}
|
||||
|
||||
/*
|
||||
This deletes customers from the customers table
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$customers_to_delete = $this->xss_clean($this->input->post('ids'));
|
||||
$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)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_successful_deleted').' '.
|
||||
count($customers_to_delete).' '.$this->lang->line('customers_one_or_multiple')));
|
||||
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 . ' ' . $this->lang->line('customers_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -161,7 +353,7 @@ class Customers extends Persons
|
||||
$data = file_get_contents('../' . $name);
|
||||
force_download($name, $data);
|
||||
}
|
||||
|
||||
|
||||
public function excel_import()
|
||||
{
|
||||
$this->load->view('customers/form_excel_import', NULL);
|
||||
@@ -177,65 +369,82 @@ class Customers extends Persons
|
||||
{
|
||||
if(($handle = fopen($_FILES['file_path']['tmp_name'], 'r')) !== FALSE)
|
||||
{
|
||||
// Skip the first row as it's the table description
|
||||
// Skip the first row as it's the table description
|
||||
fgetcsv($handle);
|
||||
$i = 1;
|
||||
|
||||
$failCodes = array();
|
||||
|
||||
while(($data = fgetcsv($handle)) !== FALSE)
|
||||
while(($data = fgetcsv($handle)) !== FALSE)
|
||||
{
|
||||
// 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[4]);
|
||||
$person_data = array(
|
||||
'first_name' => $data[0],
|
||||
'last_name' => $data[1],
|
||||
'gender' => $data[2],
|
||||
'email' => $data[3],
|
||||
'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]
|
||||
'email' => $email,
|
||||
'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];
|
||||
$invalidated = FALSE;
|
||||
if($account_number != '')
|
||||
$account_number = $data[14];
|
||||
|
||||
// don't duplicate people with same email
|
||||
$invalidated = $this->Customer->check_email_exists($email);
|
||||
|
||||
if($account_number != '')
|
||||
{
|
||||
$customer_data['account_number'] = $account_number;
|
||||
$invalidated = $this->Customer->account_number_exists($account_number);
|
||||
$invalidated &= $this->Customer->check_account_number_exists($account_number);
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$invalidated = TRUE;
|
||||
}
|
||||
|
||||
if($invalidated || !$this->Customer->save_customer($person_data, $customer_data))
|
||||
{
|
||||
if($invalidated)
|
||||
{
|
||||
$failCodes[] = $i;
|
||||
}
|
||||
|
||||
elseif($this->Customer->save_customer($person_data, $customer_data))
|
||||
{
|
||||
// save customer to Mailchimp selected list
|
||||
$this->mailchimp_lib->addOrUpdateMember($this->_list_id, $person_data['email'], $person_data['first_name'], '', $person_data['last_name']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$failCodes[] = $i;
|
||||
}
|
||||
|
||||
++$i;
|
||||
}
|
||||
|
||||
|
||||
if(count($failCodes) > 0)
|
||||
{
|
||||
$message = $this->lang->line('customers_excel_import_partially_failed') . ' (' . count($failCodes) . '): ' . implode(', ', $failCodes);
|
||||
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $message));
|
||||
}
|
||||
else
|
||||
@@ -243,11 +452,11 @@ class Customers extends Persons
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_excel_import_success')));
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('customers_excel_import_nodata_wrongformat')));
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('customers_excel_import_nodata_wrongformat')));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -8,14 +8,7 @@ class Employees extends Persons
|
||||
{
|
||||
parent::__construct('employees');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_people_manage_table_headers());
|
||||
|
||||
$this->load->view('people/manage', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
Returns employee table data rows. This will be called with AJAX.
|
||||
*/
|
||||
@@ -33,14 +26,12 @@ 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));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
@@ -50,7 +41,7 @@ class Employees extends Persons
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Loads the employee edit form
|
||||
*/
|
||||
@@ -68,7 +59,8 @@ 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;
|
||||
}
|
||||
$data['all_modules'] = $modules;
|
||||
@@ -79,24 +71,32 @@ class Employees extends Persons
|
||||
$permission->module_id = $this->xss_clean($permission->module_id);
|
||||
$permission->permission_id = $this->xss_clean($permission->permission_id);
|
||||
$permission->grant = $this->xss_clean($this->Employee->has_grant($permission->permission_id, $person_info->person_id));
|
||||
|
||||
|
||||
$permissions[] = $permission;
|
||||
}
|
||||
$data['all_subpermissions'] = $permissions;
|
||||
|
||||
$this->load->view("employees/form", $data);
|
||||
$this->load->view('employees/form', $data);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Inserts/updates an employee
|
||||
*/
|
||||
public function save($employee_id = -1)
|
||||
{
|
||||
$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' => $this->input->post('first_name'),
|
||||
'last_name' => $this->input->post('last_name'),
|
||||
'first_name' => $first_name,
|
||||
'last_name' => $last_name,
|
||||
'gender' => $this->input->post('gender'),
|
||||
'email' => $this->input->post('email'),
|
||||
'email' => $email,
|
||||
'phone_number' => $this->input->post('phone_number'),
|
||||
'address_1' => $this->input->post('address_1'),
|
||||
'address_2' => $this->input->post('address_2'),
|
||||
@@ -106,48 +106,66 @@ class Employees extends Persons
|
||||
'country' => $this->input->post('country'),
|
||||
'comments' => $this->input->post('comments'),
|
||||
);
|
||||
$grants_data = $this->input->post('grants') != NULL ? $this->input->post('grants') : array();
|
||||
|
||||
|
||||
$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)
|
||||
{
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
//Password has been changed OR first time password set
|
||||
if($this->input->post('password') != '')
|
||||
{
|
||||
$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
|
||||
'username' => $this->input->post('username'),
|
||||
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
|
||||
'hash_version' => 2,
|
||||
'language_code' => $exploded[0],
|
||||
'language' => $exploded[1]
|
||||
);
|
||||
}
|
||||
else //Password not changed
|
||||
{
|
||||
$employee_data = array('username' => $this->input->post('username'));
|
||||
$exploded = explode(":", $this->input->post('language'));
|
||||
$employee_data = array(
|
||||
'username' => $this->input->post('username'),
|
||||
'language_code' => $exploded[0],
|
||||
'language' => $exploded[1]
|
||||
);
|
||||
}
|
||||
|
||||
if($this->Employee->save_employee($person_data, $employee_data, $grants_data, $employee_id))
|
||||
{
|
||||
$person_data = $this->xss_clean($person_data);
|
||||
$employee_data = $this->xss_clean($employee_data);
|
||||
|
||||
//New employee
|
||||
if($this->Employee->save_employee($person_data, $employee_data, $grants_array, $employee_id))
|
||||
{
|
||||
// New employee
|
||||
if($employee_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_adding').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $employee_data['person_id']));
|
||||
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
|
||||
else // Existing employee
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_updating').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $employee_id));
|
||||
echo json_encode(array('success' => TRUE,
|
||||
'message' => $this->lang->line('employees_successful_updating') . ' ' . $first_name . ' ' . $last_name,
|
||||
'id' => $employee_id));
|
||||
}
|
||||
}
|
||||
else//failure
|
||||
else // Failure
|
||||
{
|
||||
$person_data = $this->xss_clean($person_data);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_error_adding_updating').' '.
|
||||
$person_data['first_name'].' '.$person_data['last_name'], 'id' => -1));
|
||||
echo json_encode(array('success' => FALSE,
|
||||
'message' => $this->lang->line('employees_error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
|
||||
'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
This deletes employees from the employees table
|
||||
*/
|
||||
@@ -157,13 +175,13 @@ class Employees extends Persons
|
||||
|
||||
if($this->Employee->delete_list($employees_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE,'message' => $this->lang->line('employees_successful_deleted').' '.
|
||||
count($employees_to_delete).' '.$this->lang->line('employees_one_or_multiple')));
|
||||
echo json_encode(array('success' => TRUE,'message' => $this->lang->line('employees_successful_deleted') . ' ' .
|
||||
count($employees_to_delete) . ' ' . $this->lang->line('employees_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE,'message' => $this->lang->line('employees_cannot_be_deleted')));
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
176
application/controllers/Expenses.php
Normal file
176
application/controllers/Expenses.php
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
97
application/controllers/Expenses_categories.php
Normal file
97
application/controllers/Expenses_categories.php
Normal 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')));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -33,17 +33,23 @@ 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));
|
||||
}
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
|
||||
public function suggest()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Giftcard->get_search_suggestions($this->input->get('term'), TRUE));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function suggest_search()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Giftcard->get_search_suggestions($this->input->post('term')));
|
||||
@@ -53,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);
|
||||
}
|
||||
@@ -63,38 +69,53 @@ class Giftcards extends Secure_Controller
|
||||
$giftcard_info = $this->Giftcard->get_info($giftcard_id);
|
||||
|
||||
$data['selected_person_name'] = ($giftcard_id > 0 && isset($giftcard_info->person_id)) ? $giftcard_info->first_name . ' ' . $giftcard_info->last_name : '';
|
||||
$data['selected_person_id'] = $giftcard_info->person_id;
|
||||
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : $this->Giftcard->get_max_number()->giftcard_number + 1;
|
||||
$data['giftcard_id'] = $giftcard_id;
|
||||
$data['giftcard_value'] = $giftcard_info->value;
|
||||
$data['selected_person_id'] = $giftcard_info->person_id;
|
||||
if($this->config->item('giftcard_number') == "random")
|
||||
{
|
||||
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$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;
|
||||
|
||||
$data = $this->xss_clean($data);
|
||||
|
||||
$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('giftcard_amount'));
|
||||
}
|
||||
|
||||
$giftcard_data = array(
|
||||
'record_time' => date('Y-m-d H:i:s'),
|
||||
'giftcard_number' => $this->input->post('giftcard_number'),
|
||||
'value' => parse_decimals($this->input->post('value')),
|
||||
'giftcard_number' => $giftcard_number,
|
||||
'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)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_adding').' '.
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_adding') . ' ' .
|
||||
$giftcard_data['giftcard_number'], 'id' => $giftcard_data['giftcard_id']));
|
||||
}
|
||||
else //Existing giftcard
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_updating').' '.
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_updating') . ' ' .
|
||||
$giftcard_data['giftcard_number'], 'id' => $giftcard_id));
|
||||
}
|
||||
}
|
||||
@@ -102,18 +123,24 @@ class Giftcards extends Secure_Controller
|
||||
{
|
||||
$giftcard_data = $this->xss_clean($giftcard_data);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('giftcards_error_adding_updating').' '.
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('giftcards_error_adding_updating') . ' ' .
|
||||
$giftcard_data['giftcard_number'], 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
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'));
|
||||
|
||||
if($this->Giftcard->delete_list($giftcards_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_deleted').' '.
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('giftcards_successful_deleted') . ' ' .
|
||||
count($giftcards_to_delete).' '.$this->lang->line('giftcards_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
|
||||
@@ -4,21 +4,69 @@ require_once("Secure_Controller.php");
|
||||
|
||||
class Home extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
function __construct()
|
||||
{
|
||||
parent::__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));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -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,30 +84,43 @@ 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)
|
||||
{
|
||||
$info = $this->Item_kit->get_info($item_kit_id);
|
||||
|
||||
if($item_kit_id == -1)
|
||||
{
|
||||
$info->price_option = '0';
|
||||
$info->print_option = PRINT_ALL;
|
||||
$info->kit_item_id = 0;
|
||||
}
|
||||
foreach(get_object_vars($info) as $property => $value)
|
||||
{
|
||||
$info->$property = $this->xss_clean($value);
|
||||
}
|
||||
|
||||
$data['item_kit_info'] = $info;
|
||||
|
||||
|
||||
$items = array();
|
||||
foreach($this->Item_kit_items->get_info($item_kit_id) as $item_kit_item)
|
||||
{
|
||||
$item['kit_sequence'] = $this->xss_clean($item_kit_item['kit_sequence']);
|
||||
$item['name'] = $this->xss_clean($this->Item->get_info($item_kit_item['item_id'])->name);
|
||||
$item['item_id'] = $this->xss_clean($item_kit_item['item_id']);
|
||||
$item['quantity'] = $this->xss_clean($item_kit_item['quantity']);
|
||||
|
||||
|
||||
$items[] = $item;
|
||||
}
|
||||
|
||||
$data['item_kit_items'] = $items;
|
||||
|
||||
$data['selected_kit_item_id'] = $info->kit_item_id;
|
||||
$data['selected_kit_item'] = ($item_kit_id > 0 && isset($info->kit_item_id)) ? $info->item_name : '';
|
||||
|
||||
$this->load->view("item_kits/form", $data);
|
||||
}
|
||||
|
||||
@@ -108,36 +128,54 @@ class Item_kits extends Secure_Controller
|
||||
{
|
||||
$item_kit_data = array(
|
||||
'name' => $this->input->post('name'),
|
||||
'item_id' => $this->input->post('kit_item_id'),
|
||||
'kit_discount_percent' => $this->input->post('kit_discount_percent'),
|
||||
'price_option' => $this->input->post('price_option'),
|
||||
'print_option' => $this->input->post('print_option'),
|
||||
'description' => $this->input->post('description')
|
||||
);
|
||||
|
||||
if($this->Item_kit->save($item_kit_data, $item_kit_id))
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
if($this->input->post('item_kit_item') != NULL)
|
||||
if($this->input->post('item_kit_qty') != NULL)
|
||||
{
|
||||
$item_kit_items = array();
|
||||
foreach($this->input->post('item_kit_item') as $item_id => $quantity)
|
||||
foreach($this->input->post('item_kit_qty') as $item_id => $quantity)
|
||||
{
|
||||
$seq = $this->input->post('item_kit_seq[' . $item_id . ']');
|
||||
$item_kit_items[] = array(
|
||||
'item_id' => $item_id,
|
||||
'quantity' => $quantity
|
||||
'quantity' => $quantity,
|
||||
'kit_sequence' => $seq
|
||||
);
|
||||
}
|
||||
|
||||
$success = $this->Item_kit_items->save($item_kit_items, $item_kit_id);
|
||||
}
|
||||
|
||||
$success = $this->Item_kit_items->save($item_kit_items, $item_kit_id);
|
||||
|
||||
$item_kit_data = $this->xss_clean($item_kit_data);
|
||||
|
||||
echo json_encode(array('success' => $success,
|
||||
'message' => $this->lang->line('item_kits_successful_adding').' '.$item_kit_data['name'], 'id' => $item_kit_id));
|
||||
if($new_item)
|
||||
{
|
||||
echo json_encode(array('success' => $success,
|
||||
'message' => $this->lang->line('item_kits_successful_adding').' '.$item_kit_data['name'], 'id' => $item_kit_id));
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => $success,
|
||||
'message' => $this->lang->line('item_kits_successful_updating').' '.$item_kit_data['name'], 'id' => $item_kit_id));
|
||||
}
|
||||
}
|
||||
else//failure
|
||||
{
|
||||
@@ -182,7 +220,7 @@ class Item_kits extends Secure_Controller
|
||||
}
|
||||
|
||||
$data['items'] = $result;
|
||||
$barcode_config = $this->barcode_lib->get_barcode_config();
|
||||
$barcode_config = $this->barcode_lib->get_barcode_config();
|
||||
// in case the selected barcode type is not Code39 or Code128 we set by default Code128
|
||||
// the rationale for this is that EAN codes cannot have strings as seed, so 'KIT ' is not allowed
|
||||
if($barcode_config['barcode_type'] != 'Code39' && $barcode_config['barcode_type'] != 'Code128')
|
||||
@@ -195,4 +233,4 @@ class Item_kits extends Secure_Controller
|
||||
$this->load->view("barcodes/barcode_sheet", $data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -57,27 +57,36 @@ class Items extends Secure_Controller
|
||||
$filters = array_merge($filters, $filledup);
|
||||
|
||||
$items = $this->Item->search($search, $filters, $limit, $offset, $sort, $order);
|
||||
|
||||
$total_rows = $this->Item->get_found_rows($search, $filters);
|
||||
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function pic_thumb($pic_id)
|
||||
public function pic_thumb($pic_filename)
|
||||
{
|
||||
$this->load->helper('file');
|
||||
$this->load->library('image_lib');
|
||||
$base_path = './uploads/item_pics/' . $pic_id;
|
||||
$images = glob($base_path . '.*');
|
||||
|
||||
// in this context, $pic_filename always has .ext
|
||||
$ext = pathinfo($pic_filename, PATHINFO_EXTENSION);
|
||||
$images = glob('./uploads/item_pics/' . $pic_filename);
|
||||
|
||||
// make sure we pick only the file name, without extension
|
||||
$base_path = './uploads/item_pics/' . pathinfo($pic_filename, PATHINFO_FILENAME);
|
||||
if(sizeof($images) > 0)
|
||||
{
|
||||
$image_path = $images[0];
|
||||
$ext = pathinfo($image_path, PATHINFO_EXTENSION);
|
||||
$thumb_path = $base_path . $this->image_lib->thumb_marker . '.' . $ext;
|
||||
if(sizeof($images) < 2)
|
||||
{
|
||||
@@ -87,8 +96,8 @@ class Items extends Secure_Controller
|
||||
$config['create_thumb'] = TRUE;
|
||||
$config['width'] = 52;
|
||||
$config['height'] = 32;
|
||||
$this->image_lib->initialize($config);
|
||||
$image = $this->image_lib->resize();
|
||||
$this->image_lib->initialize($config);
|
||||
$image = $this->image_lib->resize();
|
||||
$thumb_path = $this->image_lib->full_dst_path;
|
||||
}
|
||||
$this->output->set_content_type(get_mime_by_extension($thumb_path));
|
||||
@@ -115,6 +124,14 @@ class Items extends Secure_Controller
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function suggest_kits()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Item->get_kit_search_suggestions($this->input->post_get('term'),
|
||||
array('search_custom' => FALSE, 'is_deleted' => FALSE), TRUE));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
@@ -152,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);
|
||||
@@ -163,6 +180,7 @@ class Items extends Secure_Controller
|
||||
$data['item_tax_info'] = $this->xss_clean($this->Item_taxes->get_info($item_id));
|
||||
$data['default_tax_1_rate'] = '';
|
||||
$data['default_tax_2_rate'] = '';
|
||||
$data['item_kits_enabled'] = $this->Employee->has_grant('item_kits', $this->Employee->get_logged_in_employee_info()->person_id);
|
||||
|
||||
$item_info = $this->Item->get_info($item_id);
|
||||
foreach(get_object_vars($item_info) as $property => $value)
|
||||
@@ -174,9 +192,12 @@ class Items extends Secure_Controller
|
||||
{
|
||||
$data['default_tax_1_rate'] = $this->config->item('default_tax_1_rate');
|
||||
$data['default_tax_2_rate'] = $this->config->item('default_tax_2_rate');
|
||||
|
||||
$item_info->receiving_quantity = 0;
|
||||
$item_info->reorder_level = 0;
|
||||
|
||||
$item_info->receiving_quantity = 1;
|
||||
$item_info->reorder_level = 1;
|
||||
$item_info->item_type = ITEM; // standard
|
||||
$item_info->stock_type = HAS_STOCK;
|
||||
$item_info->tax_category_id = 1; // Standard
|
||||
}
|
||||
|
||||
$data['item_info'] = $item_info;
|
||||
@@ -189,27 +210,52 @@ class Items extends Secure_Controller
|
||||
$data['suppliers'] = $suppliers;
|
||||
$data['selected_supplier'] = $item_info->supplier_id;
|
||||
|
||||
$data['logo_exists'] = $item_info->pic_id != '';
|
||||
if (!empty($item_info->pic_id))
|
||||
$customer_sales_tax_support = $this->config->item('customer_sales_tax_support');
|
||||
if($customer_sales_tax_support == '1')
|
||||
{
|
||||
$images = glob('./uploads/item_pics/' . $item_info->pic_id . '.*');
|
||||
$data['image_path'] = sizeof($images) > 0 ? base_url($images[0]) : '';
|
||||
$data['customer_sales_tax_enabled'] = TRUE;
|
||||
$tax_categories = array();
|
||||
foreach($this->Tax->get_all_tax_categories()->result_array() as $row)
|
||||
{
|
||||
$tax_categories[$this->xss_clean($row['tax_category_id'])] = $this->xss_clean($row['tax_category']);
|
||||
}
|
||||
$data['tax_categories'] = $tax_categories;
|
||||
$data['selected_tax_category'] = $item_info->tax_category_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['customer_sales_tax_enabled'] = FALSE;
|
||||
$data['tax_categories'] = array();
|
||||
$data['selected_tax_category'] = '';
|
||||
}
|
||||
|
||||
$data['logo_exists'] = $item_info->pic_filename != '';
|
||||
$ext = pathinfo($item_info->pic_filename, PATHINFO_EXTENSION);
|
||||
if($ext == '')
|
||||
{
|
||||
// if file extension is not found guess it (legacy)
|
||||
$images = glob('./uploads/item_pics/' . $item_info->pic_filename . '.*');
|
||||
}
|
||||
else
|
||||
{
|
||||
// else just pick that file
|
||||
$images = glob('./uploads/item_pics/' . $item_info->pic_filename);
|
||||
}
|
||||
$data['image_path'] = sizeof($images) > 0 ? base_url($images[0]) : '';
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$location = $this->xss_clean($location);
|
||||
|
||||
$quantity = $this->xss_clean($this->Item_quantity->get_item_quantity($item_id, $location['location_id'])->quantity);
|
||||
$quantity = ($item_id == -1) ? 0 : $quantity;
|
||||
$location_array[$location['location_id']] = array('location_name' => $location['location_name'], 'quantity' => $quantity);
|
||||
$data['stock_locations'] = $location_array;
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->view('items/form', $data);
|
||||
}
|
||||
|
||||
|
||||
public function inventory($item_id = -1)
|
||||
{
|
||||
$item_info = $this->Item->get_info($item_id);
|
||||
@@ -219,16 +265,16 @@ class Items extends Secure_Controller
|
||||
}
|
||||
$data['item_info'] = $item_info;
|
||||
|
||||
$data['stock_locations'] = array();
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$data['stock_locations'] = array();
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$location = $this->xss_clean($location);
|
||||
$quantity = $this->xss_clean($this->Item_quantity->get_item_quantity($item_id, $location['location_id'])->quantity);
|
||||
|
||||
$data['stock_locations'][$location['location_id']] = $location['location_name'];
|
||||
$data['item_quantities'][$location['location_id']] = $quantity;
|
||||
}
|
||||
$data['stock_locations'][$location['location_id']] = $location['location_name'];
|
||||
$data['item_quantities'][$location['location_id']] = $quantity;
|
||||
}
|
||||
|
||||
$this->load->view('items/form_inventory', $data);
|
||||
}
|
||||
@@ -242,16 +288,16 @@ class Items extends Secure_Controller
|
||||
}
|
||||
$data['item_info'] = $item_info;
|
||||
|
||||
$data['stock_locations'] = array();
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$data['stock_locations'] = array();
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$location = $this->xss_clean($location);
|
||||
$quantity = $this->xss_clean($this->Item_quantity->get_item_quantity($item_id, $location['location_id'])->quantity);
|
||||
|
||||
$data['stock_locations'][$location['location_id']] = $location['location_name'];
|
||||
$data['item_quantities'][$location['location_id']] = $quantity;
|
||||
}
|
||||
$data['stock_locations'][$location['location_id']] = $location['location_name'];
|
||||
$data['item_quantities'][$location['location_id']] = $quantity;
|
||||
}
|
||||
|
||||
$this->load->view('items/form_count_details', $data);
|
||||
}
|
||||
@@ -271,7 +317,7 @@ class Items extends Secure_Controller
|
||||
{
|
||||
$item = $this->xss_clean($item);
|
||||
|
||||
// update the UPC/EAN/ISBN field if empty / NULL with the newly generated barcode
|
||||
// update the barcode field if empty / NULL with the newly generated barcode
|
||||
if(empty($item['item_number']) && $this->config->item('barcode_generate_if_empty'))
|
||||
{
|
||||
// get the newly generated barcode
|
||||
@@ -280,7 +326,7 @@ class Items extends Secure_Controller
|
||||
|
||||
$save_item = array('item_number' => $item['item_number']);
|
||||
|
||||
// update the item in the database in order to save the UPC/EAN/ISBN field
|
||||
// update the item in the database in order to save the barcode field
|
||||
$this->Item->save($save_item, $item['item_id']);
|
||||
}
|
||||
}
|
||||
@@ -323,6 +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') == 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')),
|
||||
@@ -343,13 +391,23 @@ class Items extends Secure_Controller
|
||||
'custom9' => $this->input->post('custom9') == NULL ? '' : $this->input->post('custom9'),
|
||||
'custom10' => $this->input->post('custom10') == NULL ? '' : $this->input->post('custom10')
|
||||
);
|
||||
|
||||
$x = $this->input->post('tax_category_id');
|
||||
if(!isset($x))
|
||||
{
|
||||
$item_data['tax_category_id'] = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$item_data['tax_category_id'] = $this->input->post('tax_category_id');
|
||||
}
|
||||
|
||||
if(!empty($upload_data['orig_name']))
|
||||
{
|
||||
// XSS file image sanity check
|
||||
if($this->xss_clean($upload_data['raw_name'], TRUE) === TRUE)
|
||||
{
|
||||
$item_data['pic_id'] = $upload_data['raw_name'];
|
||||
$item_data['pic_filename'] = $upload_data['raw_name'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,47 +438,47 @@ class Items extends Secure_Controller
|
||||
}
|
||||
}
|
||||
$success &= $this->Item_taxes->save($items_taxes_data, $item_id);
|
||||
|
||||
//Save item quantity
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$updated_quantity = parse_decimals($this->input->post('quantity_' . $location['location_id']));
|
||||
$location_detail = array('item_id' => $item_id,
|
||||
'location_id' => $location['location_id'],
|
||||
'quantity' => $updated_quantity);
|
||||
$item_quantity = $this->Item_quantity->get_item_quantity($item_id, $location['location_id']);
|
||||
if($item_quantity->quantity != $updated_quantity || $new_item)
|
||||
{
|
||||
$success &= $this->Item_quantity->save($location_detail, $item_id, $location['location_id']);
|
||||
|
||||
$inv_data = array(
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
'trans_user' => $employee_id,
|
||||
'trans_location' => $location['location_id'],
|
||||
'trans_comment' => $this->lang->line('items_manually_editing_of_quantity'),
|
||||
'trans_inventory' => $updated_quantity - $item_quantity->quantity
|
||||
);
|
||||
|
||||
$success &= $this->Inventory->insert($inv_data);
|
||||
}
|
||||
}
|
||||
//Save item quantity
|
||||
$stock_locations = $this->Stock_location->get_undeleted_all()->result_array();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$updated_quantity = parse_decimals($this->input->post('quantity_' . $location['location_id']));
|
||||
$location_detail = array('item_id' => $item_id,
|
||||
'location_id' => $location['location_id'],
|
||||
'quantity' => $updated_quantity);
|
||||
$item_quantity = $this->Item_quantity->get_item_quantity($item_id, $location['location_id']);
|
||||
if($item_quantity->quantity != $updated_quantity || $new_item)
|
||||
{
|
||||
$success &= $this->Item_quantity->save($location_detail, $item_id, $location['location_id']);
|
||||
|
||||
$inv_data = array(
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
'trans_user' => $employee_id,
|
||||
'trans_location' => $location['location_id'],
|
||||
'trans_comment' => $this->lang->line('items_manually_editing_of_quantity'),
|
||||
'trans_inventory' => $updated_quantity - $item_quantity->quantity
|
||||
);
|
||||
|
||||
$success &= $this->Inventory->insert($inv_data);
|
||||
}
|
||||
}
|
||||
|
||||
if($success && $upload_success)
|
||||
{
|
||||
$message = $this->xss_clean($this->lang->line('items_successful_' . ($new_item ? 'adding' : 'updating')) . ' ' . $item_data['name']);
|
||||
{
|
||||
$message = $this->xss_clean($this->lang->line('items_successful_' . ($new_item ? 'adding' : 'updating')) . ' ' . $item_data['name']);
|
||||
|
||||
echo json_encode(array('success' => TRUE, 'message' => $message, 'id' => $item_id));
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = $this->xss_clean($upload_success ? $this->lang->line('items_error_adding_updating') . ' ' . $item_data['name'] : strip_tags($this->upload->display_errors()));
|
||||
echo json_encode(array('success' => TRUE, 'message' => $message, 'id' => $item_id));
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = $this->xss_clean($upload_success ? $this->lang->line('items_error_adding_updating') . ' ' . $item_data['name'] : strip_tags($this->upload->display_errors()));
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $message, 'id' => $item_id));
|
||||
}
|
||||
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']);
|
||||
|
||||
@@ -433,30 +491,43 @@ class Items extends Secure_Controller
|
||||
$exists = $this->Item->item_number_exists($this->input->post('item_number'), $this->input->post('item_id'));
|
||||
echo !$exists ? 'true' : 'false';
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
If adding a new item check to see if an item kit with the same name as the item already exists.
|
||||
*/
|
||||
public function check_kit_exists()
|
||||
{
|
||||
if($this->input->post('item_number') === -1)
|
||||
{
|
||||
$exists = $this->Item_kit->item_kit_exists_for_name($this->input->post('name'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$exists = FALSE;
|
||||
}
|
||||
echo !$exists ? 'true' : 'false';
|
||||
}
|
||||
|
||||
private function _handle_image_upload()
|
||||
{
|
||||
$this->load->helper('directory');
|
||||
|
||||
$map = directory_map('./uploads/item_pics/', 1);
|
||||
|
||||
/* Let files be uploaded with their original name */
|
||||
|
||||
// load upload library
|
||||
$config = array('upload_path' => './uploads/item_pics/',
|
||||
'allowed_types' => 'gif|jpg|png',
|
||||
'max_size' => '100',
|
||||
'max_width' => '640',
|
||||
'max_height' => '480',
|
||||
'file_name' => sizeof($map) + 1
|
||||
'max_height' => '480'
|
||||
);
|
||||
$this->load->library('upload', $config);
|
||||
$this->upload->do_upload('item_image');
|
||||
$this->upload->do_upload('item_image');
|
||||
|
||||
return strlen($this->upload->display_errors()) == 0 || !strcmp($this->upload->display_errors(), '<p>'.$this->lang->line('upload_no_file_selected').'</p>');
|
||||
}
|
||||
|
||||
public function remove_logo($item_id)
|
||||
{
|
||||
$item_data = array('pic_id' => NULL);
|
||||
$item_data = array('pic_filename' => NULL);
|
||||
$result = $this->Item->save($item_data, $item_id);
|
||||
|
||||
echo json_encode(array('success' => $result));
|
||||
@@ -466,7 +537,7 @@ class Items extends Secure_Controller
|
||||
{
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$cur_item_info = $this->Item->get_info($item_id);
|
||||
$location_id = $this->input->post('stock_location');
|
||||
$location_id = $this->input->post('stock_location');
|
||||
$inv_data = array(
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
@@ -579,133 +650,147 @@ class Items extends Secure_Controller
|
||||
$this->load->view('items/form_excel_import', NULL);
|
||||
}
|
||||
|
||||
public function do_excel_import()
|
||||
{
|
||||
if($_FILES['file_path']['error'] != UPLOAD_ERR_OK)
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('items_excel_import_failed')));
|
||||
}
|
||||
else
|
||||
public function do_excel_import()
|
||||
{
|
||||
if($_FILES['file_path']['error'] != UPLOAD_ERR_OK)
|
||||
{
|
||||
if(($handle = fopen($_FILES['file_path']['tmp_name'], 'r')) !== FALSE)
|
||||
{
|
||||
// Skip the first row as it's the table description
|
||||
fgetcsv($handle);
|
||||
$i = 1;
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('items_excel_import_failed')));
|
||||
}
|
||||
else
|
||||
{
|
||||
if(($handle = fopen($_FILES['file_path']['tmp_name'], 'r')) !== FALSE)
|
||||
{
|
||||
// Skip the first row as it's the table description
|
||||
fgetcsv($handle);
|
||||
$i = 1;
|
||||
|
||||
$failCodes = array();
|
||||
|
||||
while(($data = fgetcsv($handle)) !== FALSE)
|
||||
{
|
||||
while(($data = fgetcsv($handle)) !== FALSE)
|
||||
{
|
||||
// XSS file data sanity check
|
||||
$data = $this->xss_clean($data);
|
||||
|
||||
/* haven't touched this so old templates will work, or so I guess... */
|
||||
if(sizeof($data) >= 23)
|
||||
{
|
||||
$item_data = array(
|
||||
'name' => $data[1],
|
||||
'description' => $data[11],
|
||||
'category' => $data[2],
|
||||
'cost_price' => $data[4],
|
||||
'unit_price' => $data[5],
|
||||
'reorder_level' => $data[10],
|
||||
'supplier_id' => $this->Supplier->exists($data[3]) ? $data[3] : NULL,
|
||||
'allow_alt_description' => $data[12] != '' ? '1' : '0',
|
||||
'is_serialized' => $data[13] != '' ? '1' : '0',
|
||||
'custom1' => $data[14],
|
||||
'custom2' => $data[15],
|
||||
'custom3' => $data[16],
|
||||
'custom4' => $data[17],
|
||||
'custom5' => $data[18],
|
||||
'custom6' => $data[19],
|
||||
'custom7' => $data[20],
|
||||
'custom8' => $data[21],
|
||||
'custom9' => $data[22],
|
||||
'custom10' => $data[23]
|
||||
);
|
||||
$item_number = $data[0];
|
||||
$invalidated = FALSE;
|
||||
if($item_number != '')
|
||||
{
|
||||
$item_data['item_number'] = $item_number;
|
||||
$invalidated = $this->Item->item_number_exists($item_number);
|
||||
}
|
||||
$item_data = array(
|
||||
'name' => $data[1],
|
||||
'description' => $data[11],
|
||||
'category' => $data[2],
|
||||
'cost_price' => $data[4],
|
||||
'unit_price' => $data[5],
|
||||
'reorder_level' => $data[10],
|
||||
'supplier_id' => $this->Supplier->exists($data[3]) ? $data[3] : NULL,
|
||||
'allow_alt_description' => $data[12] != '' ? '1' : '0',
|
||||
'is_serialized' => $data[13] != '' ? '1' : '0',
|
||||
'custom1' => $data[14],
|
||||
'custom2' => $data[15],
|
||||
'custom3' => $data[16],
|
||||
'custom4' => $data[17],
|
||||
'custom5' => $data[18],
|
||||
'custom6' => $data[19],
|
||||
'custom7' => $data[20],
|
||||
'custom8' => $data[21],
|
||||
'custom9' => $data[22],
|
||||
'custom10' => $data[23]
|
||||
);
|
||||
|
||||
/* we could do something like this, however, the effectiveness of
|
||||
this is rather limited, since for now, you have to upload files manually
|
||||
into that directory, so you really can do whatever you want, this probably
|
||||
needs further discussion */
|
||||
|
||||
$pic_file = $data[24];
|
||||
/*if(strcmp('.htaccess', $pic_file)==0)
|
||||
{
|
||||
$pic_file='';
|
||||
}*/
|
||||
$item_data['pic_filename'] = $pic_file;
|
||||
|
||||
$item_number = $data[0];
|
||||
$invalidated = FALSE;
|
||||
if($item_number != '')
|
||||
{
|
||||
$item_data['item_number'] = $item_number;
|
||||
$invalidated = $this->Item->item_number_exists($item_number);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$invalidated = TRUE;
|
||||
}
|
||||
|
||||
if(!$invalidated && $this->Item->save($item_data))
|
||||
{
|
||||
$items_taxes_data = NULL;
|
||||
//tax 1
|
||||
if(is_numeric($data[7]) && $data[6] != '')
|
||||
{
|
||||
$items_taxes_data[] = array('name' => $data[6], 'percent' => $data[7] );
|
||||
}
|
||||
if(!$invalidated && $this->Item->save($item_data))
|
||||
{
|
||||
$items_taxes_data = NULL;
|
||||
//tax 1
|
||||
if(is_numeric($data[7]) && $data[6] != '')
|
||||
{
|
||||
$items_taxes_data[] = array('name' => $data[6], 'percent' => $data[7] );
|
||||
}
|
||||
|
||||
//tax 2
|
||||
if(is_numeric($data[9]) && $data[8] != '')
|
||||
{
|
||||
$items_taxes_data[] = array('name' => $data[8], 'percent' => $data[9] );
|
||||
}
|
||||
//tax 2
|
||||
if(is_numeric($data[9]) && $data[8] != '')
|
||||
{
|
||||
$items_taxes_data[] = array('name' => $data[8], 'percent' => $data[9] );
|
||||
}
|
||||
|
||||
// save tax values
|
||||
if(count($items_taxes_data) > 0)
|
||||
{
|
||||
$this->Item_taxes->save($items_taxes_data, $item_data['item_id']);
|
||||
}
|
||||
// save tax values
|
||||
if(count($items_taxes_data) > 0)
|
||||
{
|
||||
$this->Item_taxes->save($items_taxes_data, $item_data['item_id']);
|
||||
}
|
||||
|
||||
// quantities & inventory Info
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$emp_info = $this->Employee->get_info($employee_id);
|
||||
$comment ='Qty CSV Imported';
|
||||
// quantities & inventory Info
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$emp_info = $this->Employee->get_info($employee_id);
|
||||
$comment ='Qty CSV Imported';
|
||||
|
||||
$cols = count($data);
|
||||
$cols = count($data);
|
||||
|
||||
// array to store information if location got a quantity
|
||||
$allowed_locations = $this->Stock_location->get_allowed_locations();
|
||||
for ($col = 24; $col < $cols; $col = $col + 2)
|
||||
{
|
||||
$location_id = $data[$col];
|
||||
if(array_key_exists($location_id, $allowed_locations))
|
||||
{
|
||||
$item_quantity_data = array(
|
||||
'item_id' => $item_data['item_id'],
|
||||
'location_id' => $location_id,
|
||||
'quantity' => $data[$col + 1],
|
||||
);
|
||||
$this->Item_quantity->save($item_quantity_data, $item_data['item_id'], $location_id);
|
||||
// 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)
|
||||
{
|
||||
$location_id = $data[$col];
|
||||
if(array_key_exists($location_id, $allowed_locations))
|
||||
{
|
||||
$item_quantity_data = array(
|
||||
'item_id' => $item_data['item_id'],
|
||||
'location_id' => $location_id,
|
||||
'quantity' => $data[$col + 1],
|
||||
);
|
||||
$this->Item_quantity->save($item_quantity_data, $item_data['item_id'], $location_id);
|
||||
|
||||
$excel_data = array(
|
||||
'trans_items' => $item_data['item_id'],
|
||||
'trans_user' => $employee_id,
|
||||
'trans_comment' => $comment,
|
||||
'trans_location' => $data[$col],
|
||||
'trans_inventory' => $data[$col + 1]
|
||||
);
|
||||
$excel_data = array(
|
||||
'trans_items' => $item_data['item_id'],
|
||||
'trans_user' => $employee_id,
|
||||
'trans_comment' => $comment,
|
||||
'trans_location' => $data[$col],
|
||||
'trans_inventory' => $data[$col + 1]
|
||||
);
|
||||
|
||||
$this->Inventory->insert($excel_data);
|
||||
unset($allowed_locations[$location_id]);
|
||||
}
|
||||
}
|
||||
$this->Inventory->insert($excel_data);
|
||||
unset($allowed_locations[$location_id]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* now iterate through the array and check for which location_id no entry into item_quantities was made yet
|
||||
* those get an entry with quantity as 0.
|
||||
* unfortunately a bit duplicate code from above...
|
||||
*/
|
||||
foreach($allowed_locations as $location_id => $location_name)
|
||||
{
|
||||
$item_quantity_data = array(
|
||||
'item_id' => $item_data['item_id'],
|
||||
'location_id' => $location_id,
|
||||
'quantity' => 0,
|
||||
);
|
||||
$this->Item_quantity->save($item_quantity_data, $item_data['item_id'], $data[$col]);
|
||||
/*
|
||||
* now iterate through the array and check for which location_id no entry into item_quantities was made yet
|
||||
* those get an entry with quantity as 0.
|
||||
* unfortunately a bit duplicate code from above...
|
||||
*/
|
||||
foreach($allowed_locations as $location_id => $location_name)
|
||||
{
|
||||
$item_quantity_data = array(
|
||||
'item_id' => $item_data['item_id'],
|
||||
'location_id' => $location_id,
|
||||
'quantity' => 0,
|
||||
);
|
||||
$this->Item_quantity->save($item_quantity_data, $item_data['item_id'], $data[$col]);
|
||||
|
||||
$excel_data = array(
|
||||
$excel_data = array(
|
||||
'trans_items' => $item_data['item_id'],
|
||||
'trans_user' => $employee_id,
|
||||
'trans_comment' => $comment,
|
||||
@@ -713,16 +798,16 @@ class Items extends Secure_Controller
|
||||
'trans_inventory' => 0
|
||||
);
|
||||
|
||||
$this->Inventory->insert($excel_data);
|
||||
}
|
||||
}
|
||||
else //insert or update item failure
|
||||
{
|
||||
$failCodes[] = $i;
|
||||
}
|
||||
$this->Inventory->insert($excel_data);
|
||||
}
|
||||
}
|
||||
else //insert or update item failure
|
||||
{
|
||||
$failCodes[] = $i;
|
||||
}
|
||||
|
||||
++$i;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($failCodes) > 0)
|
||||
{
|
||||
@@ -737,9 +822,36 @@ class Items extends Secure_Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('items_excel_import_nodata_wrongformat')));
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('items_excel_import_nodata_wrongformat')));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Guess whether file extension is not in the table field,
|
||||
* if it isn't, then it's an old-format (formerly pic_id) field,
|
||||
* so we guess the right filename and update the table
|
||||
* @param $item the item to update
|
||||
*/
|
||||
private function _update_pic_filename($item)
|
||||
{
|
||||
$filename = pathinfo($item->pic_filename, PATHINFO_FILENAME);
|
||||
|
||||
// if the field is empty there's nothing to check
|
||||
if(!empty($filename))
|
||||
{
|
||||
$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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Login extends CI_Controller
|
||||
class Login extends CI_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
if($this->Employee->is_logged_in())
|
||||
@@ -15,33 +10,21 @@ class Login extends CI_Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->form_validation->set_rules('username', 'lang:login_undername', 'callback_login_check');
|
||||
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
|
||||
|
||||
|
||||
$this->form_validation->set_rules('username', 'lang:login_username', 'required|callback_login_check');
|
||||
|
||||
if($this->config->item('gcaptcha_enable'))
|
||||
{
|
||||
$this->form_validation->set_rules('g-recaptcha-response', 'lang:login_gcaptcha', 'required|callback_gcaptcha_check');
|
||||
}
|
||||
|
||||
if($this->form_validation->run() == FALSE)
|
||||
{
|
||||
$this->load->view('login');
|
||||
}
|
||||
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', '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'));
|
||||
}
|
||||
|
||||
redirect('home');
|
||||
}
|
||||
}
|
||||
@@ -51,9 +34,9 @@ class Login extends CI_Controller
|
||||
{
|
||||
$password = $this->input->post('password');
|
||||
|
||||
if($this->_security_check($username, $password))
|
||||
if(!$this->_installation_check())
|
||||
{
|
||||
$this->form_validation->set_message('login_check', 'Security check failure');
|
||||
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_installation'));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -65,12 +48,57 @@ class Login extends CI_Controller
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
// trigger any required upgrade before starting the application
|
||||
$this->load->library('migration');
|
||||
$this->migration->latest();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
private function _security_check($username, $password)
|
||||
|
||||
public function gcaptcha_check($recaptchaResponse)
|
||||
{
|
||||
return preg_match('~\b(Copyright|(c)|<7C>|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'));
|
||||
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $this->config->item('gcaptcha_secret_key') . '&response=' . $recaptchaResponse . '&remoteip=' . $this->input->ip_address();
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
$status = json_decode($result, TRUE);
|
||||
|
||||
if(empty($status['success']))
|
||||
{
|
||||
$this->form_validation->set_message('gcaptcha_check', $this->lang->line('login_invalid_gcaptcha'));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
private function _installation_check()
|
||||
{
|
||||
// get PHP extensions and check that the required ones are installed
|
||||
$extensions = implode(', ', get_loaded_extensions());
|
||||
$keys = array('bcmath', 'intl', 'gd', 'openssl', 'mbstring', 'curl');
|
||||
$pattern = '/';
|
||||
foreach($keys as $key)
|
||||
{
|
||||
$pattern .= '(?=.*\b' . preg_quote($key, '/') . '\b)';
|
||||
}
|
||||
$pattern .= '/i';
|
||||
$result = preg_match($pattern, $extensions);
|
||||
|
||||
if(!$result)
|
||||
{
|
||||
error_log('Check your php.ini');
|
||||
error_log('PHP installed extensions: ' . $extensions);
|
||||
error_log('PHP required extensions: ' . implode(', ', $keys));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -2,11 +2,6 @@
|
||||
|
||||
class No_Access extends CI_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function index($module_id = '', $permission_id = '')
|
||||
{
|
||||
$data['module_name'] = $this->Module->get_module_name($module_id);
|
||||
@@ -17,4 +12,4 @@ class No_Access extends CI_Controller
|
||||
$this->load->view('no_access', $data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
22
application/controllers/Office.php
Normal file
22
application/controllers/Office.php
Normal 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();
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -6,9 +6,16 @@ abstract class Persons extends Secure_Controller
|
||||
{
|
||||
public function __construct($module_id = NULL)
|
||||
{
|
||||
parent::__construct($module_id);
|
||||
parent::__construct($module_id);
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_people_manage_table_headers());
|
||||
|
||||
$this->load->view('people/manage', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
@@ -18,15 +25,31 @@ abstract class Persons extends Secure_Controller
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gets one row for a person manage table. This is called using AJAX to update one row.
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
Capitalize segments of a name, and put the rest into lower case.
|
||||
You can pass the characters you want to use as delimiters as exceptions.
|
||||
The function supports UTF-8 string.
|
||||
|
||||
Example:
|
||||
i.e. <?php echo nameize("john o'grady-smith"); ?>
|
||||
|
||||
returns John O'Grady-Smith
|
||||
*/
|
||||
|
||||
protected function nameize($string)
|
||||
{
|
||||
return str_name_case($string);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -27,6 +27,16 @@ class Receivings extends Secure_Controller
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function stock_item_search()
|
||||
{
|
||||
$suggestions = $this->Item->get_stock_search_suggestions($this->input->get('term'), array('search_custom' => FALSE, 'is_deleted' => FALSE), TRUE);
|
||||
$suggestions = array_merge($suggestions, $this->Item_kit->get_search_suggestions($this->input->get('term')));
|
||||
|
||||
$suggestions = $this->xss_clean($suggestions);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function select_supplier()
|
||||
{
|
||||
$supplier_id = $this->input->post('supplier');
|
||||
@@ -80,7 +90,8 @@ class Receivings extends Secure_Controller
|
||||
|
||||
$mode = $this->receiving_lib->get_mode();
|
||||
$item_id_or_number_or_item_kit_or_receipt = $this->input->post('item');
|
||||
$quantity = ($mode == 'receive' || $mode == 'requisition') ? 1 : -1;
|
||||
$this->barcode_lib->parse_barcode_fields($quantity, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$quantity = ($mode == 'receive' || $mode == 'requisition') ? $quantity : -$quantity;
|
||||
$item_location = $this->receiving_lib->get_stock_source();
|
||||
|
||||
if($mode == 'return' && $this->Receiving->is_valid_receipt($item_id_or_number_or_item_kit_or_receipt))
|
||||
@@ -137,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);
|
||||
}
|
||||
@@ -187,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();
|
||||
@@ -274,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'];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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; }
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -8,20 +8,20 @@ class Suppliers extends Persons
|
||||
{
|
||||
parent::__construct('suppliers');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_suppliers_manage_table_headers());
|
||||
|
||||
$this->load->view('people/manage', $data);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gets one row for a supplier manage table. This is called using AJAX to update one row.
|
||||
*/
|
||||
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));
|
||||
}
|
||||
|
||||
@@ -88,11 +86,19 @@ class Suppliers extends Persons
|
||||
*/
|
||||
public function save($supplier_id = -1)
|
||||
{
|
||||
$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' => $this->input->post('first_name'),
|
||||
'last_name' => $this->input->post('last_name'),
|
||||
'first_name' => $first_name,
|
||||
'last_name' => $last_name,
|
||||
'gender' => $this->input->post('gender'),
|
||||
'email' => $this->input->post('email'),
|
||||
'email' => $email,
|
||||
'phone_number' => $this->input->post('phone_number'),
|
||||
'address_1' => $this->input->post('address_1'),
|
||||
'address_2' => $this->input->post('address_2'),
|
||||
@@ -102,6 +108,7 @@ class Suppliers extends Persons
|
||||
'country' => $this->input->post('country'),
|
||||
'comments' => $this->input->post('comments')
|
||||
);
|
||||
|
||||
$supplier_data = array(
|
||||
'company_name' => $this->input->post('company_name'),
|
||||
'agency_name' => $this->input->post('agency_name'),
|
||||
@@ -115,21 +122,24 @@ class Suppliers extends Persons
|
||||
//New supplier
|
||||
if($supplier_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('suppliers_successful_adding').' '.
|
||||
$supplier_data['company_name'], 'id' => $supplier_data['person_id']));
|
||||
echo json_encode(array('success' => TRUE,
|
||||
'message' => $this->lang->line('suppliers_successful_adding') . ' ' . $supplier_data['company_name'],
|
||||
'id' => $supplier_data['person_id']));
|
||||
}
|
||||
else //Existing supplier
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('suppliers_successful_updating').' '.
|
||||
$supplier_data['company_name'], 'id' => $supplier_id));
|
||||
echo json_encode(array('success' => TRUE,
|
||||
'message' => $this->lang->line('suppliers_successful_updating') . ' ' . $supplier_data['company_name'],
|
||||
'id' => $supplier_id));
|
||||
}
|
||||
}
|
||||
else//failure
|
||||
{
|
||||
$supplier_data = $this->xss_clean($supplier_data);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('suppliers_error_adding_updating').' '.
|
||||
$supplier_data['company_name'], 'id' => -1));
|
||||
echo json_encode(array('success' => FALSE,
|
||||
'message' => $this->lang->line('suppliers_error_adding_updating') . ' ' . $supplier_data['company_name'],
|
||||
'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,4 +162,4 @@ class Suppliers extends Persons
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
220
application/controllers/Taxes.php
Normal file
220
application/controllers/Taxes.php
Normal file
@@ -0,0 +1,220 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Taxes extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('taxes');
|
||||
|
||||
$this->load->model('enums/Rounding_mode');
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_taxes_manage_table_headers());
|
||||
|
||||
$this->load->view('taxes/manage', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
Returns tax_codes 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');
|
||||
|
||||
$tax_codes = $this->Tax->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
$total_rows = $this->Tax->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
foreach($tax_codes->result() as $tax_code_row)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_tax_data_row($tax_code_row));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
public function suggest_search()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Tax->get_search_suggestions($this->input->post('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
/*
|
||||
Provides list of tax categories to select from
|
||||
*/
|
||||
public function suggest_tax_categories()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Tax->get_tax_category_suggestions($this->input->post('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_tax_codes_data_row($this->Tax->get_info($row_id), $this));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function view($tax_code = -1)
|
||||
{
|
||||
$tax_code_info = $this->Tax->get_info($tax_code);
|
||||
|
||||
$default_tax_category_id = 1; // Tax category id is always the default tax category
|
||||
$default_tax_category = $this->Tax->get_tax_category($default_tax_category_id);
|
||||
|
||||
$tax_rate_info = $this->Tax->get_rate_info($tax_code, $default_tax_category_id);
|
||||
|
||||
$data['rounding_options'] = Rounding_mode::get_rounding_options();
|
||||
$data['html_rounding_options'] = $this->get_html_rounding_options();
|
||||
|
||||
if($tax_code == -1)
|
||||
{
|
||||
$data['tax_code'] = '';
|
||||
$data['tax_code_name'] = '';
|
||||
$data['tax_code_type'] = '0';
|
||||
$data['city'] = '';
|
||||
$data['state'] = '';
|
||||
$data['tax_rate'] = '0.0000';
|
||||
$data['rate_tax_code'] = '';
|
||||
$data['rate_tax_category_id'] = 1;
|
||||
$data['tax_category'] = '';
|
||||
$data['add_tax_category'] = '';
|
||||
$data['rounding_code'] = '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['tax_code'] = $tax_code;
|
||||
$data['tax_code_name'] = $tax_code_info->tax_code_name;
|
||||
$data['tax_code_type'] = $tax_code_info->tax_code_type;
|
||||
$data['city'] = $tax_code_info->city;
|
||||
$data['state'] = $tax_code_info->state;
|
||||
$data['rate_tax_code'] = $tax_code_info->rate_tax_code;
|
||||
$data['rate_tax_category_id'] = $tax_code_info->rate_tax_category_id;
|
||||
$data['tax_category'] = $tax_code_info->tax_category;
|
||||
$data['add_tax_category'] = '';
|
||||
$data['tax_rate'] = $tax_rate_info->tax_rate;
|
||||
$data['rounding_code'] = $tax_rate_info->rounding_code;
|
||||
}
|
||||
|
||||
$data = $this->xss_clean($data);
|
||||
|
||||
$tax_code_rates = array();
|
||||
foreach($this->Tax->get_tax_code_rate_exceptions($tax_code) as $tax_code_rate)
|
||||
{
|
||||
$tax_code_row = array();
|
||||
$tax_code_row['rate_tax_category_id'] = $this->xss_clean($tax_code_rate['rate_tax_category_id']);
|
||||
$tax_code_row['tax_category'] = $this->xss_clean($tax_code_rate['tax_category']);
|
||||
$tax_code_row['tax_rate'] = $this->xss_clean($tax_code_rate['tax_rate']);
|
||||
$tax_code_row['rounding_code'] = $this->xss_clean($tax_code_rate['rounding_code']);
|
||||
|
||||
$tax_code_rates[] = $tax_code_row;
|
||||
}
|
||||
|
||||
$data['tax_code_rates'] = $tax_code_rates;
|
||||
|
||||
$this->load->view("taxes/form", $data);
|
||||
}
|
||||
|
||||
public static function get_html_rounding_options()
|
||||
{
|
||||
return Rounding_mode::get_html_rounding_options();
|
||||
}
|
||||
|
||||
public function save($tax_code = -1)
|
||||
{
|
||||
$entered_tax_code = $this->xss_clean($this->input->post('tax_code'));
|
||||
$tax_code_data = array(
|
||||
'tax_code' => strtoupper($this->input->post('tax_code')),
|
||||
'tax_code_name' => $this->input->post('tax_code_name'),
|
||||
'tax_code_type' => $this->input->post('tax_code_type'),
|
||||
'city' => $this->input->post('city'),
|
||||
'state' => $this->input->post('state'));
|
||||
|
||||
$tax_rate_data = array(
|
||||
'rate_tax_code' => $this->input->post('tax_code'),
|
||||
'rate_tax_category_id' => 1,
|
||||
'tax_rate' => parse_decimals($this->input->post('tax_rate')),
|
||||
'rounding_code' => $this->input->post('rounding_code')
|
||||
);
|
||||
|
||||
if($this->Tax->save($tax_code_data, $tax_rate_data, $tax_code))
|
||||
{
|
||||
$tax_code_rate_exceptions = array();
|
||||
if(!empty($this->input->post('exception_tax_rate')))
|
||||
{
|
||||
foreach($this->input->post('exception_tax_rate') as $tax_category_id => $exception_tax_rate)
|
||||
{
|
||||
$exception_rounding_code = $this->input->post('exception_rounding_code[' . $tax_category_id . ']');
|
||||
$tax_code_rate_exceptions[] = array(
|
||||
'rate_tax_code' => $entered_tax_code,
|
||||
'rate_tax_category_id' => $tax_category_id,
|
||||
'tax_rate' => $exception_tax_rate,
|
||||
'rounding_code' => $exception_rounding_code
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($tax_code_rate_exceptions))
|
||||
{
|
||||
$success = $this->Tax->save_tax_rate_exceptions($tax_code_rate_exceptions, $entered_tax_code);
|
||||
}
|
||||
|
||||
$tax_code_data = $this->xss_clean($tax_code_data);
|
||||
|
||||
//New tax_code record
|
||||
if($tax_code == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_code_successfully_added') . ' ' . $entered_tax_code));
|
||||
}
|
||||
else //Existing tax_code
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_code_successful_updated') . ' ' . $entered_tax_code));
|
||||
}
|
||||
}
|
||||
else //failure
|
||||
{
|
||||
$tax_code_data = $this->xss_clean($tax_code_data);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_tax_code_error_adding_updating') . ' ' .
|
||||
$entered_tax_code));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$tax_codes_to_delete = $this->xss_clean($this->input->post('ids'));
|
||||
|
||||
if($this->Tax->delete_list($tax_codes_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_code_successful_deleted')));
|
||||
} else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_tax_code_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
|
||||
public function suggest_sales_tax_codes()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Tax->get_sales_tax_codes_search_suggestions($this->input->post_get('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -1,19 +1,13 @@
|
||||
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class MY_Lang extends CI_Lang
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
function switch_to( $idiom )
|
||||
public function switch_to($idiom)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
if( is_string( $idiom ) )
|
||||
if(is_string($idiom))
|
||||
{
|
||||
$CI->config->set_item( 'language', $idiom );
|
||||
$CI->config->set_item('language', $idiom);
|
||||
$loaded = $this->is_loaded;
|
||||
$this->is_loaded = array();
|
||||
|
||||
@@ -32,7 +26,7 @@ class MY_Lang extends CI_Lang
|
||||
* @access public
|
||||
* @return mixed false if not found or the language string
|
||||
*/
|
||||
function line($line = '', $log_errors = true)
|
||||
public function line($line = '', $log_errors = TRUE)
|
||||
{
|
||||
//get the arguments passed to the function
|
||||
$args = func_get_args();
|
||||
@@ -41,28 +35,28 @@ class MY_Lang extends CI_Lang
|
||||
$c = count($args);
|
||||
|
||||
//if one or more arguments, perform the necessary processing
|
||||
if ($c)
|
||||
if($c)
|
||||
{
|
||||
//first argument should be the actual language line key
|
||||
//so remove it from the array (pop from front)
|
||||
$line = array_shift($args);
|
||||
|
||||
//check to make sure the key is valid and load the line
|
||||
if ($line == '')
|
||||
if($line == '')
|
||||
{
|
||||
$line = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isset($this->language[$line]))
|
||||
if(isset($this->language[$line]) && $this->language[$line] != '')
|
||||
{
|
||||
$line = $this->language[$line];
|
||||
//if the line exists and more function arguments remain
|
||||
//perform wildcard replacements
|
||||
if ($args)
|
||||
if($args)
|
||||
{
|
||||
$i = 1;
|
||||
foreach ($args as $arg)
|
||||
foreach($args as $arg)
|
||||
{
|
||||
$line = preg_replace('/\%'.$i.'/', $arg, $line);
|
||||
++$i;
|
||||
@@ -80,17 +74,16 @@ class MY_Lang extends CI_Lang
|
||||
else
|
||||
{
|
||||
//if no arguments given, no language line available
|
||||
$line = false;
|
||||
$line = FALSE;
|
||||
}
|
||||
|
||||
return $line;
|
||||
}
|
||||
|
||||
function line_tbd($line='')
|
||||
public function line_tbd($line = '')
|
||||
{
|
||||
return $line . ' (TBD)';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
function pdf_create($html, $filename = '')
|
||||
/**
|
||||
* PDF helper
|
||||
*/
|
||||
|
||||
function pdf_create($html, $filename = '')
|
||||
{
|
||||
// need to enable magic quotes for the
|
||||
$magic_quotes_enabled = get_magic_quotes_runtime();
|
||||
@@ -28,4 +32,4 @@ function pdf_create($html, $filename = '')
|
||||
return $dompdf->output();
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -1,102 +1,385 @@
|
||||
<?php
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
* Currency locale
|
||||
/**
|
||||
* 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;
|
||||
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::CURRENCY);
|
||||
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
|
||||
return !preg_match('/^¤/', $fmt->getPattern());
|
||||
$config = get_instance()->config;
|
||||
|
||||
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::CURRENCY);
|
||||
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $config->item('currency_symbol'));
|
||||
|
||||
return !preg_match('/^¤/', $fmt->getPattern());
|
||||
}
|
||||
|
||||
function quantity_decimals()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
return $config->item('quantity_decimals') ? $config->item('quantity_decimals') : 0;
|
||||
$config = get_instance()->config;
|
||||
|
||||
return $config->item('quantity_decimals') ? $config->item('quantity_decimals') : 0;
|
||||
}
|
||||
|
||||
function totals_decimals()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
return $config->item('currency_decimals') ? $config->item('currency_decimals') : 0;
|
||||
}
|
||||
|
||||
function cash_decimals()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
return $config->item('cash_decimals') ? $config->item('cash_decimals') : 0;
|
||||
}
|
||||
|
||||
function tax_decimals()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
return $config->item('tax_decimals') ? $config->item('tax_decimals') : 0;
|
||||
}
|
||||
|
||||
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')
|
||||
{
|
||||
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
return to_decimals($number, 'tax_decimals');
|
||||
if(empty($number))
|
||||
{
|
||||
return $number;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
$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);
|
||||
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'));
|
||||
|
||||
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, '');
|
||||
}
|
||||
return $fmt->parse($number);
|
||||
$config = get_instance()->config;
|
||||
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::DECIMAL);
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -105,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);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
40
application/helpers/migration_helper.php
Normal file
40
application/helpers/migration_helper.php
Normal 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");
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,10 +1,14 @@
|
||||
<?php
|
||||
<?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();
|
||||
|
||||
$permission_id = empty($permission_id) ? 'reports_' . $report_name : $permission_id;
|
||||
$permission_id = empty($permission_id) ? 'reports_' . $report_name : $permission_id;
|
||||
if($CI->Employee->has_grant($permission_id, $person_id))
|
||||
{
|
||||
show_report($report_prefix, $report_name, $permission_id);
|
||||
@@ -23,8 +27,7 @@ function show_report($report_prefix, $report_name, $lang_key='')
|
||||
{
|
||||
?>
|
||||
<a class="list-group-item" href="<?php echo site_url('reports/' . $report_prefix . preg_replace('/reports_(.*)/', '$1', $report_name));?>"><?php echo $report_label; ?></a>
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -1,5 +1,60 @@
|
||||
<?php
|
||||
<?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('(^$| )', $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('(^$| )', current($element)),
|
||||
'sortable' => isset($element['sortable']) ? $element['sortable'] : current($element) != '',
|
||||
'checkbox' => isset($element['checkbox']) ? $element['checkbox'] : FALSE,
|
||||
'class' => isset($element['checkbox']) || preg_match('(^$| )', 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();
|
||||
@@ -13,50 +68,29 @@ function get_sales_manage_table_headers()
|
||||
array('change_due' => $CI->lang->line('sales_change_due')),
|
||||
array('payment_type' => $CI->lang->line('sales_payment_type'))
|
||||
);
|
||||
|
||||
|
||||
if($CI->config->item('invoice_enable') == TRUE)
|
||||
{
|
||||
$headers[] = array('invoice_number' => $CI->lang->line('sales_invoice_number'));
|
||||
$headers[] = array('invoice' => ' ', 'sortable' => FALSE);
|
||||
}
|
||||
|
||||
return transform_headers(array_merge($headers, array(array('receipt' => ' ', 'sortable' => FALSE))));
|
||||
$headers[] = array('receipt' => ' ', '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">';
|
||||
@@ -103,56 +163,17 @@ function get_sales_manage_payments_summary($payments, $sales, $controller)
|
||||
$amount -= $sale['change_due'];
|
||||
}
|
||||
}
|
||||
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency( $amount ) . '</div>';
|
||||
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency($amount) . '</div>';
|
||||
}
|
||||
$table .= '</div>';
|
||||
|
||||
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('(^$| )', $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)
|
||||
{
|
||||
$result[] = array('field' => key($element),
|
||||
'title' => current($element),
|
||||
'switchable' => isset($element['switchable']) ?
|
||||
$element['switchable'] : !preg_match('(^$| )', current($element)),
|
||||
'sortable' => isset($element['sortable']) ?
|
||||
$element['sortable'] : current($element) != '',
|
||||
'checkbox' => isset($element['checkbox']) ?
|
||||
$element['checkbox'] : FALSE,
|
||||
'class' => isset($element['checkbox']) || preg_match('(^$| )', 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();
|
||||
@@ -169,14 +190,17 @@ function get_people_manage_table_headers()
|
||||
{
|
||||
$headers[] = array('messages' => '', 'sortable' => FALSE);
|
||||
}
|
||||
|
||||
|
||||
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));
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'people.person_id' => $person->person_id,
|
||||
@@ -184,13 +208,64 @@ function get_person_data_row($person, $controller)
|
||||
'first_name' => $person->first_name,
|
||||
'email' => empty($person->email) ? '' : mailto($person->email, $person->email),
|
||||
'phone_number' => $person->phone_number,
|
||||
'messages' => empty($person->phone_number) ? '' : anchor("Messages/view/$person->person_id", '<span class="glyphicon glyphicon-phone"></span>',
|
||||
'messages' => empty($person->phone_number) ? '' : anchor("Messages/view/$person->person_id", '<span class="glyphicon glyphicon-phone"></span>',
|
||||
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line('messages_sms_send'))),
|
||||
'edit' => anchor($controller_name."/view/$person->person_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 customer tabular view
|
||||
*/
|
||||
function get_customer_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('people.person_id' => $CI->lang->line('common_id')),
|
||||
array('last_name' => $CI->lang->line('common_last_name')),
|
||||
array('first_name' => $CI->lang->line('common_first_name')),
|
||||
array('email' => $CI->lang->line('common_email')),
|
||||
array('phone_number' => $CI->lang->line('common_phone_number')),
|
||||
array('total' => $CI->lang->line('common_total_spent'), 'sortable' => FALSE)
|
||||
);
|
||||
|
||||
if($CI->Employee->has_grant('messages', $CI->session->userdata('person_id')))
|
||||
{
|
||||
$headers[] = array('messages' => '', 'sortable' => FALSE);
|
||||
}
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the html data row for the customer
|
||||
*/
|
||||
function get_customer_data_row($person, $stats)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'people.person_id' => $person->person_id,
|
||||
'last_name' => $person->last_name,
|
||||
'first_name' => $person->first_name,
|
||||
'email' => empty($person->email) ? '' : mailto($person->email, $person->email),
|
||||
'phone_number' => $person->phone_number,
|
||||
'total' => to_currency($stats->total),
|
||||
'messages' => empty($person->phone_number) ? '' : anchor("Messages/view/$person->person_id", '<span class="glyphicon glyphicon-phone"></span>',
|
||||
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line('messages_sms_send'))),
|
||||
'edit' => anchor($controller_name."/view/$person->person_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 suppliers tabular view
|
||||
*/
|
||||
function get_suppliers_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
@@ -213,10 +288,13 @@ 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));
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'people.person_id' => $supplier->person_id,
|
||||
@@ -226,13 +304,17 @@ function get_supplier_data_row($supplier, $controller)
|
||||
'first_name' => $supplier->first_name,
|
||||
'email' => empty($supplier->email) ? '' : mailto($supplier->email, $supplier->email),
|
||||
'phone_number' => $supplier->phone_number,
|
||||
'messages' => empty($supplier->phone_number) ? '' : anchor("Messages/view/$supplier->person_id", '<span class="glyphicon glyphicon-phone"></span>',
|
||||
'messages' => empty($supplier->phone_number) ? '' : anchor("Messages/view/$supplier->person_id", '<span class="glyphicon glyphicon-phone"></span>',
|
||||
array('class'=>"modal-dlg", 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line('messages_sms_send'))),
|
||||
'edit' => anchor($controller_name."/view/$supplier->person_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 items tabular view
|
||||
*/
|
||||
function get_items_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
@@ -255,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);
|
||||
@@ -268,13 +353,24 @@ function get_item_data_row($item, $controller)
|
||||
$tax_percents = substr($tax_percents, 0, -2);
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
$image = '';
|
||||
if ($item->pic_id != '')
|
||||
$image = NULL;
|
||||
if($item->pic_filename != '')
|
||||
{
|
||||
$images = glob('./uploads/item_pics/' . $item->pic_id . '.*');
|
||||
if (sizeof($images) > 0)
|
||||
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
|
||||
if($ext == '')
|
||||
{
|
||||
$image .= '<a class="rollover" href="'. base_url($images[0]) .'"><img src="'.site_url('items/pic_thumb/'.$item->pic_id).'"></a>';
|
||||
// legacy
|
||||
$images = glob('./uploads/item_pics/' . $item->pic_filename . '.*');
|
||||
}
|
||||
else
|
||||
{
|
||||
// preferred
|
||||
$images = glob('./uploads/item_pics/' . $item->pic_filename);
|
||||
}
|
||||
|
||||
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>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,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();
|
||||
@@ -315,7 +415,10 @@ function get_giftcards_manage_table_headers()
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
function get_giftcard_data_row($giftcard, $controller)
|
||||
/*
|
||||
Get the html data row for the giftcard
|
||||
*/
|
||||
function get_giftcard_data_row($giftcard)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
$controller_name=strtolower(get_class($CI));
|
||||
@@ -331,6 +434,54 @@ function get_giftcard_data_row($giftcard, $controller)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Get the header for the taxes tabular view
|
||||
*/
|
||||
function get_taxes_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('tax_code' => $CI->lang->line('taxes_tax_code')),
|
||||
array('tax_code_name' => $CI->lang->line('taxes_tax_code_name')),
|
||||
array('tax_code_type_name' => $CI->lang->line('taxes_tax_code_type')),
|
||||
array('tax_rate' => $CI->lang->line('taxes_tax_rate')),
|
||||
array('rounding_code_name' => $CI->lang->line('taxes_rounding_code')),
|
||||
array('city' => $CI->lang->line('common_city')),
|
||||
array('state' => $CI->lang->line('common_state'))
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
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));
|
||||
|
||||
return array (
|
||||
'tax_code' => $tax_code_row->tax_code,
|
||||
'tax_code_name' => $tax_code_row->tax_code_name,
|
||||
'tax_code_type' => $tax_code_row->tax_code_type,
|
||||
'tax_rate' => $tax_code_row->tax_rate,
|
||||
'rounding_code' =>$tax_code_row->rounding_code,
|
||||
'tax_code_type_name' => $CI->Tax->get_tax_code_type_name($tax_code_row->tax_code_type),
|
||||
'rounding_code_name' => Rounding_mode::get_rounding_code_name($tax_code_row->rounding_code),
|
||||
'city' => $tax_code_row->city,
|
||||
'state' => $tax_code_row->state,
|
||||
'edit' => anchor($controller_name."/view/$tax_code_row->tax_code", '<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 item kits tabular view
|
||||
*/
|
||||
function get_item_kits_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
@@ -339,27 +490,152 @@ 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));
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'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;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
?>
|
||||
|
||||
@@ -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');
|
||||
$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
|
||||
@@ -33,17 +36,16 @@ function load_config()
|
||||
date_default_timezone_set('America/New_York');
|
||||
}
|
||||
|
||||
bcscale(max(2, $CI->config->item('currency_decimals') + $CI->config->item('tax_decimals')));
|
||||
bcscale(max(2, totals_decimals() + tax_decimals()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @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)
|
||||
@@ -55,4 +57,4 @@ function load_language_files($path, $language)
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
$lang["tables_loading"] = "جارى التحميل، برجاء الإنتظار";
|
||||
$lang["tables_rows_per_page"] = "{0} صف بالصفحة";
|
||||
$lang["tables_page_from_to"] = "عرض {0} إلى {1} من {2} صفوف";
|
||||
$lang["tables_hide_show_pagination"] = "عرض/إخفاء أرقام الصفحات";
|
||||
$lang["tables_refresh"] = "إعادة تحميل";
|
||||
$lang["tables_toggle"] = "تغيير";
|
||||
$lang["tables_columns"] = "أعمدة";
|
||||
$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"] = "تغيير";
|
||||
|
||||
@@ -10,56 +10,59 @@ $lang["common_confirm_search"] = "لقد قمت اختيار أكتر من سج
|
||||
$lang["common_country"] = "البلد";
|
||||
$lang["common_date"] = "التاريخ";
|
||||
$lang["common_delete"] = "حذف";
|
||||
$lang["common_print"] = "طباعة";
|
||||
$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"] = "أنثى";
|
||||
$lang["common_gender_male"] = "ذكر";
|
||||
$lang["common_id"] = "كود";
|
||||
$lang["common_import"] = "استيراد";
|
||||
$lang["common_import_change_file"] = "تغيير";
|
||||
$lang["common_import_excel"] = "استيراد من اكسل";
|
||||
$lang["common_import_full_path"] = "المسار الكامل لملف اكسل مطلوب";
|
||||
$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"] = "رقم التليفون مطلوب";
|
||||
$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 Of Sale ";
|
||||
$lang["common_welcome_message"] = "مرحباً فى OSPOS برجاء إختيار أى قسم للبدء.";
|
||||
$lang["common_you_are_using_ospos"] = "أنت تستخدم إصدار Open Source Point Of Sale";
|
||||
$lang["common_zip"] = "الرقم البريدى";
|
||||
$lang["common_import"] = "استيراد";
|
||||
$lang["common_download_import_template"] = "تنزيل قالب الاستيراد من اكسل (CSV)";
|
||||
$lang["common_import_excel"] = "استيراد من اكسل";
|
||||
$lang["common_import_full_path"] = "المسار الكامل لملف اكسل مطلوب";
|
||||
$lang["common_import_select_file"] = "اختار ملف";
|
||||
$lang["common_import_change_file"] = "تغيير";
|
||||
$lang["common_import_remove_file"] = "إزالة";
|
||||
$lang["common_export_excel"] = "تصدير إلى اكسل";
|
||||
$lang["common_export_excel_yes"] = "نعم";
|
||||
$lang["common_export_excel_no"] = "لا";
|
||||
$lang["common_required"] = "مطلوب";
|
||||
$lang["common_id"] = "كود";
|
||||
|
||||
@@ -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,6 +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_height"] = "الارتفاع (px)";
|
||||
$lang["config_barcode_id"] = "كود/اسم الصنف";
|
||||
$lang["config_barcode_info"] = "معلومات اعدادات الباركود";
|
||||
@@ -18,30 +20,33 @@ $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_barcode_generate_if_empty"] = "توليد اذا كان الباركود فارغ";
|
||||
$lang["config_bottom"] = "الأسفل";
|
||||
$lang["config_cash_decimals"] = "فواصل النقدية";
|
||||
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
|
||||
$lang["config_cash_rounding"] = "التقريب النقدي";
|
||||
$lang["config_center"] = "الوسط";
|
||||
$lang["config_comma"] = "فاصلة";
|
||||
$lang["config_company"] = "اسم الشركة";
|
||||
$lang["config_company_logo"] = "شعار الشركة";
|
||||
$lang["config_company_select_image"] = "اختار صورة";
|
||||
$lang["config_company_change_image"] = "تغيير الصورة";
|
||||
$lang["config_company_logo"] = "شعار الشركة";
|
||||
$lang["config_company_remove_image"] = "إزالة الصورة";
|
||||
$lang["config_company_required"] = "اسم الشركة مطلوب";
|
||||
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح";
|
||||
$lang["config_comma"] = "فاصلة";
|
||||
$lang["config_company_select_image"] = "اختار صورة";
|
||||
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح.";
|
||||
$lang["config_country_codes"] = "أكواد الدولة";
|
||||
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث";
|
||||
$lang["config_currency_symbol"] = "رمز العملة";
|
||||
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث.";
|
||||
$lang["config_currency_decimals"] = "العلامة العشرية للعملة";
|
||||
$lang["config_currency_symbol"] = "رمز العملة";
|
||||
$lang["config_custom1"] = "حقل مخصص 1";
|
||||
$lang["config_custom10"] = "حقل مخصص 10";
|
||||
$lang["config_custom2"] = "حقل مخصص 2";
|
||||
$lang["config_custom3"] = "حقل مخصص 3";
|
||||
$lang["config_custom4"] = "حقل مخصص 4";
|
||||
@@ -50,135 +55,218 @@ $lang["config_custom6"] = "حقل مخصص 6";
|
||||
$lang["config_custom7"] = "حقل مخصص 7";
|
||||
$lang["config_custom8"] = "حقل مخصص 8";
|
||||
$lang["config_custom9"] = "حقل مخصص 9";
|
||||
$lang["config_custom10"] = "حقل مخصص 10";
|
||||
$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_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_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_default_tax_name_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_protocol"] = "بروتوكول";
|
||||
$lang["config_email_mailpath"] = "مسار ارسال البريد";
|
||||
$lang["config_email_smtp_host"] = "خادم SMTP";
|
||||
$lang["config_email_smtp_port"] = "رقم منفذ SMTP";
|
||||
$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_email_smtp_pass"] = "كلمة سر SMTP";
|
||||
$lang["config_enforce_privacy"] = "فرض نظام الخصوصية";
|
||||
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
|
||||
$lang["config_fax"] = "الفاكس";
|
||||
$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_info"] = "معلومات";
|
||||
$lang["config_info_configuration"] = "معلومات الشركة";
|
||||
$lang["config_invoice"] = "الفاتورة";
|
||||
$lang["config_invoice_configuration"] = "إعدادات طباعة الفاتورة";
|
||||
$lang["config_invoice_default_comments"] = "التعليق الافتراضي على الفاتورة";
|
||||
$lang["config_invoice_enable"] = "تفعيل الفوترة";
|
||||
$lang["config_invoice_email_message"] = "قالب البريد الإلكتروني للفاتورة";
|
||||
$lang["config_invoice_enable"] = "تفعيل الفوترة";
|
||||
$lang["config_invoice_printer"] = "طابعة الفواتير";
|
||||
$lang["config_jsprintsetup_required"] = "تحذير! هذه الخاصية غير المفعلة سوف تعمل فقط مع وجود الاضافة jsPrintSetup على متصفح فايرفوكس. حفظ على أى حال؟";
|
||||
$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_lists"] = "mailchimp قوائم";
|
||||
$lang["config_mailchimp_tooltip"] = "انقر على رمز مفتاح API.";
|
||||
$lang["config_message"] = "الرسائل";
|
||||
$lang["config_message_configuration"] = "إعدادات الرسائل";
|
||||
$lang["config_msg_msg"] = "الرسائل النصية المحفوظة";
|
||||
$lang["config_msg_msg_placeholder"] = "إذا أردت إستخدام قالب للرسائل القصيرة احفظه هنا. عدا ذلك أترك هذا الحقل فارغ";
|
||||
$lang["config_msg_uid"] = "SMS-API اسم المستخدم لـ";
|
||||
$lang["config_msg_uid_required"] = "مطلوب SMS-API اسم المستخدم لـ";
|
||||
$lang["config_msg_msg_placeholder"] = "إذا أردت إستخدام قالب للرسائل القصيرة احفظه هنا. عدا ذلك أترك هذا الحقل فارغ.";
|
||||
$lang["config_msg_pwd"] = "SMS-API كلمة السر لـ";
|
||||
$lang["config_msg_pwd_required"] = "مطلوب SMS-API كلمة السر لـ";
|
||||
$lang["config_msg_src"] = "SMS-API كود المرسل لـ";
|
||||
$lang["config_msg_src_required"] = "مطلوب SMS-API كود المرسل لـ";
|
||||
$lang["config_msg_uid"] = "SMS-API اسم المستخدم لـ";
|
||||
$lang["config_msg_uid_required"] = "مطلوب SMS-API اسم المستخدم لـ";
|
||||
$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_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_info"] = "معلومات تهيئة الإيصالات";
|
||||
$lang["config_receipt_printer"] = "طابعة تذاكر";
|
||||
$lang["config_receipt_show_taxes"] = "عرض الضرائب";
|
||||
$lang["config_receipt_show_total_discount"] = "عرض إجمالى الخصم";
|
||||
$lang["config_receipt_short"] = "مختصر";
|
||||
$lang["config_receipt_show_company_name"] = "عرض اسم الشركة";
|
||||
$lang["config_receipt_show_description"] = "عرض الوصف";
|
||||
$lang["config_receipt_show_serialnumber"] = "عرض الرقم المسلسل";
|
||||
$lang["config_receipt_show_taxes"] = "عرض الضرائب";
|
||||
$lang["config_receipt_show_total_discount"] = "عرض إجمالى الخصم";
|
||||
$lang["config_receipt_template"] = "قالب الايصال";
|
||||
$lang["config_receipt_default"] = "افتراضى";
|
||||
$lang["config_receipt_short"] = "مختصر";
|
||||
$lang["config_receiving_calculate_average_price"] = "حساب متوسط سعر الأصناف المستلمة";
|
||||
$lang["config_recv_invoice_format"] = "شكل فاتورة الإستلام";
|
||||
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب";
|
||||
$lang["config_register_mode_default"] = "نمط التسجيل الافتراضي";
|
||||
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب.";
|
||||
$lang["config_reward"] = "المكافاة";
|
||||
$lang["config_reward_configuration"] = "اعدادات المكافاة";
|
||||
$lang["config_right"] = "يمين";
|
||||
$lang["config_sales_invoice_format"] = "شكل فاتورة البيع";
|
||||
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح";
|
||||
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح";
|
||||
$lang["config_statistics"] = "Send statistics";
|
||||
$lang["config_statistics_tooltip"] = "Send statistics for development and feature improvement purposes";
|
||||
$lang["config_sales_quote_format"] = "شكل فاتورة عرض الاسعار";
|
||||
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
|
||||
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
|
||||
$lang["config_show_office_group"] = "اظهار ايكونة المكتب";
|
||||
$lang["config_statistics"] = "إرسال اﻹحصائيات";
|
||||
$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_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"] = "شامل الضريبة";
|
||||
$lang["config_theme"] = "السمة";
|
||||
$lang["config_thousands_separator"] = "فاصل الاف";
|
||||
$lang["config_timezone"] = "المنطقة الزمنية";
|
||||
$lang["config_top"] = "علوى";
|
||||
$lang["config_website"] = "موقع الشركة";
|
||||
$lang["config_number_locale"] = "التهيئة الاقليمية";
|
||||
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب";
|
||||
$lang["config_number_locale_required"] = "رقم التهيئة الإقليمية مطلوب";
|
||||
$lang["config_number_locale_invalid"] = "التهيئة الإقليمية المختارة غير صحية، راجع الرابط الموجود فى الملاحظة لاختيار تهيئة مناسبة";
|
||||
$lang["config_number_locale_tooltip"] = "إيجاد تهيئة إقليمية مناسبة عبر الرابط";
|
||||
$lang["config_theme"] = "السمة";
|
||||
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
|
||||
$lang["config_work_order_format"] = "شكل طلبات العمل";
|
||||
|
||||
@@ -1,24 +1,49 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["customers_account_number"] = "رقم الحساب";
|
||||
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل";
|
||||
$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_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_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_new"] = "عميل جديد";
|
||||
$lang["customers_none_selected"] = "لم تختار عملاء للحذف";
|
||||
$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["customers_import_items_excel"] = "استيراد العملا ء من ورقة عمل اكسل";
|
||||
$lang["customers_excel_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["customers_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية";
|
||||
$lang["customers_excel_import_success"] = "تم استيراد العملاء بنجاح";
|
||||
$lang["customers_excel_import_partially_failed"] = "تم استيراد معظم العملاء. البعض لم يتم استيرادهم ، وهذه هى القائمة";
|
||||
$lang["rewards_package"] = "فئة المكافئة";
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
<?php
|
||||
|
||||
$lang["datepicker_today"] = "اليوم";
|
||||
$lang["datepicker_weekstart"] = "0";
|
||||
$lang["datepicker_all_time"] = "جميع الأوقات";
|
||||
$lang["datepicker_last_7"] = "أخر سبعة أيام";
|
||||
$lang["datepicker_last_30"] = "أخر 30 يوم";
|
||||
$lang["datepicker_last_month"] = "أخر شهر";
|
||||
$lang["datepicker_last_year"] = "السنة الماضية";
|
||||
$lang["datepicker_this_month"] = "هذا الشهر";
|
||||
$lang["datepicker_this_month_last_year"] = "نفس الشهر من العام الماضي";
|
||||
$lang["datepicker_same_month_to_today"] = "هذا الشهر حتى اليوم";
|
||||
$lang["datepicker_same_month_to_same_day_last_year"] = "نفس الشهر حتى اليوم من السنة الماضية";
|
||||
$lang["datepicker_this_year"] = "السنة الحالية";
|
||||
$lang["datepicker_today_last_year"] = "نفس اليوم من السنة الماضية";
|
||||
$lang["datepicker_yesterday"] = "أمس";
|
||||
$lang["datepicker_apply"] = "تطبيق";
|
||||
$lang["datepicker_cancel"] = "إلغاء";
|
||||
$lang["datepicker_from"] = "من";
|
||||
$lang["datepicker_to"] = "إلى";
|
||||
$lang["datepicker_custom"] = "مخصص";
|
||||
$lang["datepicker_from"] = "من";
|
||||
$lang["datepicker_last_30"] = "أخر 30 يوم";
|
||||
$lang["datepicker_last_7"] = "أخر سبعة أيام";
|
||||
$lang["datepicker_last_financial_year"] = "";
|
||||
$lang["datepicker_last_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"] = "";
|
||||
$lang["datepicker_this_month"] = "هذا الشهر";
|
||||
$lang["datepicker_this_year"] = "السنة الحالية";
|
||||
$lang["datepicker_to"] = "إلى";
|
||||
$lang["datepicker_today"] = "اليوم";
|
||||
$lang["datepicker_today_last_year"] = "نفس اليوم من السنة الماضية";
|
||||
$lang["datepicker_weekstart"] = "0";
|
||||
$lang["datepicker_yesterday"] = "أمس";
|
||||
|
||||
@@ -1,28 +1,37 @@
|
||||
<?php
|
||||
|
||||
$lang["employees_basic_information"] = "المعلومات الأساسية للموظف";
|
||||
$lang["employees_cannot_be_deleted"] = "لايمكن حذف الموظفين ، واحد أو أكثر من المظفين قام بإجراء مبيعات :)";
|
||||
$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"] = "لايمكن حذف المستخدم 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_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_successful_adding"] = "لقد تم إضافة الموظف بنجاح";
|
||||
$lang["employees_subpermission_required"] = "يجب إختيار صلاحية واحدة على الأقل لكل قسم.";
|
||||
$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"] = "اسم المستخدم مطلوب";
|
||||
$lang["employees_subpermission_required"] = "يجب إختيار صلاحية واحدة على الأقل لكل قسم";
|
||||
$lang["employees_username_minlength"] = "اسم المستخدم يجب أن يكون 5 حروف على الأقل.";
|
||||
$lang["employees_username_required"] = "اسم المستخدم مطلوب.";
|
||||
|
||||
9
application/language/ar-EG/enum_lang.php
Normal file
9
application/language/ar-EG/enum_lang.php
Normal file
@@ -0,0 +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"] = "التقريب";
|
||||
20
application/language/ar-EG/expenses_categories_lang.php
Normal file
20
application/language/ar-EG/expenses_categories_lang.php
Normal 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"] = "تعديل النوع";
|
||||
45
application/language/ar-EG/expenses_lang.php
Normal file
45
application/language/ar-EG/expenses_lang.php
Normal 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"] = "تعديل";
|
||||
@@ -1,31 +1,31 @@
|
||||
<?php
|
||||
|
||||
$lang["giftcards_add_minus"] = "المخزن المضاف أو المطروح منه";
|
||||
$lang["giftcards_add_minus"] = "المخزن المضاف أو المطروح منه.";
|
||||
$lang["giftcards_allow_alt_description"] = "السماح بوصف بديل";
|
||||
$lang["giftcards_amazon"] = "Amazon";
|
||||
$lang["giftcards_remaining_balance"] = "كارت الهدية %1 القيمة المتبقية منه %2!";
|
||||
$lang["giftcards_bulk_edit"] = "تحرير جماعى";
|
||||
$lang["giftcards_cannot_be_deleted"] = "لايمكن حذف بطاقات الهدية المختارة، واحد أو أكثر منها لديه مبيعات";
|
||||
$lang["giftcards_cannot_find_giftcard"] = "لايمكن إيجاد معلومات حول كارت الهدية";
|
||||
$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,20 @@ $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"] = "إسترجاع بيانات بطاقة هدية";
|
||||
$lang["giftcards_sales_tax_1"] = "ضريبة المبيعات";
|
||||
@@ -65,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"] = "قيمة بطاقة الهدية مطلوبة.";
|
||||
|
||||
@@ -1,20 +1,31 @@
|
||||
<?php
|
||||
|
||||
$lang["item_kits_add_item"] = "إضافة مجموعة";
|
||||
$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_error_adding_updating"] = "خطاء فى إضافة/تحديث المجموعة";
|
||||
$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_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_quantity"] = "الكمية";
|
||||
$lang["item_kits_sequence"] = "التسلسل";
|
||||
$lang["item_kits_successful_adding"] = "لقد تم إضافة المجموعة بنجاح";
|
||||
$lang["item_kits_successful_deleted"] = "لقد تم حذف المجموعة بنجاح";
|
||||
$lang["item_kits_successful_updating"] = "لقد تم تحديث بيانات المجموعة بنجاح";
|
||||
|
||||
@@ -1,75 +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_success"] = "تم استيراد الأصناف بنجاح";
|
||||
$lang["items_excel_import_partially_failed"] = "تم استيراد معظم الأصناف. البعض لم يتم استيرادهم ، وهذه هى القائمة";
|
||||
$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_is_deleted"] = "حذفت";
|
||||
$lang["items_is_serialized"] = "الصنف له رقم مسلسل";
|
||||
$lang["items_item"] = "صنف";
|
||||
$lang["items_item_number"] = "الباركود UPC/EAN/ISBN";
|
||||
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل";
|
||||
$lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاعدة البيانات من قبل.";
|
||||
$lang["items_kit"] = "مجموعة اصناف";
|
||||
$lang["items_location"] = "مكان";
|
||||
$lang["items_empty_upc_items"] = "تفريغ اصناف UPC";
|
||||
$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_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_custom_items"] = "بحث الحقول المخصصة";
|
||||
$lang["items_search_attributes"] = "بحث الحقول المخصصة";
|
||||
$lang["items_search_custom_items"] = "بحث الاصناف المخصصة";
|
||||
$lang["items_select_image"] = "اختار صورة";
|
||||
$lang["items_serialized_items"] = "أصناف مسلسلة";
|
||||
$lang["items_standard"] = "اساسي";
|
||||
$lang["items_stock"] = "مخزن";
|
||||
$lang["items_stock_location"] = "مكان المخزون";
|
||||
$lang["items_stock_type"] = "نوع المخزن";
|
||||
$lang["items_successful_adding"] = "لقد تم إضافة صنف بنجاح";
|
||||
$lang["items_successful_bulk_edit"] = "لقد تم تحديث بيانات صنف/أصناف بنجاح";
|
||||
$lang["items_successful_deleted"] = "لقد تم الحذف بنجاح";
|
||||
@@ -78,15 +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_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"] = "استخدام تحديث المخزن";
|
||||
$lang["items_import_items_excel"] = "استيراد من اكسل";
|
||||
$lang["items_select_image"] = "اختار صورة";
|
||||
$lang["items_change_image"] = "تغيير الصورة";
|
||||
$lang["items_remove_image"] = "ازالة الصورة";
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
|
||||
$lang["login_gcaptcha"] = "";
|
||||
$lang["login_go"] = "البدء";
|
||||
$lang["login_invalid_gcaptcha"] = "";
|
||||
$lang["login_invalid_installation"] = "";
|
||||
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح";
|
||||
$lang["login_login"] = "دخول";
|
||||
$lang["login_password"] = "كلمة السر";
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
$lang["messages_sms_send"] = "إرسال SMS";
|
||||
$lang["messages_first_name"] = "الإسم الأول";
|
||||
$lang["messages_last_name"] = "الأسم الأخير";
|
||||
$lang["messages_phone"] = "رقم المحمول";
|
||||
$lang["messages_phone_placeholder"] = "رقم/أرقام المحمول هنا...";
|
||||
$lang["messages_phone_number_required"] = "رقم المحمول مطلوب";
|
||||
$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"] = "إرسال SMS";
|
||||
$lang["messages_successfully_sent"] = "تم إرسال الرسالة بنجاح إلى: ";
|
||||
$lang["messages_unsuccessfully_sent"] = "لم يتم إرسال الرسالة بنجاح إلى: ";
|
||||
|
||||
@@ -1,25 +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_receivings"] = "استلام الأصناف";
|
||||
$lang["module_receivings_desc"] = "معالجة أوامر الشراء و استلام الأصناف";
|
||||
$lang["module_reports"] = "التقارير";
|
||||
$lang["module_reports_desc"] = "عرض وتوليد التقارير";
|
||||
$lang["module_sales"] = "المبيعات";
|
||||
$lang["module_sales_desc"] = "معالجة المبيعات و المرتجعات";
|
||||
$lang["module_suppliers"] = "الموردين";
|
||||
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين";
|
||||
$lang["module_items_desc"] = "إضافة، تحديث ، بحث و حذف الأصناف.";
|
||||
$lang["module_messages"] = "الرسائل";
|
||||
$lang["module_messages_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_reports"] = "التقارير";
|
||||
$lang["module_reports_desc"] = "عرض وتوليد التقارير.";
|
||||
$lang["module_sales"] = "المبيعات";
|
||||
$lang["module_sales_desc"] = "معالجة المبيعات و المرتجعات.";
|
||||
$lang["module_suppliers"] = "الموردين";
|
||||
$lang["module_suppliers_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الموردين.";
|
||||
$lang["module_taxes"] = "الضرائب";
|
||||
$lang["module_taxes_desc"] = "اعدادات ضريبة المبيعات.";
|
||||
|
||||
@@ -1,52 +1,53 @@
|
||||
<?php
|
||||
|
||||
$lang["receivings_transaction_failed"] = "حركات الإستلام فشلت";
|
||||
$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_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_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف";
|
||||
$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"] = "كود الإستلام";
|
||||
$lang["receivings_reference"] = "رقم المرجع";
|
||||
$lang["receivings_item_name"] = "اسم الصنف";
|
||||
$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"] = "إستلام";
|
||||
$lang["receivings_reference"] = "رقم المرجع";
|
||||
$lang["receivings_register"] = "استلام الأصناف";
|
||||
$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"] = "مصدر المخزون";
|
||||
$lang["receivings_successfully_deleted"] = "لقد تم الحذف";
|
||||
$lang["receivings_successfully_updated"] = "لقد تم التحديث";
|
||||
$lang["receivings_supplier"] = "المورد";
|
||||
$lang["receivings_supplier_email"] = "البريد الإلكتروني";
|
||||
$lang["receivings_supplier_address"] = "العنوان";
|
||||
$lang["receivings_supplier_email"] = "البريد الإلكتروني";
|
||||
$lang["receivings_supplier_location"] = "المكان";
|
||||
$lang["receivings_total"] = "الإجمالى";
|
||||
$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"] = "تحديث";
|
||||
|
||||
@@ -1,10 +1,23 @@
|
||||
<?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"] = "عدد";
|
||||
$lang["reports_customer"] = "عميل";
|
||||
$lang["reports_customers"] = "عملاء";
|
||||
@@ -20,9 +33,18 @@ $lang["reports_discount"] = "الخصم";
|
||||
$lang["reports_discount_percent"] = "نسبة الخصم";
|
||||
$lang["reports_discounts"] = "الخصومات";
|
||||
$lang["reports_discounts_summary_report"] = "تقرير ملخص الخصومات";
|
||||
$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"] = "نواقص المخزون";
|
||||
@@ -31,22 +53,25 @@ $lang["reports_inventory_reports"] = "تقارير المخزن";
|
||||
$lang["reports_inventory_summary"] = "ملخص المخزن";
|
||||
$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"] = "الأصناف مستلمة";
|
||||
$lang["reports_items_summary_report"] = "تقرير ملخص الأصناف";
|
||||
$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_payment_type"] = "طريقة الدفع";
|
||||
$lang["reports_payments"] = "المدفوعات";
|
||||
$lang["reports_payments_summary_report"] = "ملخص المدفوعات";
|
||||
$lang["reports_profit"] = "الربح";
|
||||
$lang["reports_cost"] = "التكلفة";
|
||||
$lang["reports_quantity"] = "الكمية المشتراه";
|
||||
$lang["reports_quantity_purchased"] = "المستلم";
|
||||
$lang["reports_quotes"] = "عروض اسعار";
|
||||
$lang["reports_received_by"] = "مستلمة بواسطة";
|
||||
$lang["reports_receiving_id"] = "كود الاستلام";
|
||||
$lang["reports_receiving_type"] = "نوع الاستلام";
|
||||
@@ -75,6 +100,7 @@ $lang["reports_serial_number"] = "مسلسل";
|
||||
$lang["reports_sold_by"] = "البائع";
|
||||
$lang["reports_sold_to"] = "مباع الى";
|
||||
$lang["reports_stock_location"] = "مكان المخزون";
|
||||
$lang["reports_sub_total_value"] = "المجموع الفرعى";
|
||||
$lang["reports_subtotal"] = "المجموع الفرعى";
|
||||
$lang["reports_summary_reports"] = "تقارير ملخصة";
|
||||
$lang["reports_supplied_by"] = "مورده بواسطة";
|
||||
@@ -86,12 +112,11 @@ $lang["reports_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["reports_taxes"] = "الضرائب";
|
||||
$lang["reports_taxes_summary_report"] = "تقرير ملخص الضرائب";
|
||||
$lang["reports_total"] = "الإجمالى";
|
||||
$lang["reports_type"] = "النوع";
|
||||
$lang["reports_item_count"] = "تصفية عداد الصنف";
|
||||
$lang["reports_cost_price"] = "سعر التكلفة";
|
||||
$lang["reports_unit_price"] = "السعر";
|
||||
$lang["reports_sub_total_value"] = "المجموع الفرعى";
|
||||
$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_work_orders"] = "طلبات عمل";
|
||||
$lang["reports_zero_and_less"] = "صفر و أقل";
|
||||
$lang["reports_more_than_zero"] = "أكثر من صفر";
|
||||
$lang["reports_no_reports_to_display"] = "لايوجد أصناف لعرضها";
|
||||
|
||||
@@ -1,123 +1,164 @@
|
||||
<?php
|
||||
|
||||
<?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_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_email"] = "البريد الإلكترونى";
|
||||
$lang["sales_customer_address"] = "العنوان";
|
||||
$lang["sales_customer_location"] = "المكان";
|
||||
$lang["sales_customer_discount"] = "الخصم";
|
||||
$lang["sales_customer_email"] = "البريد الإلكترونى";
|
||||
$lang["sales_customer_location"] = "المكان";
|
||||
$lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
|
||||
$lang["sales_customer_optional"] = "(اختياري)";
|
||||
$lang["sales_customer_required"] = "(اجباري)";
|
||||
$lang["sales_customer_total"] = "المجموع";
|
||||
$lang["sales_date"] = "تاريخ البيع";
|
||||
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح";
|
||||
$lang["sales_date_type"] = "التاريخ مطلوب";
|
||||
$lang["sales_date_range"] = "الفترة الزمنية";
|
||||
$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"] = "الخصم";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$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_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_id"] = "كود عملية البيع";
|
||||
$lang["sales_include_prices"] = "يشمل الاسعار؟";
|
||||
$lang["sales_invoice"] = "فاتورة";
|
||||
$lang["sales_invoice_confirm"] = "هذه الفاتورة سوف ترسل إلى";
|
||||
$lang["sales_invoice_enable"] = "إنشاء فاتورة";
|
||||
$lang["sales_invoice_filter"] = "الفواتير";
|
||||
$lang["sales_cash_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_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_takings"] = "الإيراد";
|
||||
$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_zero"] = "تحذير! الكمية المطلوبة غير كافية، بإمكانك إتمام عملية البيع ، لكن تحقق من مخزنك.";
|
||||
$lang["sales_quantity_less_than_reorder_level"] = "إيصال البيع";
|
||||
$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_sale"] = "بيع";
|
||||
$lang["sales_sale_for_customer"] = "العميل: ";
|
||||
$lang["sales_sale_by_invoice"] = "البيع بفاتورة رسمية";
|
||||
$lang["sales_sale_for_customer"] = "العميل:";
|
||||
$lang["sales_sale_time"] = "الوقت";
|
||||
$lang["sales_select_customer"] = "اختيار عميل (اختيارى)";
|
||||
$lang["sales_sales_tax"] = "ضريبة البيع";
|
||||
$lang["sales_select_customer"] = "اختيار عميل (اختياري)";
|
||||
$lang["sales_send_invoice"] = "إرسال الفاتورة";
|
||||
$lang["sales_send_quote"] = "ارسال عرض الاسعار";
|
||||
$lang["sales_send_receipt"] = "إرسال إيصال";
|
||||
$lang["sales_send_work_order"] = "ارسال طلب عمل";
|
||||
$lang["sales_serial"] = "مسلسل";
|
||||
$lang["sales_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_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_date_range"] = "الفترة الزمنية";
|
||||
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها";
|
||||
$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"] = "فشل في ارسال طلب العمل الى";
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<?php
|
||||
|
||||
$lang["suppliers_account_number"] = "حساب رقم#";
|
||||
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم";
|
||||
$lang["suppliers_company_name"] = "اسم الشركة";
|
||||
$lang["suppliers_company_name_required"] = "اسم الشركة مطلوب";
|
||||
$lang["suppliers_account_number"] = "رقم الحساب";
|
||||
$lang["suppliers_agency_name"] = "اسم الوكالة";
|
||||
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم.";
|
||||
$lang["suppliers_company_name"] = "اسم الشركة";
|
||||
$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"] = "لقد تم حذف المورد بنجاح";
|
||||
|
||||
32
application/language/ar-EG/taxes_lang.php
Normal file
32
application/language/ar-EG/taxes_lang.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
$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"] = "ضريبة القيمة المضافة";
|
||||
10
application/language/az-AZ/bootstrap_tables_lang.php
Normal file
10
application/language/az-AZ/bootstrap_tables_lang.php
Normal 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"] = "";
|
||||
$lang["tables_refresh"] = "";
|
||||
$lang["tables_rows_per_page"] = "";
|
||||
$lang["tables_toggle"] = "";
|
||||
68
application/language/az-AZ/common_lang.php
Normal file
68
application/language/az-AZ/common_lang.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
$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"] = "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"] = "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"] = "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";
|
||||
273
application/language/az-AZ/config_lang.php
Normal file
273
application/language/az-AZ/config_lang.php
Normal file
@@ -0,0 +1,273 @@
|
||||
<?php
|
||||
|
||||
$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ı";
|
||||
50
application/language/az-AZ/customers_lang.php
Normal file
50
application/language/az-AZ/customers_lang.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
$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"] = "Açıq məktub";
|
||||
$lang["customers_mailchimp_activity_total"] = "Məktub göndərildi";
|
||||
$lang["customers_mailchimp_activity_unopen"] = "Açı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"] = "Reytinq";
|
||||
$lang["customers_mailchimp_status"] = "Status";
|
||||
$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"] = "";
|
||||
22
application/language/az-AZ/datepicker_lang.php
Normal file
22
application/language/az-AZ/datepicker_lang.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
$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"] = "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"] = "";
|
||||
$lang["datepicker_today"] = "";
|
||||
$lang["datepicker_today_last_year"] = "";
|
||||
$lang["datepicker_weekstart"] = "";
|
||||
$lang["datepicker_yesterday"] = "";
|
||||
37
application/language/az-AZ/employees_lang.php
Normal file
37
application/language/az-AZ/employees_lang.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
9
application/language/az-AZ/enum_lang.php
Normal file
9
application/language/az-AZ/enum_lang.php
Normal 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";
|
||||
4
application/language/az-AZ/error_lang.php
Normal file
4
application/language/az-AZ/error_lang.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$lang["error_no_permission_module"] = "sizin icazəniz yoxdur";
|
||||
$lang["error_unknown"] = "naməlum";
|
||||
20
application/language/az-AZ/expenses_categories_lang.php
Normal file
20
application/language/az-AZ/expenses_categories_lang.php
Normal 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ə";
|
||||
45
application/language/az-AZ/expenses_lang.php
Normal file
45
application/language/az-AZ/expenses_lang.php
Normal 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ə";
|
||||
70
application/language/az-AZ/giftcards_lang.php
Normal file
70
application/language/az-AZ/giftcards_lang.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$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.";
|
||||
32
application/language/az-AZ/item_kits_lang.php
Normal file
32
application/language/az-AZ/item_kits_lang.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
106
application/language/az-AZ/items_lang.php
Normal file
106
application/language/az-AZ/items_lang.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
$lang["items_add_minus"] = "inventor toplama və çixma üçün";
|
||||
$lang["items_allow_alt_desciption"] = "";
|
||||
$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"] = "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";
|
||||
10
application/language/az-AZ/login_lang.php
Normal file
10
application/language/az-AZ/login_lang.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
14
application/language/az-AZ/messages_lang.php
Normal file
14
application/language/az-AZ/messages_lang.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
$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"] = "";
|
||||
37
application/language/az-AZ/module_lang.php
Normal file
37
application/language/az-AZ/module_lang.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
53
application/language/az-AZ/receivings_lang.php
Normal file
53
application/language/az-AZ/receivings_lang.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
$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ə";
|
||||
123
application/language/az-AZ/reports_lang.php
Normal file
123
application/language/az-AZ/reports_lang.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
$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"] = "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ğı";
|
||||
165
application/language/az-AZ/sales_lang.php
Normal file
165
application/language/az-AZ/sales_lang.php
Normal file
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
|
||||
$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"] = "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"] = "";
|
||||
19
application/language/az-AZ/suppliers_lang.php
Normal file
19
application/language/az-AZ/suppliers_lang.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
32
application/language/az-AZ/taxes_lang.php
Normal file
32
application/language/az-AZ/taxes_lang.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
$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";
|
||||
10
application/language/bg/bootstrap_tables_lang.php
Normal file
10
application/language/bg/bootstrap_tables_lang.php
Normal 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"] = "Щифт";
|
||||
68
application/language/bg/common_lang.php
Normal file
68
application/language/bg/common_lang.php
Normal 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"] = "Пощенски код";
|
||||
273
application/language/bg/config_lang.php
Normal file
273
application/language/bg/config_lang.php
Normal 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";
|
||||
50
application/language/bg/customers_lang.php
Normal file
50
application/language/bg/customers_lang.php
Normal 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"] = "Пакетни награди";
|
||||
@@ -1,21 +1,22 @@
|
||||
<?php
|
||||
|
||||
$lang["datepicker_today"] = "Today";
|
||||
$lang["datepicker_weekstart"] = "0";
|
||||
$lang["datepicker_all_time"] = "All Time";
|
||||
$lang["datepicker_last_7"] = "Last 7 Days";
|
||||
$lang["datepicker_last_30"] = "Last 30 Days";
|
||||
$lang["datepicker_last_month"] = "Last Month";
|
||||
$lang["datepicker_last_year"] = "Last Year";
|
||||
$lang["datepicker_this_month"] = "This Month";
|
||||
$lang["datepicker_this_month_last_year"] = "Same Month Last Year";
|
||||
$lang["datepicker_same_month_to_today"] = "This Month To Today";
|
||||
$lang["datepicker_same_month_to_same_day_last_year"] = "Same Month To Same Day Last Year";
|
||||
$lang["datepicker_this_year"] = "This Year";
|
||||
$lang["datepicker_today_last_year"] = "Today Last Year";
|
||||
$lang["datepicker_yesterday"] = "Yesterday";
|
||||
$lang["datepicker_apply"] = "Apply";
|
||||
$lang["datepicker_cancel"] = "Cancel";
|
||||
$lang["datepicker_from"] = "From";
|
||||
$lang["datepicker_to"] = "To";
|
||||
$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";
|
||||
37
application/language/bg/employees_lang.php
Normal file
37
application/language/bg/employees_lang.php
Normal 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"] = "Потребителското име е задължително поле.";
|
||||
9
application/language/bg/enum_lang.php
Normal file
9
application/language/bg/enum_lang.php
Normal 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";
|
||||
4
application/language/bg/error_lang.php
Normal file
4
application/language/bg/error_lang.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$lang["error_no_permission_module"] = "Нямате разрешение за достъп до модула с име";
|
||||
$lang["error_unknown"] = "неизвестен";
|
||||
20
application/language/bg/expenses_categories_lang.php
Normal file
20
application/language/bg/expenses_categories_lang.php
Normal 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";
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user